From bc301802cb49fc45db3ccaf43a93b9d8716d3f8f Mon Sep 17 00:00:00 2001 From: PrimeBuild-pc Date: Wed, 24 Jun 2026 17:43:03 +0200 Subject: [PATCH] Refactor repo with ponytail cleanup --- App.xaml.cs | 966 ++-- AssemblyInfo.cs | 44 +- Converters/BoolToColorConverter.cs | 98 +- Converters/BoolToFontWeightConverter.cs | 70 +- Converters/BoolToStringConverter.cs | 77 +- Converters/BoolToVisibilityConverter.cs | 78 +- Converters/BytesToStringConverter.cs | 109 +- Converters/CpuTopologyConverters.cs | 390 +- Converters/InverseBooleanConverter.cs | 79 +- Converters/ItemIndexConverter.cs | 83 +- Converters/NullToBoolConverter.cs | 54 +- Helpers/AffinityHelper.cs | 66 +- Helpers/Converters.cs | 228 +- Helpers/DwmHelper.cs | 90 +- Helpers/NavigationBehavior.cs | 174 +- Helpers/ServiceProviderExtensions.cs | 48 +- Helpers/StartupMinimizedSuggestionPolicy.cs | 34 +- Helpers/StartupWindowBehavior.cs | 92 +- Helpers/WindowPlacementHelper.cs | 590 +- MainWindow.Behaviors.partial.cs | 4070 +++++++------- MainWindow.xaml.cs | 416 +- Models/ApplicationSettingsModel.cs | 759 ++- Models/ConditionalProcessProfile.cs | 598 +- Models/Core/IModel.cs | 206 +- Models/CoreMask.cs | 289 +- Models/CpuAffinityProfileSchemaVersions.cs | 34 +- Models/CpuPreset.cs | 73 +- Models/CpuSelection.cs | 724 ++- Models/CpuSelectionMigrationMetadata.cs | 54 +- Models/CpuTopologyModel.cs | 330 +- Models/LogEventTypes.cs | 420 +- Models/NotificationModel.cs | 271 +- Models/PersistentProcessRule.cs | 140 +- Models/PowerPlanModel.cs | 66 +- Models/ProcessMemoryPriority.cs | 33 +- Models/ProcessModel.cs | 154 +- Models/ProcessMonitorConfiguration.cs | 283 +- Models/ProcessPowerPlanAssociation.cs | 345 +- Models/ProcessProfileSnapshot.cs | 54 +- Models/ProfileModel.cs | 198 +- Models/ThreadPilotException.cs | 277 +- Platforms/Windows/CpuSetApplyResult.cs | 92 +- Platforms/Windows/CpuSetMapping.cs | 242 +- Platforms/Windows/CpuSetNativeMethods.cs | 147 +- Platforms/Windows/IProcessCpuSetHandler.cs | 107 +- Platforms/Windows/IProcessCpuSetNativeApi.cs | 162 +- .../IProcessMemoryPriorityNativeApi.cs | 176 +- Platforms/Windows/ProcessCpuSetHandler.cs | 871 ++- .../ProcessMemoryPriorityNativeMethods.cs | 66 +- Services/Abstractions/IGitHubReleaseClient.cs | 27 +- Services/Abstractions/IProcessRunner.cs | 48 +- Services/Abstractions/ISettingsStorage.cs | 37 +- Services/ActivityAuditService.cs | 488 +- Services/AffinityApplyService.cs | 1288 +++-- Services/AppNavigationOptions.cs | 33 +- Services/AppRefreshPolicy.cs | 163 +- Services/ApplicationSettingsService.cs | 19 - Services/ApplicationVersionProvider.cs | 72 +- Services/AtomicFileWriter.cs | 128 +- Services/AuthenticodeSignatureVerifier.cs | 92 +- Services/AutostartService.cs | 649 ++- Services/ConditionalProfileService.cs | 1167 ++-- Services/Core/BaseSystemService.cs | 229 +- Services/Core/ISystemService.cs | 92 +- Services/CoreMaskService.cs | 1790 +++--- Services/CpuPresetGenerationOptions.cs | 40 +- Services/CpuPresetGenerator.cs | 664 ++- Services/CpuSelectionMigrationResult.cs | 32 +- Services/CpuSelectionMigrationService.cs | 320 +- Services/CpuTopologyService.cs | 1707 +++--- Services/ElevatedTaskService.cs | 847 ++- Services/ElevationService.cs | 465 +- Services/EnhancedLoggingService.cs | 1134 ++-- Services/FileSettingsStorage.cs | 89 +- Services/ForegroundProcessService.cs | 132 +- Services/GameBoostService.cs | 646 --- Services/GameDetectionService.cs | 692 --- Services/GameModeService.cs | 248 +- Services/GitHubReleaseClient.cs | 63 +- Services/GitHubUpdateChecker.cs | 270 +- Services/HttpUpdateDownloadClient.cs | 88 +- Services/IActivityAuditService.cs | 84 +- Services/IApplicationSettingsService.cs | 150 +- Services/IAutostartService.cs | 161 +- Services/IConditionalProfileService.cs | 239 +- Services/ICoreMaskService.cs | 167 +- Services/ICpuPresetGenerator.cs | 38 +- Services/ICpuTopologyProvider.cs | 44 +- Services/ICpuTopologyService.cs | 131 +- Services/IElevatedTaskService.cs | 89 +- Services/IElevationService.cs | 77 +- Services/IEnhancedLoggingService.cs | 293 +- Services/IGameBoostService.cs | 157 - Services/IGameDetectionService.cs | 259 - Services/IGameModeService.cs | 62 +- Services/IKeyboardShortcutService.cs | 270 +- Services/ILocalizationService.cs | 57 +- Services/INotificationService.cs | 247 +- Services/IPerformanceMonitoringService.cs | 416 +- Services/IPersistentProcessRuleStore.cs | 28 +- Services/IPowerPlanService.cs | 207 +- Services/IProcessMemoryPriorityService.cs | 28 +- Services/IProcessMonitorManagerService.cs | 235 +- Services/IProcessMonitorService.cs | 192 +- .../IProcessPowerPlanAssociationService.cs | 202 +- Services/IProcessService.cs | 187 +- Services/IRetryPolicyService.cs | 69 - Services/ISecurityService.cs | 91 +- Services/ISelfResourceManagementService.cs | 34 +- Services/IServiceDisposalCoordinator.cs | 53 - Services/IServiceHealthMonitor.cs | 104 - Services/ISmartNotificationService.cs | 362 +- Services/ISystemTrayService.cs | 301 +- Services/ISystemTweaksService.cs | 250 +- Services/IThemeService.cs | 42 +- Services/IVirtualizedProcessService.cs | 209 +- Services/KeyboardShortcutService.cs | 755 ++- Services/LocalizationService.cs | 519 +- Services/LogFileManager.cs | 873 ++- Services/NotificationService.cs | 1049 ++-- Services/PassiveProcessErrorThrottle.cs | 124 +- Services/PerformanceMonitoringService.cs | 1463 +++-- Services/PersistentProcessRuleJsonStore.cs | 138 +- Services/PersistentProcessRuleMatcher.cs | 116 +- Services/PersistentRuleAutoApplyService.cs | 656 +-- Services/PersistentRulesEngine.cs | 610 +-- Services/PowerPlanService.cs | 1087 ++-- Services/PowerPlanTransitionGate.cs | 140 +- Services/ProcessAffinityApplyCoordinator.cs | 356 +- Services/ProcessClassifier.cs | 140 +- Services/ProcessFilterService.cs | 193 +- Services/ProcessListDeltaUpdater.cs | 187 +- .../IProcessManagementService.cs | 123 - Services/ProcessMemoryPriorityService.cs | 484 +- Services/ProcessMonitorManagerService.cs | 1789 +++--- Services/ProcessMonitorService.cs | 1429 +++-- Services/ProcessOperationResult.cs | 96 +- Services/ProcessOperationUserMessages.cs | 124 +- .../ProcessPowerPlanAssociationService.cs | 897 ++- Services/ProcessRuleCreationService.cs | 922 ++-- Services/ProcessService.cs | 2873 +++++----- Services/RetryPolicyService.cs | 155 - Services/SecurityService.cs | 19 - Services/SelfResourceManagementService.cs | 426 +- Services/SemanticVersion.cs | 208 +- Services/ServiceConfiguration.cs | 485 +- Services/ServiceDisposalCoordinator.cs | 197 - Services/ServiceFactory.cs | 189 - Services/ServiceHealthMonitor.cs | 170 - Services/SmartNotificationService.cs | 1259 +++-- Services/StoragePaths.cs | 80 +- Services/SystemProcessRunner.cs | 134 +- Services/SystemTrayMenuPlacement.cs | 94 +- Services/SystemTrayService.cs | 1747 +++--- Services/SystemTrayStatusUpdater.cs | 304 +- Services/SystemTweaksService.cs | 1579 +++--- Services/SystemUpdateClock.cs | 24 +- Services/TaskSafety.cs | 74 +- Services/ThemeService.cs | 458 +- Services/ThrottledRefreshCoordinator.cs | 187 +- Services/UpdateAssetSelector.cs | 162 +- Services/UpdateChecksumVerifier.cs | 146 +- Services/UpdateDownloadService.cs | 206 +- Services/UpdateInstallerService.cs | 128 +- Services/UpdateModels.cs | 252 +- Services/UpdateService.cs | 316 +- Services/UpdateTempDirectoryProvider.cs | 136 +- Services/VirtualizedProcessService.cs | 613 +-- Services/WindowsCpuTopologyNativeLayout.cs | 312 +- Services/WindowsCpuTopologyProvider.cs | 776 ++- Services/WindowsForegroundWindowProvider.cs | 140 +- Services/WpfApplicationShutdownService.cs | 42 +- Tests/ActiveApplicationsTest.cs | 270 +- Tests/CpuTopologyServiceTests.cs | 250 +- Tests/ExecutableBrowseTest.cs | 301 +- Tests/GameBoostIntegrationTest.cs | 228 - Tests/ProcessSelectionTest.cs | 603 +- Tests/TestRunner.cs | 99 +- .../ActivityAuditServiceTests.cs | 130 +- .../AffinityApplyServiceTests.cs | 1256 ++--- .../AppRefreshPolicyTests.cs | 126 +- .../AppSmokeTestStartupTests.cs | 156 +- .../ApplicationSettingsModelTests.cs | 134 +- .../ApplicationSettingsServiceTests.cs | 542 +- .../AutostartServiceTests.cs | 229 +- .../BaseViewModelStatusTests.cs | 64 +- .../CoreMaskServiceTests.cs | 450 +- .../CpuPresetGeneratorTests.cs | 718 +-- .../CpuSelectionMigrationServiceTests.cs | 522 +- .../CpuSelectionTests.cs | 460 +- .../CpuTopologyProviderTests.cs | 620 +-- .../DiagnosticsViewModelProviderTests.cs | 70 - .../ElevatedTaskServiceTests.cs | 257 +- .../ForegroundProcessServiceTests.cs | 136 +- .../GitHubUpdateCheckerTests.cs | 24 +- .../LocalizationServiceTests.cs | 604 +- .../LogViewerActivityAuditTests.cs | 122 +- .../MasksViewModelTests.cs | 322 +- .../NotificationServiceLocalizationTests.cs | 322 +- .../PackagingMetadataTests.cs | 212 +- .../PassiveProcessErrorThrottleTests.cs | 118 +- .../PerformanceViewModelDiagnosticsTests.cs | 510 +- .../PersistentProcessRuleJsonStoreTests.cs | 206 +- .../PersistentProcessRuleMatcherTests.cs | 194 +- .../PersistentRuleAutoApplyServiceTests.cs | 1024 ++-- .../PersistentRulesEngineTests.cs | 964 ++-- .../PowerPlanServiceSecurityTests.cs | 136 +- .../PowerPlanServiceTests.cs | 395 +- .../PowerPlanTransitionGateTests.cs | 178 +- .../PowerPlanViewModelTests.cs | 304 +- .../PowerPlanViewXamlTests.cs | 116 +- .../ProcessAffinityApplyCoordinatorTests.cs | 548 +- .../ProcessClassifierTests.cs | 298 +- .../ProcessCpuSetHandlerTests.cs | 678 +-- .../ProcessFilterServiceTests.cs | 64 +- .../ProcessListDeltaUpdaterTests.cs | 268 +- .../ProcessMemoryPriorityServiceTests.cs | 496 +- .../ProcessMonitorManagerServiceTests.cs | 1807 +++--- .../ProcessRuleCreationServiceTests.cs | 750 +-- .../ProcessServiceSecurityTests.cs | 155 +- .../ProcessServiceTests.cs | 1065 ++-- .../ProcessViewModelAffinityTests.cs | 274 +- .../ProcessViewModelContextMenuTests.cs | 1696 +++--- .../ProcessViewXamlBindingTests.cs | 578 +- .../RetryPolicyServiceTests.cs | 81 - .../SecurityServiceTests.cs | 139 +- .../SelectedProcessSummaryViewModelTests.cs | 696 +-- .../SelfResourcePolicyTests.cs | 106 +- .../ServiceConfigurationTests.cs | 110 +- .../SettingsViewModelThemeTests.cs | 512 +- .../StartupMinimizedSuggestionPolicyTests.cs | 72 +- .../StartupWindowBehaviorTests.cs | 120 +- .../SystemTrayPlacementHelperTests.cs | 130 +- .../SystemTrayStatusUpdaterTests.cs | 144 +- .../SystemTweaksServiceTests.cs | 48 +- .../SystemTweaksViewModelTests.cs | 332 +- .../ThreadPilot.Core.Tests/TaskSafetyTests.cs | 85 +- .../ThemeDictionaryPolicyTests.cs | 278 +- .../UpdateServiceTests.cs | 646 +-- .../WindowPlacementHelperTests.cs | 172 +- ThreadPilot.csproj | 145 +- ViewModels/BaseViewModel.cs | 607 +-- ViewModels/DiagnosticsViewModelProvider.cs | 41 - ViewModels/LogViewerViewModel.cs | 1010 ++-- ViewModels/MainWindowViewModel.cs | 456 +- ViewModels/MasksViewModel.cs | 30 - ViewModels/PerformanceViewModel.cs | 1876 ++++--- ViewModels/PowerPlanViewModel.cs | 666 ++- .../ProcessPowerPlanAssociationViewModel.cs | 1186 ++-- .../ProcessViewModel.Behaviors.partial.cs | 4847 ++++++++--------- ViewModels/ProcessViewModel.cs | 548 +- ViewModels/SelectedProcessSummaryViewModel.cs | 730 +-- ViewModels/SettingsViewModel.cs | 1825 +++---- ViewModels/SystemTweaksViewModel.cs | 706 ++- ViewModels/ViewModelFactory.cs | 150 - Views/LogViewerView.xaml.cs | 28 - Views/MasksView.xaml.cs | 50 +- Views/PerformanceView.xaml.cs | 59 +- Views/PowerPlanView.xaml.cs | 54 +- Views/ProcessPowerPlanAssociationView.xaml.cs | 45 +- Views/ProcessView.xaml.cs | 70 +- Views/SettingsView.xaml.cs | 97 +- Views/SettingsWindow.xaml.cs | 143 +- Views/SystemTweaksView.xaml.cs | 81 +- chocolatey/threadpilot-1.1.2.1-fix.zip | Bin 3322 -> 0 bytes docs/archive/CLAUDE.md | 238 - docs/audits/COMPLIANCE_AUDIT.md | 137 - docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv | 31 - .../DEPENDENCY_INVENTORY_2026-04-15.json | 150 - .../DEPENDENCY_REMEDIATION_PLAN_2026-04-15.md | 48 - docs/audits/GITLEAKS_REPORT_2026-04-15.json | 1 - docs/audits/OUTDATED_PACKAGES_2026-04-15.json | 155 - docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md | 66 - .../audits/PINVOKE_AUDIT_REPORT_2026-04-15.md | 27 - docs/audits/README_AUDIT_REPORT_2026-04-15.md | 25 - .../REPOSITORY_ARTIFACT_SCAN_2026-04-15.txt | 1 - docs/audits/SECURITY_CHECKLIST.md | 47 - .../SECURITY_REMEDIATION_PLAN_2026-04-15.md | 31 - .../audits/VULNERABILITY_SCAN_2026-04-15.json | 13 - .../VULNERABILITY_SCAN_REPORT_2026-04-15.md | 36 - docs/plans/DOCUMENTATION_AUDIT_CHECKLIST.md | 12 - docs/plans/DOCUMENTATION_TEMPLATES.md | 55 - docs/plans/PRE_TAG_RELEASE_CHECKLIST.md | 123 - .../RELEASE_PLAN_IMPLEMENTATION_STATUS.md | 99 - docs/plans/TEST_PLAN_v1.1.1.md | 48 - docs/plans/implementation_plan.md | 74 - docs/reference/ADVANCED_CPU_FEATURES.md | 128 - docs/reference/API_REFERENCE.md | 318 -- docs/reference/ARCHITECTURE_GUIDE.md | 199 - docs/reference/DEVELOPER_GUIDE.md | 322 -- docs/reference/DEVELOPMENT.md | 43 - docs/reference/EXCEPTION_HANDLING_POLICY.md | 62 - docs/reference/GAME_BOOST_VALIDATION.md | 153 - docs/reference/PERFORMANCE.md | 34 - docs/reference/PROJECT_STRUCTURE.md | 92 - docs/reference/SAFE_WIN32_INTEROP_EXAMPLES.md | 44 - docs/reference/UI_STYLE_GUIDE.md | 201 - docs/reference/runtimeconfig.template.json | 10 - gitleaks.zip | Bin 5750992 -> 0 bytes 299 files changed, 47890 insertions(+), 58785 deletions(-) delete mode 100644 Services/GameBoostService.cs delete mode 100644 Services/GameDetectionService.cs delete mode 100644 Services/IGameBoostService.cs delete mode 100644 Services/IGameDetectionService.cs delete mode 100644 Services/IRetryPolicyService.cs delete mode 100644 Services/IServiceDisposalCoordinator.cs delete mode 100644 Services/IServiceHealthMonitor.cs delete mode 100644 Services/ProcessManagement/IProcessManagementService.cs delete mode 100644 Services/RetryPolicyService.cs delete mode 100644 Services/ServiceDisposalCoordinator.cs delete mode 100644 Services/ServiceFactory.cs delete mode 100644 Services/ServiceHealthMonitor.cs delete mode 100644 Tests/GameBoostIntegrationTest.cs delete mode 100644 Tests/ThreadPilot.Core.Tests/DiagnosticsViewModelProviderTests.cs delete mode 100644 Tests/ThreadPilot.Core.Tests/RetryPolicyServiceTests.cs delete mode 100644 ViewModels/DiagnosticsViewModelProvider.cs delete mode 100644 ViewModels/ViewModelFactory.cs delete mode 100644 chocolatey/threadpilot-1.1.2.1-fix.zip delete mode 100644 docs/archive/CLAUDE.md delete mode 100644 docs/audits/COMPLIANCE_AUDIT.md delete mode 100644 docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv delete mode 100644 docs/audits/DEPENDENCY_INVENTORY_2026-04-15.json delete mode 100644 docs/audits/DEPENDENCY_REMEDIATION_PLAN_2026-04-15.md delete mode 100644 docs/audits/GITLEAKS_REPORT_2026-04-15.json delete mode 100644 docs/audits/OUTDATED_PACKAGES_2026-04-15.json delete mode 100644 docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md delete mode 100644 docs/audits/PINVOKE_AUDIT_REPORT_2026-04-15.md delete mode 100644 docs/audits/README_AUDIT_REPORT_2026-04-15.md delete mode 100644 docs/audits/REPOSITORY_ARTIFACT_SCAN_2026-04-15.txt delete mode 100644 docs/audits/SECURITY_CHECKLIST.md delete mode 100644 docs/audits/SECURITY_REMEDIATION_PLAN_2026-04-15.md delete mode 100644 docs/audits/VULNERABILITY_SCAN_2026-04-15.json delete mode 100644 docs/audits/VULNERABILITY_SCAN_REPORT_2026-04-15.md delete mode 100644 docs/plans/DOCUMENTATION_AUDIT_CHECKLIST.md delete mode 100644 docs/plans/DOCUMENTATION_TEMPLATES.md delete mode 100644 docs/plans/PRE_TAG_RELEASE_CHECKLIST.md delete mode 100644 docs/plans/RELEASE_PLAN_IMPLEMENTATION_STATUS.md delete mode 100644 docs/plans/TEST_PLAN_v1.1.1.md delete mode 100644 docs/plans/implementation_plan.md delete mode 100644 docs/reference/ADVANCED_CPU_FEATURES.md delete mode 100644 docs/reference/API_REFERENCE.md delete mode 100644 docs/reference/ARCHITECTURE_GUIDE.md delete mode 100644 docs/reference/DEVELOPER_GUIDE.md delete mode 100644 docs/reference/DEVELOPMENT.md delete mode 100644 docs/reference/EXCEPTION_HANDLING_POLICY.md delete mode 100644 docs/reference/GAME_BOOST_VALIDATION.md delete mode 100644 docs/reference/PERFORMANCE.md delete mode 100644 docs/reference/PROJECT_STRUCTURE.md delete mode 100644 docs/reference/SAFE_WIN32_INTEROP_EXAMPLES.md delete mode 100644 docs/reference/UI_STYLE_GUIDE.md delete mode 100644 docs/reference/runtimeconfig.template.json delete mode 100644 gitleaks.zip diff --git a/App.xaml.cs b/App.xaml.cs index 06dc022..1513528 100644 --- a/App.xaml.cs +++ b/App.xaml.cs @@ -1,497 +1,469 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -#if DEBUG -using ThreadPilot.Tests; -#endif -using ThreadPilot.Services; -using ThreadPilot.ViewModels; - -namespace ThreadPilot -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using System.Windows; - using System.Windows.Threading; - using Microsoft.Extensions.DependencyInjection; - using Microsoft.Extensions.Logging; - using ThreadPilot.Helpers; - using ThreadPilot.Models; - - public partial class App : System.Windows.Application - { - private const string RegisterLaunchTaskArgument = "--register-launch-task"; - private const string LaunchedViaTaskArgument = "--launched-via-task"; - - private Mutex? singleInstanceMutex; - private int uiExceptionDialogOpen; - private DateTime lastUiExceptionDialogUtc = DateTime.MinValue; - - public IServiceProvider ServiceProvider { get; private set; } - - public App() - { - ServiceCollection services = new ServiceCollection(); - - // Use the new centralized service configuration - services.ConfigureApplicationServices(); - - this.ServiceProvider = services.BuildServiceProvider(); - - // Validate service configuration - ServiceConfiguration.ValidateServiceConfiguration(this.ServiceProvider); - } - - - - protected override void OnStartup(StartupEventArgs e) - { - // Parse command line arguments early so special startup modes can short-circuit normal flow. - var startupMode = StartupMode.Parse(e.Args); - bool effectiveStartMinimized = false; - ApplicationSettingsModel? loadedSettings = null; - - effectiveStartMinimized = startupMode.StartMinimized; - - if (startupMode.IsSmokeTest) - { - var smokeLogger = this.ServiceProvider.GetRequiredService>(); - var smokeTestResult = this.RunSmokeTestWithTimeout(smokeLogger, TimeSpan.FromSeconds(10)); - Environment.ExitCode = smokeTestResult; - this.Shutdown(smokeTestResult); - Environment.Exit(smokeTestResult); - return; - } - - // Set up global exception handlers first - AppDomain.CurrentDomain.UnhandledException += this.OnUnhandledException; - this.DispatcherUnhandledException += this.OnDispatcherUnhandledException; - TaskScheduler.UnobservedTaskException += this.OnUnobservedTaskException; - - // Check elevation status first - var elevationService = this.ServiceProvider.GetRequiredService(); - var elevatedTaskService = this.ServiceProvider.GetRequiredService(); - var logger = this.ServiceProvider.GetRequiredService>(); - var isRunningAsAdministrator = elevationService.IsRunningAsAdministrator(); - - if (isRunningAsAdministrator) - { - logger.LogInformation("Application is running with administrator privileges"); - - var launchTaskEnsured = Task.Run(async () => await elevatedTaskService.EnsureLaunchTaskAsync()).GetAwaiter().GetResult(); - if (!launchTaskEnsured) - { - logger.LogWarning("Failed to ensure managed elevated launch task during startup. Future launches may require one-time elevation again."); - } - } - else - { - if (startupMode.LaunchedViaTask) - { - logger.LogError("Application was launched via managed task marker but is still not elevated."); - } -#if DEBUG - else if (!startupMode.IsTestMode) -#else - else -#endif - { - var launchedElevatedInstance = Task.Run(async () => await elevatedTaskService.TryRunLaunchTaskAsync()).GetAwaiter().GetResult(); - if (launchedElevatedInstance) - { - logger.LogInformation("Managed elevated launch task started successfully. Exiting current non-elevated instance."); - this.Shutdown(); - return; - } - - if (!startupMode.RegisterLaunchTask) - { - logger.LogInformation("Managed elevated launch task is unavailable. Requesting one-time elevation to bootstrap persistent launch."); - var restartInitiated = Task.Run(async () => await elevationService.RestartWithElevation(new[] { RegisterLaunchTaskArgument })).GetAwaiter().GetResult(); - if (restartInitiated) - { - return; - } - } - } - -#if DEBUG - if (!startupMode.IsTestMode) -#else - if (true) -#endif - { - logger.LogError("ThreadPilot requires administrator privileges and cannot continue without elevation."); - this.ShowElevationRequiredMessage(); - this.Shutdown(1); - return; - } - } - - // Enforce single-instance after elevation bootstrap logic to avoid mutex races during handoff. - bool createdNew; - this.singleInstanceMutex = new Mutex(initiallyOwned: true, name: "Global\\ThreadPilot_SingleInstance", createdNew: out createdNew); - if (!createdNew) - { - System.Windows.MessageBox.Show( - "ThreadPilot is already running.", - "Instance already open", - MessageBoxButton.OK, - MessageBoxImage.Information); - - this.Shutdown(); - return; - } - - base.OnStartup(e); - - // Check for test mode -#if DEBUG - if (startupMode.IsTestMode) - { - // Run in console test mode - AllocConsole(); - _ = Task.Run(async () => - { - await TestRunner.RunTests(); - this.Dispatcher.Invoke(() => this.Shutdown()); - }); - return; - } -#endif - - try - { - var settingsService = this.ServiceProvider.GetRequiredService(); - var themeService = this.ServiceProvider.GetRequiredService(); - var localizationService = this.ServiceProvider.GetRequiredService(); - - Task.Run(async () => await settingsService.LoadSettingsAsync()).GetAwaiter().GetResult(); - var settings = settingsService.Settings; - loadedSettings = settings; - localizationService.ApplyLanguage(settings.Language); - effectiveStartMinimized = startupMode.StartMinimized || settings.StartMinimized; - var useDarkTheme = settings.HasUserThemePreference - ? settings.UseDarkTheme - : themeService.GetSystemUsesDarkTheme(); - - if (!settings.HasUserThemePreference && settings.UseDarkTheme != useDarkTheme) - { - settings.UseDarkTheme = useDarkTheme; - Task.Run(async () => await settingsService.UpdateSettingsAsync(settings)).GetAwaiter().GetResult(); - } - - themeService.ApplyTheme(useDarkTheme); - } - catch (Exception ex) - { - logger.LogWarning(ex, "Failed to preload theme settings during startup"); - } - - var mainWindow = this.ServiceProvider.GetRequiredService(); - this.MainWindow = mainWindow; - - // Handle startup behavior with comprehensive error handling - try - { - logger.LogInformation("Attempting to show main window..."); - - // Ensure the window is properly initialized - if (mainWindow == null) - { - throw new InvalidOperationException("MainWindow could not be created"); - } - - var startupWindowBehavior = StartupWindowBehavior.Resolve(startupMode.IsAutostart, effectiveStartMinimized); - var showStartupSuggestion = loadedSettings != null - && StartupMinimizedSuggestionPolicy.ShouldShow(loadedSettings, startupWindowBehavior); - mainWindow.ConfigureStartupMode( - isSilentStartupMode: !startupWindowBehavior.ShouldShowWindow, - showStartupMinimizedSuggestionOnReady: showStartupSuggestion); - - mainWindow.ShowInTaskbar = startupWindowBehavior.ShowInTaskbar; - mainWindow.Visibility = startupWindowBehavior.Visibility; - mainWindow.WindowState = startupWindowBehavior.WindowState; - - if (startupWindowBehavior.ShouldShowWindow) - { - mainWindow.Show(); - - if (startupWindowBehavior.HideAfterShow) - { - mainWindow.Hide(); - } - else if (startupWindowBehavior.ActivateAfterShow) - { - mainWindow.EnsureDashboardVisibleOnScreen(); - mainWindow.Activate(); - } - } - - logger.LogInformation("Startup window behavior applied successfully"); - } - catch (Exception ex) - { - logger.LogError(ex, "Critical error during application startup"); - - // Show error message and exit gracefully - var errorMessage = $"ThreadPilot failed to start:\n\n{ex.Message}\n\nStack Trace:\n{ex.StackTrace}"; - System.Windows.MessageBox.Show(errorMessage, "ThreadPilot Startup Error", - MessageBoxButton.OK, MessageBoxImage.Error); - - // Exit the application - this.Shutdown(1); - return; - } - } - - private int RunSmokeTestWithTimeout(ILogger logger, TimeSpan timeout) - { - var smokeTestTask = Task.Run(() => this.RunSmokeTest(logger)); - if (smokeTestTask.Wait(timeout)) - { - return smokeTestTask.GetAwaiter().GetResult(); - } - - logger.LogError("ThreadPilot smoke test timed out after {TimeoutSeconds} seconds", timeout.TotalSeconds); - return 2; - } - - private int RunSmokeTest(ILogger logger) - { - try - { - logger.LogInformation("Starting ThreadPilot smoke test"); - - _ = this.ServiceProvider.GetRequiredService(); - _ = this.ServiceProvider.GetRequiredService(); - _ = this.ServiceProvider.GetRequiredService(); - _ = this.ServiceProvider.GetRequiredService(); - - if (!System.IO.Directory.Exists(AppContext.BaseDirectory)) - { - throw new InvalidOperationException("Application base directory was not found."); - } - - logger.LogInformation("ThreadPilot smoke test completed successfully"); - return 0; - } - catch (Exception ex) - { - logger.LogError(ex, "ThreadPilot smoke test failed"); - return 1; - } - } - - private readonly struct StartupMode - { - public bool StartMinimized { get; init; } - - public bool IsAutostart { get; init; } - - public bool IsSmokeTest { get; init; } - - public bool RegisterLaunchTask { get; init; } - - public bool LaunchedViaTask { get; init; } - - public bool IsTestMode { get; init; } - - public static StartupMode Parse(IEnumerable args) - { - var mode = default(StartupMode); - foreach (var arg in args) - { - switch (arg.ToLowerInvariant()) - { - case "--test": - mode = mode with { IsTestMode = true }; - break; - case "--smoke-test": - mode = mode with { IsSmokeTest = true }; - break; - case "--start-minimized": - mode = mode with { StartMinimized = true }; - break; - case "--autostart": - mode = mode with { IsAutostart = true }; - break; - case "--startup": - mode = mode with { IsAutostart = true, StartMinimized = true }; - break; - case RegisterLaunchTaskArgument: - mode = mode with { RegisterLaunchTask = true }; - break; - case LaunchedViaTaskArgument: - mode = mode with { LaunchedViaTask = true }; - break; - } - } - - return mode; - } - } - - protected override void OnExit(ExitEventArgs e) - { - AppDomain.CurrentDomain.UnhandledException -= this.OnUnhandledException; - this.DispatcherUnhandledException -= this.OnDispatcherUnhandledException; - TaskScheduler.UnobservedTaskException -= this.OnUnobservedTaskException; - - if (this.singleInstanceMutex != null) - { - try - { - this.singleInstanceMutex.ReleaseMutex(); - } - catch - { - // Ignore; we just want to clean up quietly - } - this.singleInstanceMutex.Dispose(); - this.singleInstanceMutex = null; - } - - base.OnExit(e); - } - -#if DEBUG - [System.Runtime.InteropServices.DllImport("kernel32.dll")] - private static extern bool AllocConsole(); -#endif - - /// - /// Shows a message to the user about elevation requirements. - /// - private void ShowElevationRequiredMessage() - { - // Don't show the message during autostart to avoid interrupting the user - var args = Environment.GetCommandLineArgs(); - if (args.Any(arg => arg.Equals("--autostart", StringComparison.OrdinalIgnoreCase) || - arg.Equals("--startup", StringComparison.OrdinalIgnoreCase))) - { - return; - } - - System.Windows.MessageBox.Show( - "ThreadPilot requires administrator privileges to start.\n\n" + - "Please relaunch the application and approve the UAC prompt.\n\n" + - "This instance will now close.", - "Administrator Privileges Required", - MessageBoxButton.OK, - MessageBoxImage.Warning); - } - - /// - /// Handles unhandled exceptions in the application domain. - /// - private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) - { - var exception = e.ExceptionObject as Exception ?? new InvalidOperationException("Unhandled non-Exception object was raised."); - this.ReportUnhandledException(exception, "AppDomain.CurrentDomain.UnhandledException", LogLevel.Critical); - - var errorMessage = $"A critical error occurred:\n\n{exception?.Message}\n\nThe application will now exit."; - System.Windows.MessageBox.Show(errorMessage, "Critical Error", - MessageBoxButton.OK, MessageBoxImage.Error); - } - - /// - /// Handles unhandled exceptions on the UI thread. - /// - private void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) - { - this.ReportUnhandledException(e.Exception, "Application.DispatcherUnhandledException", LogLevel.Error); - - if (Interlocked.CompareExchange(ref this.uiExceptionDialogOpen, 1, 0) != 0) - { - e.Handled = true; - return; - } - - if (DateTime.UtcNow - this.lastUiExceptionDialogUtc < TimeSpan.FromSeconds(2)) - { - e.Handled = true; - Interlocked.Exchange(ref this.uiExceptionDialogOpen, 0); - return; - } - - this.lastUiExceptionDialogUtc = DateTime.UtcNow; - - var errorMessage = $"An error occurred in the user interface:\n\n{e.Exception.Message}\n\nDo you want to continue?"; - var result = System.Windows.MessageBox.Show(errorMessage, "UI Error", - MessageBoxButton.YesNo, MessageBoxImage.Error); - - if (result == MessageBoxResult.Yes) - { - e.Handled = true; // Continue running - } - else - { - e.Handled = false; // Let the application crash - } - - Interlocked.Exchange(ref this.uiExceptionDialogOpen, 0); - } - - /// - /// Handles unobserved task exceptions from fire-and-forget tasks that escaped local handlers. - /// - private void OnUnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e) - { - var exception = e.Exception.Flatten(); - this.ReportUnhandledException(exception, "TaskScheduler.UnobservedTaskException", LogLevel.Error); - e.SetObserved(); - } - - private void ReportUnhandledException(Exception exception, string source, LogLevel level) - { - var logger = this.ServiceProvider?.GetService>(); - if (level == LogLevel.Critical) - { - logger?.LogCritical(exception, "Unhandled exception in {Source}", source); - } - else - { - logger?.LogError(exception, "Unhandled exception in {Source}", source); - } - - var enhancedLogger = this.ServiceProvider?.GetService(); - if (enhancedLogger == null) - { - return; - } - - var errorCode = exception is ThreadPilotException typedException - ? typedException.ErrorCode.ToString() - : ErrorCode.Unhandled.ToString(); - - var context = new Dictionary - { - ["Source"] = source, - [LogProperties.ErrorCode] = errorCode, - [LogProperties.CorrelationId] = enhancedLogger.GetCurrentCorrelationId() ?? "N/A", - ["IsTerminatingLevel"] = level == LogLevel.Critical, - }; - - TaskSafety.FireAndForget( - enhancedLogger.LogErrorAsync(exception, source, context), - logFailure => logger?.LogWarning(logFailure, "Failed to persist unhandled exception report")); - } - } -} +#if DEBUG +using ThreadPilot.Tests; +#endif +using ThreadPilot.Services; +using ThreadPilot.ViewModels; + +namespace ThreadPilot +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using System.Windows; + using System.Windows.Threading; + using Microsoft.Extensions.DependencyInjection; + using Microsoft.Extensions.Logging; + using ThreadPilot.Helpers; + using ThreadPilot.Models; + + public partial class App : System.Windows.Application + { + private const string RegisterLaunchTaskArgument = "--register-launch-task"; + private const string LaunchedViaTaskArgument = "--launched-via-task"; + + private Mutex? singleInstanceMutex; + private int uiExceptionDialogOpen; + private DateTime lastUiExceptionDialogUtc = DateTime.MinValue; + + public IServiceProvider ServiceProvider { get; private set; } + + public App() + { + ServiceCollection services = new ServiceCollection(); + + // Use the new centralized service configuration + services.ConfigureApplicationServices(); + + this.ServiceProvider = services.BuildServiceProvider(); + + // Validate service configuration + ServiceConfiguration.ValidateServiceConfiguration(this.ServiceProvider); + } + + + + protected override void OnStartup(StartupEventArgs e) + { + // Parse command line arguments early so special startup modes can short-circuit normal flow. + var startupMode = StartupMode.Parse(e.Args); + bool effectiveStartMinimized = false; + ApplicationSettingsModel? loadedSettings = null; + + effectiveStartMinimized = startupMode.StartMinimized; + + if (startupMode.IsSmokeTest) + { + var smokeLogger = this.ServiceProvider.GetRequiredService>(); + var smokeTestResult = this.RunSmokeTestWithTimeout(smokeLogger, TimeSpan.FromSeconds(10)); + Environment.ExitCode = smokeTestResult; + this.Shutdown(smokeTestResult); + Environment.Exit(smokeTestResult); + return; + } + + // Set up global exception handlers first + AppDomain.CurrentDomain.UnhandledException += this.OnUnhandledException; + this.DispatcherUnhandledException += this.OnDispatcherUnhandledException; + TaskScheduler.UnobservedTaskException += this.OnUnobservedTaskException; + + // Check elevation status first + var elevationService = this.ServiceProvider.GetRequiredService(); + var elevatedTaskService = this.ServiceProvider.GetRequiredService(); + var logger = this.ServiceProvider.GetRequiredService>(); + var isRunningAsAdministrator = elevationService.IsRunningAsAdministrator(); + + if (isRunningAsAdministrator) + { + logger.LogInformation("Application is running with administrator privileges"); + + var launchTaskEnsured = Task.Run(async () => await elevatedTaskService.EnsureLaunchTaskAsync()).GetAwaiter().GetResult(); + if (!launchTaskEnsured) + { + logger.LogWarning("Failed to ensure managed elevated launch task during startup. Future launches may require one-time elevation again."); + } + } + else + { + if (startupMode.LaunchedViaTask) + { + logger.LogError("Application was launched via managed task marker but is still not elevated."); + } +#if DEBUG + else if (!startupMode.IsTestMode) +#else + else +#endif + { + var launchedElevatedInstance = Task.Run(async () => await elevatedTaskService.TryRunLaunchTaskAsync()).GetAwaiter().GetResult(); + if (launchedElevatedInstance) + { + logger.LogInformation("Managed elevated launch task started successfully. Exiting current non-elevated instance."); + this.Shutdown(); + return; + } + + if (!startupMode.RegisterLaunchTask) + { + logger.LogInformation("Managed elevated launch task is unavailable. Requesting one-time elevation to bootstrap persistent launch."); + var restartInitiated = Task.Run(async () => await elevationService.RestartWithElevation(new[] { RegisterLaunchTaskArgument })).GetAwaiter().GetResult(); + if (restartInitiated) + { + return; + } + } + } + +#if DEBUG + if (!startupMode.IsTestMode) +#else + if (true) +#endif + { + logger.LogError("ThreadPilot requires administrator privileges and cannot continue without elevation."); + this.ShowElevationRequiredMessage(); + this.Shutdown(1); + return; + } + } + + // Enforce single-instance after elevation bootstrap logic to avoid mutex races during handoff. + bool createdNew; + this.singleInstanceMutex = new Mutex(initiallyOwned: true, name: "Global\\ThreadPilot_SingleInstance", createdNew: out createdNew); + if (!createdNew) + { + System.Windows.MessageBox.Show( + "ThreadPilot is already running.", + "Instance already open", + MessageBoxButton.OK, + MessageBoxImage.Information); + + this.Shutdown(); + return; + } + + base.OnStartup(e); + + // Check for test mode +#if DEBUG + if (startupMode.IsTestMode) + { + // Run in console test mode + AllocConsole(); + _ = Task.Run(async () => + { + await TestRunner.RunTests(); + this.Dispatcher.Invoke(() => this.Shutdown()); + }); + return; + } +#endif + + try + { + var settingsService = this.ServiceProvider.GetRequiredService(); + var themeService = this.ServiceProvider.GetRequiredService(); + var localizationService = this.ServiceProvider.GetRequiredService(); + + Task.Run(async () => await settingsService.LoadSettingsAsync()).GetAwaiter().GetResult(); + var settings = settingsService.Settings; + loadedSettings = settings; + localizationService.ApplyLanguage(settings.Language); + effectiveStartMinimized = startupMode.StartMinimized || settings.StartMinimized; + var useDarkTheme = settings.HasUserThemePreference + ? settings.UseDarkTheme + : themeService.GetSystemUsesDarkTheme(); + + if (!settings.HasUserThemePreference && settings.UseDarkTheme != useDarkTheme) + { + settings.UseDarkTheme = useDarkTheme; + Task.Run(async () => await settingsService.UpdateSettingsAsync(settings)).GetAwaiter().GetResult(); + } + + themeService.ApplyTheme(useDarkTheme); + } + catch (Exception ex) + { + logger.LogWarning(ex, "Failed to preload theme settings during startup"); + } + + var mainWindow = this.ServiceProvider.GetRequiredService(); + this.MainWindow = mainWindow; + + // Handle startup behavior with comprehensive error handling + try + { + logger.LogInformation("Attempting to show main window..."); + + // Ensure the window is properly initialized + if (mainWindow == null) + { + throw new InvalidOperationException("MainWindow could not be created"); + } + + var startupWindowBehavior = StartupWindowBehavior.Resolve(startupMode.IsAutostart, effectiveStartMinimized); + var showStartupSuggestion = loadedSettings != null + && StartupMinimizedSuggestionPolicy.ShouldShow(loadedSettings, startupWindowBehavior); + mainWindow.ConfigureStartupMode( + isSilentStartupMode: !startupWindowBehavior.ShouldShowWindow, + showStartupMinimizedSuggestionOnReady: showStartupSuggestion); + + mainWindow.ShowInTaskbar = startupWindowBehavior.ShowInTaskbar; + mainWindow.Visibility = startupWindowBehavior.Visibility; + mainWindow.WindowState = startupWindowBehavior.WindowState; + + if (startupWindowBehavior.ShouldShowWindow) + { + mainWindow.Show(); + + if (startupWindowBehavior.HideAfterShow) + { + mainWindow.Hide(); + } + else if (startupWindowBehavior.ActivateAfterShow) + { + mainWindow.EnsureDashboardVisibleOnScreen(); + mainWindow.Activate(); + } + } + + logger.LogInformation("Startup window behavior applied successfully"); + } + catch (Exception ex) + { + logger.LogError(ex, "Critical error during application startup"); + + // Show error message and exit gracefully + var errorMessage = $"ThreadPilot failed to start:\n\n{ex.Message}\n\nStack Trace:\n{ex.StackTrace}"; + System.Windows.MessageBox.Show(errorMessage, "ThreadPilot Startup Error", + MessageBoxButton.OK, MessageBoxImage.Error); + + // Exit the application + this.Shutdown(1); + return; + } + } + + private int RunSmokeTestWithTimeout(ILogger logger, TimeSpan timeout) + { + var smokeTestTask = Task.Run(() => this.RunSmokeTest(logger)); + if (smokeTestTask.Wait(timeout)) + { + return smokeTestTask.GetAwaiter().GetResult(); + } + + logger.LogError("ThreadPilot smoke test timed out after {TimeoutSeconds} seconds", timeout.TotalSeconds); + return 2; + } + + private int RunSmokeTest(ILogger logger) + { + try + { + logger.LogInformation("Starting ThreadPilot smoke test"); + + _ = this.ServiceProvider.GetRequiredService(); + _ = this.ServiceProvider.GetRequiredService(); + _ = this.ServiceProvider.GetRequiredService(); + _ = this.ServiceProvider.GetRequiredService(); + + if (!System.IO.Directory.Exists(AppContext.BaseDirectory)) + { + throw new InvalidOperationException("Application base directory was not found."); + } + + logger.LogInformation("ThreadPilot smoke test completed successfully"); + return 0; + } + catch (Exception ex) + { + logger.LogError(ex, "ThreadPilot smoke test failed"); + return 1; + } + } + + private readonly struct StartupMode + { + public bool StartMinimized { get; init; } + + public bool IsAutostart { get; init; } + + public bool IsSmokeTest { get; init; } + + public bool RegisterLaunchTask { get; init; } + + public bool LaunchedViaTask { get; init; } + + public bool IsTestMode { get; init; } + + public static StartupMode Parse(IEnumerable args) + { + var mode = default(StartupMode); + foreach (var arg in args) + { + switch (arg.ToLowerInvariant()) + { + case "--test": + mode = mode with { IsTestMode = true }; + break; + case "--smoke-test": + mode = mode with { IsSmokeTest = true }; + break; + case "--start-minimized": + mode = mode with { StartMinimized = true }; + break; + case "--autostart": + mode = mode with { IsAutostart = true }; + break; + case "--startup": + mode = mode with { IsAutostart = true, StartMinimized = true }; + break; + case RegisterLaunchTaskArgument: + mode = mode with { RegisterLaunchTask = true }; + break; + case LaunchedViaTaskArgument: + mode = mode with { LaunchedViaTask = true }; + break; + } + } + + return mode; + } + } + + protected override void OnExit(ExitEventArgs e) + { + AppDomain.CurrentDomain.UnhandledException -= this.OnUnhandledException; + this.DispatcherUnhandledException -= this.OnDispatcherUnhandledException; + TaskScheduler.UnobservedTaskException -= this.OnUnobservedTaskException; + + if (this.singleInstanceMutex != null) + { + try + { + this.singleInstanceMutex.ReleaseMutex(); + } + catch + { + // Ignore; we just want to clean up quietly + } + this.singleInstanceMutex.Dispose(); + this.singleInstanceMutex = null; + } + + base.OnExit(e); + } + +#if DEBUG + [System.Runtime.InteropServices.DllImport("kernel32.dll")] + private static extern bool AllocConsole(); +#endif + + private void ShowElevationRequiredMessage() + { + // Don't show the message during autostart to avoid interrupting the user + var args = Environment.GetCommandLineArgs(); + if (args.Any(arg => arg.Equals("--autostart", StringComparison.OrdinalIgnoreCase) || + arg.Equals("--startup", StringComparison.OrdinalIgnoreCase))) + { + return; + } + + System.Windows.MessageBox.Show( + "ThreadPilot requires administrator privileges to start.\n\n" + + "Please relaunch the application and approve the UAC prompt.\n\n" + + "This instance will now close.", + "Administrator Privileges Required", + MessageBoxButton.OK, + MessageBoxImage.Warning); + } + + private void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) + { + var exception = e.ExceptionObject as Exception ?? new InvalidOperationException("Unhandled non-Exception object was raised."); + this.ReportUnhandledException(exception, "AppDomain.CurrentDomain.UnhandledException", LogLevel.Critical); + + var errorMessage = $"A critical error occurred:\n\n{exception?.Message}\n\nThe application will now exit."; + System.Windows.MessageBox.Show(errorMessage, "Critical Error", + MessageBoxButton.OK, MessageBoxImage.Error); + } + + private void OnDispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) + { + this.ReportUnhandledException(e.Exception, "Application.DispatcherUnhandledException", LogLevel.Error); + + if (Interlocked.CompareExchange(ref this.uiExceptionDialogOpen, 1, 0) != 0) + { + e.Handled = true; + return; + } + + if (DateTime.UtcNow - this.lastUiExceptionDialogUtc < TimeSpan.FromSeconds(2)) + { + e.Handled = true; + Interlocked.Exchange(ref this.uiExceptionDialogOpen, 0); + return; + } + + this.lastUiExceptionDialogUtc = DateTime.UtcNow; + + var errorMessage = $"An error occurred in the user interface:\n\n{e.Exception.Message}\n\nDo you want to continue?"; + var result = System.Windows.MessageBox.Show(errorMessage, "UI Error", + MessageBoxButton.YesNo, MessageBoxImage.Error); + + if (result == MessageBoxResult.Yes) + { + e.Handled = true; // Continue running + } + else + { + e.Handled = false; // Let the application crash + } + + Interlocked.Exchange(ref this.uiExceptionDialogOpen, 0); + } + + private void OnUnobservedTaskException(object? sender, UnobservedTaskExceptionEventArgs e) + { + var exception = e.Exception.Flatten(); + this.ReportUnhandledException(exception, "TaskScheduler.UnobservedTaskException", LogLevel.Error); + e.SetObserved(); + } + + private void ReportUnhandledException(Exception exception, string source, LogLevel level) + { + var logger = this.ServiceProvider?.GetService>(); + if (level == LogLevel.Critical) + { + logger?.LogCritical(exception, "Unhandled exception in {Source}", source); + } + else + { + logger?.LogError(exception, "Unhandled exception in {Source}", source); + } + + var enhancedLogger = this.ServiceProvider?.GetService(); + if (enhancedLogger == null) + { + return; + } + + var errorCode = exception is ThreadPilotException typedException + ? typedException.ErrorCode.ToString() + : ErrorCode.Unhandled.ToString(); + + var context = new Dictionary + { + ["Source"] = source, + [LogProperties.ErrorCode] = errorCode, + [LogProperties.CorrelationId] = enhancedLogger.GetCurrentCorrelationId() ?? "N/A", + ["IsTerminatingLevel"] = level == LogLevel.Critical, + }; + + TaskSafety.FireAndForget( + enhancedLogger.LogErrorAsync(exception, source, context), + logFailure => logger?.LogWarning(logFailure, "Failed to persist unhandled exception report")); + } + } +} diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs index 8a7b86f..f5ca8da 100644 --- a/AssemblyInfo.cs +++ b/AssemblyInfo.cs @@ -1,30 +1,14 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System.Runtime.CompilerServices; -using System.Windows; - -[assembly: InternalsVisibleTo("ThreadPilot.Core.Tests")] - -[assembly: ThemeInfo( - ResourceDictionaryLocation.None, // where theme specific resource dictionaries are located - // (used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly) // where the generic resource dictionary is located - // (used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -] - +using System.Runtime.CompilerServices; +using System.Windows; + +[assembly: InternalsVisibleTo("ThreadPilot.Core.Tests")] + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, // where theme specific resource dictionaries are located + // (used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly) // where the generic resource dictionary is located + // (used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +] + diff --git a/Converters/BoolToColorConverter.cs b/Converters/BoolToColorConverter.cs index 3c64eb3..4538402 100644 --- a/Converters/BoolToColorConverter.cs +++ b/Converters/BoolToColorConverter.cs @@ -1,57 +1,41 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot -{ - using System; - using System.Globalization; - using System.Windows; - using System.Windows.Data; - using System.Windows.Media; - - public class BoolToColorConverter : IValueConverter - { - public static readonly BoolToColorConverter Instance = new(); - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue) - { - return boolValue - ? ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black) - : ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); - } - - return ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - - private static System.Windows.Media.Brush ResolveBrush(string key, System.Windows.Media.Brush fallback) - { - if (System.Windows.Application.Current?.TryFindResource(key) is System.Windows.Media.Brush brush) - { - return brush; - } - - return fallback; - } - } -} - +namespace ThreadPilot +{ + using System; + using System.Globalization; + using System.Windows; + using System.Windows.Data; + using System.Windows.Media; + + public class BoolToColorConverter : IValueConverter + { + public static readonly BoolToColorConverter Instance = new(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool boolValue) + { + return boolValue + ? ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black) + : ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); + } + + return ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + private static System.Windows.Media.Brush ResolveBrush(string key, System.Windows.Media.Brush fallback) + { + if (System.Windows.Application.Current?.TryFindResource(key) is System.Windows.Media.Brush brush) + { + return brush; + } + + return fallback; + } + } +} + diff --git a/Converters/BoolToFontWeightConverter.cs b/Converters/BoolToFontWeightConverter.cs index 70fda90..9d51a88 100644 --- a/Converters/BoolToFontWeightConverter.cs +++ b/Converters/BoolToFontWeightConverter.cs @@ -1,43 +1,27 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot -{ - using System; - using System.Globalization; - using System.Windows; - using System.Windows.Data; - - public class BoolToFontWeightConverter : IValueConverter - { - public static readonly BoolToFontWeightConverter Instance = new(); - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue && boolValue) - { - return FontWeights.Bold; - } - return FontWeights.Normal; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} - +namespace ThreadPilot +{ + using System; + using System.Globalization; + using System.Windows; + using System.Windows.Data; + + public class BoolToFontWeightConverter : IValueConverter + { + public static readonly BoolToFontWeightConverter Instance = new(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool boolValue && boolValue) + { + return FontWeights.Bold; + } + return FontWeights.Normal; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} + diff --git a/Converters/BoolToStringConverter.cs b/Converters/BoolToStringConverter.cs index 50f5350..36d41eb 100644 --- a/Converters/BoolToStringConverter.cs +++ b/Converters/BoolToStringConverter.cs @@ -1,48 +1,29 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Converters -{ - using System; - using System.Globalization; - using System.Windows.Data; - - /// - /// Converts boolean values to strings based on parameter format. - /// - public class BoolToStringConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue && parameter is string paramString) - { - var parts = paramString.Split('|'); - if (parts.Length == 2) - { - return boolValue ? parts[0] : parts[1]; - } - } - - return value?.ToString() ?? string.Empty; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} - +namespace ThreadPilot.Converters +{ + using System; + using System.Globalization; + using System.Windows.Data; + + public class BoolToStringConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool boolValue && parameter is string paramString) + { + var parts = paramString.Split('|'); + if (parts.Length == 2) + { + return boolValue ? parts[0] : parts[1]; + } + } + + return value?.ToString() ?? string.Empty; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} + diff --git a/Converters/BoolToVisibilityConverter.cs b/Converters/BoolToVisibilityConverter.cs index a2c7a4b..c5effd1 100644 --- a/Converters/BoolToVisibilityConverter.cs +++ b/Converters/BoolToVisibilityConverter.cs @@ -1,47 +1,31 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot -{ - using System; - using System.Globalization; - using System.Windows; - using System.Windows.Data; - - public class BoolToVisibilityConverter : IValueConverter - { - public static readonly BoolToVisibilityConverter Instance = new(); - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue && boolValue) - { - return Visibility.Visible; - } - return Visibility.Collapsed; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is Visibility visibility) - { - return visibility == Visibility.Visible; - } - return false; - } - } -} - +namespace ThreadPilot +{ + using System; + using System.Globalization; + using System.Windows; + using System.Windows.Data; + + public class BoolToVisibilityConverter : IValueConverter + { + public static readonly BoolToVisibilityConverter Instance = new(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool boolValue && boolValue) + { + return Visibility.Visible; + } + return Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is Visibility visibility) + { + return visibility == Visibility.Visible; + } + return false; + } + } +} + diff --git a/Converters/BytesToStringConverter.cs b/Converters/BytesToStringConverter.cs index 0fe952f..f7e8f9b 100644 --- a/Converters/BytesToStringConverter.cs +++ b/Converters/BytesToStringConverter.cs @@ -1,64 +1,45 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Converters -{ - using System; - using System.Globalization; - using System.Windows.Data; - - /// - /// Converts byte values to human-readable string format. - /// - public class BytesToStringConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is long bytes) - { - return FormatBytes(bytes); - } - - if (value is int intBytes) - { - return FormatBytes(intBytes); - } - - return "0 B"; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - - private static string FormatBytes(long bytes) - { - string[] suffixes = { "B", "KB", "MB", "GB", "TB" }; - int counter = 0; - decimal number = bytes; - - while (Math.Round(number / 1024) >= 1) - { - number /= 1024; - counter++; - } - - return $"{number:n1} {suffixes[counter]}"; - } - } -} - +namespace ThreadPilot.Converters +{ + using System; + using System.Globalization; + using System.Windows.Data; + + public class BytesToStringConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is long bytes) + { + return FormatBytes(bytes); + } + + if (value is int intBytes) + { + return FormatBytes(intBytes); + } + + return "0 B"; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + private static string FormatBytes(long bytes) + { + string[] suffixes = { "B", "KB", "MB", "GB", "TB" }; + int counter = 0; + decimal number = bytes; + + while (Math.Round(number / 1024) >= 1) + { + number /= 1024; + counter++; + } + + return $"{number:n1} {suffixes[counter]}"; + } + } +} + diff --git a/Converters/CpuTopologyConverters.cs b/Converters/CpuTopologyConverters.cs index 0cd88af..3ea0821 100644 --- a/Converters/CpuTopologyConverters.cs +++ b/Converters/CpuTopologyConverters.cs @@ -1,212 +1,178 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Converters -{ - using System; - using System.Globalization; - using System.Windows; - using System.Windows.Data; - using System.Windows.Media; - using ThreadPilot.Models; - - /// - /// Converter for CPU core type to color. - /// - public class CoreTypeToColorConverter : IMultiValueConverter - { - public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) - { - if (values.Length < 2) - { - return ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black); - } - - var coreType = values[0] as CpuCoreType? ?? CpuCoreType.Unknown; - var isHyperThreaded = values[1] as bool? ?? false; - - return coreType switch - { - CpuCoreType.PerformanceCore => isHyperThreaded - ? ResolveBrush("SystemAccentColorSecondaryBrush", System.Windows.Media.Brushes.DodgerBlue) - : ResolveBrush("SystemAccentColorPrimaryBrush", System.Windows.Media.Brushes.Blue), - CpuCoreType.EfficiencyCore => isHyperThreaded - ? ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.DarkGray) - : ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black), - CpuCoreType.Zen or CpuCoreType.ZenPlus or CpuCoreType.Zen2 or CpuCoreType.Zen3 or CpuCoreType.Zen4 => - isHyperThreaded - ? ResolveBrush("SystemAccentColorSecondaryBrush", System.Windows.Media.Brushes.DarkOrange) - : ResolveBrush("SystemAccentColorPrimaryBrush", System.Windows.Media.Brushes.Orange), - _ => ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray), - }; - } - - public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - - private static System.Windows.Media.Brush ResolveBrush(string key, System.Windows.Media.Brush fallback) - { - if (System.Windows.Application.Current?.TryFindResource(key) is System.Windows.Media.Brush brush) - { - return brush; - } - - return fallback; - } - } - - /// - /// Converter for boolean to color (success/failure indication). - /// - public class BoolToColorConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool success) - { - return success - ? ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black) - : ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); - } - return ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - - private static System.Windows.Media.Brush ResolveBrush(string key, System.Windows.Media.Brush fallback) - { - if (System.Windows.Application.Current?.TryFindResource(key) is System.Windows.Media.Brush brush) - { - return brush; - } - - return fallback; - } - } - - /// - /// Converter for boolean to visibility. - /// - public class BoolToVisibilityConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool visible) - { - return visible ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; - } - return System.Windows.Visibility.Collapsed; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } - - /// - /// Converter for affinity mask to readable string. - /// - public class AffinityMaskConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is long mask) - { - if (mask == 0) - { - return "None"; - } - - var cores = new System.Collections.Generic.List(); - for (int i = 0; i < 64; i++) - { - if ((mask & (1L << i)) != 0) - { - cores.Add(i); - } - } - - if (cores.Count == 0) - { - return "None"; - } - - if (cores.Count == 1) - { - return $"Core {cores[0]}"; - } - - if (cores.Count <= 4) - { - return $"Cores {string.Join(", ", cores)}"; - } - - return $"Cores {cores[0]}-{cores[cores.Count - 1]} ({cores.Count} cores)"; - } - return "Unknown"; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } - - /// - /// Converter for bytes to megabytes. - /// - public class BytesToMbConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is long bytes) - { - return (bytes / (1024.0 * 1024.0)).ToString("F1"); - } - return "0.0"; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } - - /// - /// Converter for string to visibility (empty/null = collapsed). - /// - public class StringToVisibilityConverter : IValueConverter - { - public static readonly StringToVisibilityConverter Instance = new(); - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return string.IsNullOrEmpty(value as string) ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} - +namespace ThreadPilot.Converters +{ + using System; + using System.Globalization; + using System.Windows; + using System.Windows.Data; + using System.Windows.Media; + using ThreadPilot.Models; + + public class CoreTypeToColorConverter : IMultiValueConverter + { + public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) + { + if (values.Length < 2) + { + return ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black); + } + + var coreType = values[0] as CpuCoreType? ?? CpuCoreType.Unknown; + var isHyperThreaded = values[1] as bool? ?? false; + + return coreType switch + { + CpuCoreType.PerformanceCore => isHyperThreaded + ? ResolveBrush("SystemAccentColorSecondaryBrush", System.Windows.Media.Brushes.DodgerBlue) + : ResolveBrush("SystemAccentColorPrimaryBrush", System.Windows.Media.Brushes.Blue), + CpuCoreType.EfficiencyCore => isHyperThreaded + ? ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.DarkGray) + : ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black), + CpuCoreType.Zen or CpuCoreType.ZenPlus or CpuCoreType.Zen2 or CpuCoreType.Zen3 or CpuCoreType.Zen4 => + isHyperThreaded + ? ResolveBrush("SystemAccentColorSecondaryBrush", System.Windows.Media.Brushes.DarkOrange) + : ResolveBrush("SystemAccentColorPrimaryBrush", System.Windows.Media.Brushes.Orange), + _ => ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray), + }; + } + + public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + private static System.Windows.Media.Brush ResolveBrush(string key, System.Windows.Media.Brush fallback) + { + if (System.Windows.Application.Current?.TryFindResource(key) is System.Windows.Media.Brush brush) + { + return brush; + } + + return fallback; + } + } + + public class BoolToColorConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool success) + { + return success + ? ResolveBrush("TextFillColorPrimaryBrush", System.Windows.Media.Brushes.Black) + : ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); + } + return ResolveBrush("TextFillColorSecondaryBrush", System.Windows.Media.Brushes.Gray); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + + private static System.Windows.Media.Brush ResolveBrush(string key, System.Windows.Media.Brush fallback) + { + if (System.Windows.Application.Current?.TryFindResource(key) is System.Windows.Media.Brush brush) + { + return brush; + } + + return fallback; + } + } + + public class BoolToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool visible) + { + return visible ? System.Windows.Visibility.Visible : System.Windows.Visibility.Collapsed; + } + return System.Windows.Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + public class AffinityMaskConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is long mask) + { + if (mask == 0) + { + return "None"; + } + + var cores = new System.Collections.Generic.List(); + for (int i = 0; i < 64; i++) + { + if ((mask & (1L << i)) != 0) + { + cores.Add(i); + } + } + + if (cores.Count == 0) + { + return "None"; + } + + if (cores.Count == 1) + { + return $"Core {cores[0]}"; + } + + if (cores.Count <= 4) + { + return $"Cores {string.Join(", ", cores)}"; + } + + return $"Cores {cores[0]}-{cores[cores.Count - 1]} ({cores.Count} cores)"; + } + return "Unknown"; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + public class BytesToMbConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is long bytes) + { + return (bytes / (1024.0 * 1024.0)).ToString("F1"); + } + return "0.0"; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + public class StringToVisibilityConverter : IValueConverter + { + public static readonly StringToVisibilityConverter Instance = new(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return string.IsNullOrEmpty(value as string) ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} + diff --git a/Converters/InverseBooleanConverter.cs b/Converters/InverseBooleanConverter.cs index 8578c25..e9fba2d 100644 --- a/Converters/InverseBooleanConverter.cs +++ b/Converters/InverseBooleanConverter.cs @@ -1,49 +1,30 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Converters -{ - using System; - using System.Globalization; - using System.Windows.Data; - - /// - /// Converter to invert boolean values. - /// - public class InverseBooleanConverter : IValueConverter - { - public static readonly InverseBooleanConverter Instance = new(); - - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue) - { - return !boolValue; - } - return true; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is bool boolValue) - { - return !boolValue; - } - return false; - } - } -} - +namespace ThreadPilot.Converters +{ + using System; + using System.Globalization; + using System.Windows.Data; + + public class InverseBooleanConverter : IValueConverter + { + public static readonly InverseBooleanConverter Instance = new(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool boolValue) + { + return !boolValue; + } + return true; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is bool boolValue) + { + return !boolValue; + } + return false; + } + } +} + diff --git a/Converters/ItemIndexConverter.cs b/Converters/ItemIndexConverter.cs index 657a1d6..8982551 100644 --- a/Converters/ItemIndexConverter.cs +++ b/Converters/ItemIndexConverter.cs @@ -1,51 +1,32 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Converters -{ - using System; - using System.Globalization; - using System.Windows; - using System.Windows.Controls; - using System.Windows.Data; - - /// - /// Converter to get the index of an item in an ItemsControl. - /// - public class ItemIndexConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is DependencyObject item) - { - var itemsControl = ItemsControl.ItemsControlFromItemContainer(item); - if (itemsControl != null) - { - int index = itemsControl.ItemContainerGenerator.IndexFromContainer(item); - return index; - } - } - - return -1; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} - +namespace ThreadPilot.Converters +{ + using System; + using System.Globalization; + using System.Windows; + using System.Windows.Controls; + using System.Windows.Data; + + public class ItemIndexConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is DependencyObject item) + { + var itemsControl = ItemsControl.ItemsControlFromItemContainer(item); + if (itemsControl != null) + { + int index = itemsControl.ItemContainerGenerator.IndexFromContainer(item); + return index; + } + } + + return -1; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} + diff --git a/Converters/NullToBoolConverter.cs b/Converters/NullToBoolConverter.cs index 60b2ca4..283c95f 100644 --- a/Converters/NullToBoolConverter.cs +++ b/Converters/NullToBoolConverter.cs @@ -1,35 +1,19 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Converters -{ - using System; - using System.Globalization; - using System.Windows.Data; - - public class NullToBoolConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return value != null; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} +namespace ThreadPilot.Converters +{ + using System; + using System.Globalization; + using System.Windows.Data; + + public class NullToBoolConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return value != null; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Helpers/AffinityHelper.cs b/Helpers/AffinityHelper.cs index 3ce3ffd..8024f4a 100644 --- a/Helpers/AffinityHelper.cs +++ b/Helpers/AffinityHelper.cs @@ -1,41 +1,25 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Helpers -{ - using System.Collections.Generic; - using System.Linq; - using System.Windows.Controls; - - public static class AffinityHelper - { - public static long CalculateAffinityMask(IEnumerable cpuCheckboxes) - { - return cpuCheckboxes - .Where(cb => cb.IsChecked == true) - .Sum(cb => (long)cb.Tag); - } - - public static void UpdateCheckboxesFromMask(IEnumerable cpuCheckboxes, long affinityMask) - { - foreach (var checkbox in cpuCheckboxes) - { - var cpuBit = (long)checkbox.Tag; - checkbox.IsChecked = (affinityMask & cpuBit) != 0; - } - } - } -} +namespace ThreadPilot.Helpers +{ + using System.Collections.Generic; + using System.Linq; + using System.Windows.Controls; + + public static class AffinityHelper + { + public static long CalculateAffinityMask(IEnumerable cpuCheckboxes) + { + return cpuCheckboxes + .Where(cb => cb.IsChecked == true) + .Sum(cb => (long)cb.Tag); + } + + public static void UpdateCheckboxesFromMask(IEnumerable cpuCheckboxes, long affinityMask) + { + foreach (var checkbox in cpuCheckboxes) + { + var cpuBit = (long)checkbox.Tag; + checkbox.IsChecked = (affinityMask & cpuBit) != 0; + } + } + } +} diff --git a/Helpers/Converters.cs b/Helpers/Converters.cs index f9d72de..d633a12 100644 --- a/Helpers/Converters.cs +++ b/Helpers/Converters.cs @@ -1,122 +1,106 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Helpers -{ - using System; - using System.Globalization; - using System.Windows; - using System.Windows.Data; - - public class BytesToMbConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is long bytes) - { - return Math.Round((double)bytes / (1024 * 1024), 1); - } - return 0; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } - - public class AffinityMaskConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is long mask) - { - var selectedIndices = new System.Collections.Generic.List(); - // Dynamic core count based on system, limited to 64 (long is 64-bit) - int maxCores = Math.Min(64, Environment.ProcessorCount); - - for (int i = 0; i < maxCores; i++) - { - if ((mask & (1L << i)) != 0) - { - selectedIndices.Add(i); - } - } - - if (selectedIndices.Count == 0) - { - return "None"; - } - - // Build the display string - var indicesStr = string.Join(", ", selectedIndices); - int selectedCount = selectedIndices.Count; - - // Detect if this is likely physical cores only (every other logical processor) - // This heuristic checks if selected indices are evenly spaced by 2 (e.g., 0,2,4,6,8...) - bool isProbablyPhysicalCoresOnly = false; - if (selectedCount > 1 && selectedCount <= maxCores / 2) - { - isProbablyPhysicalCoresOnly = true; - for (int i = 1; i < selectedIndices.Count; i++) - { - if (selectedIndices[i] - selectedIndices[i - 1] != 2) - { - isProbablyPhysicalCoresOnly = false; - break; - } - } - } - - // Choose terminology based on what's selected - string label; - if (selectedCount == maxCores) - { - label = $"All threads (0-{maxCores - 1})"; - } - else if (isProbablyPhysicalCoresOnly && selectedIndices[0] == 0) - { - label = $"Physical cores ({indicesStr}) - {selectedCount} cores"; - } - else - { - label = $"Threads ({indicesStr}) - {selectedCount} threads"; - } - - return label; - } - return "Unknown"; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } - - public class BoolToFontWeightConverter : IValueConverter - { - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value ? FontWeights.Bold : FontWeights.Normal; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotImplementedException(); - } - } -} +namespace ThreadPilot.Helpers +{ + using System; + using System.Globalization; + using System.Windows; + using System.Windows.Data; + + public class BytesToMbConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is long bytes) + { + return Math.Round((double)bytes / (1024 * 1024), 1); + } + return 0; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + public class AffinityMaskConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is long mask) + { + var selectedIndices = new System.Collections.Generic.List(); + // Dynamic core count based on system, limited to 64 (long is 64-bit) + int maxCores = Math.Min(64, Environment.ProcessorCount); + + for (int i = 0; i < maxCores; i++) + { + if ((mask & (1L << i)) != 0) + { + selectedIndices.Add(i); + } + } + + if (selectedIndices.Count == 0) + { + return "None"; + } + + // Build the display string + var indicesStr = string.Join(", ", selectedIndices); + int selectedCount = selectedIndices.Count; + + // Detect if this is likely physical cores only (every other logical processor) + // This heuristic checks if selected indices are evenly spaced by 2 (e.g., 0,2,4,6,8...) + bool isProbablyPhysicalCoresOnly = false; + if (selectedCount > 1 && selectedCount <= maxCores / 2) + { + isProbablyPhysicalCoresOnly = true; + for (int i = 1; i < selectedIndices.Count; i++) + { + if (selectedIndices[i] - selectedIndices[i - 1] != 2) + { + isProbablyPhysicalCoresOnly = false; + break; + } + } + } + + // Choose terminology based on what's selected + string label; + if (selectedCount == maxCores) + { + label = $"All threads (0-{maxCores - 1})"; + } + else if (isProbablyPhysicalCoresOnly && selectedIndices[0] == 0) + { + label = $"Physical cores ({indicesStr}) - {selectedCount} cores"; + } + else + { + label = $"Threads ({indicesStr}) - {selectedCount} threads"; + } + + return label; + } + return "Unknown"; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } + + public class BoolToFontWeightConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return (bool)value ? FontWeights.Bold : FontWeights.Normal; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} diff --git a/Helpers/DwmHelper.cs b/Helpers/DwmHelper.cs index 2552b79..acc7480 100644 --- a/Helpers/DwmHelper.cs +++ b/Helpers/DwmHelper.cs @@ -1,56 +1,34 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Helpers -{ - using System; - using System.Runtime.InteropServices; - using System.Windows; - using System.Windows.Interop; - - /// - /// Desktop Window Manager helper methods. - /// - public static class DwmHelper - { - private const int DwmUseImmersiveDarkMode = 20; - private const int DwmUseImmersiveDarkModeLegacy = 19; - - [DllImport("dwmapi.dll")] - private static extern int DwmSetWindowAttribute(IntPtr hwnd, int dwAttribute, ref int pvAttribute, int cbAttribute); - - /// - /// Applies dark/light title-bar styling through DWM attributes. - /// - public static void ApplyWindowCaptionTheme(Window window, bool useDarkTheme) - { - ArgumentNullException.ThrowIfNull(window); - - var windowHandle = new WindowInteropHelper(window).Handle; - if (windowHandle == IntPtr.Zero) - { - return; - } - - var darkMode = useDarkTheme ? 1 : 0; - var result = DwmSetWindowAttribute(windowHandle, DwmUseImmersiveDarkMode, ref darkMode, Marshal.SizeOf()); - if (result != 0) - { - _ = DwmSetWindowAttribute(windowHandle, DwmUseImmersiveDarkModeLegacy, ref darkMode, Marshal.SizeOf()); - } - } - } -} +namespace ThreadPilot.Helpers +{ + using System; + using System.Runtime.InteropServices; + using System.Windows; + using System.Windows.Interop; + + public static class DwmHelper + { + private const int DwmUseImmersiveDarkMode = 20; + private const int DwmUseImmersiveDarkModeLegacy = 19; + + [DllImport("dwmapi.dll")] + private static extern int DwmSetWindowAttribute(IntPtr hwnd, int dwAttribute, ref int pvAttribute, int cbAttribute); + + public static void ApplyWindowCaptionTheme(Window window, bool useDarkTheme) + { + ArgumentNullException.ThrowIfNull(window); + + var windowHandle = new WindowInteropHelper(window).Handle; + if (windowHandle == IntPtr.Zero) + { + return; + } + + var darkMode = useDarkTheme ? 1 : 0; + var result = DwmSetWindowAttribute(windowHandle, DwmUseImmersiveDarkMode, ref darkMode, Marshal.SizeOf()); + if (result != 0) + { + _ = DwmSetWindowAttribute(windowHandle, DwmUseImmersiveDarkModeLegacy, ref darkMode, Marshal.SizeOf()); + } + } + } +} diff --git a/Helpers/NavigationBehavior.cs b/Helpers/NavigationBehavior.cs index 30a347a..525d786 100644 --- a/Helpers/NavigationBehavior.cs +++ b/Helpers/NavigationBehavior.cs @@ -1,101 +1,73 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Helpers -{ - using System; - using System.Threading; - using System.Threading.Tasks; - using System.Windows; - using ThreadPilot.ViewModels; - - /// - /// Coordinates serialized navigation transitions and unsaved-changes policy. - /// - public sealed class NavigationBehavior : IDisposable - { - private readonly SemaphoreSlim navigationGuard = new(1, 1); - private bool isHandlingNavigation; - - /// - /// Tries entering the navigation critical section. - /// - public async Task TryEnterAsync() - { - if (this.isHandlingNavigation) - { - return false; - } - - await this.navigationGuard.WaitAsync().ConfigureAwait(false); - this.isHandlingNavigation = true; - return true; - } - - /// - /// Leaves the navigation critical section. - /// - public void Exit() - { - this.isHandlingNavigation = false; - this.navigationGuard.Release(); - } - - /// - /// Applies unsaved-settings policy before navigating away from the settings section. - /// - public static async Task EnsureCanNavigateAsync( - string targetTag, - SettingsViewModel settingsViewModel, - Func>? showUnsavedSettingsPromptAsync = null) - { - ArgumentNullException.ThrowIfNull(targetTag); - ArgumentNullException.ThrowIfNull(settingsViewModel); - - if (!settingsViewModel.HasPendingChanges || string.Equals(targetTag, "Settings", StringComparison.Ordinal)) - { - return true; - } - - var result = showUnsavedSettingsPromptAsync != null - ? await showUnsavedSettingsPromptAsync().ConfigureAwait(false) - : MessageBox.Show( - "You have unsaved changes in Settings.\n\nChoose an action:\n- Yes: Save changes\n- No: Discard changes\n- Cancel: Stay on current tab", - "Unsaved Settings", - MessageBoxButton.YesNoCancel, - MessageBoxImage.Warning); - - return result switch - { - MessageBoxResult.Cancel => false, - MessageBoxResult.Yes => await settingsViewModel.SaveIfDirtyAsync().ConfigureAwait(false), - MessageBoxResult.No => await DiscardPendingChangesAsync(settingsViewModel).ConfigureAwait(false), - _ => true, - }; - } - - public void Dispose() - { - this.navigationGuard.Dispose(); - } - - private static async Task DiscardPendingChangesAsync(SettingsViewModel settingsViewModel) - { - await settingsViewModel.DiscardPendingChangesAsync().ConfigureAwait(false); - return true; - } - } -} +namespace ThreadPilot.Helpers +{ + using System; + using System.Threading; + using System.Threading.Tasks; + using System.Windows; + using ThreadPilot.ViewModels; + + public sealed class NavigationBehavior : IDisposable + { + private readonly SemaphoreSlim navigationGuard = new(1, 1); + private bool isHandlingNavigation; + + public async Task TryEnterAsync() + { + if (this.isHandlingNavigation) + { + return false; + } + + await this.navigationGuard.WaitAsync().ConfigureAwait(false); + this.isHandlingNavigation = true; + return true; + } + + public void Exit() + { + this.isHandlingNavigation = false; + this.navigationGuard.Release(); + } + + public static async Task EnsureCanNavigateAsync( + string targetTag, + SettingsViewModel settingsViewModel, + Func>? showUnsavedSettingsPromptAsync = null) + { + ArgumentNullException.ThrowIfNull(targetTag); + ArgumentNullException.ThrowIfNull(settingsViewModel); + + if (!settingsViewModel.HasPendingChanges || string.Equals(targetTag, "Settings", StringComparison.Ordinal)) + { + return true; + } + + var result = showUnsavedSettingsPromptAsync != null + ? await showUnsavedSettingsPromptAsync().ConfigureAwait(false) + : MessageBox.Show( + "You have unsaved changes in Settings.\n\nChoose an action:\n- Yes: Save changes\n- No: Discard changes\n- Cancel: Stay on current tab", + "Unsaved Settings", + MessageBoxButton.YesNoCancel, + MessageBoxImage.Warning); + + return result switch + { + MessageBoxResult.Cancel => false, + MessageBoxResult.Yes => await settingsViewModel.SaveIfDirtyAsync().ConfigureAwait(false), + MessageBoxResult.No => await DiscardPendingChangesAsync(settingsViewModel).ConfigureAwait(false), + _ => true, + }; + } + + public void Dispose() + { + this.navigationGuard.Dispose(); + } + + private static async Task DiscardPendingChangesAsync(SettingsViewModel settingsViewModel) + { + await settingsViewModel.DiscardPendingChangesAsync().ConfigureAwait(false); + return true; + } + } +} diff --git a/Helpers/ServiceProviderExtensions.cs b/Helpers/ServiceProviderExtensions.cs index 102c923..4c17c04 100644 --- a/Helpers/ServiceProviderExtensions.cs +++ b/Helpers/ServiceProviderExtensions.cs @@ -1,32 +1,16 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Helpers -{ - using System; - using Microsoft.Extensions.DependencyInjection; - - public static class ServiceProviderExtensions - { - public static IServiceProvider Services => ((App)App.Current).ServiceProvider; - - public static T? GetService() - where T : class - { - return Services.GetService(typeof(T)) as T; - } - } -} +namespace ThreadPilot.Helpers +{ + using System; + using Microsoft.Extensions.DependencyInjection; + + public static class ServiceProviderExtensions + { + public static IServiceProvider Services => ((App)App.Current).ServiceProvider; + + public static T? GetService() + where T : class + { + return Services.GetService(typeof(T)) as T; + } + } +} diff --git a/Helpers/StartupMinimizedSuggestionPolicy.cs b/Helpers/StartupMinimizedSuggestionPolicy.cs index 8036392..6364070 100644 --- a/Helpers/StartupMinimizedSuggestionPolicy.cs +++ b/Helpers/StartupMinimizedSuggestionPolicy.cs @@ -1,17 +1,17 @@ -namespace ThreadPilot.Helpers -{ - using System; - using ThreadPilot.Models; - - public static class StartupMinimizedSuggestionPolicy - { - public static bool ShouldShow(ApplicationSettingsModel settings, StartupWindowBehavior behavior) - { - ArgumentNullException.ThrowIfNull(settings); - - return behavior.ShouldShowWindow - && !settings.StartMinimized - && !settings.HasSeenStartupMinimizedSuggestion; - } - } -} +namespace ThreadPilot.Helpers +{ + using System; + using ThreadPilot.Models; + + public static class StartupMinimizedSuggestionPolicy + { + public static bool ShouldShow(ApplicationSettingsModel settings, StartupWindowBehavior behavior) + { + ArgumentNullException.ThrowIfNull(settings); + + return behavior.ShouldShowWindow + && !settings.StartMinimized + && !settings.HasSeenStartupMinimizedSuggestion; + } + } +} diff --git a/Helpers/StartupWindowBehavior.cs b/Helpers/StartupWindowBehavior.cs index 642b66a..1021880 100644 --- a/Helpers/StartupWindowBehavior.cs +++ b/Helpers/StartupWindowBehavior.cs @@ -1,46 +1,46 @@ -namespace ThreadPilot.Helpers -{ - using System.Windows; - - public readonly record struct StartupWindowBehavior( - bool ShouldShowWindow, - bool ShowInTaskbar, - Visibility Visibility, - WindowState WindowState, - bool HideAfterShow, - bool ActivateAfterShow) - { - public static StartupWindowBehavior Resolve(bool isAutostart, bool startMinimized) - { - if (isAutostart && startMinimized) - { - return new StartupWindowBehavior( - ShouldShowWindow: false, - ShowInTaskbar: false, - Visibility: Visibility.Hidden, - WindowState: WindowState.Minimized, - HideAfterShow: false, - ActivateAfterShow: false); - } - - if (startMinimized) - { - return new StartupWindowBehavior( - ShouldShowWindow: false, - ShowInTaskbar: false, - Visibility: Visibility.Hidden, - WindowState: WindowState.Minimized, - HideAfterShow: false, - ActivateAfterShow: false); - } - - return new StartupWindowBehavior( - ShouldShowWindow: true, - ShowInTaskbar: true, - Visibility: Visibility.Visible, - WindowState: WindowState.Normal, - HideAfterShow: false, - ActivateAfterShow: true); - } - } -} +namespace ThreadPilot.Helpers +{ + using System.Windows; + + public readonly record struct StartupWindowBehavior( + bool ShouldShowWindow, + bool ShowInTaskbar, + Visibility Visibility, + WindowState WindowState, + bool HideAfterShow, + bool ActivateAfterShow) + { + public static StartupWindowBehavior Resolve(bool isAutostart, bool startMinimized) + { + if (isAutostart && startMinimized) + { + return new StartupWindowBehavior( + ShouldShowWindow: false, + ShowInTaskbar: false, + Visibility: Visibility.Hidden, + WindowState: WindowState.Minimized, + HideAfterShow: false, + ActivateAfterShow: false); + } + + if (startMinimized) + { + return new StartupWindowBehavior( + ShouldShowWindow: false, + ShowInTaskbar: false, + Visibility: Visibility.Hidden, + WindowState: WindowState.Minimized, + HideAfterShow: false, + ActivateAfterShow: false); + } + + return new StartupWindowBehavior( + ShouldShowWindow: true, + ShowInTaskbar: true, + Visibility: Visibility.Visible, + WindowState: WindowState.Normal, + HideAfterShow: false, + ActivateAfterShow: true); + } + } +} diff --git a/Helpers/WindowPlacementHelper.cs b/Helpers/WindowPlacementHelper.cs index 175ea49..335ed0e 100644 --- a/Helpers/WindowPlacementHelper.cs +++ b/Helpers/WindowPlacementHelper.cs @@ -1,295 +1,295 @@ -namespace ThreadPilot.Helpers -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Windows; - using System.Windows.Forms; - using System.Windows.Media; - using DrawingRectangle = System.Drawing.Rectangle; - using WpfPoint = System.Windows.Point; - - public readonly record struct WindowBounds(double Left, double Top, double Width, double Height) - { - public double Right => this.Left + this.Width; - - public double Bottom => this.Top + this.Height; - - public double Area => Math.Max(0, this.Width) * Math.Max(0, this.Height); - } - - public readonly record struct MonitorWorkingArea(double Left, double Top, double Width, double Height, bool IsPrimary) - { - public double Right => this.Left + this.Width; - - public double Bottom => this.Top + this.Height; - - public double Area => Math.Max(0, this.Width) * Math.Max(0, this.Height); - } - - public readonly record struct WindowPlacementCorrection(WindowBounds Bounds, bool WasCorrected); - - public static class WindowPlacementHelper - { - private const double DefaultWindowWidth = 1280; - private const double DefaultWindowHeight = 864; - private const double MinimumVisibleAreaRatio = 0.25; - private const double Epsilon = 0.001; - - public static WindowPlacementCorrection CorrectWindowBounds( - WindowBounds currentBounds, - IReadOnlyCollection workingAreas) - { - var validWorkingAreas = workingAreas - .Where(IsValidWorkingArea) - .ToArray(); - - if (validWorkingAreas.Length == 0) - { - var fallbackBounds = new WindowBounds( - IsFinite(currentBounds.Left) ? currentBounds.Left : 0, - IsFinite(currentBounds.Top) ? currentBounds.Top : 0, - ResolveDimension(currentBounds.Width, DefaultWindowWidth), - ResolveDimension(currentBounds.Height, DefaultWindowHeight)); - - return new WindowPlacementCorrection(fallbackBounds, !BoundsAreEquivalent(currentBounds, fallbackBounds)); - } - - var targetArea = SelectTargetWorkingArea(currentBounds, validWorkingAreas); - var correctedWidth = Math.Min(ResolveDimension(currentBounds.Width, DefaultWindowWidth), targetArea.Width); - var correctedHeight = Math.Min(ResolveDimension(currentBounds.Height, DefaultWindowHeight), targetArea.Height); - var sanitizedBounds = new WindowBounds( - currentBounds.Left, - currentBounds.Top, - correctedWidth, - correctedHeight); - - var hasSufficientIntersection = HasSufficientIntersection(sanitizedBounds, targetArea); - double correctedLeft; - double correctedTop; - - if (!hasSufficientIntersection || !IsFinite(sanitizedBounds.Left) || !IsFinite(sanitizedBounds.Top)) - { - correctedLeft = targetArea.Left + ((targetArea.Width - correctedWidth) / 2); - correctedTop = targetArea.Top + ((targetArea.Height - correctedHeight) / 2); - } - else - { - correctedLeft = Clamp(sanitizedBounds.Left, targetArea.Left, targetArea.Right - correctedWidth); - correctedTop = Clamp(sanitizedBounds.Top, targetArea.Top, targetArea.Bottom - correctedHeight); - } - - var correctedBounds = new WindowBounds( - Math.Round(correctedLeft), - Math.Round(correctedTop), - Math.Round(correctedWidth), - Math.Round(correctedHeight)); - - return new WindowPlacementCorrection(correctedBounds, !BoundsAreEquivalent(currentBounds, correctedBounds)); - } - - public static bool TryCorrectWindowPlacement(Window window) - { - ArgumentNullException.ThrowIfNull(window); - - try - { - if (window.WindowState == WindowState.Maximized) - { - return false; - } - - var workingAreas = GetWorkingAreasInWindowDips(window); - var currentBounds = new WindowBounds( - window.Left, - window.Top, - ResolveWindowDimension(window.ActualWidth, window.Width, DefaultWindowWidth), - ResolveWindowDimension(window.ActualHeight, window.Height, DefaultWindowHeight)); - - var correction = CorrectWindowBounds(currentBounds, workingAreas); - if (!correction.WasCorrected) - { - return false; - } - - window.Width = correction.Bounds.Width; - window.Height = correction.Bounds.Height; - window.Left = correction.Bounds.Left; - window.Top = correction.Bounds.Top; - return true; - } - catch - { - return false; - } - } - - private static MonitorWorkingArea[] GetWorkingAreasInWindowDips(Window window) - { - var transformFromDevice = GetTransformFromDevice(window); - var screens = Screen.AllScreens; - if (screens.Length == 0) - { - return new[] - { - new MonitorWorkingArea( - SystemParameters.WorkArea.Left, - SystemParameters.WorkArea.Top, - SystemParameters.WorkArea.Width, - SystemParameters.WorkArea.Height, - true), - }; - } - - return screens - .Select(screen => ConvertWorkingAreaToDips(screen.WorkingArea, screen.Primary, transformFromDevice)) - .Where(IsValidWorkingArea) - .ToArray(); - } - - private static Matrix GetTransformFromDevice(Window window) - { - try - { - var source = PresentationSource.FromVisual(window); - return source?.CompositionTarget?.TransformFromDevice ?? Matrix.Identity; - } - catch - { - return Matrix.Identity; - } - } - - private static MonitorWorkingArea ConvertWorkingAreaToDips( - DrawingRectangle workingArea, - bool isPrimary, - Matrix transformFromDevice) - { - var topLeft = transformFromDevice.Transform(new WpfPoint(workingArea.Left, workingArea.Top)); - var bottomRight = transformFromDevice.Transform(new WpfPoint(workingArea.Right, workingArea.Bottom)); - - return new MonitorWorkingArea( - topLeft.X, - topLeft.Y, - bottomRight.X - topLeft.X, - bottomRight.Y - topLeft.Y, - isPrimary); - } - - private static MonitorWorkingArea SelectTargetWorkingArea( - WindowBounds currentBounds, - IReadOnlyList workingAreas) - { - var bestIntersection = workingAreas - .Select(area => new - { - Area = area, - IntersectionArea = GetIntersectionArea(currentBounds, area), - }) - .OrderByDescending(candidate => candidate.IntersectionArea) - .ThenByDescending(candidate => candidate.Area.IsPrimary) - .First(); - - if (bestIntersection.IntersectionArea > 0 && HasSufficientIntersection(currentBounds, bestIntersection.Area)) - { - return bestIntersection.Area; - } - - if (!IsFinite(currentBounds.Left) || !IsFinite(currentBounds.Top)) - { - return workingAreas.FirstOrDefault(area => area.IsPrimary, workingAreas[0]); - } - - var centerX = currentBounds.Left + (ResolveDimension(currentBounds.Width, DefaultWindowWidth) / 2); - var centerY = currentBounds.Top + (ResolveDimension(currentBounds.Height, DefaultWindowHeight) / 2); - - return workingAreas - .OrderBy(area => GetSquaredDistanceToArea(centerX, centerY, area)) - .ThenByDescending(area => area.IsPrimary) - .First(); - } - - private static double GetSquaredDistanceToArea(double x, double y, MonitorWorkingArea area) - { - var nearestX = Clamp(x, area.Left, area.Right); - var nearestY = Clamp(y, area.Top, area.Bottom); - var deltaX = x - nearestX; - var deltaY = y - nearestY; - - return (deltaX * deltaX) + (deltaY * deltaY); - } - - private static bool HasSufficientIntersection(WindowBounds bounds, MonitorWorkingArea area) - { - var intersectionArea = GetIntersectionArea(bounds, area); - var boundedWindowArea = Math.Max(1, Math.Min(bounds.Width, area.Width) * Math.Min(bounds.Height, area.Height)); - - return intersectionArea / boundedWindowArea >= MinimumVisibleAreaRatio; - } - - private static double GetIntersectionArea(WindowBounds bounds, MonitorWorkingArea area) - { - if (!IsFinite(bounds.Left) || !IsFinite(bounds.Top) || !IsFinite(bounds.Width) || !IsFinite(bounds.Height)) - { - return 0; - } - - var left = Math.Max(bounds.Left, area.Left); - var top = Math.Max(bounds.Top, area.Top); - var right = Math.Min(bounds.Right, area.Right); - var bottom = Math.Min(bounds.Bottom, area.Bottom); - var width = Math.Max(0, right - left); - var height = Math.Max(0, bottom - top); - - return width * height; - } - - private static bool IsValidWorkingArea(MonitorWorkingArea workingArea) - { - return IsFinite(workingArea.Left) - && IsFinite(workingArea.Top) - && IsFinite(workingArea.Width) - && IsFinite(workingArea.Height) - && workingArea.Width > 0 - && workingArea.Height > 0; - } - - private static double ResolveWindowDimension(double actualValue, double configuredValue, double fallback) - { - if (IsFinite(actualValue) && actualValue > 0) - { - return actualValue; - } - - return ResolveDimension(configuredValue, fallback); - } - - private static double ResolveDimension(double value, double fallback) - { - return IsFinite(value) && value > 0 ? value : fallback; - } - - private static double Clamp(double value, double minimum, double maximum) - { - if (maximum < minimum) - { - return minimum; - } - - return Math.Min(Math.Max(value, minimum), maximum); - } - - private static bool IsFinite(double value) - { - return !double.IsNaN(value) && !double.IsInfinity(value); - } - - private static bool BoundsAreEquivalent(WindowBounds left, WindowBounds right) - { - return Math.Abs(left.Left - right.Left) < Epsilon - && Math.Abs(left.Top - right.Top) < Epsilon - && Math.Abs(left.Width - right.Width) < Epsilon - && Math.Abs(left.Height - right.Height) < Epsilon; - } - } -} +namespace ThreadPilot.Helpers +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Windows; + using System.Windows.Forms; + using System.Windows.Media; + using DrawingRectangle = System.Drawing.Rectangle; + using WpfPoint = System.Windows.Point; + + public readonly record struct WindowBounds(double Left, double Top, double Width, double Height) + { + public double Right => this.Left + this.Width; + + public double Bottom => this.Top + this.Height; + + public double Area => Math.Max(0, this.Width) * Math.Max(0, this.Height); + } + + public readonly record struct MonitorWorkingArea(double Left, double Top, double Width, double Height, bool IsPrimary) + { + public double Right => this.Left + this.Width; + + public double Bottom => this.Top + this.Height; + + public double Area => Math.Max(0, this.Width) * Math.Max(0, this.Height); + } + + public readonly record struct WindowPlacementCorrection(WindowBounds Bounds, bool WasCorrected); + + public static class WindowPlacementHelper + { + private const double DefaultWindowWidth = 1280; + private const double DefaultWindowHeight = 864; + private const double MinimumVisibleAreaRatio = 0.25; + private const double Epsilon = 0.001; + + public static WindowPlacementCorrection CorrectWindowBounds( + WindowBounds currentBounds, + IReadOnlyCollection workingAreas) + { + var validWorkingAreas = workingAreas + .Where(IsValidWorkingArea) + .ToArray(); + + if (validWorkingAreas.Length == 0) + { + var fallbackBounds = new WindowBounds( + IsFinite(currentBounds.Left) ? currentBounds.Left : 0, + IsFinite(currentBounds.Top) ? currentBounds.Top : 0, + ResolveDimension(currentBounds.Width, DefaultWindowWidth), + ResolveDimension(currentBounds.Height, DefaultWindowHeight)); + + return new WindowPlacementCorrection(fallbackBounds, !BoundsAreEquivalent(currentBounds, fallbackBounds)); + } + + var targetArea = SelectTargetWorkingArea(currentBounds, validWorkingAreas); + var correctedWidth = Math.Min(ResolveDimension(currentBounds.Width, DefaultWindowWidth), targetArea.Width); + var correctedHeight = Math.Min(ResolveDimension(currentBounds.Height, DefaultWindowHeight), targetArea.Height); + var sanitizedBounds = new WindowBounds( + currentBounds.Left, + currentBounds.Top, + correctedWidth, + correctedHeight); + + var hasSufficientIntersection = HasSufficientIntersection(sanitizedBounds, targetArea); + double correctedLeft; + double correctedTop; + + if (!hasSufficientIntersection || !IsFinite(sanitizedBounds.Left) || !IsFinite(sanitizedBounds.Top)) + { + correctedLeft = targetArea.Left + ((targetArea.Width - correctedWidth) / 2); + correctedTop = targetArea.Top + ((targetArea.Height - correctedHeight) / 2); + } + else + { + correctedLeft = Clamp(sanitizedBounds.Left, targetArea.Left, targetArea.Right - correctedWidth); + correctedTop = Clamp(sanitizedBounds.Top, targetArea.Top, targetArea.Bottom - correctedHeight); + } + + var correctedBounds = new WindowBounds( + Math.Round(correctedLeft), + Math.Round(correctedTop), + Math.Round(correctedWidth), + Math.Round(correctedHeight)); + + return new WindowPlacementCorrection(correctedBounds, !BoundsAreEquivalent(currentBounds, correctedBounds)); + } + + public static bool TryCorrectWindowPlacement(Window window) + { + ArgumentNullException.ThrowIfNull(window); + + try + { + if (window.WindowState == WindowState.Maximized) + { + return false; + } + + var workingAreas = GetWorkingAreasInWindowDips(window); + var currentBounds = new WindowBounds( + window.Left, + window.Top, + ResolveWindowDimension(window.ActualWidth, window.Width, DefaultWindowWidth), + ResolveWindowDimension(window.ActualHeight, window.Height, DefaultWindowHeight)); + + var correction = CorrectWindowBounds(currentBounds, workingAreas); + if (!correction.WasCorrected) + { + return false; + } + + window.Width = correction.Bounds.Width; + window.Height = correction.Bounds.Height; + window.Left = correction.Bounds.Left; + window.Top = correction.Bounds.Top; + return true; + } + catch + { + return false; + } + } + + private static MonitorWorkingArea[] GetWorkingAreasInWindowDips(Window window) + { + var transformFromDevice = GetTransformFromDevice(window); + var screens = Screen.AllScreens; + if (screens.Length == 0) + { + return new[] + { + new MonitorWorkingArea( + SystemParameters.WorkArea.Left, + SystemParameters.WorkArea.Top, + SystemParameters.WorkArea.Width, + SystemParameters.WorkArea.Height, + true), + }; + } + + return screens + .Select(screen => ConvertWorkingAreaToDips(screen.WorkingArea, screen.Primary, transformFromDevice)) + .Where(IsValidWorkingArea) + .ToArray(); + } + + private static Matrix GetTransformFromDevice(Window window) + { + try + { + var source = PresentationSource.FromVisual(window); + return source?.CompositionTarget?.TransformFromDevice ?? Matrix.Identity; + } + catch + { + return Matrix.Identity; + } + } + + private static MonitorWorkingArea ConvertWorkingAreaToDips( + DrawingRectangle workingArea, + bool isPrimary, + Matrix transformFromDevice) + { + var topLeft = transformFromDevice.Transform(new WpfPoint(workingArea.Left, workingArea.Top)); + var bottomRight = transformFromDevice.Transform(new WpfPoint(workingArea.Right, workingArea.Bottom)); + + return new MonitorWorkingArea( + topLeft.X, + topLeft.Y, + bottomRight.X - topLeft.X, + bottomRight.Y - topLeft.Y, + isPrimary); + } + + private static MonitorWorkingArea SelectTargetWorkingArea( + WindowBounds currentBounds, + IReadOnlyList workingAreas) + { + var bestIntersection = workingAreas + .Select(area => new + { + Area = area, + IntersectionArea = GetIntersectionArea(currentBounds, area), + }) + .OrderByDescending(candidate => candidate.IntersectionArea) + .ThenByDescending(candidate => candidate.Area.IsPrimary) + .First(); + + if (bestIntersection.IntersectionArea > 0 && HasSufficientIntersection(currentBounds, bestIntersection.Area)) + { + return bestIntersection.Area; + } + + if (!IsFinite(currentBounds.Left) || !IsFinite(currentBounds.Top)) + { + return workingAreas.FirstOrDefault(area => area.IsPrimary, workingAreas[0]); + } + + var centerX = currentBounds.Left + (ResolveDimension(currentBounds.Width, DefaultWindowWidth) / 2); + var centerY = currentBounds.Top + (ResolveDimension(currentBounds.Height, DefaultWindowHeight) / 2); + + return workingAreas + .OrderBy(area => GetSquaredDistanceToArea(centerX, centerY, area)) + .ThenByDescending(area => area.IsPrimary) + .First(); + } + + private static double GetSquaredDistanceToArea(double x, double y, MonitorWorkingArea area) + { + var nearestX = Clamp(x, area.Left, area.Right); + var nearestY = Clamp(y, area.Top, area.Bottom); + var deltaX = x - nearestX; + var deltaY = y - nearestY; + + return (deltaX * deltaX) + (deltaY * deltaY); + } + + private static bool HasSufficientIntersection(WindowBounds bounds, MonitorWorkingArea area) + { + var intersectionArea = GetIntersectionArea(bounds, area); + var boundedWindowArea = Math.Max(1, Math.Min(bounds.Width, area.Width) * Math.Min(bounds.Height, area.Height)); + + return intersectionArea / boundedWindowArea >= MinimumVisibleAreaRatio; + } + + private static double GetIntersectionArea(WindowBounds bounds, MonitorWorkingArea area) + { + if (!IsFinite(bounds.Left) || !IsFinite(bounds.Top) || !IsFinite(bounds.Width) || !IsFinite(bounds.Height)) + { + return 0; + } + + var left = Math.Max(bounds.Left, area.Left); + var top = Math.Max(bounds.Top, area.Top); + var right = Math.Min(bounds.Right, area.Right); + var bottom = Math.Min(bounds.Bottom, area.Bottom); + var width = Math.Max(0, right - left); + var height = Math.Max(0, bottom - top); + + return width * height; + } + + private static bool IsValidWorkingArea(MonitorWorkingArea workingArea) + { + return IsFinite(workingArea.Left) + && IsFinite(workingArea.Top) + && IsFinite(workingArea.Width) + && IsFinite(workingArea.Height) + && workingArea.Width > 0 + && workingArea.Height > 0; + } + + private static double ResolveWindowDimension(double actualValue, double configuredValue, double fallback) + { + if (IsFinite(actualValue) && actualValue > 0) + { + return actualValue; + } + + return ResolveDimension(configuredValue, fallback); + } + + private static double ResolveDimension(double value, double fallback) + { + return IsFinite(value) && value > 0 ? value : fallback; + } + + private static double Clamp(double value, double minimum, double maximum) + { + if (maximum < minimum) + { + return minimum; + } + + return Math.Min(Math.Max(value, minimum), maximum); + } + + private static bool IsFinite(double value) + { + return !double.IsNaN(value) && !double.IsInfinity(value); + } + + private static bool BoundsAreEquivalent(WindowBounds left, WindowBounds right) + { + return Math.Abs(left.Left - right.Left) < Epsilon + && Math.Abs(left.Top - right.Top) < Epsilon + && Math.Abs(left.Width - right.Width) < Epsilon + && Math.Abs(left.Height - right.Height) < Epsilon; + } + } +} diff --git a/MainWindow.Behaviors.partial.cs b/MainWindow.Behaviors.partial.cs index 1c857ee..0ad177e 100644 --- a/MainWindow.Behaviors.partial.cs +++ b/MainWindow.Behaviors.partial.cs @@ -1,2045 +1,2025 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using System.Timers; - using System.Windows; - using System.Windows.Controls; - using System.Windows.Input; - using System.Windows.Media.Animation; - using System.Windows.Media.Effects; - using System.Windows.Media.Imaging; - using Microsoft.Extensions.DependencyInjection; - using ThreadPilot.Helpers; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - using ThreadPilot.Views; - - public partial class MainWindow : Wpf.Ui.Controls.FluentWindow - { - private void SetDataContexts() - { - // Set DataContext for the main window - this.DataContext = this.mainWindowViewModel; - - // Set DataContext for the power plans view - this.PowerPlanViewControl.DataContext = this.powerPlanViewModel; - - // Set DataContext for the association view - this.AssociationView.DataContext = this.associationViewModel; - - // Set DataContext for the log viewer view - this.LogViewerViewControl.DataContext = this.logViewerViewModel; - - // Set DataContext for the system tweaks view - this.SystemTweaksView.DataContext = this.systemTweaksViewModel; - - // Set DataContext for the settings view - this.SettingsView.DataContext = this.settingsViewModel; - } - - private void InitializeLoadingOverlay() - { - try - { - var loadingOverlay = this.FindName("LoadingOverlay") as Grid; - - // Ensure overlay is visible while initialization runs - if (loadingOverlay != null) - { - loadingOverlay.Visibility = this.isSilentStartupMode ? Visibility.Collapsed : Visibility.Visible; - loadingOverlay.Opacity = this.isSilentStartupMode ? 0 : 1; - } - - if (!this.isSilentStartupMode) - { - this.ApplyUIContentBlur(15); - } - - // Start spinner animation if available - var spinnerAnimation = this.FindResource("SpinnerAnimation") as Storyboard; - if (!this.isSilentStartupMode) - { - spinnerAnimation?.Begin(); - } - - // Set a timeout guard for initialization - this.initializationTimeoutTimer = new System.Timers.Timer(15000) - { - AutoReset = false, - }; - this.initializationTimeoutTimer.Elapsed += this.OnInitializationTimeout; - this.initializationTimeoutTimer.Start(); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to initialize loading overlay: {ex.Message}"); - } - } - - private async Task InitializeApplicationAsync() - { - try - { - this.LogDebug("=== Starting InitializeApplicationAsync ==="); - - await this.Dispatcher.InvokeAsync(() => this.UpdateLoadingStatus("Loading view models...", "Loading process, power plan and rules data.")); - this.LogDebug("About to call LoadViewModelsAsync..."); - await this.LoadViewModelsAsync(); - this.LogDebug("LoadViewModelsAsync completed successfully"); - this.CompleteInitializationTask("ViewModels"); - - this.LogDebug("About to initialize MainWindowViewModel..."); - await this.mainWindowViewModel.InitializeAsync(); - this.LogDebug("MainWindowViewModel initialized successfully"); - this.CompleteInitializationTask("MainWindowViewModel"); - - await this.Dispatcher.InvokeAsync(() => this.UpdateLoadingStatus("Initializing services...", "Starting monitoring, tray and notification services.")); - this.LogDebug("About to call InitializeServicesAsync..."); - await this.InitializeServicesAsync(); - this.LogDebug("InitializeServicesAsync completed successfully"); - this.CompleteInitializationTask("Services"); - this.QueueStartupUpdateCheck(); - - await this.Dispatcher.InvokeAsync(() => this.UpdateLoadingStatus("Finalizing startup...", "Applying final UI state and startup checks.")); - this.LogDebug("Finalizing startup..."); - await Task.Delay(500); // Brief delay to show final status - this.CompleteInitializationTask("Finalization"); - - // All initialization complete - this.LogDebug("All initialization complete, hiding overlay..."); - await this.Dispatcher.InvokeAsync(() => this.HideLoadingOverlay()); - this.LogDebug("=== InitializeApplicationAsync completed successfully ==="); - } - catch (Exception ex) - { - this.LogDebug($"=== ERROR in InitializeApplicationAsync: {ex} ==="); - await this.Dispatcher.InvokeAsync(() => this.ShowInitializationError(ex)); - } - } - - private void QueueStartupUpdateCheck() - { - if (Interlocked.Exchange(ref this.startupUpdateCheckStarted, 1) != 0) - { - return; - } - - TaskSafety.FireAndForget(this.CheckForUpdatesAtStartupAsync(), ex => - { - this.LogDebug($"Startup update check failed: {ex.Message}"); - }); - } - - private async Task CheckForUpdatesAtStartupAsync() - { - try - { - this.LogDebug("Startup update check started"); - var updateService = this.serviceProvider.GetRequiredService(); - var result = await updateService.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup)); - - if (result.Status == UpdateCheckStatus.Skipped) - { - this.LogDebug($"Startup update check skipped: {result.Message}"); - return; - } - - if (!result.IsUpdateAvailable || result.Release == null) - { - this.LogDebug($"Startup update check complete: {result.Message}"); - return; - } - - await this.notificationService.ShowNotificationAsync( - "Update available", - $"ThreadPilot {result.Release.Version} is available. Open Settings to download and install it.", - NotificationType.Information); - this.LogDebug($"Startup update check found update: installed {result.CurrentVersion}, latest {result.Release.Version}"); - } - catch (Exception ex) - { - this.LogDebug($"Startup update check ignored failure: {ex.Message}"); - } - } - - private static Version GetCurrentApplicationVersion() - { - var rawVersion = typeof(App).Assembly - .GetCustomAttributes(typeof(System.Reflection.AssemblyInformationalVersionAttribute), false) - .OfType() - .FirstOrDefault()? - .InformationalVersion - ?? typeof(App).Assembly.GetName().Version?.ToString() - ?? "0.0.0"; - - var sanitized = rawVersion.Trim(); - if (sanitized.StartsWith("v", StringComparison.OrdinalIgnoreCase)) - { - sanitized = sanitized[1..]; - } - - sanitized = sanitized.Split('-', '+')[0]; - - return Version.TryParse(sanitized, out var version) - ? version - : new Version(0, 0, 0); - } - - private void UpdateLoadingStatus(string stage, string details = "") - { - if (this.mainWindowViewModel != null) - { - this.mainWindowViewModel.InitializationStage = stage; - this.mainWindowViewModel.InitializationDetails = details; - } - } - - private void CompleteInitializationTask(string taskName) - { - lock (this.initializationLock) - { - this.initializationTasks.Add(taskName); - System.Diagnostics.Debug.WriteLine($"Initialization task completed: {taskName}"); - } - } - - private void HideLoadingOverlay() - { - try - { - System.Diagnostics.Debug.WriteLine("=== Starting HideLoadingOverlay ==="); - this.isInitializationComplete = true; - this.initializationTimeoutTimer?.Stop(); - this.initializationTimeoutTimer?.Dispose(); - - if (this.isSilentStartupMode) - { - var silentLoadingOverlay = this.FindName("LoadingOverlay") as Grid; - if (silentLoadingOverlay != null) - { - silentLoadingOverlay.Visibility = Visibility.Collapsed; - silentLoadingOverlay.Opacity = 0; - } - - this.ClearUIContentBlur(); - this.ApplyAppRefreshPolicy(AppActivityState.TrayHidden); - return; - } - - // Stop spinner animation - var spinnerAnimation = this.FindResource("SpinnerAnimation") as Storyboard; - spinnerAnimation?.Stop(); - System.Diagnostics.Debug.WriteLine("Spinner animation stopped"); - - // Start fade-out animation - var fadeOutAnimation = this.FindResource("FadeOutAnimation") as Storyboard; - if (fadeOutAnimation != null) - { - System.Diagnostics.Debug.WriteLine("Starting fade-out animation"); - fadeOutAnimation.Completed += (s, e) => - { - System.Diagnostics.Debug.WriteLine("Fade-out animation completed, hiding overlay"); - var loadingOverlay = this.FindName("LoadingOverlay") as Grid; - if (loadingOverlay != null) - { - loadingOverlay.Visibility = Visibility.Collapsed; - System.Diagnostics.Debug.WriteLine("Loading overlay visibility set to Collapsed"); - } - - // Disable app content blur and restore style-driven behavior. - this.ClearUIContentBlur(); - System.Diagnostics.Debug.WriteLine("=== Loading overlay hidden successfully ==="); - - // Show elevation warning if needed - this.TryShowElevationWarning(); - this.TryShowStartupMinimizedSuggestion(); - }; - fadeOutAnimation.Begin(); - } - else - { - System.Diagnostics.Debug.WriteLine("WARNING: FadeOutAnimation not found, hiding overlay immediately"); - // Fallback: hide overlay immediately if animation fails - var loadingOverlay = this.FindName("LoadingOverlay") as Grid; - if (loadingOverlay != null) - { - loadingOverlay.Visibility = Visibility.Collapsed; - } - - this.ClearUIContentBlur(); - System.Diagnostics.Debug.WriteLine("=== Loading overlay hidden immediately (fallback) ==="); - - // Show elevation warning if needed - this.TryShowElevationWarning(); - this.TryShowStartupMinimizedSuggestion(); - } - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"=== ERROR hiding loading overlay: {ex} ==="); - // Emergency fallback: hide overlay without animation - try - { - var loadingOverlay = this.FindName("LoadingOverlay") as Grid; - if (loadingOverlay != null) - { - loadingOverlay.Visibility = Visibility.Collapsed; - } - - this.ClearUIContentBlur(); - System.Diagnostics.Debug.WriteLine("Emergency fallback: overlay hidden without animation"); - - // Show elevation warning if needed - this.TryShowElevationWarning(); - this.TryShowStartupMinimizedSuggestion(); - } - catch (Exception fallbackEx) - { - System.Diagnostics.Debug.WriteLine($"Emergency fallback also failed: {fallbackEx}"); - } - } - } - - private void ApplyUIContentBlur(double radius) - { - if (this.UIContent.Effect is not BlurEffect blur) - { - blur = new BlurEffect(); - this.UIContent.Effect = blur; - } - - blur.KernelType = KernelType.Gaussian; - blur.Radius = radius; - } - - private void ClearUIContentBlur() - { - this.UIContent.Effect = null; - } - - private void OnInitializationTimeout(object? sender, ElapsedEventArgs e) - { - this.Dispatcher.InvokeAsync(() => - { - if (!this.isInitializationComplete) - { - this.ShowInitializationError(new TimeoutException("Application initialization timed out after 15 seconds")); - } - }); - } - - private void ShowInitializationError(Exception ex) - { - try - { - this.UpdateLoadingStatus("Initialization failed", ex.Message); - - var result = System.Windows.MessageBox.Show( - $"ThreadPilot failed to initialize properly:\n\n{ex.Message}\n\nDebug log: {this.debugLogPath}\n\nWould you like to retry initialization or close the application?", - "Initialization Error", - MessageBoxButton.YesNo, - MessageBoxImage.Error); - - if (result == MessageBoxResult.Yes) - { - // Retry initialization - marshal to UI thread to prevent cross-thread access exceptions - this.isInitializationComplete = false; - this.initializationTasks.Clear(); - this.UpdateLoadingStatus("Retrying initialization...", "Restarting startup sequence."); - this.LogDebug("=== RETRYING INITIALIZATION ==="); - _ = this.Dispatcher.InvokeAsync(async () => await this.InitializeApplicationAsync()); - } - else - { - // Close application - this.LogDebug("User chose to close application"); - System.Windows.Application.Current.Shutdown(); - } - } - catch (Exception overlayEx) - { - this.LogDebug($"Error showing initialization error: {overlayEx.Message}"); - System.Windows.Application.Current.Shutdown(); - } - } - - private async Task LoadViewModelsAsync() - { - try - { - this.LogDebug("=== Starting LoadViewModelsAsync ==="); - - this.LogDebug("About to initialize ProcessViewModel (including CPU topology)..."); - try - { - // Use the full initialization method instead of just LoadProcesses - var processTask = this.processViewModel.InitializeAsync(); - var processResult = await Task.WhenAny(processTask, Task.Delay(15000)); // 15 second timeout for full initialization - if (processResult != processTask) - { - this.LogDebug("ProcessViewModel.InitializeAsync() timed out, trying fallback..."); - // Fallback: just load processes without full initialization - await this.processViewModel.LoadProcesses(); - this.LogDebug($"ProcessViewModel fallback (LoadProcesses only) completed, process count: {this.processViewModel.Processes?.Count ?? 0}, filtered count: {this.processViewModel.FilteredProcesses?.Count ?? 0}"); - } - else - { - await processTask; // Ensure we get any exceptions - this.LogDebug($"ProcessViewModel initialized successfully (including CPU topology), process count: {this.processViewModel.Processes?.Count ?? 0}, filtered count: {this.processViewModel.FilteredProcesses?.Count ?? 0}"); - } - } - catch (Exception processEx) - { - this.LogDebug($"ProcessViewModel initialization failed: {processEx.Message}, trying fallback..."); - // Fallback: just load processes without full initialization - await this.processViewModel.LoadProcesses(); - this.LogDebug($"ProcessViewModel fallback (LoadProcesses only) completed after exception, process count: {this.processViewModel.Processes?.Count ?? 0}, filtered count: {this.processViewModel.FilteredProcesses?.Count ?? 0}"); - } - - this.LogDebug("About to load PowerPlanViewModel..."); - var powerPlanTask = this.powerPlanViewModel.LoadPowerPlans(); - var powerPlanResult = await Task.WhenAny(powerPlanTask, Task.Delay(5000)); // 5 second timeout - if (powerPlanResult != powerPlanTask) - { - throw new TimeoutException("PowerPlanViewModel.LoadPowerPlans() timed out after 5 seconds"); - } - await powerPlanTask; // Ensure we get any exceptions - this.LogDebug("PowerPlanViewModel loaded successfully"); - - this.LogDebug("Skipping optional diagnostics initialization until the diagnostics page is opened."); - - this.LogDebug("About to load SystemTweaksViewModel..."); - var systemTweaksTask = this.systemTweaksViewModel.LoadCommand.ExecuteAsync(null); - var systemTweaksResult = await Task.WhenAny(systemTweaksTask, Task.Delay(5000)); // 5 second timeout - if (systemTweaksResult != systemTweaksTask) - { - throw new TimeoutException("SystemTweaksViewModel.LoadCommand.ExecuteAsync() timed out after 5 seconds"); - } - await systemTweaksTask; // Ensure we get any exceptions - this.LogDebug("SystemTweaksViewModel loaded successfully"); - - // Initialize keyboard shortcuts after window is loaded - this.Loaded += this.OnWindowLoaded; - this.LogDebug("Keyboard shortcuts event handler attached"); - - // The association view model loads its data automatically in its constructor - this.LogDebug("=== LoadViewModelsAsync completed successfully ==="); - } - catch (Exception ex) - { - this.LogDebug($"=== ERROR in LoadViewModelsAsync: {ex} ==="); - throw; // Re-throw to be handled by initialization error handler - } - } - - private async Task InitializeServicesAsync() - { - this.LogDebug("=== Starting InitializeServicesAsync ==="); - - this.LogDebug("About to initialize settings..."); - await this.InitializeSettingsAsync(); - this.LogDebug("Settings initialized successfully"); - - this.LogDebug("About to initialize system tray..."); - try - { - var systemTrayTask = this.InitializeSystemTrayAsync(); - var systemTrayResult = await Task.WhenAny(systemTrayTask, Task.Delay(5000)); // 5 second timeout - if (systemTrayResult != systemTrayTask) - { - this.LogDebug("System tray initialization timed out, continuing with basic tray setup..."); - // Initialize basic system tray without context menu updates (Initialize() is idempotent) - await this.InitializeBasicSystemTrayAsync(); - this.LogDebug("Basic system tray initialized (without context menu)"); - } - else - { - await systemTrayTask; // Ensure we get any exceptions - this.LogDebug("System tray initialized successfully"); - } - } - catch (Exception systemTrayEx) - { - this.LogDebug($"System tray initialization failed: {systemTrayEx.Message}, using basic tray..."); - // Fallback: basic system tray initialization - try - { - await this.InitializeBasicSystemTrayAsync(); - this.LogDebug("Fallback system tray initialized"); - } - catch (Exception fallbackEx) - { - this.LogDebug($"Even fallback system tray failed: {fallbackEx.Message}"); - } - } - - this.LogDebug("About to initialize notifications..."); - this.InitializeNotifications(); - this.LogDebug("Notifications initialized successfully"); - - this.LogDebug("About to initialize monitoring..."); - await this.InitializeMonitoringAsync(); - this.LogDebug("Monitoring initialized successfully"); - - if (this.skipProcessMonitoringDuringStartup) - { - this.LogDebug("Skipping process monitoring manager startup (temporary bypass enabled)"); - } - else - { - this.LogDebug("About to start process monitoring manager..."); - try - { - var monitoringTask = this.StartProcessMonitoringManagerAsync(); - var timeoutTask = Task.Delay(8000); // 8 second timeout - var completedTask = await Task.WhenAny(monitoringTask, timeoutTask); - - if (completedTask == timeoutTask) - { - this.LogDebug("Process monitoring manager startup timed out after 8 seconds, continuing without monitoring..."); - } - else - { - try - { - await monitoringTask; // Ensure we get any exceptions - this.LogDebug("Process monitoring manager started successfully"); - } - catch (Exception taskEx) - { - this.LogDebug($"Process monitoring manager task failed: {taskEx.Message}"); - } - } - } - catch (Exception monitoringEx) - { - this.LogDebug($"Process monitoring manager startup failed: {monitoringEx.Message}, continuing without monitoring..."); - } - } - - this.LogDebug("=== InitializeServicesAsync completed successfully ==="); - } - - private async Task InitializeSettingsAsync() - { - try - { - await this.settingsService.LoadSettingsAsync(); - - // Apply initial settings - var settings = this.settingsService.Settings; - var useDarkTheme = settings.HasUserThemePreference - ? settings.UseDarkTheme - : this.themeService.GetSystemUsesDarkTheme(); - - if (!settings.HasUserThemePreference && settings.UseDarkTheme != useDarkTheme) - { - settings.UseDarkTheme = useDarkTheme; - await this.settingsService.UpdateSettingsAsync(settings); - } - - this.themeService.ApplyTheme(useDarkTheme); - this.mainWindowViewModel.IsDarkTheme = useDarkTheme; - DwmHelper.ApplyWindowCaptionTheme(this, useDarkTheme); - - if (settings.StartMinimized) - { - this.WindowState = WindowState.Minimized; - } - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to load settings: {ex.Message}"); - } - } - - private async Task InitializeSystemTrayAsync() - { - try - { - this.systemTrayService.Initialize(); - this.systemTrayService.Show(); - - // Subscribe to tray events - this.UnsubscribeSystemTrayEvents(); - this.systemTrayService.ShowMainWindowRequested += this.OnShowMainWindowRequested; - this.systemTrayService.DashboardRequested += this.OnDashboardRequested; - this.systemTrayService.ExitRequested += this.OnExitRequested; - this.systemTrayService.MonitoringToggleRequested += this.OnMonitoringToggleRequested; - this.systemTrayService.SettingsRequested += this.OnSettingsRequested; - this.systemTrayService.PowerPlanChangeRequested += this.OnPowerPlanChangeRequested; - this.systemTrayService.ProfileApplicationRequested += this.OnProfileApplicationRequested; - this.systemTrayService.PerformanceDashboardRequested += this.OnPerformanceDashboardRequested; - - // Update settings and tooltip - this.systemTrayService.UpdateSettings(this.settingsService.Settings); - this.systemTrayService.ApplyTheme(this.themeService.IsDarkTheme); - this.systemTrayService.UpdateTooltip("ThreadPilot - Process & Power Plan Manager"); - - // Initialize system tray context menu with current data - await this.UpdateSystemTrayContextMenuAsync(); - - // Start periodic system tray updates - this.StartSystemTrayUpdateTimer(); - } - catch (Exception ex) - { - // Log error but don't fail startup - System.Diagnostics.Debug.WriteLine($"Failed to initialize system tray: {ex.Message}"); - } - } - - private async Task InitializeBasicSystemTrayAsync() - { - try - { - this.LogDebug("Initializing basic system tray (without full context menu)..."); - - // Initialize basic tray icon (this is idempotent) - this.systemTrayService.Initialize(); - this.systemTrayService.Show(); - - // Subscribe to essential tray events only - this.UnsubscribeSystemTrayEvents(); - this.systemTrayService.ShowMainWindowRequested += this.OnShowMainWindowRequested; - this.systemTrayService.DashboardRequested += this.OnDashboardRequested; - this.systemTrayService.ExitRequested += this.OnExitRequested; - - // Update basic settings and tooltip - this.systemTrayService.UpdateSettings(this.settingsService.Settings); - this.systemTrayService.ApplyTheme(this.themeService.IsDarkTheme); - this.systemTrayService.UpdateTooltip("ThreadPilot - Process & Power Plan Manager (Basic Mode)"); - - this.LogDebug("Basic system tray initialization completed"); - } - catch (Exception ex) - { - this.LogDebug($"Failed to initialize basic system tray: {ex.Message}"); - throw; - } - } - - private void OnShowMainWindowRequested(object? sender, EventArgs e) - { - this.ShowWindowFromTray(); - } - - private void OnExitRequested(object? sender, EventArgs e) - { - TaskSafety.FireAndForget(this.OnExitRequestedAsync(), ex => - { - this.LogDebug($"OnExitRequested failed: {ex.Message}"); - }); - } - - private async Task OnExitRequestedAsync() - { - await this.PerformGracefulShutdownAsync(); - } - - private void OnDashboardRequested(object? sender, EventArgs e) - { - this.ShowWindowFromTray("Process"); - } - - /// - /// Performs graceful shutdown with cleanup of all applied optimizations - /// Similar to CPU Set Setter's ExitAppGracefully. - /// - private async Task PerformGracefulShutdownAsync(bool validateUnsavedChanges = true) - { - if (this.isPerformingShutdown) - { - return; - } - - if (validateUnsavedChanges && !await this.HandleUnsavedSettingsBeforeExitAsync()) - { - return; - } - - this.isPerformingShutdown = true; - - try - { - this.LogDebug("Starting graceful shutdown..."); - this.selfResourceManagementService.RestoreForegroundMode(); - - // 1. Stop monitoring services - try - { - this.LogDebug("Stopping process monitoring manager..."); - await this.processMonitorManagerService.StopAsync(); - this.LogDebug("Process monitoring manager stopped"); - } - catch (Exception ex) - { - this.LogDebug($"Error stopping process monitoring: {ex.Message}"); - } - - // 2. Cleanup applied CPU masks (like CPU Set Setter's ClearAllProcessMasksNoSave) - if (this.settingsService.Settings.ClearMasksOnClose) - { - try - { - this.LogDebug("Clearing all applied CPU masks..."); - var processService = this.serviceProvider.GetRequiredService(); - await processService.ClearAllAppliedMasksAsync(); - this.LogDebug("CPU masks cleared"); - } - catch (Exception ex) - { - this.LogDebug($"Error clearing CPU masks: {ex.Message}"); - } - - // Also reset priorities - try - { - this.LogDebug("Resetting all process priorities..."); - var processService = this.serviceProvider.GetRequiredService(); - await processService.ResetAllProcessPrioritiesAsync(); - this.LogDebug("Process priorities reset"); - } - catch (Exception ex) - { - this.LogDebug($"Error resetting priorities: {ex.Message}"); - } - } - - // 3. Restore default power plan if configured - if (this.settingsService.Settings.RestoreDefaultPowerPlanOnExit) - { - try - { - var targetDefaultPowerPlanGuid = this.settingsService.Settings.DefaultPowerPlanId; - - try - { - await this.processPowerPlanAssociationService.LoadConfigurationAsync(); - var (associationDefaultPowerPlanGuid, _) = await this.processPowerPlanAssociationService.GetDefaultPowerPlanAsync(); - if (!string.IsNullOrWhiteSpace(associationDefaultPowerPlanGuid)) - { - targetDefaultPowerPlanGuid = associationDefaultPowerPlanGuid; - } - } - catch (Exception associationEx) - { - this.LogDebug($"Could not read default power plan from association config: {associationEx.Message}"); - } - - if (string.IsNullOrWhiteSpace(targetDefaultPowerPlanGuid)) - { - this.LogDebug("No default power plan configured for restore on exit"); - } - else - { - this.LogDebug("Restoring default power plan..."); - var powerPlanService = this.serviceProvider.GetRequiredService(); - await powerPlanService.SetActivePowerPlanByGuidAsync(targetDefaultPowerPlanGuid); - this.LogDebug("Default power plan restored"); - } - } - catch (Exception ex) - { - this.LogDebug($"Error restoring power plan: {ex.Message}"); - } - } - - // 4. Save settings - try - { - this.LogDebug("Saving settings..."); - await this.settingsService.SaveSettingsAsync(); - this.LogDebug("Settings saved"); - } - catch (Exception ex) - { - this.LogDebug($"Error saving settings: {ex.Message}"); - } - - // 5. Dispose tray service - try - { - this.LogDebug("Disposing system tray..."); - this.systemTrayService.Dispose(); - this.LogDebug("System tray disposed"); - } - catch (Exception ex) - { - this.LogDebug($"Error disposing tray: {ex.Message}"); - } - - this.LogDebug("Graceful shutdown completed"); - } - catch (Exception ex) - { - this.LogDebug($"Error during graceful shutdown: {ex.Message}"); - } - finally - { - // Ensure application exits - System.Windows.Application.Current.Shutdown(); - } - } - - private async Task HandleUnsavedSettingsBeforeExitAsync() - { - if (!this.settingsViewModel.HasPendingChanges) - { - return true; - } - - var result = await this.ShowUnsavedSettingsDialogAsync( - "You have unsaved changes in Settings. Save before exiting, discard the changes, or cancel to return to ThreadPilot."); - - if (result == MessageBoxResult.Cancel) - { - return false; - } - - if (result == MessageBoxResult.Yes) - { - var saved = await this.settingsViewModel.SaveIfDirtyAsync(); - return saved; - } - - await this.settingsViewModel.DiscardPendingChangesAsync(); - return true; - } - - private async Task HandleWindowCloseAsync() - { - if (!await this.HandleUnsavedSettingsBeforeExitAsync()) - { - return; - } - - if (this.settingsService.Settings.CloseToTray) - { - this.WindowState = WindowState.Minimized; - return; - } - - await this.PerformGracefulShutdownAsync(validateUnsavedChanges: false); - } - - private void OnMonitoringToggleRequested(object? sender, MonitoringToggleEventArgs e) - { - TaskSafety.FireAndForget(this.OnMonitoringToggleRequestedAsync(e), ex => - { - this.LogDebug($"OnMonitoringToggleRequested failed: {ex.Message}"); - }); - } - - private async Task OnMonitoringToggleRequestedAsync(MonitoringToggleEventArgs e) - { - try - { - if (e.EnableMonitoring) - { - await this.processMonitorManagerService.StartAsync(); - await this.notificationService.ShowSuccessNotificationAsync( - "Automation Monitoring Enabled", - "Process rule automation and power plan management have been enabled."); - } - else - { - await this.processMonitorManagerService.StopAsync(); - await this.notificationService.ShowNotificationAsync( - "Automation Monitoring Disabled", - "Process rule automation and power plan management have been disabled.", - Models.NotificationType.Warning); - } - } - catch (Exception ex) - { - await this.notificationService.ShowErrorNotificationAsync( - "Automation Monitoring Error", - "Failed to toggle automation monitoring.", - ex); - } - } - - private void OnSettingsRequested(object? sender, EventArgs e) - { - try - { - this.ShowWindowFromTray("Settings"); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to open settings: {ex.Message}"); - } - } - - private void OnPowerPlanChangeRequested(object? sender, PowerPlanChangeRequestedEventArgs e) - { - TaskSafety.FireAndForget(this.OnPowerPlanChangeRequestedAsync(e), ex => - { - this.LogDebug($"OnPowerPlanChangeRequested failed: {ex.Message}"); - }); - } - - private async Task OnPowerPlanChangeRequestedAsync(PowerPlanChangeRequestedEventArgs e) - { - try - { - var powerPlanService = this.serviceProvider.GetRequiredService(); - var success = await powerPlanService.SetActivePowerPlanByGuidAsync(e.PowerPlanGuid); - - if (success) - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot", - $"Power plan changed to {e.PowerPlanName}", 2000); - } - else - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot Error", - $"Failed to change power plan to {e.PowerPlanName}", 3000); - } - } - catch (Exception ex) - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot Error", - $"Error changing power plan: {ex.Message}", 3000); - } - } - - private void OnProfileApplicationRequested(object? sender, ProfileApplicationRequestedEventArgs e) - { - TaskSafety.FireAndForget(this.OnProfileApplicationRequestedAsync(e), ex => - { - this.LogDebug($"OnProfileApplicationRequested failed: {ex.Message}"); - }); - } - - private async Task OnProfileApplicationRequestedAsync(ProfileApplicationRequestedEventArgs e) - { - try - { - var processService = this.serviceProvider.GetRequiredService(); - var selectedProcess = this.processViewModel.SelectedProcess; - - if (selectedProcess != null) - { - var success = await processService.LoadProcessProfile(e.ProfileName, selectedProcess); - - if (success) - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot", - $"Profile '{e.ProfileName}' applied to {selectedProcess.Name}", 2000); - } - else - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot Error", - $"Failed to apply profile '{e.ProfileName}'", 3000); - } - } - else - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot", - "No process selected for profile application", 2000); - } - } - catch (Exception ex) - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot Error", - $"Error applying profile: {ex.Message}", 3000); - } - } - - private void OnPerformanceDashboardRequested(object? sender, EventArgs e) - { - try - { - this.ShowWindowFromTray("Performance"); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to open performance dashboard: {ex.Message}"); - } - } - - private async Task InitializeKeyboardShortcutsAsync() - { - try - { - // Set window handle for global hotkey registration - var windowInteropHelper = new System.Windows.Interop.WindowInteropHelper(this); - var handle = windowInteropHelper.EnsureHandle(); - - if (this.keyboardShortcutService is KeyboardShortcutService service) - { - service.SetWindowHandle(handle); - } - - // Subscribe to shortcut activation events - this.keyboardShortcutService.ShortcutActivated -= this.OnShortcutActivated; - this.keyboardShortcutService.ShortcutActivated += this.OnShortcutActivated; - - // Load shortcuts from settings - with error handling - try - { - await this.keyboardShortcutService.LoadShortcutsFromSettingsAsync(); - } - catch (Exception settingsEx) - { - System.Diagnostics.Debug.WriteLine($"Failed to load shortcuts from settings, using defaults: {settingsEx.Message}"); - // Continue with default shortcuts if settings loading fails - } - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to initialize keyboard shortcuts: {ex.Message}"); - // Don't let keyboard shortcut initialization failure prevent the app from starting - } - } - - private void OnShortcutActivated(object? sender, ShortcutActivatedEventArgs e) - { - try - { - System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - await this.HandleShortcutActionAsync(e.ActionName); - }); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error handling shortcut {e.ActionName}: {ex.Message}"); - } - } - - private async Task HandleShortcutActionAsync(string actionName) - { - switch (actionName) - { - case ShortcutActions.ShowMainWindow: - if (this.IsVisible && this.WindowState != WindowState.Minimized) - { - this.ShowInTaskbar = false; - this.Hide(); - this.ApplyAppRefreshPolicy(AppActivityState.TrayHidden); - } - else - { - this.ShowWindowFromTray(); - } - break; - - case ShortcutActions.ToggleMonitoring: - // Toggle monitoring - implementation can be added later - await this.notificationService.ShowNotificationAsync("Keyboard Shortcut", "Toggle monitoring shortcut activated"); - break; - - case ShortcutActions.PowerPlanHighPerformance: - // Switch to high performance power plan - implementation can be added later - await this.notificationService.ShowNotificationAsync("Keyboard Shortcut", "High Performance power plan shortcut activated"); - break; - - case ShortcutActions.OpenTweaks: - this.ShowWindowFromTray("Tweaks"); - break; - - case ShortcutActions.OpenSettings: - this.ShowWindowFromTray("Settings"); - break; - - case ShortcutActions.RefreshProcessList: - // Refresh process list - implementation can be added later - await this.notificationService.ShowNotificationAsync("Keyboard Shortcut", "Refresh process list shortcut activated"); - break; - - case ShortcutActions.ExitApplication: - this.Close(); - break; - } - } - - private async Task UpdateSystemTrayContextMenuAsync() - { - try - { - await this.systemTrayStatusUpdater.UpdateContextMenuAsync(this.systemTrayService); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to update system tray context menu: {ex.Message}"); - } - } - - private void StartSystemTrayUpdateTimer() - { - try - { - this.systemTrayUpdateTimer?.Stop(); - this.systemTrayUpdateTimer?.Dispose(); - this.systemTrayUpdateTimer = null; - - if (!this.systemTrayStatusUpdater.ShouldRunPerformanceStatusUpdates) - { - return; - } - - this.systemTrayUpdateFailureStreak = 0; - this.systemTrayUpdateTimer = new System.Timers.Timer(SystemTrayUpdateBaseIntervalMs); - this.systemTrayUpdateTimer.Elapsed += async (s, e) => - { - if (this.isSystemTrayUpdatesSuspended) - { - return; - } - - if (Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 1) == 1) - { - return; - } - - try - { - var updateSucceeded = await this.UpdateSystemTrayStatusAsync(); - this.ApplySystemTrayUpdateBackoff(updateSucceeded); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error in system tray update timer: {ex.Message}"); - this.ApplySystemTrayUpdateBackoff(updateSucceeded: false); - } - finally - { - Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 0); - } - }; - this.systemTrayUpdateTimer.AutoReset = true; - - if (!this.isSystemTrayUpdatesSuspended && - this.IsVisible && - this.WindowState != WindowState.Minimized) - { - this.systemTrayUpdateTimer.Start(); - } - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to start system tray update timer: {ex.Message}"); - } - } - - private void ApplySystemTrayUpdateBackoff(bool updateSucceeded) - { - if (this.systemTrayUpdateTimer == null) - { - return; - } - - if (updateSucceeded) - { - this.systemTrayUpdateFailureStreak = 0; - if (Math.Abs(this.systemTrayUpdateTimer.Interval - SystemTrayUpdateBaseIntervalMs) > 1) - { - this.systemTrayUpdateTimer.Interval = SystemTrayUpdateBaseIntervalMs; - } - - return; - } - - this.systemTrayUpdateFailureStreak = Math.Min(4, this.systemTrayUpdateFailureStreak + 1); - var exponentialDelay = SystemTrayUpdateBaseIntervalMs * Math.Pow(2, this.systemTrayUpdateFailureStreak); - var nextIntervalMs = Math.Min(SystemTrayUpdateMaxIntervalMs, exponentialDelay); - - if (Math.Abs(this.systemTrayUpdateTimer.Interval - nextIntervalMs) > 1) - { - this.systemTrayUpdateTimer.Interval = nextIntervalMs; - } - } - - private async Task UpdateSystemTrayStatusAsync() - { - try - { - return await this.systemTrayStatusUpdater.UpdateStatusAsync( - this.systemTrayService, - action => this.Dispatcher.InvokeAsync(action).Task); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to update system tray status: {ex.Message}"); - return false; - } - } - - private void InitializeNotifications() - { - try - { - // Subscribe to settings changes to update notification service - this.settingsService.SettingsChanged += this.OnSettingsChanged; - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to initialize notifications: {ex.Message}"); - } - } - - private async Task InitializeMonitoringAsync() - { - try - { - // Subscribe to monitoring status changes - this.processMonitorService.MonitoringStatusChanged += this.OnMonitoringStatusChanged; - - // Update tray with initial monitoring status - this.systemTrayService.UpdateMonitoringStatus( - this.processMonitorService.IsMonitoring, - this.processMonitorService.IsWmiAvailable); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to initialize monitoring: {ex.Message}"); - } - } - - private async Task StartProcessMonitoringManagerAsync() - { - try - { - this.LogDebug("Subscribing to process monitor manager events..."); - // Subscribe to process monitor manager events - this.processMonitorManagerService.ServiceStatusChanged += this.OnProcessMonitorManagerStatusChanged; - - this.LogDebug("Starting process monitoring manager service..."); - // Start the process monitoring manager service with internal timeout - var startTask = this.processMonitorManagerService.StartAsync(); - var timeoutTask = Task.Delay(6000); // 6 second internal timeout - var completedTask = await Task.WhenAny(startTask, timeoutTask); - - if (completedTask == timeoutTask) - { - this.LogDebug("ProcessMonitorManagerService.StartAsync() timed out internally"); - throw new TimeoutException("Process monitoring manager service startup timed out"); - } - - await startTask; // Get any exceptions - this.LogDebug("Process monitoring manager service started, showing notification..."); - - if (!this.isSilentStartupMode) - { - await this.notificationService.ShowSuccessNotificationAsync( - "ThreadPilot Started", - "Process monitoring and power plan management is now active"); - } - - this.LogDebug(this.isSilentStartupMode - ? "Startup success notification skipped for silent startup" - : "Success notification shown"); - } - catch (Exception ex) - { - this.LogDebug($"Failed to start process monitoring manager: {ex.Message}"); - try - { - await this.notificationService.ShowErrorNotificationAsync( - "Startup Error", - "Failed to start process monitoring manager", - ex); - } - catch (Exception notificationEx) - { - this.LogDebug($"Failed to show error notification: {notificationEx.Message}"); - } - throw; // Re-throw to be caught by outer handler - } - } - - private void OnSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) - { - // Update tray service with new settings - this.systemTrayService.UpdateSettings(e.NewSettings); - - var useDarkTheme = e.NewSettings.HasUserThemePreference - ? e.NewSettings.UseDarkTheme - : this.themeService.GetSystemUsesDarkTheme(); - - this.themeService.ApplyTheme(useDarkTheme); - this.mainWindowViewModel.IsDarkTheme = useDarkTheme; - this.systemTrayService.ApplyTheme(useDarkTheme); - DwmHelper.ApplyWindowCaptionTheme(this, useDarkTheme); - this.ApplySelfResourcePolicy(this.lastAppliedRefreshState ?? this.GetForegroundActivityState(), e.NewSettings); - } - - private void OnMonitoringStatusChanged(object? sender, MonitoringStatusEventArgs e) - { - // Update tray icon and status - this.systemTrayService.UpdateMonitoringStatus(e.IsMonitoring, e.IsWmiAvailable); - - // Show notification if there's an error - if (e.Error != null && this.settingsService.Settings.EnableErrorNotifications) - { - this.notificationService.ShowErrorNotificationAsync( - "Automation Monitoring Error", - e.StatusMessage ?? "An error occurred with automation monitoring.", - e.Error); - } - } - - private void OnProcessMonitorManagerStatusChanged(object? sender, ServiceStatusEventArgs e) - { - // Update main window status - this.mainWindowViewModel.UpdateProcessMonitoringStatus(e.IsRunning, e.Status); - - // Show notification for critical status changes - if (!e.IsRunning && e.Error != null && this.settingsService.Settings.EnableErrorNotifications) - { - this.notificationService.ShowErrorNotificationAsync( - "Automation Monitoring Error", - e.Details ?? "Automation monitoring encountered an error.", - e.Error); - } - } - - protected override void OnStateChanged(EventArgs e) - { - try - { - if (this.WindowState == WindowState.Minimized) - { - var activityState = AppActivityState.Minimized; - if (this.settingsService.Settings.MinimizeToTray) - { - this.ShowInTaskbar = false; - this.Hide(); - this.systemTrayService.Show(); - activityState = AppActivityState.TrayHidden; - } - - this.ApplyAppRefreshPolicy(activityState); - } - else if (this.WindowState == WindowState.Normal || this.WindowState == WindowState.Maximized) - { - this.ShowInTaskbar = true; - this.EnsureDashboardVisibleOnScreen(); - - this.ApplyAppRefreshPolicy(this.GetForegroundActivityState()); - } - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error handling window state change: {ex.Message}"); - } - - base.OnStateChanged(e); - } - - private void SuspendHiddenModeRefreshes() - { - this.isSystemTrayUpdatesSuspended = true; - this.systemTrayUpdateTimer?.Stop(); - Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 0); - this.powerPlanViewModel.PauseAutoRefresh(); - } - - private void ResumeForegroundRefreshes() - { - this.isSystemTrayUpdatesSuspended = false; - this.systemTrayUpdateFailureStreak = 0; - this.systemTrayUpdateTimer?.Stop(); - - if (!this.systemTrayStatusUpdater.ShouldRunPerformanceStatusUpdates) - { - return; - } - - if (this.systemTrayUpdateTimer != null) - { - this.systemTrayUpdateTimer.Interval = SystemTrayUpdateBaseIntervalMs; - } - this.systemTrayUpdateTimer?.Start(); - - _ = this.Dispatcher.InvokeAsync(async () => - { - try - { - var updateSucceeded = await this.UpdateSystemTrayStatusAsync(); - this.ApplySystemTrayUpdateBackoff(updateSucceeded); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to refresh tray status after resume: {ex.Message}"); - } - }); - } - - private AppActivityState GetForegroundActivityState() - { - if (this.ProcessManagementTab.Visibility == Visibility.Visible) - { - return AppActivityState.ForegroundProcessView; - } - - return this.PerformanceViewControl.Visibility == Visibility.Visible - ? AppActivityState.ForegroundDiagnosticsView - : AppActivityState.ForegroundOtherTab; - } - - private void ApplyAppRefreshPolicy(AppActivityState state) - { - if (!AppRefreshPolicy.ShouldApplyTransition(this.lastAppliedRefreshState, state)) - { - return; - } - - this.lastAppliedRefreshState = state; - - var decision = AppRefreshPolicy.Evaluate(state); - var isHiddenState = state is AppActivityState.Minimized or AppActivityState.TrayHidden; - var isProcessViewActive = state == AppActivityState.ForegroundProcessView; - - if (isHiddenState) - { - this.isSystemTrayUpdatesSuspended = true; - this.systemTrayUpdateTimer?.Stop(); - Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 0); - } - else - { - this.ResumeForegroundRefreshes(); - } - - this.processViewModel.SetProcessViewActive(isProcessViewActive); - this.processViewModel.ApplyRefreshDecision(decision); - - if (decision.PowerPlanUiRefreshEnabled) - { - this.powerPlanViewModel.ResumeAutoRefresh(refreshImmediately: state != AppActivityState.ForegroundOtherTab); - } - else - { - this.powerPlanViewModel.PauseAutoRefresh(); - } - - if (decision.PerformanceUiMonitoringEnabled) - { - _ = this.GetPerformanceViewModel().ActivateDiagnosticsAsync(); - } - else if (this.performanceViewModel != null) - { - _ = this.performanceViewModel.SuspendBackgroundMonitoringAsync(); - } - - this.ApplySelfResourcePolicy(state); - } - - private void ApplySelfResourcePolicy(AppActivityState state, ApplicationSettingsModel? settings = null) - { - var currentSettings = settings ?? this.settingsService.Settings; - var isHiddenState = state is AppActivityState.Minimized or AppActivityState.TrayHidden; - - if (SelfResourcePolicy.ShouldApplyLowImpactMode(isHiddenState, currentSettings.EnableSelfLowImpactMode)) - { - this.selfResourceManagementService.ApplyLowImpactMode(SelfResourcePolicy.ShouldLimitAffinity( - isHiddenState, - currentSettings.EnableSelfLowImpactMode, - currentSettings.EnableSelfAffinityLimit)); - return; - } - - this.selfResourceManagementService.RestoreForegroundMode(); - } - - protected override void OnSourceInitialized(EventArgs e) - { - base.OnSourceInitialized(e); - try - { - DwmHelper.ApplyWindowCaptionTheme(this, this.themeService.IsDarkTheme); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Failed to apply window caption theme: {ex.Message}"); - } - - this.EnsureDashboardVisibleOnScreen(); - } - - [System.Diagnostics.Conditional("DEBUG")] - private void LogDebug(string message) - { - try - { - var timestampedMessage = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} [MainWindow] {message}"; - System.Diagnostics.Debug.WriteLine(timestampedMessage); - File.AppendAllText(this.debugLogPath, timestampedMessage + Environment.NewLine); - } - catch - { - // Swallow logging failures to avoid impacting runtime behavior - } - } - - private void OnWindowLoaded(object? sender, RoutedEventArgs e) - { - TaskSafety.FireAndForget(this.OnWindowLoadedAsync(), ex => - { - this.LogDebug($"OnWindowLoaded failed: {ex.Message}"); - }); - } - - private async Task OnWindowLoadedAsync() - { - this.Loaded -= this.OnWindowLoaded; - this.EnsureDashboardVisibleOnScreen(); - await this.InitializeKeyboardShortcutsAsync(); - } - - private void OnOpenRulesRequested(object? sender, EventArgs e) - { - this.SelectMainTab("Rules"); - } - - private void ShowWindowFromTray(string? tabTag = null) - { - this.ShowInTaskbar = true; - this.EnsureDashboardVisibleOnScreen(); - - if (!this.IsVisible) - { - this.Show(); - } - else - { - this.Visibility = Visibility.Visible; - } - - if (this.WindowState == WindowState.Minimized) - { - this.WindowState = WindowState.Normal; - } - - this.EnsureDashboardVisibleOnScreen(); - this.ShowInTaskbar = true; - - if (tabTag != null) - { - this.SelectMainTab(tabTag); - } - - // Force foreground restoration when invoked from tray context menu. - this.Topmost = true; - this.Activate(); - this.Focus(); - this.Topmost = false; - this.Activate(); - this.Focus(); - - var processViewWillBeActive = tabTag == null - ? this.ProcessManagementTab.Visibility == Visibility.Visible - : string.Equals(tabTag, "Process", StringComparison.Ordinal); - - this.ApplyAppRefreshPolicy(processViewWillBeActive - ? AppActivityState.ForegroundProcessView - : AppActivityState.ForegroundOtherTab); - } - - internal bool EnsureDashboardVisibleOnScreen() - { - return WindowPlacementHelper.TryCorrectWindowPlacement(this); - } - - private void SelectMainTab(string tag) - { - if (string.IsNullOrEmpty(tag)) - { - return; - } - - if (string.Equals(tag, "Performance", StringComparison.Ordinal)) - { - this.GetPerformanceViewModel(); - } - - this.ApplySectionVisibility(tag); - - if (string.Equals(tag, "Performance", StringComparison.Ordinal)) - { - this.TryShowPerformanceIntro(); - } - } - - private void TryShowPerformanceIntro() - { - if (this.isPerformanceIntroVisible || !this.isInitializationComplete) - { - return; - } - - try - { - var settings = this.settingsService.Settings; - if (settings.HasSeenPerformanceIntro) - { - return; - } - - this.isPerformanceIntroVisible = true; - this.PerformanceIntroOverlay.Visibility = Visibility.Visible; - } - catch (Exception ex) - { - this.LogDebug($"Failed to show Performance intro overlay: {ex.Message}"); - } - } - - private void TryShowStartupMinimizedSuggestion() - { - if (!this.showStartupMinimizedSuggestionOnReady - || this.isSilentStartupMode - || !this.isInitializationComplete - || this.isElevationWarningVisible) - { - return; - } - - try - { - if (!StartupMinimizedSuggestionPolicy.ShouldShow( - this.settingsService.Settings, - StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false))) - { - return; - } - - this.StartupMinimizedSuggestionOverlay.Visibility = Visibility.Visible; - } - catch (Exception ex) - { - this.LogDebug($"Failed to show startup minimized suggestion: {ex.Message}"); - } - } - - private async Task PersistStartupMinimizedSuggestionSeenAsync() - { - try - { - var settings = this.settingsService.Settings; - if (settings.HasSeenStartupMinimizedSuggestion) - { - return; - } - - settings.HasSeenStartupMinimizedSuggestion = true; - await this.settingsService.UpdateSettingsAsync(settings); - } - catch (Exception ex) - { - this.LogDebug($"Failed to persist startup minimized suggestion state: {ex.Message}"); - } - } - - private void HideStartupMinimizedSuggestion() - { - this.showStartupMinimizedSuggestionOnReady = false; - this.StartupMinimizedSuggestionOverlay.Visibility = Visibility.Collapsed; - } - - private async void StartupSuggestionOpenSettings_Click(object sender, RoutedEventArgs e) - { - await this.PersistStartupMinimizedSuggestionSeenAsync(); - this.HideStartupMinimizedSuggestion(); - this.SelectMainTab("Settings"); - } - - private async void StartupSuggestionDontShowAgain_Click(object sender, RoutedEventArgs e) - { - await this.PersistStartupMinimizedSuggestionSeenAsync(); - this.HideStartupMinimizedSuggestion(); - } - - private void HidePerformanceIntro() - { - this.isPerformanceIntroVisible = false; - this.PerformanceIntroOverlay.Visibility = Visibility.Collapsed; - } - - private Task ShowUnsavedSettingsDialogAsync(string message) - { - if (!this.Dispatcher.CheckAccess()) - { - return this.Dispatcher.InvokeAsync(() => this.ShowUnsavedSettingsDialogAsync(message)).Task.Unwrap(); - } - - if (this.unsavedSettingsDialogCompletionSource != null) - { - return Task.FromResult(MessageBoxResult.Cancel); - } - - this.UnsavedSettingsDialogMessage.Text = message; - this.unsavedSettingsDialogCompletionSource = new TaskCompletionSource( - TaskCreationOptions.RunContinuationsAsynchronously); - this.UnsavedSettingsOverlay.Visibility = Visibility.Visible; - return this.unsavedSettingsDialogCompletionSource.Task; - } - - private void CompleteUnsavedSettingsDialog(MessageBoxResult result) - { - var completionSource = this.unsavedSettingsDialogCompletionSource; - if (completionSource == null) - { - return; - } - - this.unsavedSettingsDialogCompletionSource = null; - this.UnsavedSettingsOverlay.Visibility = Visibility.Collapsed; - completionSource.TrySetResult(result); - } - - private void UnsavedSettingsSave_Click(object sender, RoutedEventArgs e) - { - this.CompleteUnsavedSettingsDialog(MessageBoxResult.Yes); - } - - private void UnsavedSettingsDiscard_Click(object sender, RoutedEventArgs e) - { - this.CompleteUnsavedSettingsDialog(MessageBoxResult.No); - } - - private void UnsavedSettingsCancel_Click(object sender, RoutedEventArgs e) - { - this.CompleteUnsavedSettingsDialog(MessageBoxResult.Cancel); - } - - private async void PerformanceIntroContinue_Click(object sender, RoutedEventArgs e) - { - try - { - var settings = this.settingsService.Settings; - if (!settings.HasSeenPerformanceIntro) - { - settings.HasSeenPerformanceIntro = true; - await this.settingsService.UpdateSettingsAsync(settings); - } - } - catch (Exception ex) - { - this.LogDebug($"Failed to persist Performance intro state: {ex.Message}"); - } - finally - { - this.HidePerformanceIntro(); - } - } - - // Elevation Warning Modal Management - private bool isElevationWarningVisible = false; - private double previousElevationAppContentOpacity = 1; - private double previousElevationBackdropBlurRadius = 0; - - private void TryShowElevationWarning() - { - if (this.isElevationWarningVisible || !this.isInitializationComplete) - { - return; - } - - try - { - var settings = this.settingsService.Settings; - - // Only show if user is not admin AND hasn't dismissed the warning yet - if (this.elevationService?.IsRunningAsAdministrator() == true || settings.HasSeenElevationWarning) - { - return; - } - - this.isElevationWarningVisible = true; - var elevationOverlay = this.FindName("ElevationWarningOverlay") as Grid; - if (elevationOverlay != null) - { - elevationOverlay.Visibility = Visibility.Visible; - } - - // Apply blur and disable interaction - this.previousElevationAppContentOpacity = this.UIContent.Opacity; - this.UIContent.IsHitTestVisible = false; - this.UIContent.Opacity = 0.74; - - var elevationBlur = this.FindName("ElevationWarningBlur") as BlurEffect; - if (elevationBlur != null) - { - this.previousElevationBackdropBlurRadius = elevationBlur.Radius; - elevationBlur.Radius = 16; - } - } - catch (Exception ex) - { - this.LogDebug($"Failed to show elevation warning overlay: {ex.Message}"); - } - } - - private void HideElevationWarning() - { - this.isElevationWarningVisible = false; - var elevationOverlay = this.FindName("ElevationWarningOverlay") as Grid; - if (elevationOverlay != null) - { - elevationOverlay.Visibility = Visibility.Collapsed; - } - - // Restore interaction and remove blur - this.UIContent.IsHitTestVisible = true; - this.UIContent.Opacity = this.previousElevationAppContentOpacity; - - var elevationBlur = this.FindName("ElevationWarningBlur") as BlurEffect; - if (elevationBlur != null) - { - elevationBlur.Radius = this.previousElevationBackdropBlurRadius; - } - - this.TryShowStartupMinimizedSuggestion(); - } - - private void ElevationWarningDismiss_Click(object sender, RoutedEventArgs e) - { - try - { - var settings = this.settingsService.Settings; - if (!settings.HasSeenElevationWarning) - { - settings.HasSeenElevationWarning = true; - _ = this.settingsService.UpdateSettingsAsync(settings); - } - } - catch (Exception ex) - { - this.LogDebug($"Failed to persist elevation warning dismiss state: {ex.Message}"); - } - finally - { - this.HideElevationWarning(); - } - } - - private async void ElevationWarningRequestElevation_Click(object sender, RoutedEventArgs e) - { - try - { - if (this.elevationService != null) - { - var success = await this.elevationService.RequestElevationIfNeeded(); - if (success) - { - System.Diagnostics.Debug.WriteLine("Elevation requested successfully from warning dialog"); - } - } - } - catch (Exception ex) - { - this.LogDebug($"Failed to request elevation from warning dialog: {ex.Message}"); - } - finally - { - // Hide the warning after attempting elevation (regardless of success) - this.HideElevationWarning(); - } - } - - private void ApplySectionVisibility(string tag) - { - this.ProcessManagementTab.Visibility = tag == "Process" ? Visibility.Visible : Visibility.Collapsed; - this.CoreMasksTab.Visibility = tag == "Masks" ? Visibility.Visible : Visibility.Collapsed; - this.PowerPlanViewControl.Visibility = tag == "Power" ? Visibility.Visible : Visibility.Collapsed; - this.AssociationView.Visibility = tag == "Rules" ? Visibility.Visible : Visibility.Collapsed; - this.PerformanceViewControl.Visibility = tag == "Performance" ? Visibility.Visible : Visibility.Collapsed; - this.LogViewerViewControl.Visibility = tag == "Logs" ? Visibility.Visible : Visibility.Collapsed; - this.SystemTweaksView.Visibility = tag == "Tweaks" ? Visibility.Visible : Visibility.Collapsed; - this.SettingsView.Visibility = tag == "Settings" ? Visibility.Visible : Visibility.Collapsed; - - this.NavProcess.IsActive = tag == "Process"; - this.NavMasks.IsActive = tag == "Masks"; - this.NavPower.IsActive = tag == "Power"; - this.NavRules.IsActive = tag == "Rules"; - this.NavPerf.IsActive = tag == "Performance"; - this.NavLogs.IsActive = tag == "Logs"; - this.NavTweaks.IsActive = tag == "Tweaks"; - this.NavSettings.IsActive = tag == "Settings"; - - if (!this.IsVisible) - { - this.ApplyAppRefreshPolicy(AppActivityState.TrayHidden); - return; - } - - if (this.WindowState == WindowState.Minimized) - { - this.ApplyAppRefreshPolicy(AppActivityState.Minimized); - return; - } - - var activityState = tag switch - { - "Process" => AppActivityState.ForegroundProcessView, - "Performance" => AppActivityState.ForegroundDiagnosticsView, - _ => AppActivityState.ForegroundOtherTab, - }; - - this.ApplyAppRefreshPolicy(activityState); - } - - private void NavMenuItem_Click(object sender, RoutedEventArgs e) - { - TaskSafety.FireAndForget(this.NavMenuItem_ClickAsync(sender, e), ex => - { - this.LogDebug($"NavMenuItem_Click failed: {ex.Message}"); - }); - } - - private async Task NavMenuItem_ClickAsync(object sender, RoutedEventArgs e) - { - if (!await this.navigationBehavior.TryEnterAsync()) - { - return; - } - - try - { - var invokedItem = sender as Wpf.Ui.Controls.NavigationViewItem; - if (invokedItem == null) - { - return; - } - - var tag = invokedItem.Tag?.ToString(); - if (string.IsNullOrEmpty(tag)) - { - return; - } - - if (!this.IsLoaded) - { - return; - } - - var canNavigate = await NavigationBehavior.EnsureCanNavigateAsync( - tag, - this.settingsViewModel, - () => this.ShowUnsavedSettingsDialogAsync( - "You have unsaved changes in Settings. Save before switching tabs, discard the changes, or cancel to stay on Settings.")); - if (!canNavigate) - { - return; - } - - if (string.Equals(tag, "Performance", StringComparison.Ordinal)) - { - this.GetPerformanceViewModel(); - } - - this.ApplySectionVisibility(tag); - - if (string.Equals(tag, "Performance", StringComparison.Ordinal)) - { - this.TryShowPerformanceIntro(); - } - } - finally - { - this.navigationBehavior.Exit(); - } - } - - protected override void OnClosing(System.ComponentModel.CancelEventArgs e) - { - if (this.isPerformingShutdown) - { - base.OnClosing(e); - return; - } - - if (this.isPerformanceIntroVisible) - { - e.Cancel = true; - System.Windows.MessageBox.Show( - "Please complete the Performance introduction before closing the application.\n\nClick 'Continue to Performance' to proceed.", - "Performance Introduction Required", - MessageBoxButton.OK, - MessageBoxImage.Information); - return; - } - - e.Cancel = true; - _ = this.HandleWindowCloseAsync(); - } - - protected override void OnClosed(EventArgs e) - { - try - { - this.Loaded -= this.OnWindowLoaded; - this.processViewModel.OpenRulesRequested -= this.OnOpenRulesRequested; - - this.settingsService.SettingsChanged -= this.OnSettingsChanged; - this.processMonitorService.MonitoringStatusChanged -= this.OnMonitoringStatusChanged; - this.processMonitorManagerService.ServiceStatusChanged -= this.OnProcessMonitorManagerStatusChanged; - this.keyboardShortcutService.ShortcutActivated -= this.OnShortcutActivated; - - this.UnsubscribeSystemTrayEvents(); - - this.systemTrayUpdateTimer?.Stop(); - this.systemTrayUpdateTimer?.Dispose(); - - this.initializationTimeoutTimer?.Stop(); - this.initializationTimeoutTimer?.Dispose(); - this.performanceViewModel?.Dispose(); - - this.selfResourceManagementService.RestoreForegroundMode(); - this.navigationBehavior.Dispose(); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error disposing timers: {ex.Message}"); - } - - base.OnClosed(e); - } - - private void UnsubscribeSystemTrayEvents() - { - this.systemTrayService.ShowMainWindowRequested -= this.OnShowMainWindowRequested; - this.systemTrayService.DashboardRequested -= this.OnDashboardRequested; - this.systemTrayService.ExitRequested -= this.OnExitRequested; - this.systemTrayService.MonitoringToggleRequested -= this.OnMonitoringToggleRequested; - this.systemTrayService.SettingsRequested -= this.OnSettingsRequested; - this.systemTrayService.PowerPlanChangeRequested -= this.OnPowerPlanChangeRequested; - this.systemTrayService.ProfileApplicationRequested -= this.OnProfileApplicationRequested; - this.systemTrayService.PerformanceDashboardRequested -= this.OnPerformanceDashboardRequested; - } - } -} +namespace ThreadPilot +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using System.Timers; + using System.Windows; + using System.Windows.Controls; + using System.Windows.Input; + using System.Windows.Media.Animation; + using System.Windows.Media.Effects; + using System.Windows.Media.Imaging; + using Microsoft.Extensions.DependencyInjection; + using ThreadPilot.Helpers; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + using ThreadPilot.Views; + + public partial class MainWindow : Wpf.Ui.Controls.FluentWindow + { + private void SetDataContexts() + { + // Set DataContext for the main window + this.DataContext = this.mainWindowViewModel; + + // Set DataContext for the power plans view + this.PowerPlanViewControl.DataContext = this.powerPlanViewModel; + + // Set DataContext for the association view + this.AssociationView.DataContext = this.associationViewModel; + + // Set DataContext for the log viewer view + this.LogViewerViewControl.DataContext = this.logViewerViewModel; + + // Set DataContext for the system tweaks view + this.SystemTweaksView.DataContext = this.systemTweaksViewModel; + + // Set DataContext for the settings view + this.SettingsView.DataContext = this.settingsViewModel; + } + + private void InitializeLoadingOverlay() + { + try + { + var loadingOverlay = this.FindName("LoadingOverlay") as Grid; + + // Ensure overlay is visible while initialization runs + if (loadingOverlay != null) + { + loadingOverlay.Visibility = this.isSilentStartupMode ? Visibility.Collapsed : Visibility.Visible; + loadingOverlay.Opacity = this.isSilentStartupMode ? 0 : 1; + } + + if (!this.isSilentStartupMode) + { + this.ApplyUIContentBlur(15); + } + + // Start spinner animation if available + var spinnerAnimation = this.FindResource("SpinnerAnimation") as Storyboard; + if (!this.isSilentStartupMode) + { + spinnerAnimation?.Begin(); + } + + // Set a timeout guard for initialization + this.initializationTimeoutTimer = new System.Timers.Timer(15000) + { + AutoReset = false, + }; + this.initializationTimeoutTimer.Elapsed += this.OnInitializationTimeout; + this.initializationTimeoutTimer.Start(); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to initialize loading overlay: {ex.Message}"); + } + } + + private async Task InitializeApplicationAsync() + { + try + { + this.LogDebug("=== Starting InitializeApplicationAsync ==="); + + await this.Dispatcher.InvokeAsync(() => this.UpdateLoadingStatus("Loading view models...", "Loading process, power plan and rules data.")); + this.LogDebug("About to call LoadViewModelsAsync..."); + await this.LoadViewModelsAsync(); + this.LogDebug("LoadViewModelsAsync completed successfully"); + this.CompleteInitializationTask("ViewModels"); + + this.LogDebug("About to initialize MainWindowViewModel..."); + await this.mainWindowViewModel.InitializeAsync(); + this.LogDebug("MainWindowViewModel initialized successfully"); + this.CompleteInitializationTask("MainWindowViewModel"); + + await this.Dispatcher.InvokeAsync(() => this.UpdateLoadingStatus("Initializing services...", "Starting monitoring, tray and notification services.")); + this.LogDebug("About to call InitializeServicesAsync..."); + await this.InitializeServicesAsync(); + this.LogDebug("InitializeServicesAsync completed successfully"); + this.CompleteInitializationTask("Services"); + this.QueueStartupUpdateCheck(); + + await this.Dispatcher.InvokeAsync(() => this.UpdateLoadingStatus("Finalizing startup...", "Applying final UI state and startup checks.")); + this.LogDebug("Finalizing startup..."); + await Task.Delay(500); // Brief delay to show final status + this.CompleteInitializationTask("Finalization"); + + // All initialization complete + this.LogDebug("All initialization complete, hiding overlay..."); + await this.Dispatcher.InvokeAsync(() => this.HideLoadingOverlay()); + this.LogDebug("=== InitializeApplicationAsync completed successfully ==="); + } + catch (Exception ex) + { + this.LogDebug($"=== ERROR in InitializeApplicationAsync: {ex} ==="); + await this.Dispatcher.InvokeAsync(() => this.ShowInitializationError(ex)); + } + } + + private void QueueStartupUpdateCheck() + { + if (Interlocked.Exchange(ref this.startupUpdateCheckStarted, 1) != 0) + { + return; + } + + TaskSafety.FireAndForget(this.CheckForUpdatesAtStartupAsync(), ex => + { + this.LogDebug($"Startup update check failed: {ex.Message}"); + }); + } + + private async Task CheckForUpdatesAtStartupAsync() + { + try + { + this.LogDebug("Startup update check started"); + var updateService = this.serviceProvider.GetRequiredService(); + var result = await updateService.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup)); + + if (result.Status == UpdateCheckStatus.Skipped) + { + this.LogDebug($"Startup update check skipped: {result.Message}"); + return; + } + + if (!result.IsUpdateAvailable || result.Release == null) + { + this.LogDebug($"Startup update check complete: {result.Message}"); + return; + } + + await this.notificationService.ShowNotificationAsync( + "Update available", + $"ThreadPilot {result.Release.Version} is available. Open Settings to download and install it.", + NotificationType.Information); + this.LogDebug($"Startup update check found update: installed {result.CurrentVersion}, latest {result.Release.Version}"); + } + catch (Exception ex) + { + this.LogDebug($"Startup update check ignored failure: {ex.Message}"); + } + } + + private static Version GetCurrentApplicationVersion() + { + var rawVersion = typeof(App).Assembly + .GetCustomAttributes(typeof(System.Reflection.AssemblyInformationalVersionAttribute), false) + .OfType() + .FirstOrDefault()? + .InformationalVersion + ?? typeof(App).Assembly.GetName().Version?.ToString() + ?? "0.0.0"; + + var sanitized = rawVersion.Trim(); + if (sanitized.StartsWith("v", StringComparison.OrdinalIgnoreCase)) + { + sanitized = sanitized[1..]; + } + + sanitized = sanitized.Split('-', '+')[0]; + + return Version.TryParse(sanitized, out var version) + ? version + : new Version(0, 0, 0); + } + + private void UpdateLoadingStatus(string stage, string details = "") + { + if (this.mainWindowViewModel != null) + { + this.mainWindowViewModel.InitializationStage = stage; + this.mainWindowViewModel.InitializationDetails = details; + } + } + + private void CompleteInitializationTask(string taskName) + { + lock (this.initializationLock) + { + this.initializationTasks.Add(taskName); + System.Diagnostics.Debug.WriteLine($"Initialization task completed: {taskName}"); + } + } + + private void HideLoadingOverlay() + { + try + { + System.Diagnostics.Debug.WriteLine("=== Starting HideLoadingOverlay ==="); + this.isInitializationComplete = true; + this.initializationTimeoutTimer?.Stop(); + this.initializationTimeoutTimer?.Dispose(); + + if (this.isSilentStartupMode) + { + var silentLoadingOverlay = this.FindName("LoadingOverlay") as Grid; + if (silentLoadingOverlay != null) + { + silentLoadingOverlay.Visibility = Visibility.Collapsed; + silentLoadingOverlay.Opacity = 0; + } + + this.ClearUIContentBlur(); + this.ApplyAppRefreshPolicy(AppActivityState.TrayHidden); + return; + } + + // Stop spinner animation + var spinnerAnimation = this.FindResource("SpinnerAnimation") as Storyboard; + spinnerAnimation?.Stop(); + System.Diagnostics.Debug.WriteLine("Spinner animation stopped"); + + // Start fade-out animation + var fadeOutAnimation = this.FindResource("FadeOutAnimation") as Storyboard; + if (fadeOutAnimation != null) + { + System.Diagnostics.Debug.WriteLine("Starting fade-out animation"); + fadeOutAnimation.Completed += (s, e) => + { + System.Diagnostics.Debug.WriteLine("Fade-out animation completed, hiding overlay"); + var loadingOverlay = this.FindName("LoadingOverlay") as Grid; + if (loadingOverlay != null) + { + loadingOverlay.Visibility = Visibility.Collapsed; + System.Diagnostics.Debug.WriteLine("Loading overlay visibility set to Collapsed"); + } + + // Disable app content blur and restore style-driven behavior. + this.ClearUIContentBlur(); + System.Diagnostics.Debug.WriteLine("=== Loading overlay hidden successfully ==="); + + // Show elevation warning if needed + this.TryShowElevationWarning(); + this.TryShowStartupMinimizedSuggestion(); + }; + fadeOutAnimation.Begin(); + } + else + { + System.Diagnostics.Debug.WriteLine("WARNING: FadeOutAnimation not found, hiding overlay immediately"); + // Fallback: hide overlay immediately if animation fails + var loadingOverlay = this.FindName("LoadingOverlay") as Grid; + if (loadingOverlay != null) + { + loadingOverlay.Visibility = Visibility.Collapsed; + } + + this.ClearUIContentBlur(); + System.Diagnostics.Debug.WriteLine("=== Loading overlay hidden immediately (fallback) ==="); + + // Show elevation warning if needed + this.TryShowElevationWarning(); + this.TryShowStartupMinimizedSuggestion(); + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"=== ERROR hiding loading overlay: {ex} ==="); + // Emergency fallback: hide overlay without animation + try + { + var loadingOverlay = this.FindName("LoadingOverlay") as Grid; + if (loadingOverlay != null) + { + loadingOverlay.Visibility = Visibility.Collapsed; + } + + this.ClearUIContentBlur(); + System.Diagnostics.Debug.WriteLine("Emergency fallback: overlay hidden without animation"); + + // Show elevation warning if needed + this.TryShowElevationWarning(); + this.TryShowStartupMinimizedSuggestion(); + } + catch (Exception fallbackEx) + { + System.Diagnostics.Debug.WriteLine($"Emergency fallback also failed: {fallbackEx}"); + } + } + } + + private void ApplyUIContentBlur(double radius) + { + if (this.UIContent.Effect is not BlurEffect blur) + { + blur = new BlurEffect(); + this.UIContent.Effect = blur; + } + + blur.KernelType = KernelType.Gaussian; + blur.Radius = radius; + } + + private void ClearUIContentBlur() + { + this.UIContent.Effect = null; + } + + private void OnInitializationTimeout(object? sender, ElapsedEventArgs e) + { + this.Dispatcher.InvokeAsync(() => + { + if (!this.isInitializationComplete) + { + this.ShowInitializationError(new TimeoutException("Application initialization timed out after 15 seconds")); + } + }); + } + + private void ShowInitializationError(Exception ex) + { + try + { + this.UpdateLoadingStatus("Initialization failed", ex.Message); + + var result = System.Windows.MessageBox.Show( + $"ThreadPilot failed to initialize properly:\n\n{ex.Message}\n\nDebug log: {this.debugLogPath}\n\nWould you like to retry initialization or close the application?", + "Initialization Error", + MessageBoxButton.YesNo, + MessageBoxImage.Error); + + if (result == MessageBoxResult.Yes) + { + // Retry initialization - marshal to UI thread to prevent cross-thread access exceptions + this.isInitializationComplete = false; + this.initializationTasks.Clear(); + this.UpdateLoadingStatus("Retrying initialization...", "Restarting startup sequence."); + this.LogDebug("=== RETRYING INITIALIZATION ==="); + _ = this.Dispatcher.InvokeAsync(async () => await this.InitializeApplicationAsync()); + } + else + { + // Close application + this.LogDebug("User chose to close application"); + System.Windows.Application.Current.Shutdown(); + } + } + catch (Exception overlayEx) + { + this.LogDebug($"Error showing initialization error: {overlayEx.Message}"); + System.Windows.Application.Current.Shutdown(); + } + } + + private async Task LoadViewModelsAsync() + { + try + { + this.LogDebug("=== Starting LoadViewModelsAsync ==="); + + this.LogDebug("About to initialize ProcessViewModel (including CPU topology)..."); + try + { + // Use the full initialization method instead of just LoadProcesses + var processTask = this.processViewModel.InitializeAsync(); + var processResult = await Task.WhenAny(processTask, Task.Delay(15000)); // 15 second timeout for full initialization + if (processResult != processTask) + { + this.LogDebug("ProcessViewModel.InitializeAsync() timed out, trying fallback..."); + // Fallback: just load processes without full initialization + await this.processViewModel.LoadProcesses(); + this.LogDebug($"ProcessViewModel fallback (LoadProcesses only) completed, process count: {this.processViewModel.Processes?.Count ?? 0}, filtered count: {this.processViewModel.FilteredProcesses?.Count ?? 0}"); + } + else + { + await processTask; // Ensure we get any exceptions + this.LogDebug($"ProcessViewModel initialized successfully (including CPU topology), process count: {this.processViewModel.Processes?.Count ?? 0}, filtered count: {this.processViewModel.FilteredProcesses?.Count ?? 0}"); + } + } + catch (Exception processEx) + { + this.LogDebug($"ProcessViewModel initialization failed: {processEx.Message}, trying fallback..."); + // Fallback: just load processes without full initialization + await this.processViewModel.LoadProcesses(); + this.LogDebug($"ProcessViewModel fallback (LoadProcesses only) completed after exception, process count: {this.processViewModel.Processes?.Count ?? 0}, filtered count: {this.processViewModel.FilteredProcesses?.Count ?? 0}"); + } + + this.LogDebug("About to load PowerPlanViewModel..."); + var powerPlanTask = this.powerPlanViewModel.LoadPowerPlans(); + var powerPlanResult = await Task.WhenAny(powerPlanTask, Task.Delay(5000)); // 5 second timeout + if (powerPlanResult != powerPlanTask) + { + throw new TimeoutException("PowerPlanViewModel.LoadPowerPlans() timed out after 5 seconds"); + } + await powerPlanTask; // Ensure we get any exceptions + this.LogDebug("PowerPlanViewModel loaded successfully"); + + this.LogDebug("Skipping optional diagnostics initialization until the diagnostics page is opened."); + + this.LogDebug("About to load SystemTweaksViewModel..."); + var systemTweaksTask = this.systemTweaksViewModel.LoadCommand.ExecuteAsync(null); + var systemTweaksResult = await Task.WhenAny(systemTweaksTask, Task.Delay(5000)); // 5 second timeout + if (systemTweaksResult != systemTweaksTask) + { + throw new TimeoutException("SystemTweaksViewModel.LoadCommand.ExecuteAsync() timed out after 5 seconds"); + } + await systemTweaksTask; // Ensure we get any exceptions + this.LogDebug("SystemTweaksViewModel loaded successfully"); + + // Initialize keyboard shortcuts after window is loaded + this.Loaded += this.OnWindowLoaded; + this.LogDebug("Keyboard shortcuts event handler attached"); + + // The association view model loads its data automatically in its constructor + this.LogDebug("=== LoadViewModelsAsync completed successfully ==="); + } + catch (Exception ex) + { + this.LogDebug($"=== ERROR in LoadViewModelsAsync: {ex} ==="); + throw; // Re-throw to be handled by initialization error handler + } + } + + private async Task InitializeServicesAsync() + { + this.LogDebug("=== Starting InitializeServicesAsync ==="); + + this.LogDebug("About to initialize settings..."); + await this.InitializeSettingsAsync(); + this.LogDebug("Settings initialized successfully"); + + this.LogDebug("About to initialize system tray..."); + try + { + var systemTrayTask = this.InitializeSystemTrayAsync(); + var systemTrayResult = await Task.WhenAny(systemTrayTask, Task.Delay(5000)); // 5 second timeout + if (systemTrayResult != systemTrayTask) + { + this.LogDebug("System tray initialization timed out, continuing with basic tray setup..."); + // Initialize basic system tray without context menu updates (Initialize() is idempotent) + await this.InitializeBasicSystemTrayAsync(); + this.LogDebug("Basic system tray initialized (without context menu)"); + } + else + { + await systemTrayTask; // Ensure we get any exceptions + this.LogDebug("System tray initialized successfully"); + } + } + catch (Exception systemTrayEx) + { + this.LogDebug($"System tray initialization failed: {systemTrayEx.Message}, using basic tray..."); + // Fallback: basic system tray initialization + try + { + await this.InitializeBasicSystemTrayAsync(); + this.LogDebug("Fallback system tray initialized"); + } + catch (Exception fallbackEx) + { + this.LogDebug($"Even fallback system tray failed: {fallbackEx.Message}"); + } + } + + this.LogDebug("About to initialize notifications..."); + this.InitializeNotifications(); + this.LogDebug("Notifications initialized successfully"); + + this.LogDebug("About to initialize monitoring..."); + await this.InitializeMonitoringAsync(); + this.LogDebug("Monitoring initialized successfully"); + + if (this.skipProcessMonitoringDuringStartup) + { + this.LogDebug("Skipping process monitoring manager startup (temporary bypass enabled)"); + } + else + { + this.LogDebug("About to start process monitoring manager..."); + try + { + var monitoringTask = this.StartProcessMonitoringManagerAsync(); + var timeoutTask = Task.Delay(8000); // 8 second timeout + var completedTask = await Task.WhenAny(monitoringTask, timeoutTask); + + if (completedTask == timeoutTask) + { + this.LogDebug("Process monitoring manager startup timed out after 8 seconds, continuing without monitoring..."); + } + else + { + try + { + await monitoringTask; // Ensure we get any exceptions + this.LogDebug("Process monitoring manager started successfully"); + } + catch (Exception taskEx) + { + this.LogDebug($"Process monitoring manager task failed: {taskEx.Message}"); + } + } + } + catch (Exception monitoringEx) + { + this.LogDebug($"Process monitoring manager startup failed: {monitoringEx.Message}, continuing without monitoring..."); + } + } + + this.LogDebug("=== InitializeServicesAsync completed successfully ==="); + } + + private async Task InitializeSettingsAsync() + { + try + { + await this.settingsService.LoadSettingsAsync(); + + // Apply initial settings + var settings = this.settingsService.Settings; + var useDarkTheme = settings.HasUserThemePreference + ? settings.UseDarkTheme + : this.themeService.GetSystemUsesDarkTheme(); + + if (!settings.HasUserThemePreference && settings.UseDarkTheme != useDarkTheme) + { + settings.UseDarkTheme = useDarkTheme; + await this.settingsService.UpdateSettingsAsync(settings); + } + + this.themeService.ApplyTheme(useDarkTheme); + this.mainWindowViewModel.IsDarkTheme = useDarkTheme; + DwmHelper.ApplyWindowCaptionTheme(this, useDarkTheme); + + if (settings.StartMinimized) + { + this.WindowState = WindowState.Minimized; + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to load settings: {ex.Message}"); + } + } + + private async Task InitializeSystemTrayAsync() + { + try + { + this.systemTrayService.Initialize(); + this.systemTrayService.Show(); + + // Subscribe to tray events + this.UnsubscribeSystemTrayEvents(); + this.systemTrayService.ShowMainWindowRequested += this.OnShowMainWindowRequested; + this.systemTrayService.DashboardRequested += this.OnDashboardRequested; + this.systemTrayService.ExitRequested += this.OnExitRequested; + this.systemTrayService.MonitoringToggleRequested += this.OnMonitoringToggleRequested; + this.systemTrayService.SettingsRequested += this.OnSettingsRequested; + this.systemTrayService.PowerPlanChangeRequested += this.OnPowerPlanChangeRequested; + this.systemTrayService.ProfileApplicationRequested += this.OnProfileApplicationRequested; + this.systemTrayService.PerformanceDashboardRequested += this.OnPerformanceDashboardRequested; + + // Update settings and tooltip + this.systemTrayService.UpdateSettings(this.settingsService.Settings); + this.systemTrayService.ApplyTheme(this.themeService.IsDarkTheme); + this.systemTrayService.UpdateTooltip("ThreadPilot - Process & Power Plan Manager"); + + // Initialize system tray context menu with current data + await this.UpdateSystemTrayContextMenuAsync(); + + // Start periodic system tray updates + this.StartSystemTrayUpdateTimer(); + } + catch (Exception ex) + { + // Log error but don't fail startup + System.Diagnostics.Debug.WriteLine($"Failed to initialize system tray: {ex.Message}"); + } + } + + private async Task InitializeBasicSystemTrayAsync() + { + try + { + this.LogDebug("Initializing basic system tray (without full context menu)..."); + + // Initialize basic tray icon (this is idempotent) + this.systemTrayService.Initialize(); + this.systemTrayService.Show(); + + // Subscribe to essential tray events only + this.UnsubscribeSystemTrayEvents(); + this.systemTrayService.ShowMainWindowRequested += this.OnShowMainWindowRequested; + this.systemTrayService.DashboardRequested += this.OnDashboardRequested; + this.systemTrayService.ExitRequested += this.OnExitRequested; + + // Update basic settings and tooltip + this.systemTrayService.UpdateSettings(this.settingsService.Settings); + this.systemTrayService.ApplyTheme(this.themeService.IsDarkTheme); + this.systemTrayService.UpdateTooltip("ThreadPilot - Process & Power Plan Manager (Basic Mode)"); + + this.LogDebug("Basic system tray initialization completed"); + } + catch (Exception ex) + { + this.LogDebug($"Failed to initialize basic system tray: {ex.Message}"); + throw; + } + } + + private void OnShowMainWindowRequested(object? sender, EventArgs e) + { + this.ShowWindowFromTray(); + } + + private void OnExitRequested(object? sender, EventArgs e) + { + TaskSafety.FireAndForget(this.OnExitRequestedAsync(), ex => + { + this.LogDebug($"OnExitRequested failed: {ex.Message}"); + }); + } + + private async Task OnExitRequestedAsync() + { + await this.PerformGracefulShutdownAsync(); + } + + private void OnDashboardRequested(object? sender, EventArgs e) + { + this.ShowWindowFromTray("Process"); + } + + private async Task PerformGracefulShutdownAsync(bool validateUnsavedChanges = true) + { + if (this.isPerformingShutdown) + { + return; + } + + if (validateUnsavedChanges && !await this.HandleUnsavedSettingsBeforeExitAsync()) + { + return; + } + + this.isPerformingShutdown = true; + + try + { + this.LogDebug("Starting graceful shutdown..."); + this.selfResourceManagementService.RestoreForegroundMode(); + + // 1. Stop monitoring services + try + { + this.LogDebug("Stopping process monitoring manager..."); + await this.processMonitorManagerService.StopAsync(); + this.LogDebug("Process monitoring manager stopped"); + } + catch (Exception ex) + { + this.LogDebug($"Error stopping process monitoring: {ex.Message}"); + } + + // 2. Cleanup applied CPU masks (like CPU Set Setter's ClearAllProcessMasksNoSave) + if (this.settingsService.Settings.ClearMasksOnClose) + { + try + { + this.LogDebug("Clearing all applied CPU masks..."); + var processService = this.serviceProvider.GetRequiredService(); + await processService.ClearAllAppliedMasksAsync(); + this.LogDebug("CPU masks cleared"); + } + catch (Exception ex) + { + this.LogDebug($"Error clearing CPU masks: {ex.Message}"); + } + + // Also reset priorities + try + { + this.LogDebug("Resetting all process priorities..."); + var processService = this.serviceProvider.GetRequiredService(); + await processService.ResetAllProcessPrioritiesAsync(); + this.LogDebug("Process priorities reset"); + } + catch (Exception ex) + { + this.LogDebug($"Error resetting priorities: {ex.Message}"); + } + } + + // 3. Restore default power plan if configured + if (this.settingsService.Settings.RestoreDefaultPowerPlanOnExit) + { + try + { + var targetDefaultPowerPlanGuid = this.settingsService.Settings.DefaultPowerPlanId; + + try + { + await this.processPowerPlanAssociationService.LoadConfigurationAsync(); + var (associationDefaultPowerPlanGuid, _) = await this.processPowerPlanAssociationService.GetDefaultPowerPlanAsync(); + if (!string.IsNullOrWhiteSpace(associationDefaultPowerPlanGuid)) + { + targetDefaultPowerPlanGuid = associationDefaultPowerPlanGuid; + } + } + catch (Exception associationEx) + { + this.LogDebug($"Could not read default power plan from association config: {associationEx.Message}"); + } + + if (string.IsNullOrWhiteSpace(targetDefaultPowerPlanGuid)) + { + this.LogDebug("No default power plan configured for restore on exit"); + } + else + { + this.LogDebug("Restoring default power plan..."); + var powerPlanService = this.serviceProvider.GetRequiredService(); + await powerPlanService.SetActivePowerPlanByGuidAsync(targetDefaultPowerPlanGuid); + this.LogDebug("Default power plan restored"); + } + } + catch (Exception ex) + { + this.LogDebug($"Error restoring power plan: {ex.Message}"); + } + } + + // 4. Save settings + try + { + this.LogDebug("Saving settings..."); + await this.settingsService.SaveSettingsAsync(); + this.LogDebug("Settings saved"); + } + catch (Exception ex) + { + this.LogDebug($"Error saving settings: {ex.Message}"); + } + + // 5. Dispose tray service + try + { + this.LogDebug("Disposing system tray..."); + this.systemTrayService.Dispose(); + this.LogDebug("System tray disposed"); + } + catch (Exception ex) + { + this.LogDebug($"Error disposing tray: {ex.Message}"); + } + + this.LogDebug("Graceful shutdown completed"); + } + catch (Exception ex) + { + this.LogDebug($"Error during graceful shutdown: {ex.Message}"); + } + finally + { + // Ensure application exits + System.Windows.Application.Current.Shutdown(); + } + } + + private async Task HandleUnsavedSettingsBeforeExitAsync() + { + if (!this.settingsViewModel.HasPendingChanges) + { + return true; + } + + var result = await this.ShowUnsavedSettingsDialogAsync( + "You have unsaved changes in Settings. Save before exiting, discard the changes, or cancel to return to ThreadPilot."); + + if (result == MessageBoxResult.Cancel) + { + return false; + } + + if (result == MessageBoxResult.Yes) + { + var saved = await this.settingsViewModel.SaveIfDirtyAsync(); + return saved; + } + + await this.settingsViewModel.DiscardPendingChangesAsync(); + return true; + } + + private async Task HandleWindowCloseAsync() + { + if (!await this.HandleUnsavedSettingsBeforeExitAsync()) + { + return; + } + + if (this.settingsService.Settings.CloseToTray) + { + this.WindowState = WindowState.Minimized; + return; + } + + await this.PerformGracefulShutdownAsync(validateUnsavedChanges: false); + } + + private void OnMonitoringToggleRequested(object? sender, MonitoringToggleEventArgs e) + { + TaskSafety.FireAndForget(this.OnMonitoringToggleRequestedAsync(e), ex => + { + this.LogDebug($"OnMonitoringToggleRequested failed: {ex.Message}"); + }); + } + + private async Task OnMonitoringToggleRequestedAsync(MonitoringToggleEventArgs e) + { + try + { + if (e.EnableMonitoring) + { + await this.processMonitorManagerService.StartAsync(); + await this.notificationService.ShowSuccessNotificationAsync( + "Automation Monitoring Enabled", + "Process rule automation and power plan management have been enabled."); + } + else + { + await this.processMonitorManagerService.StopAsync(); + await this.notificationService.ShowNotificationAsync( + "Automation Monitoring Disabled", + "Process rule automation and power plan management have been disabled.", + Models.NotificationType.Warning); + } + } + catch (Exception ex) + { + await this.notificationService.ShowErrorNotificationAsync( + "Automation Monitoring Error", + "Failed to toggle automation monitoring.", + ex); + } + } + + private void OnSettingsRequested(object? sender, EventArgs e) + { + try + { + this.ShowWindowFromTray("Settings"); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to open settings: {ex.Message}"); + } + } + + private void OnPowerPlanChangeRequested(object? sender, PowerPlanChangeRequestedEventArgs e) + { + TaskSafety.FireAndForget(this.OnPowerPlanChangeRequestedAsync(e), ex => + { + this.LogDebug($"OnPowerPlanChangeRequested failed: {ex.Message}"); + }); + } + + private async Task OnPowerPlanChangeRequestedAsync(PowerPlanChangeRequestedEventArgs e) + { + try + { + var powerPlanService = this.serviceProvider.GetRequiredService(); + var success = await powerPlanService.SetActivePowerPlanByGuidAsync(e.PowerPlanGuid); + + if (success) + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot", + $"Power plan changed to {e.PowerPlanName}", 2000); + } + else + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot Error", + $"Failed to change power plan to {e.PowerPlanName}", 3000); + } + } + catch (Exception ex) + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot Error", + $"Error changing power plan: {ex.Message}", 3000); + } + } + + private void OnProfileApplicationRequested(object? sender, ProfileApplicationRequestedEventArgs e) + { + TaskSafety.FireAndForget(this.OnProfileApplicationRequestedAsync(e), ex => + { + this.LogDebug($"OnProfileApplicationRequested failed: {ex.Message}"); + }); + } + + private async Task OnProfileApplicationRequestedAsync(ProfileApplicationRequestedEventArgs e) + { + try + { + var processService = this.serviceProvider.GetRequiredService(); + var selectedProcess = this.processViewModel.SelectedProcess; + + if (selectedProcess != null) + { + var success = await processService.LoadProcessProfile(e.ProfileName, selectedProcess); + + if (success) + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot", + $"Profile '{e.ProfileName}' applied to {selectedProcess.Name}", 2000); + } + else + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot Error", + $"Failed to apply profile '{e.ProfileName}'", 3000); + } + } + else + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot", + "No process selected for profile application", 2000); + } + } + catch (Exception ex) + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot Error", + $"Error applying profile: {ex.Message}", 3000); + } + } + + private void OnPerformanceDashboardRequested(object? sender, EventArgs e) + { + try + { + this.ShowWindowFromTray("Performance"); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to open performance dashboard: {ex.Message}"); + } + } + + private async Task InitializeKeyboardShortcutsAsync() + { + try + { + // Set window handle for global hotkey registration + var windowInteropHelper = new System.Windows.Interop.WindowInteropHelper(this); + var handle = windowInteropHelper.EnsureHandle(); + + if (this.keyboardShortcutService is KeyboardShortcutService service) + { + service.SetWindowHandle(handle); + } + + // Subscribe to shortcut activation events + this.keyboardShortcutService.ShortcutActivated -= this.OnShortcutActivated; + this.keyboardShortcutService.ShortcutActivated += this.OnShortcutActivated; + + // Load shortcuts from settings - with error handling + try + { + await this.keyboardShortcutService.LoadShortcutsFromSettingsAsync(); + } + catch (Exception settingsEx) + { + System.Diagnostics.Debug.WriteLine($"Failed to load shortcuts from settings, using defaults: {settingsEx.Message}"); + // Continue with default shortcuts if settings loading fails + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to initialize keyboard shortcuts: {ex.Message}"); + // Don't let keyboard shortcut initialization failure prevent the app from starting + } + } + + private void OnShortcutActivated(object? sender, ShortcutActivatedEventArgs e) + { + try + { + System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + await this.HandleShortcutActionAsync(e.ActionName); + }); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Error handling shortcut {e.ActionName}: {ex.Message}"); + } + } + + private async Task HandleShortcutActionAsync(string actionName) + { + switch (actionName) + { + case ShortcutActions.ShowMainWindow: + if (this.IsVisible && this.WindowState != WindowState.Minimized) + { + this.ShowInTaskbar = false; + this.Hide(); + this.ApplyAppRefreshPolicy(AppActivityState.TrayHidden); + } + else + { + this.ShowWindowFromTray(); + } + break; + + case ShortcutActions.ToggleMonitoring: + // Toggle monitoring - implementation can be added later + await this.notificationService.ShowNotificationAsync("Keyboard Shortcut", "Toggle monitoring shortcut activated"); + break; + + case ShortcutActions.PowerPlanHighPerformance: + // Switch to high performance power plan - implementation can be added later + await this.notificationService.ShowNotificationAsync("Keyboard Shortcut", "High Performance power plan shortcut activated"); + break; + + case ShortcutActions.OpenTweaks: + this.ShowWindowFromTray("Tweaks"); + break; + + case ShortcutActions.OpenSettings: + this.ShowWindowFromTray("Settings"); + break; + + case ShortcutActions.RefreshProcessList: + // Refresh process list - implementation can be added later + await this.notificationService.ShowNotificationAsync("Keyboard Shortcut", "Refresh process list shortcut activated"); + break; + + case ShortcutActions.ExitApplication: + this.Close(); + break; + } + } + + private async Task UpdateSystemTrayContextMenuAsync() + { + try + { + await this.systemTrayStatusUpdater.UpdateContextMenuAsync(this.systemTrayService); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to update system tray context menu: {ex.Message}"); + } + } + + private void StartSystemTrayUpdateTimer() + { + try + { + this.systemTrayUpdateTimer?.Stop(); + this.systemTrayUpdateTimer?.Dispose(); + this.systemTrayUpdateTimer = null; + + if (!this.systemTrayStatusUpdater.ShouldRunPerformanceStatusUpdates) + { + return; + } + + this.systemTrayUpdateFailureStreak = 0; + this.systemTrayUpdateTimer = new System.Timers.Timer(SystemTrayUpdateBaseIntervalMs); + this.systemTrayUpdateTimer.Elapsed += async (s, e) => + { + if (this.isSystemTrayUpdatesSuspended) + { + return; + } + + if (Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 1) == 1) + { + return; + } + + try + { + var updateSucceeded = await this.UpdateSystemTrayStatusAsync(); + this.ApplySystemTrayUpdateBackoff(updateSucceeded); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Error in system tray update timer: {ex.Message}"); + this.ApplySystemTrayUpdateBackoff(updateSucceeded: false); + } + finally + { + Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 0); + } + }; + this.systemTrayUpdateTimer.AutoReset = true; + + if (!this.isSystemTrayUpdatesSuspended && + this.IsVisible && + this.WindowState != WindowState.Minimized) + { + this.systemTrayUpdateTimer.Start(); + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to start system tray update timer: {ex.Message}"); + } + } + + private void ApplySystemTrayUpdateBackoff(bool updateSucceeded) + { + if (this.systemTrayUpdateTimer == null) + { + return; + } + + if (updateSucceeded) + { + this.systemTrayUpdateFailureStreak = 0; + if (Math.Abs(this.systemTrayUpdateTimer.Interval - SystemTrayUpdateBaseIntervalMs) > 1) + { + this.systemTrayUpdateTimer.Interval = SystemTrayUpdateBaseIntervalMs; + } + + return; + } + + this.systemTrayUpdateFailureStreak = Math.Min(4, this.systemTrayUpdateFailureStreak + 1); + var exponentialDelay = SystemTrayUpdateBaseIntervalMs * Math.Pow(2, this.systemTrayUpdateFailureStreak); + var nextIntervalMs = Math.Min(SystemTrayUpdateMaxIntervalMs, exponentialDelay); + + if (Math.Abs(this.systemTrayUpdateTimer.Interval - nextIntervalMs) > 1) + { + this.systemTrayUpdateTimer.Interval = nextIntervalMs; + } + } + + private async Task UpdateSystemTrayStatusAsync() + { + try + { + return await this.systemTrayStatusUpdater.UpdateStatusAsync( + this.systemTrayService, + action => this.Dispatcher.InvokeAsync(action).Task); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to update system tray status: {ex.Message}"); + return false; + } + } + + private void InitializeNotifications() + { + try + { + // Subscribe to settings changes to update notification service + this.settingsService.SettingsChanged += this.OnSettingsChanged; + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to initialize notifications: {ex.Message}"); + } + } + + private async Task InitializeMonitoringAsync() + { + try + { + // Subscribe to monitoring status changes + this.processMonitorService.MonitoringStatusChanged += this.OnMonitoringStatusChanged; + + // Update tray with initial monitoring status + this.systemTrayService.UpdateMonitoringStatus( + this.processMonitorService.IsMonitoring, + this.processMonitorService.IsWmiAvailable); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to initialize monitoring: {ex.Message}"); + } + } + + private async Task StartProcessMonitoringManagerAsync() + { + try + { + this.LogDebug("Subscribing to process monitor manager events..."); + // Subscribe to process monitor manager events + this.processMonitorManagerService.ServiceStatusChanged += this.OnProcessMonitorManagerStatusChanged; + + this.LogDebug("Starting process monitoring manager service..."); + // Start the process monitoring manager service with internal timeout + var startTask = this.processMonitorManagerService.StartAsync(); + var timeoutTask = Task.Delay(6000); // 6 second internal timeout + var completedTask = await Task.WhenAny(startTask, timeoutTask); + + if (completedTask == timeoutTask) + { + this.LogDebug("ProcessMonitorManagerService.StartAsync() timed out internally"); + throw new TimeoutException("Process monitoring manager service startup timed out"); + } + + await startTask; // Get any exceptions + this.LogDebug("Process monitoring manager service started, showing notification..."); + + if (!this.isSilentStartupMode) + { + await this.notificationService.ShowSuccessNotificationAsync( + "ThreadPilot Started", + "Process monitoring and power plan management is now active"); + } + + this.LogDebug(this.isSilentStartupMode + ? "Startup success notification skipped for silent startup" + : "Success notification shown"); + } + catch (Exception ex) + { + this.LogDebug($"Failed to start process monitoring manager: {ex.Message}"); + try + { + await this.notificationService.ShowErrorNotificationAsync( + "Startup Error", + "Failed to start process monitoring manager", + ex); + } + catch (Exception notificationEx) + { + this.LogDebug($"Failed to show error notification: {notificationEx.Message}"); + } + throw; // Re-throw to be caught by outer handler + } + } + + private void OnSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) + { + // Update tray service with new settings + this.systemTrayService.UpdateSettings(e.NewSettings); + + var useDarkTheme = e.NewSettings.HasUserThemePreference + ? e.NewSettings.UseDarkTheme + : this.themeService.GetSystemUsesDarkTheme(); + + this.themeService.ApplyTheme(useDarkTheme); + this.mainWindowViewModel.IsDarkTheme = useDarkTheme; + this.systemTrayService.ApplyTheme(useDarkTheme); + DwmHelper.ApplyWindowCaptionTheme(this, useDarkTheme); + this.ApplySelfResourcePolicy(this.lastAppliedRefreshState ?? this.GetForegroundActivityState(), e.NewSettings); + } + + private void OnMonitoringStatusChanged(object? sender, MonitoringStatusEventArgs e) + { + // Update tray icon and status + this.systemTrayService.UpdateMonitoringStatus(e.IsMonitoring, e.IsWmiAvailable); + + // Show notification if there's an error + if (e.Error != null && this.settingsService.Settings.EnableErrorNotifications) + { + this.notificationService.ShowErrorNotificationAsync( + "Automation Monitoring Error", + e.StatusMessage ?? "An error occurred with automation monitoring.", + e.Error); + } + } + + private void OnProcessMonitorManagerStatusChanged(object? sender, ServiceStatusEventArgs e) + { + // Update main window status + this.mainWindowViewModel.UpdateProcessMonitoringStatus(e.IsRunning, e.Status); + + // Show notification for critical status changes + if (!e.IsRunning && e.Error != null && this.settingsService.Settings.EnableErrorNotifications) + { + this.notificationService.ShowErrorNotificationAsync( + "Automation Monitoring Error", + e.Details ?? "Automation monitoring encountered an error.", + e.Error); + } + } + + protected override void OnStateChanged(EventArgs e) + { + try + { + if (this.WindowState == WindowState.Minimized) + { + var activityState = AppActivityState.Minimized; + if (this.settingsService.Settings.MinimizeToTray) + { + this.ShowInTaskbar = false; + this.Hide(); + this.systemTrayService.Show(); + activityState = AppActivityState.TrayHidden; + } + + this.ApplyAppRefreshPolicy(activityState); + } + else if (this.WindowState == WindowState.Normal || this.WindowState == WindowState.Maximized) + { + this.ShowInTaskbar = true; + this.EnsureDashboardVisibleOnScreen(); + + this.ApplyAppRefreshPolicy(this.GetForegroundActivityState()); + } + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Error handling window state change: {ex.Message}"); + } + + base.OnStateChanged(e); + } + + private void SuspendHiddenModeRefreshes() + { + this.isSystemTrayUpdatesSuspended = true; + this.systemTrayUpdateTimer?.Stop(); + Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 0); + this.powerPlanViewModel.PauseAutoRefresh(); + } + + private void ResumeForegroundRefreshes() + { + this.isSystemTrayUpdatesSuspended = false; + this.systemTrayUpdateFailureStreak = 0; + this.systemTrayUpdateTimer?.Stop(); + + if (!this.systemTrayStatusUpdater.ShouldRunPerformanceStatusUpdates) + { + return; + } + + if (this.systemTrayUpdateTimer != null) + { + this.systemTrayUpdateTimer.Interval = SystemTrayUpdateBaseIntervalMs; + } + this.systemTrayUpdateTimer?.Start(); + + _ = this.Dispatcher.InvokeAsync(async () => + { + try + { + var updateSucceeded = await this.UpdateSystemTrayStatusAsync(); + this.ApplySystemTrayUpdateBackoff(updateSucceeded); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to refresh tray status after resume: {ex.Message}"); + } + }); + } + + private AppActivityState GetForegroundActivityState() + { + if (this.ProcessManagementTab.Visibility == Visibility.Visible) + { + return AppActivityState.ForegroundProcessView; + } + + return this.PerformanceViewControl.Visibility == Visibility.Visible + ? AppActivityState.ForegroundDiagnosticsView + : AppActivityState.ForegroundOtherTab; + } + + private void ApplyAppRefreshPolicy(AppActivityState state) + { + if (!AppRefreshPolicy.ShouldApplyTransition(this.lastAppliedRefreshState, state)) + { + return; + } + + this.lastAppliedRefreshState = state; + + var decision = AppRefreshPolicy.Evaluate(state); + var isHiddenState = state is AppActivityState.Minimized or AppActivityState.TrayHidden; + var isProcessViewActive = state == AppActivityState.ForegroundProcessView; + + if (isHiddenState) + { + this.isSystemTrayUpdatesSuspended = true; + this.systemTrayUpdateTimer?.Stop(); + Interlocked.Exchange(ref this.isSystemTrayUpdateInProgress, 0); + } + else + { + this.ResumeForegroundRefreshes(); + } + + this.processViewModel.SetProcessViewActive(isProcessViewActive); + this.processViewModel.ApplyRefreshDecision(decision); + + if (decision.PowerPlanUiRefreshEnabled) + { + this.powerPlanViewModel.ResumeAutoRefresh(refreshImmediately: state != AppActivityState.ForegroundOtherTab); + } + else + { + this.powerPlanViewModel.PauseAutoRefresh(); + } + + if (decision.PerformanceUiMonitoringEnabled) + { + _ = this.GetPerformanceViewModel().ActivateDiagnosticsAsync(); + } + else if (this.performanceViewModel != null) + { + _ = this.performanceViewModel.SuspendBackgroundMonitoringAsync(); + } + + this.ApplySelfResourcePolicy(state); + } + + private void ApplySelfResourcePolicy(AppActivityState state, ApplicationSettingsModel? settings = null) + { + var currentSettings = settings ?? this.settingsService.Settings; + var isHiddenState = state is AppActivityState.Minimized or AppActivityState.TrayHidden; + + if (SelfResourcePolicy.ShouldApplyLowImpactMode(isHiddenState, currentSettings.EnableSelfLowImpactMode)) + { + this.selfResourceManagementService.ApplyLowImpactMode(SelfResourcePolicy.ShouldLimitAffinity( + isHiddenState, + currentSettings.EnableSelfLowImpactMode, + currentSettings.EnableSelfAffinityLimit)); + return; + } + + this.selfResourceManagementService.RestoreForegroundMode(); + } + + protected override void OnSourceInitialized(EventArgs e) + { + base.OnSourceInitialized(e); + try + { + DwmHelper.ApplyWindowCaptionTheme(this, this.themeService.IsDarkTheme); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Failed to apply window caption theme: {ex.Message}"); + } + + this.EnsureDashboardVisibleOnScreen(); + } + + [System.Diagnostics.Conditional("DEBUG")] + private void LogDebug(string message) + { + try + { + var timestampedMessage = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff} [MainWindow] {message}"; + System.Diagnostics.Debug.WriteLine(timestampedMessage); + File.AppendAllText(this.debugLogPath, timestampedMessage + Environment.NewLine); + } + catch + { + // Swallow logging failures to avoid impacting runtime behavior + } + } + + private void OnWindowLoaded(object? sender, RoutedEventArgs e) + { + TaskSafety.FireAndForget(this.OnWindowLoadedAsync(), ex => + { + this.LogDebug($"OnWindowLoaded failed: {ex.Message}"); + }); + } + + private async Task OnWindowLoadedAsync() + { + this.Loaded -= this.OnWindowLoaded; + this.EnsureDashboardVisibleOnScreen(); + await this.InitializeKeyboardShortcutsAsync(); + } + + private void OnOpenRulesRequested(object? sender, EventArgs e) + { + this.SelectMainTab("Rules"); + } + + private void ShowWindowFromTray(string? tabTag = null) + { + this.ShowInTaskbar = true; + this.EnsureDashboardVisibleOnScreen(); + + if (!this.IsVisible) + { + this.Show(); + } + else + { + this.Visibility = Visibility.Visible; + } + + if (this.WindowState == WindowState.Minimized) + { + this.WindowState = WindowState.Normal; + } + + this.EnsureDashboardVisibleOnScreen(); + this.ShowInTaskbar = true; + + if (tabTag != null) + { + this.SelectMainTab(tabTag); + } + + // Force foreground restoration when invoked from tray context menu. + this.Topmost = true; + this.Activate(); + this.Focus(); + this.Topmost = false; + this.Activate(); + this.Focus(); + + var processViewWillBeActive = tabTag == null + ? this.ProcessManagementTab.Visibility == Visibility.Visible + : string.Equals(tabTag, "Process", StringComparison.Ordinal); + + this.ApplyAppRefreshPolicy(processViewWillBeActive + ? AppActivityState.ForegroundProcessView + : AppActivityState.ForegroundOtherTab); + } + + internal bool EnsureDashboardVisibleOnScreen() + { + return WindowPlacementHelper.TryCorrectWindowPlacement(this); + } + + private void SelectMainTab(string tag) + { + if (string.IsNullOrEmpty(tag)) + { + return; + } + + if (string.Equals(tag, "Performance", StringComparison.Ordinal)) + { + this.GetPerformanceViewModel(); + } + + this.ApplySectionVisibility(tag); + + if (string.Equals(tag, "Performance", StringComparison.Ordinal)) + { + this.TryShowPerformanceIntro(); + } + } + + private void TryShowPerformanceIntro() + { + if (this.isPerformanceIntroVisible || !this.isInitializationComplete) + { + return; + } + + try + { + var settings = this.settingsService.Settings; + if (settings.HasSeenPerformanceIntro) + { + return; + } + + this.isPerformanceIntroVisible = true; + this.PerformanceIntroOverlay.Visibility = Visibility.Visible; + } + catch (Exception ex) + { + this.LogDebug($"Failed to show Performance intro overlay: {ex.Message}"); + } + } + + private void TryShowStartupMinimizedSuggestion() + { + if (!this.showStartupMinimizedSuggestionOnReady + || this.isSilentStartupMode + || !this.isInitializationComplete + || this.isElevationWarningVisible) + { + return; + } + + try + { + if (!StartupMinimizedSuggestionPolicy.ShouldShow( + this.settingsService.Settings, + StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false))) + { + return; + } + + this.StartupMinimizedSuggestionOverlay.Visibility = Visibility.Visible; + } + catch (Exception ex) + { + this.LogDebug($"Failed to show startup minimized suggestion: {ex.Message}"); + } + } + + private async Task PersistStartupMinimizedSuggestionSeenAsync() + { + try + { + var settings = this.settingsService.Settings; + if (settings.HasSeenStartupMinimizedSuggestion) + { + return; + } + + settings.HasSeenStartupMinimizedSuggestion = true; + await this.settingsService.UpdateSettingsAsync(settings); + } + catch (Exception ex) + { + this.LogDebug($"Failed to persist startup minimized suggestion state: {ex.Message}"); + } + } + + private void HideStartupMinimizedSuggestion() + { + this.showStartupMinimizedSuggestionOnReady = false; + this.StartupMinimizedSuggestionOverlay.Visibility = Visibility.Collapsed; + } + + private async void StartupSuggestionOpenSettings_Click(object sender, RoutedEventArgs e) + { + await this.PersistStartupMinimizedSuggestionSeenAsync(); + this.HideStartupMinimizedSuggestion(); + this.SelectMainTab("Settings"); + } + + private async void StartupSuggestionDontShowAgain_Click(object sender, RoutedEventArgs e) + { + await this.PersistStartupMinimizedSuggestionSeenAsync(); + this.HideStartupMinimizedSuggestion(); + } + + private void HidePerformanceIntro() + { + this.isPerformanceIntroVisible = false; + this.PerformanceIntroOverlay.Visibility = Visibility.Collapsed; + } + + private Task ShowUnsavedSettingsDialogAsync(string message) + { + if (!this.Dispatcher.CheckAccess()) + { + return this.Dispatcher.InvokeAsync(() => this.ShowUnsavedSettingsDialogAsync(message)).Task.Unwrap(); + } + + if (this.unsavedSettingsDialogCompletionSource != null) + { + return Task.FromResult(MessageBoxResult.Cancel); + } + + this.UnsavedSettingsDialogMessage.Text = message; + this.unsavedSettingsDialogCompletionSource = new TaskCompletionSource( + TaskCreationOptions.RunContinuationsAsynchronously); + this.UnsavedSettingsOverlay.Visibility = Visibility.Visible; + return this.unsavedSettingsDialogCompletionSource.Task; + } + + private void CompleteUnsavedSettingsDialog(MessageBoxResult result) + { + var completionSource = this.unsavedSettingsDialogCompletionSource; + if (completionSource == null) + { + return; + } + + this.unsavedSettingsDialogCompletionSource = null; + this.UnsavedSettingsOverlay.Visibility = Visibility.Collapsed; + completionSource.TrySetResult(result); + } + + private void UnsavedSettingsSave_Click(object sender, RoutedEventArgs e) + { + this.CompleteUnsavedSettingsDialog(MessageBoxResult.Yes); + } + + private void UnsavedSettingsDiscard_Click(object sender, RoutedEventArgs e) + { + this.CompleteUnsavedSettingsDialog(MessageBoxResult.No); + } + + private void UnsavedSettingsCancel_Click(object sender, RoutedEventArgs e) + { + this.CompleteUnsavedSettingsDialog(MessageBoxResult.Cancel); + } + + private async void PerformanceIntroContinue_Click(object sender, RoutedEventArgs e) + { + try + { + var settings = this.settingsService.Settings; + if (!settings.HasSeenPerformanceIntro) + { + settings.HasSeenPerformanceIntro = true; + await this.settingsService.UpdateSettingsAsync(settings); + } + } + catch (Exception ex) + { + this.LogDebug($"Failed to persist Performance intro state: {ex.Message}"); + } + finally + { + this.HidePerformanceIntro(); + } + } + + // Elevation Warning Modal Management + private bool isElevationWarningVisible = false; + private double previousElevationAppContentOpacity = 1; + private double previousElevationBackdropBlurRadius = 0; + + private void TryShowElevationWarning() + { + if (this.isElevationWarningVisible || !this.isInitializationComplete) + { + return; + } + + try + { + var settings = this.settingsService.Settings; + + // Only show if user is not admin AND hasn't dismissed the warning yet + if (this.elevationService?.IsRunningAsAdministrator() == true || settings.HasSeenElevationWarning) + { + return; + } + + this.isElevationWarningVisible = true; + var elevationOverlay = this.FindName("ElevationWarningOverlay") as Grid; + if (elevationOverlay != null) + { + elevationOverlay.Visibility = Visibility.Visible; + } + + // Apply blur and disable interaction + this.previousElevationAppContentOpacity = this.UIContent.Opacity; + this.UIContent.IsHitTestVisible = false; + this.UIContent.Opacity = 0.74; + + var elevationBlur = this.FindName("ElevationWarningBlur") as BlurEffect; + if (elevationBlur != null) + { + this.previousElevationBackdropBlurRadius = elevationBlur.Radius; + elevationBlur.Radius = 16; + } + } + catch (Exception ex) + { + this.LogDebug($"Failed to show elevation warning overlay: {ex.Message}"); + } + } + + private void HideElevationWarning() + { + this.isElevationWarningVisible = false; + var elevationOverlay = this.FindName("ElevationWarningOverlay") as Grid; + if (elevationOverlay != null) + { + elevationOverlay.Visibility = Visibility.Collapsed; + } + + // Restore interaction and remove blur + this.UIContent.IsHitTestVisible = true; + this.UIContent.Opacity = this.previousElevationAppContentOpacity; + + var elevationBlur = this.FindName("ElevationWarningBlur") as BlurEffect; + if (elevationBlur != null) + { + elevationBlur.Radius = this.previousElevationBackdropBlurRadius; + } + + this.TryShowStartupMinimizedSuggestion(); + } + + private void ElevationWarningDismiss_Click(object sender, RoutedEventArgs e) + { + try + { + var settings = this.settingsService.Settings; + if (!settings.HasSeenElevationWarning) + { + settings.HasSeenElevationWarning = true; + _ = this.settingsService.UpdateSettingsAsync(settings); + } + } + catch (Exception ex) + { + this.LogDebug($"Failed to persist elevation warning dismiss state: {ex.Message}"); + } + finally + { + this.HideElevationWarning(); + } + } + + private async void ElevationWarningRequestElevation_Click(object sender, RoutedEventArgs e) + { + try + { + if (this.elevationService != null) + { + var success = await this.elevationService.RequestElevationIfNeeded(); + if (success) + { + System.Diagnostics.Debug.WriteLine("Elevation requested successfully from warning dialog"); + } + } + } + catch (Exception ex) + { + this.LogDebug($"Failed to request elevation from warning dialog: {ex.Message}"); + } + finally + { + // Hide the warning after attempting elevation (regardless of success) + this.HideElevationWarning(); + } + } + + private void ApplySectionVisibility(string tag) + { + this.ProcessManagementTab.Visibility = tag == "Process" ? Visibility.Visible : Visibility.Collapsed; + this.CoreMasksTab.Visibility = tag == "Masks" ? Visibility.Visible : Visibility.Collapsed; + this.PowerPlanViewControl.Visibility = tag == "Power" ? Visibility.Visible : Visibility.Collapsed; + this.AssociationView.Visibility = tag == "Rules" ? Visibility.Visible : Visibility.Collapsed; + this.PerformanceViewControl.Visibility = tag == "Performance" ? Visibility.Visible : Visibility.Collapsed; + this.LogViewerViewControl.Visibility = tag == "Logs" ? Visibility.Visible : Visibility.Collapsed; + this.SystemTweaksView.Visibility = tag == "Tweaks" ? Visibility.Visible : Visibility.Collapsed; + this.SettingsView.Visibility = tag == "Settings" ? Visibility.Visible : Visibility.Collapsed; + + this.NavProcess.IsActive = tag == "Process"; + this.NavMasks.IsActive = tag == "Masks"; + this.NavPower.IsActive = tag == "Power"; + this.NavRules.IsActive = tag == "Rules"; + this.NavPerf.IsActive = tag == "Performance"; + this.NavLogs.IsActive = tag == "Logs"; + this.NavTweaks.IsActive = tag == "Tweaks"; + this.NavSettings.IsActive = tag == "Settings"; + + if (!this.IsVisible) + { + this.ApplyAppRefreshPolicy(AppActivityState.TrayHidden); + return; + } + + if (this.WindowState == WindowState.Minimized) + { + this.ApplyAppRefreshPolicy(AppActivityState.Minimized); + return; + } + + var activityState = tag switch + { + "Process" => AppActivityState.ForegroundProcessView, + "Performance" => AppActivityState.ForegroundDiagnosticsView, + _ => AppActivityState.ForegroundOtherTab, + }; + + this.ApplyAppRefreshPolicy(activityState); + } + + private void NavMenuItem_Click(object sender, RoutedEventArgs e) + { + TaskSafety.FireAndForget(this.NavMenuItem_ClickAsync(sender, e), ex => + { + this.LogDebug($"NavMenuItem_Click failed: {ex.Message}"); + }); + } + + private async Task NavMenuItem_ClickAsync(object sender, RoutedEventArgs e) + { + if (!await this.navigationBehavior.TryEnterAsync()) + { + return; + } + + try + { + var invokedItem = sender as Wpf.Ui.Controls.NavigationViewItem; + if (invokedItem == null) + { + return; + } + + var tag = invokedItem.Tag?.ToString(); + if (string.IsNullOrEmpty(tag)) + { + return; + } + + if (!this.IsLoaded) + { + return; + } + + var canNavigate = await NavigationBehavior.EnsureCanNavigateAsync( + tag, + this.settingsViewModel, + () => this.ShowUnsavedSettingsDialogAsync( + "You have unsaved changes in Settings. Save before switching tabs, discard the changes, or cancel to stay on Settings.")); + if (!canNavigate) + { + return; + } + + if (string.Equals(tag, "Performance", StringComparison.Ordinal)) + { + this.GetPerformanceViewModel(); + } + + this.ApplySectionVisibility(tag); + + if (string.Equals(tag, "Performance", StringComparison.Ordinal)) + { + this.TryShowPerformanceIntro(); + } + } + finally + { + this.navigationBehavior.Exit(); + } + } + + protected override void OnClosing(System.ComponentModel.CancelEventArgs e) + { + if (this.isPerformingShutdown) + { + base.OnClosing(e); + return; + } + + if (this.isPerformanceIntroVisible) + { + e.Cancel = true; + System.Windows.MessageBox.Show( + "Please complete the Performance introduction before closing the application.\n\nClick 'Continue to Performance' to proceed.", + "Performance Introduction Required", + MessageBoxButton.OK, + MessageBoxImage.Information); + return; + } + + e.Cancel = true; + _ = this.HandleWindowCloseAsync(); + } + + protected override void OnClosed(EventArgs e) + { + try + { + this.Loaded -= this.OnWindowLoaded; + this.processViewModel.OpenRulesRequested -= this.OnOpenRulesRequested; + + this.settingsService.SettingsChanged -= this.OnSettingsChanged; + this.processMonitorService.MonitoringStatusChanged -= this.OnMonitoringStatusChanged; + this.processMonitorManagerService.ServiceStatusChanged -= this.OnProcessMonitorManagerStatusChanged; + this.keyboardShortcutService.ShortcutActivated -= this.OnShortcutActivated; + + this.UnsubscribeSystemTrayEvents(); + + this.systemTrayUpdateTimer?.Stop(); + this.systemTrayUpdateTimer?.Dispose(); + + this.initializationTimeoutTimer?.Stop(); + this.initializationTimeoutTimer?.Dispose(); + this.performanceViewModel?.Dispose(); + + this.selfResourceManagementService.RestoreForegroundMode(); + this.navigationBehavior.Dispose(); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Error disposing timers: {ex.Message}"); + } + + base.OnClosed(e); + } + + private void UnsubscribeSystemTrayEvents() + { + this.systemTrayService.ShowMainWindowRequested -= this.OnShowMainWindowRequested; + this.systemTrayService.DashboardRequested -= this.OnDashboardRequested; + this.systemTrayService.ExitRequested -= this.OnExitRequested; + this.systemTrayService.MonitoringToggleRequested -= this.OnMonitoringToggleRequested; + this.systemTrayService.SettingsRequested -= this.OnSettingsRequested; + this.systemTrayService.PowerPlanChangeRequested -= this.OnPowerPlanChangeRequested; + this.systemTrayService.ProfileApplicationRequested -= this.OnProfileApplicationRequested; + this.systemTrayService.PerformanceDashboardRequested -= this.OnPerformanceDashboardRequested; + } + } +} diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 22b9c91..eec3de9 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -1,216 +1,200 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using System.Timers; - using System.Windows; - using System.Windows.Controls; - using System.Windows.Input; - using System.Windows.Media.Animation; - using System.Windows.Media.Effects; - using System.Windows.Media.Imaging; - using Microsoft.Extensions.DependencyInjection; - using ThreadPilot.Helpers; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - using ThreadPilot.Views; - - public partial class MainWindow : Wpf.Ui.Controls.FluentWindow - { - private const int SystemTrayUpdateBaseIntervalMs = 10000; - private const int SystemTrayUpdateMaxIntervalMs = 60000; - - private readonly ProcessViewModel processViewModel; - private readonly PowerPlanViewModel powerPlanViewModel; - private readonly IDiagnosticsViewModelProvider diagnosticsViewModelProvider; - private readonly ProcessPowerPlanAssociationViewModel associationViewModel; - private readonly LogViewerViewModel logViewerViewModel; - private readonly ISystemTrayService systemTrayService; - private readonly ISystemTrayStatusUpdater systemTrayStatusUpdater; - private readonly IApplicationSettingsService settingsService; - private readonly INotificationService notificationService; - private readonly IProcessMonitorService processMonitorService; - private readonly IProcessMonitorManagerService processMonitorManagerService; - private readonly IProcessPowerPlanAssociationService processPowerPlanAssociationService; - private readonly SettingsViewModel settingsViewModel; - private readonly MainWindowViewModel mainWindowViewModel; - private readonly SystemTweaksViewModel systemTweaksViewModel; - private readonly ISelfResourceManagementService selfResourceManagementService; - private readonly IKeyboardShortcutService keyboardShortcutService; - private readonly IServiceProvider serviceProvider; - private readonly IThemeService themeService; - private System.Timers.Timer? systemTrayUpdateTimer; - private PerformanceViewModel? performanceViewModel; - private bool isSystemTrayUpdatesSuspended; - private int isSystemTrayUpdateInProgress; - private int systemTrayUpdateFailureStreak; - private int startupUpdateCheckStarted; - private AppActivityState? lastAppliedRefreshState; - private readonly IElevationService elevationService; - private readonly ISecurityService securityService; - - // Loading overlay management - private bool isInitializationComplete = false; - private readonly List initializationTasks = new(); - private readonly object initializationLock = new(); - private System.Timers.Timer? initializationTimeoutTimer; - private readonly string debugLogPath = Path.Combine(Path.GetTempPath(), "ThreadPilot_Debug.log"); - - // Flag to skip process monitoring during startup if it causes issues - private readonly bool skipProcessMonitoringDuringStartup = false; - private bool isPerformingShutdown = false; - private readonly NavigationBehavior navigationBehavior = new(); - private bool isPerformanceIntroVisible = false; - private double previousAppContentOpacity = 1; - private TaskCompletionSource? unsavedSettingsDialogCompletionSource; - private bool isSilentStartupMode; - private bool showStartupMinimizedSuggestionOnReady; - - public MainWindow( - ProcessViewModel processViewModel, - PowerPlanViewModel powerPlanViewModel, - IDiagnosticsViewModelProvider diagnosticsViewModelProvider, - ProcessPowerPlanAssociationViewModel associationViewModel, - LogViewerViewModel logViewerViewModel, - ISystemTrayService systemTrayService, - ISystemTrayStatusUpdater systemTrayStatusUpdater, - IApplicationSettingsService settingsService, - INotificationService notificationService, - IProcessMonitorService processMonitorService, - IProcessMonitorManagerService processMonitorManagerService, - IProcessPowerPlanAssociationService processPowerPlanAssociationService, - SettingsViewModel settingsViewModel, - MainWindowViewModel mainWindowViewModel, - SystemTweaksViewModel systemTweaksViewModel, - ISelfResourceManagementService selfResourceManagementService, - IKeyboardShortcutService keyboardShortcutService, - IThemeService themeService, - IServiceProvider serviceProvider, - IElevationService elevationService, - ISecurityService securityService) - { - try - { - System.Diagnostics.Debug.WriteLine("MainWindow constructor starting..."); - - this.InitializeComponent(); - System.Diagnostics.Debug.WriteLine("InitializeComponent completed"); - this.ConfigureDiagnosticsNavigation(); - - // Initialize loading overlay - this.InitializeLoadingOverlay(); - this.LogDebug("Loading overlay initialized"); - this.LogDebug($"Debug log file: {this.debugLogPath}"); - - this.processViewModel = processViewModel; - this.powerPlanViewModel = powerPlanViewModel; - this.diagnosticsViewModelProvider = diagnosticsViewModelProvider; - this.associationViewModel = associationViewModel; - this.logViewerViewModel = logViewerViewModel; - this.systemTrayService = systemTrayService; - this.systemTrayStatusUpdater = systemTrayStatusUpdater; - this.settingsService = settingsService; - this.notificationService = notificationService; - this.processMonitorService = processMonitorService; - this.processMonitorManagerService = processMonitorManagerService; - this.processPowerPlanAssociationService = processPowerPlanAssociationService; - this.settingsViewModel = settingsViewModel; - this.mainWindowViewModel = mainWindowViewModel; - this.systemTweaksViewModel = systemTweaksViewModel; - this.selfResourceManagementService = selfResourceManagementService; - this.keyboardShortcutService = keyboardShortcutService; - this.themeService = themeService; - this.serviceProvider = serviceProvider; - this.elevationService = elevationService; - this.securityService = securityService; - - this.processViewModel.OpenRulesRequested += this.OnOpenRulesRequested; - - System.Diagnostics.Debug.WriteLine("Dependencies assigned"); - - this.SetDataContexts(); - System.Diagnostics.Debug.WriteLine("DataContexts set"); - - this.UpdateLoadingStatus("Starting ThreadPilot...", "Preparing startup sequence."); - - // Start async initialization - marshal to UI thread to prevent cross-thread access exceptions - _ = this.Dispatcher.InvokeAsync(async () => await this.InitializeApplicationAsync()); - System.Diagnostics.Debug.WriteLine("Async initialization started"); - System.Diagnostics.Debug.WriteLine("MainWindow constructor completed successfully"); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Error in MainWindow constructor: {ex}"); - System.Windows.MessageBox.Show( - $"Error initializing MainWindow:\n\n{ex.Message}\n\nStack Trace:\n{ex.StackTrace}", - "MainWindow Initialization Error", MessageBoxButton.OK, MessageBoxImage.Error); - throw; - } - } - - public void ConfigureStartupMode(bool isSilentStartupMode, bool showStartupMinimizedSuggestionOnReady) - { - this.isSilentStartupMode = isSilentStartupMode; - this.showStartupMinimizedSuggestionOnReady = showStartupMinimizedSuggestionOnReady; - - if (!isSilentStartupMode) - { - return; - } - - this.showStartupMinimizedSuggestionOnReady = false; - this.LoadingOverlay.Visibility = Visibility.Collapsed; - this.ClearUIContentBlur(); - - if (this.FindResource("SpinnerAnimation") is Storyboard spinnerAnimation) - { - spinnerAnimation.Stop(); - } - - this.isSystemTrayUpdatesSuspended = true; - this.lastAppliedRefreshState = AppActivityState.TrayHidden; - this.processViewModel.SetProcessViewActive(false); - this.processViewModel.ApplyRefreshDecision(AppRefreshPolicy.Evaluate(AppActivityState.TrayHidden)); - this.powerPlanViewModel.PauseAutoRefresh(); - } - - private void ConfigureDiagnosticsNavigation() - { - this.NavPerf.Visibility = AppNavigationOptions.ShowAdvancedDiagnostics - ? Visibility.Visible - : Visibility.Collapsed; - } - - private PerformanceViewModel GetPerformanceViewModel() - { - if (this.performanceViewModel != null) - { - return this.performanceViewModel; - } - - this.performanceViewModel = this.diagnosticsViewModelProvider.GetOrCreate(); - this.PerformanceViewControl.DataContext = this.performanceViewModel; - return this.performanceViewModel; - } - } -} +namespace ThreadPilot +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using System.Timers; + using System.Windows; + using System.Windows.Controls; + using System.Windows.Input; + using System.Windows.Media.Animation; + using System.Windows.Media.Effects; + using System.Windows.Media.Imaging; + using Microsoft.Extensions.DependencyInjection; + using ThreadPilot.Helpers; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + using ThreadPilot.Views; + + public partial class MainWindow : Wpf.Ui.Controls.FluentWindow + { + private const int SystemTrayUpdateBaseIntervalMs = 10000; + private const int SystemTrayUpdateMaxIntervalMs = 60000; + + private readonly ProcessViewModel processViewModel; + private readonly PowerPlanViewModel powerPlanViewModel; + private readonly Lazy performanceViewModelFactory; + private readonly ProcessPowerPlanAssociationViewModel associationViewModel; + private readonly LogViewerViewModel logViewerViewModel; + private readonly ISystemTrayService systemTrayService; + private readonly ISystemTrayStatusUpdater systemTrayStatusUpdater; + private readonly IApplicationSettingsService settingsService; + private readonly INotificationService notificationService; + private readonly IProcessMonitorService processMonitorService; + private readonly IProcessMonitorManagerService processMonitorManagerService; + private readonly IProcessPowerPlanAssociationService processPowerPlanAssociationService; + private readonly SettingsViewModel settingsViewModel; + private readonly MainWindowViewModel mainWindowViewModel; + private readonly SystemTweaksViewModel systemTweaksViewModel; + private readonly ISelfResourceManagementService selfResourceManagementService; + private readonly IKeyboardShortcutService keyboardShortcutService; + private readonly IServiceProvider serviceProvider; + private readonly IThemeService themeService; + private System.Timers.Timer? systemTrayUpdateTimer; + private PerformanceViewModel? performanceViewModel; + private bool isSystemTrayUpdatesSuspended; + private int isSystemTrayUpdateInProgress; + private int systemTrayUpdateFailureStreak; + private int startupUpdateCheckStarted; + private AppActivityState? lastAppliedRefreshState; + private readonly IElevationService elevationService; + private readonly ISecurityService securityService; + + // Loading overlay management + private bool isInitializationComplete = false; + private readonly List initializationTasks = new(); + private readonly object initializationLock = new(); + private System.Timers.Timer? initializationTimeoutTimer; + private readonly string debugLogPath = Path.Combine(Path.GetTempPath(), "ThreadPilot_Debug.log"); + + // Flag to skip process monitoring during startup if it causes issues + private readonly bool skipProcessMonitoringDuringStartup = false; + private bool isPerformingShutdown = false; + private readonly NavigationBehavior navigationBehavior = new(); + private bool isPerformanceIntroVisible = false; + private double previousAppContentOpacity = 1; + private TaskCompletionSource? unsavedSettingsDialogCompletionSource; + private bool isSilentStartupMode; + private bool showStartupMinimizedSuggestionOnReady; + + public MainWindow( + ProcessViewModel processViewModel, + PowerPlanViewModel powerPlanViewModel, + Lazy performanceViewModelFactory, + ProcessPowerPlanAssociationViewModel associationViewModel, + LogViewerViewModel logViewerViewModel, + ISystemTrayService systemTrayService, + ISystemTrayStatusUpdater systemTrayStatusUpdater, + IApplicationSettingsService settingsService, + INotificationService notificationService, + IProcessMonitorService processMonitorService, + IProcessMonitorManagerService processMonitorManagerService, + IProcessPowerPlanAssociationService processPowerPlanAssociationService, + SettingsViewModel settingsViewModel, + MainWindowViewModel mainWindowViewModel, + SystemTweaksViewModel systemTweaksViewModel, + ISelfResourceManagementService selfResourceManagementService, + IKeyboardShortcutService keyboardShortcutService, + IThemeService themeService, + IServiceProvider serviceProvider, + IElevationService elevationService, + ISecurityService securityService) + { + try + { + System.Diagnostics.Debug.WriteLine("MainWindow constructor starting..."); + + this.InitializeComponent(); + System.Diagnostics.Debug.WriteLine("InitializeComponent completed"); + this.ConfigureDiagnosticsNavigation(); + + // Initialize loading overlay + this.InitializeLoadingOverlay(); + this.LogDebug("Loading overlay initialized"); + this.LogDebug($"Debug log file: {this.debugLogPath}"); + + this.processViewModel = processViewModel; + this.powerPlanViewModel = powerPlanViewModel; + this.performanceViewModelFactory = performanceViewModelFactory; + this.associationViewModel = associationViewModel; + this.logViewerViewModel = logViewerViewModel; + this.systemTrayService = systemTrayService; + this.systemTrayStatusUpdater = systemTrayStatusUpdater; + this.settingsService = settingsService; + this.notificationService = notificationService; + this.processMonitorService = processMonitorService; + this.processMonitorManagerService = processMonitorManagerService; + this.processPowerPlanAssociationService = processPowerPlanAssociationService; + this.settingsViewModel = settingsViewModel; + this.mainWindowViewModel = mainWindowViewModel; + this.systemTweaksViewModel = systemTweaksViewModel; + this.selfResourceManagementService = selfResourceManagementService; + this.keyboardShortcutService = keyboardShortcutService; + this.themeService = themeService; + this.serviceProvider = serviceProvider; + this.elevationService = elevationService; + this.securityService = securityService; + + this.processViewModel.OpenRulesRequested += this.OnOpenRulesRequested; + + System.Diagnostics.Debug.WriteLine("Dependencies assigned"); + + this.SetDataContexts(); + System.Diagnostics.Debug.WriteLine("DataContexts set"); + + this.UpdateLoadingStatus("Starting ThreadPilot...", "Preparing startup sequence."); + + // Start async initialization - marshal to UI thread to prevent cross-thread access exceptions + _ = this.Dispatcher.InvokeAsync(async () => await this.InitializeApplicationAsync()); + System.Diagnostics.Debug.WriteLine("Async initialization started"); + System.Diagnostics.Debug.WriteLine("MainWindow constructor completed successfully"); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Error in MainWindow constructor: {ex}"); + System.Windows.MessageBox.Show( + $"Error initializing MainWindow:\n\n{ex.Message}\n\nStack Trace:\n{ex.StackTrace}", + "MainWindow Initialization Error", MessageBoxButton.OK, MessageBoxImage.Error); + throw; + } + } + + public void ConfigureStartupMode(bool isSilentStartupMode, bool showStartupMinimizedSuggestionOnReady) + { + this.isSilentStartupMode = isSilentStartupMode; + this.showStartupMinimizedSuggestionOnReady = showStartupMinimizedSuggestionOnReady; + + if (!isSilentStartupMode) + { + return; + } + + this.showStartupMinimizedSuggestionOnReady = false; + this.LoadingOverlay.Visibility = Visibility.Collapsed; + this.ClearUIContentBlur(); + + if (this.FindResource("SpinnerAnimation") is Storyboard spinnerAnimation) + { + spinnerAnimation.Stop(); + } + + this.isSystemTrayUpdatesSuspended = true; + this.lastAppliedRefreshState = AppActivityState.TrayHidden; + this.processViewModel.SetProcessViewActive(false); + this.processViewModel.ApplyRefreshDecision(AppRefreshPolicy.Evaluate(AppActivityState.TrayHidden)); + this.powerPlanViewModel.PauseAutoRefresh(); + } + + private void ConfigureDiagnosticsNavigation() + { + this.NavPerf.Visibility = AppNavigationOptions.ShowAdvancedDiagnostics + ? Visibility.Visible + : Visibility.Collapsed; + } + + private PerformanceViewModel GetPerformanceViewModel() + { + if (this.performanceViewModel != null) + { + return this.performanceViewModel; + } + + this.performanceViewModel = this.performanceViewModelFactory.Value; + this.PerformanceViewControl.DataContext = this.performanceViewModel; + return this.performanceViewModel; + } + } +} diff --git a/Models/ApplicationSettingsModel.cs b/Models/ApplicationSettingsModel.cs index 3219d8a..c3fb5d0 100644 --- a/Models/ApplicationSettingsModel.cs +++ b/Models/ApplicationSettingsModel.cs @@ -1,400 +1,359 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Text.Json; - using CommunityToolkit.Mvvm.ComponentModel; - using ThreadPilot.Models.Core; - using ThreadPilot.Services; - - /// - /// Model for application settings including notifications and tray preferences. - /// - public partial class ApplicationSettingsModel : ObservableObject, IModel - { - private static readonly JsonSerializerOptions UserSettingsComparisonJsonOptions = new() - { - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - }; - - [ObservableProperty] - private string id = "ApplicationSettings"; // Singleton settings - - [ObservableProperty] - private DateTime createdAt = DateTime.UtcNow; - - [ObservableProperty] - private DateTime updatedAt = DateTime.UtcNow; - - [ObservableProperty] - private bool enableNotifications = true; - - [ObservableProperty] - private NotificationLevelProfile notificationLevel = NotificationLevelProfile.All; - - [ObservableProperty] - private bool enableBalloonNotifications = true; - - [ObservableProperty] - private bool enableToastNotifications = true; - - [ObservableProperty] - private bool enablePowerPlanChangeNotifications = true; - - [ObservableProperty] - private bool enableProcessMonitoringNotifications = true; - - [ObservableProperty] - private bool enableErrorNotifications = true; - - [ObservableProperty] - private bool enableSuccessNotifications = true; - - [ObservableProperty] - private bool minimizeToTray = true; - - [ObservableProperty] - private bool closeToTray = true; // Default true: close to tray like CPU Set Setter - - [ObservableProperty] - private bool startMinimized = false; - - [ObservableProperty] - private bool showTrayIcon = true; - - [ObservableProperty] - private bool enableQuickApplyFromTray = true; - - [ObservableProperty] - private bool enableMonitoringControlFromTray = true; - - [ObservableProperty] - private int notificationDisplayDurationMs = 3000; - - [ObservableProperty] - private int balloonNotificationTimeoutMs = 5000; - - [ObservableProperty] - private NotificationPosition notificationPosition = NotificationPosition.BottomRight; - - [ObservableProperty] - private NotificationSound notificationSound = NotificationSound.Default; - - [ObservableProperty] - private bool enableNotificationSound = false; - - [ObservableProperty] - private string customTrayIconPath = string.Empty; - - [ObservableProperty] - private bool useCustomTrayIcon = false; - - [ObservableProperty] - private TrayIconStyle trayIconStyle = TrayIconStyle.Default; - - [ObservableProperty] - private bool showDetailedTooltips = true; - - [ObservableProperty] - private bool enableContextMenuAnimations = true; - - [ObservableProperty] - private bool autoHideNotifications = true; - - [ObservableProperty] - private bool enableNotificationHistory = true; - - [ObservableProperty] - private int maxNotificationHistoryItems = 50; - - // Autostart Settings - [ObservableProperty] - private bool autostartWithWindows = true; - - // Power Plan Settings - [ObservableProperty] - private string defaultPowerPlanId = string.Empty; - - [ObservableProperty] - private string defaultPowerPlanName = "Balanced"; - - [ObservableProperty] - private bool restoreDefaultPowerPlanOnExit = true; - - /// - /// When true, all applied CPU masks are cleared when exiting the application - /// (processes return to using all cores). - /// - [ObservableProperty] - private bool clearMasksOnClose = true; - - [ObservableProperty] - private bool useDarkTheme = false; - - [ObservableProperty] - private bool hasUserThemePreference = false; - - [ObservableProperty] - private string language = LocalizationService.DefaultLanguage; - - [ObservableProperty] - private bool enableAutomaticUpdateChecks = true; - - [ObservableProperty] - private DateTimeOffset? lastUpdateCheckUtc = null; - - [ObservableProperty] - private int updateCheckIntervalDays = 7; - - [ObservableProperty] - private bool includePrereleaseUpdates = false; - - // Monitoring Settings - [ObservableProperty] - private int pollingIntervalMs = 5000; - - [ObservableProperty] - private int fallbackPollingIntervalMs = 10000; - - [ObservableProperty] - private bool enableWmiMonitoring = true; - - [ObservableProperty] - private bool enableFallbackPolling = true; - - [ObservableProperty] - private bool applyPersistentRulesOnProcessStart = true; - - // Advanced Settings - [ObservableProperty] - private bool enableDebugLogging = false; - - [ObservableProperty] - private bool enablePerformanceCounters = false; - - [ObservableProperty] - private bool hasSeenPerformanceIntro = false; - - [ObservableProperty] - private bool hasSeenElevationWarning = false; - - [ObservableProperty] - private bool hasSeenStartupMinimizedSuggestion = false; - - [ObservableProperty] - private bool enableSelfLowImpactMode = true; - - [ObservableProperty] - private bool enableSelfAffinityLimit = false; - - [ObservableProperty] - private int maxLogFileSizeMb = 10; - - [ObservableProperty] - private int logRetentionDays = 7; - - /// - /// Keyboard shortcuts configuration. - /// - [ObservableProperty] - private List keyboardShortcuts = new(); - - /// - /// Copies settings from another instance. - /// - public void CopyFrom(ApplicationSettingsModel other) - { - if (other == null) - { - return; - } - - this.EnableNotifications = other.EnableNotifications; - this.NotificationLevel = other.NotificationLevel; - this.EnableBalloonNotifications = other.EnableBalloonNotifications; - this.EnableToastNotifications = other.EnableToastNotifications; - this.EnablePowerPlanChangeNotifications = other.EnablePowerPlanChangeNotifications; - this.EnableProcessMonitoringNotifications = other.EnableProcessMonitoringNotifications; - this.EnableErrorNotifications = other.EnableErrorNotifications; - this.EnableSuccessNotifications = other.EnableSuccessNotifications; - this.MinimizeToTray = other.MinimizeToTray; - this.CloseToTray = other.CloseToTray; - this.StartMinimized = other.StartMinimized; - this.ShowTrayIcon = other.ShowTrayIcon; - this.EnableQuickApplyFromTray = other.EnableQuickApplyFromTray; - this.EnableMonitoringControlFromTray = other.EnableMonitoringControlFromTray; - this.NotificationDisplayDurationMs = other.NotificationDisplayDurationMs; - this.BalloonNotificationTimeoutMs = other.BalloonNotificationTimeoutMs; - this.NotificationPosition = other.NotificationPosition; - this.NotificationSound = other.NotificationSound; - this.EnableNotificationSound = other.EnableNotificationSound; - this.CustomTrayIconPath = other.CustomTrayIconPath; - this.UseCustomTrayIcon = other.UseCustomTrayIcon; - this.TrayIconStyle = other.TrayIconStyle; - this.ShowDetailedTooltips = other.ShowDetailedTooltips; - this.EnableContextMenuAnimations = other.EnableContextMenuAnimations; - this.AutoHideNotifications = other.AutoHideNotifications; - this.EnableNotificationHistory = other.EnableNotificationHistory; - this.MaxNotificationHistoryItems = other.MaxNotificationHistoryItems; - - // Autostart Settings - this.AutostartWithWindows = other.AutostartWithWindows; - - // Power Plan Settings - this.DefaultPowerPlanId = other.DefaultPowerPlanId; - this.DefaultPowerPlanName = other.DefaultPowerPlanName; - this.RestoreDefaultPowerPlanOnExit = other.RestoreDefaultPowerPlanOnExit; - this.ClearMasksOnClose = other.ClearMasksOnClose; - this.UseDarkTheme = other.UseDarkTheme; - this.HasUserThemePreference = other.HasUserThemePreference; - this.Language = LocalizationService.NormalizeLanguage(other.Language); - this.EnableAutomaticUpdateChecks = other.EnableAutomaticUpdateChecks; - this.LastUpdateCheckUtc = other.LastUpdateCheckUtc; - this.UpdateCheckIntervalDays = other.UpdateCheckIntervalDays; - this.IncludePrereleaseUpdates = other.IncludePrereleaseUpdates; - - // Monitoring Settings - this.PollingIntervalMs = other.PollingIntervalMs; - this.FallbackPollingIntervalMs = other.FallbackPollingIntervalMs; - this.EnableWmiMonitoring = other.EnableWmiMonitoring; - this.EnableFallbackPolling = other.EnableFallbackPolling; - this.ApplyPersistentRulesOnProcessStart = other.ApplyPersistentRulesOnProcessStart; - - // Advanced Settings - this.EnableDebugLogging = other.EnableDebugLogging; - this.EnablePerformanceCounters = other.EnablePerformanceCounters; - this.HasSeenPerformanceIntro = other.HasSeenPerformanceIntro; - this.HasSeenElevationWarning = other.HasSeenElevationWarning; - this.HasSeenStartupMinimizedSuggestion = other.HasSeenStartupMinimizedSuggestion; - this.EnableSelfLowImpactMode = other.EnableSelfLowImpactMode; - this.EnableSelfAffinityLimit = other.EnableSelfAffinityLimit; - this.MaxLogFileSizeMb = other.MaxLogFileSizeMb; - this.LogRetentionDays = other.LogRetentionDays; - - // Keyboard Shortcuts - this.KeyboardShortcuts = other.KeyboardShortcuts != null - ? new List(other.KeyboardShortcuts) - : new List(); - } - - // IModel implementation - properties are auto-generated by ObservableProperty - public ValidationResult Validate() - { - var errors = new List(); - - if (this.NotificationDisplayDurationMs < 1000 || this.NotificationDisplayDurationMs > 30000) - { - errors.Add("Notification display duration must be between 1 and 30 seconds"); - } - - if (this.PollingIntervalMs < 1000 || this.PollingIntervalMs > 60000) - { - errors.Add("Process polling interval must be between 1 and 60 seconds"); - } - - if (this.FallbackPollingIntervalMs < 1000 || this.FallbackPollingIntervalMs > 60000) - { - errors.Add("Fallback polling interval must be between 1 and 60 seconds"); - } - - if (this.UpdateCheckIntervalDays < 1 || this.UpdateCheckIntervalDays > 365) - { - errors.Add("Update check interval must be between 1 and 365 days"); - } - - return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); - } - - public IModel Clone() - { - var clone = new ApplicationSettingsModel(); - clone.CopyFrom(this); - clone.Id = this.Id; - clone.CreatedAt = this.CreatedAt; - clone.UpdatedAt = this.UpdatedAt; - return clone; - } - - public bool HasSameUserSettingsAs(ApplicationSettingsModel? other) - { - if (other == null) - { - return false; - } - - var currentSnapshot = (ApplicationSettingsModel)this.Clone(); - var otherSnapshot = (ApplicationSettingsModel)other.Clone(); - - currentSnapshot.Id = otherSnapshot.Id; - currentSnapshot.CreatedAt = otherSnapshot.CreatedAt; - currentSnapshot.UpdatedAt = otherSnapshot.UpdatedAt; - - var currentJson = JsonSerializer.Serialize(currentSnapshot, UserSettingsComparisonJsonOptions); - var otherJson = JsonSerializer.Serialize(otherSnapshot, UserSettingsComparisonJsonOptions); - return string.Equals(currentJson, otherJson, StringComparison.Ordinal); - } - } - - /// - /// Notification level profile options. - /// - public enum NotificationLevelProfile - { - All, - WarningsAndErrorsOnly, - Silent, - } - - /// - /// Notification position options. - /// - public enum NotificationPosition - { - TopLeft, - TopRight, - BottomLeft, - BottomRight, - Center, - } - - /// - /// Notification sound options. - /// - public enum NotificationSound - { - None, - Default, - Information, - Warning, - Error, - Custom, - } - - /// - /// Tray icon style options. - /// - public enum TrayIconStyle - { - Default, - Monochrome, - Colored, - Custom, - } -} +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Text.Json; + using CommunityToolkit.Mvvm.ComponentModel; + using ThreadPilot.Models.Core; + using ThreadPilot.Services; + + public partial class ApplicationSettingsModel : ObservableObject, IModel + { + private static readonly JsonSerializerOptions UserSettingsComparisonJsonOptions = new() + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + }; + + [ObservableProperty] + private string id = "ApplicationSettings"; // Singleton settings + + [ObservableProperty] + private DateTime createdAt = DateTime.UtcNow; + + [ObservableProperty] + private DateTime updatedAt = DateTime.UtcNow; + + [ObservableProperty] + private bool enableNotifications = true; + + [ObservableProperty] + private NotificationLevelProfile notificationLevel = NotificationLevelProfile.All; + + [ObservableProperty] + private bool enableBalloonNotifications = true; + + [ObservableProperty] + private bool enableToastNotifications = true; + + [ObservableProperty] + private bool enablePowerPlanChangeNotifications = true; + + [ObservableProperty] + private bool enableProcessMonitoringNotifications = true; + + [ObservableProperty] + private bool enableErrorNotifications = true; + + [ObservableProperty] + private bool enableSuccessNotifications = true; + + [ObservableProperty] + private bool minimizeToTray = true; + + [ObservableProperty] + private bool closeToTray = true; // Default true: close to tray like CPU Set Setter + + [ObservableProperty] + private bool startMinimized = false; + + [ObservableProperty] + private bool showTrayIcon = true; + + [ObservableProperty] + private bool enableQuickApplyFromTray = true; + + [ObservableProperty] + private bool enableMonitoringControlFromTray = true; + + [ObservableProperty] + private int notificationDisplayDurationMs = 3000; + + [ObservableProperty] + private int balloonNotificationTimeoutMs = 5000; + + [ObservableProperty] + private NotificationPosition notificationPosition = NotificationPosition.BottomRight; + + [ObservableProperty] + private NotificationSound notificationSound = NotificationSound.Default; + + [ObservableProperty] + private bool enableNotificationSound = false; + + [ObservableProperty] + private string customTrayIconPath = string.Empty; + + [ObservableProperty] + private bool useCustomTrayIcon = false; + + [ObservableProperty] + private TrayIconStyle trayIconStyle = TrayIconStyle.Default; + + [ObservableProperty] + private bool showDetailedTooltips = true; + + [ObservableProperty] + private bool enableContextMenuAnimations = true; + + [ObservableProperty] + private bool autoHideNotifications = true; + + [ObservableProperty] + private bool enableNotificationHistory = true; + + [ObservableProperty] + private int maxNotificationHistoryItems = 50; + + // Autostart Settings + [ObservableProperty] + private bool autostartWithWindows = true; + + // Power Plan Settings + [ObservableProperty] + private string defaultPowerPlanId = string.Empty; + + [ObservableProperty] + private string defaultPowerPlanName = "Balanced"; + + [ObservableProperty] + private bool restoreDefaultPowerPlanOnExit = true; + + [ObservableProperty] + private bool clearMasksOnClose = true; + + [ObservableProperty] + private bool useDarkTheme = false; + + [ObservableProperty] + private bool hasUserThemePreference = false; + + [ObservableProperty] + private string language = LocalizationService.DefaultLanguage; + + [ObservableProperty] + private bool enableAutomaticUpdateChecks = true; + + [ObservableProperty] + private DateTimeOffset? lastUpdateCheckUtc = null; + + [ObservableProperty] + private int updateCheckIntervalDays = 7; + + [ObservableProperty] + private bool includePrereleaseUpdates = false; + + // Monitoring Settings + [ObservableProperty] + private int pollingIntervalMs = 5000; + + [ObservableProperty] + private int fallbackPollingIntervalMs = 10000; + + [ObservableProperty] + private bool enableWmiMonitoring = true; + + [ObservableProperty] + private bool enableFallbackPolling = true; + + [ObservableProperty] + private bool applyPersistentRulesOnProcessStart = true; + + // Advanced Settings + [ObservableProperty] + private bool enableDebugLogging = false; + + [ObservableProperty] + private bool enablePerformanceCounters = false; + + [ObservableProperty] + private bool hasSeenPerformanceIntro = false; + + [ObservableProperty] + private bool hasSeenElevationWarning = false; + + [ObservableProperty] + private bool hasSeenStartupMinimizedSuggestion = false; + + [ObservableProperty] + private bool enableSelfLowImpactMode = true; + + [ObservableProperty] + private bool enableSelfAffinityLimit = false; + + [ObservableProperty] + private int maxLogFileSizeMb = 10; + + [ObservableProperty] + private int logRetentionDays = 7; + + [ObservableProperty] + private List keyboardShortcuts = new(); + + public void CopyFrom(ApplicationSettingsModel other) + { + if (other == null) + { + return; + } + + this.EnableNotifications = other.EnableNotifications; + this.NotificationLevel = other.NotificationLevel; + this.EnableBalloonNotifications = other.EnableBalloonNotifications; + this.EnableToastNotifications = other.EnableToastNotifications; + this.EnablePowerPlanChangeNotifications = other.EnablePowerPlanChangeNotifications; + this.EnableProcessMonitoringNotifications = other.EnableProcessMonitoringNotifications; + this.EnableErrorNotifications = other.EnableErrorNotifications; + this.EnableSuccessNotifications = other.EnableSuccessNotifications; + this.MinimizeToTray = other.MinimizeToTray; + this.CloseToTray = other.CloseToTray; + this.StartMinimized = other.StartMinimized; + this.ShowTrayIcon = other.ShowTrayIcon; + this.EnableQuickApplyFromTray = other.EnableQuickApplyFromTray; + this.EnableMonitoringControlFromTray = other.EnableMonitoringControlFromTray; + this.NotificationDisplayDurationMs = other.NotificationDisplayDurationMs; + this.BalloonNotificationTimeoutMs = other.BalloonNotificationTimeoutMs; + this.NotificationPosition = other.NotificationPosition; + this.NotificationSound = other.NotificationSound; + this.EnableNotificationSound = other.EnableNotificationSound; + this.CustomTrayIconPath = other.CustomTrayIconPath; + this.UseCustomTrayIcon = other.UseCustomTrayIcon; + this.TrayIconStyle = other.TrayIconStyle; + this.ShowDetailedTooltips = other.ShowDetailedTooltips; + this.EnableContextMenuAnimations = other.EnableContextMenuAnimations; + this.AutoHideNotifications = other.AutoHideNotifications; + this.EnableNotificationHistory = other.EnableNotificationHistory; + this.MaxNotificationHistoryItems = other.MaxNotificationHistoryItems; + + // Autostart Settings + this.AutostartWithWindows = other.AutostartWithWindows; + + // Power Plan Settings + this.DefaultPowerPlanId = other.DefaultPowerPlanId; + this.DefaultPowerPlanName = other.DefaultPowerPlanName; + this.RestoreDefaultPowerPlanOnExit = other.RestoreDefaultPowerPlanOnExit; + this.ClearMasksOnClose = other.ClearMasksOnClose; + this.UseDarkTheme = other.UseDarkTheme; + this.HasUserThemePreference = other.HasUserThemePreference; + this.Language = LocalizationService.NormalizeLanguage(other.Language); + this.EnableAutomaticUpdateChecks = other.EnableAutomaticUpdateChecks; + this.LastUpdateCheckUtc = other.LastUpdateCheckUtc; + this.UpdateCheckIntervalDays = other.UpdateCheckIntervalDays; + this.IncludePrereleaseUpdates = other.IncludePrereleaseUpdates; + + // Monitoring Settings + this.PollingIntervalMs = other.PollingIntervalMs; + this.FallbackPollingIntervalMs = other.FallbackPollingIntervalMs; + this.EnableWmiMonitoring = other.EnableWmiMonitoring; + this.EnableFallbackPolling = other.EnableFallbackPolling; + this.ApplyPersistentRulesOnProcessStart = other.ApplyPersistentRulesOnProcessStart; + + // Advanced Settings + this.EnableDebugLogging = other.EnableDebugLogging; + this.EnablePerformanceCounters = other.EnablePerformanceCounters; + this.HasSeenPerformanceIntro = other.HasSeenPerformanceIntro; + this.HasSeenElevationWarning = other.HasSeenElevationWarning; + this.HasSeenStartupMinimizedSuggestion = other.HasSeenStartupMinimizedSuggestion; + this.EnableSelfLowImpactMode = other.EnableSelfLowImpactMode; + this.EnableSelfAffinityLimit = other.EnableSelfAffinityLimit; + this.MaxLogFileSizeMb = other.MaxLogFileSizeMb; + this.LogRetentionDays = other.LogRetentionDays; + + // Keyboard Shortcuts + this.KeyboardShortcuts = other.KeyboardShortcuts != null + ? new List(other.KeyboardShortcuts) + : new List(); + } + + // IModel implementation - properties are auto-generated by ObservableProperty + public ValidationResult Validate() + { + var errors = new List(); + + if (this.NotificationDisplayDurationMs < 1000 || this.NotificationDisplayDurationMs > 30000) + { + errors.Add("Notification display duration must be between 1 and 30 seconds"); + } + + if (this.PollingIntervalMs < 1000 || this.PollingIntervalMs > 60000) + { + errors.Add("Process polling interval must be between 1 and 60 seconds"); + } + + if (this.FallbackPollingIntervalMs < 1000 || this.FallbackPollingIntervalMs > 60000) + { + errors.Add("Fallback polling interval must be between 1 and 60 seconds"); + } + + if (this.UpdateCheckIntervalDays < 1 || this.UpdateCheckIntervalDays > 365) + { + errors.Add("Update check interval must be between 1 and 365 days"); + } + + return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); + } + + public IModel Clone() + { + var clone = new ApplicationSettingsModel(); + clone.CopyFrom(this); + clone.Id = this.Id; + clone.CreatedAt = this.CreatedAt; + clone.UpdatedAt = this.UpdatedAt; + return clone; + } + + public bool HasSameUserSettingsAs(ApplicationSettingsModel? other) + { + if (other == null) + { + return false; + } + + var currentSnapshot = (ApplicationSettingsModel)this.Clone(); + var otherSnapshot = (ApplicationSettingsModel)other.Clone(); + + currentSnapshot.Id = otherSnapshot.Id; + currentSnapshot.CreatedAt = otherSnapshot.CreatedAt; + currentSnapshot.UpdatedAt = otherSnapshot.UpdatedAt; + + var currentJson = JsonSerializer.Serialize(currentSnapshot, UserSettingsComparisonJsonOptions); + var otherJson = JsonSerializer.Serialize(otherSnapshot, UserSettingsComparisonJsonOptions); + return string.Equals(currentJson, otherJson, StringComparison.Ordinal); + } + } + + public enum NotificationLevelProfile + { + All, + WarningsAndErrorsOnly, + Silent, + } + + public enum NotificationPosition + { + TopLeft, + TopRight, + BottomLeft, + BottomRight, + Center, + } + + public enum NotificationSound + { + None, + Default, + Information, + Warning, + Error, + Custom, + } + + public enum TrayIconStyle + { + Default, + Monochrome, + Colored, + Custom, + } +} diff --git a/Models/ConditionalProcessProfile.cs b/Models/ConditionalProcessProfile.cs index da5c406..21e2ead 100644 --- a/Models/ConditionalProcessProfile.cs +++ b/Models/ConditionalProcessProfile.cs @@ -1,325 +1,273 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using CommunityToolkit.Mvvm.ComponentModel; - - /// - /// Condition types for profile triggers. - /// - public enum ProfileConditionType - { - SystemLoad, - TimeOfDay, - PowerState, - ProcessCount, - MemoryUsage, - CpuTemperature, - BatteryLevel, - NetworkActivity, - UserIdle, - Custom, - } - - /// - /// Comparison operators for conditions. - /// - public enum ComparisonOperator - { - Equals, - NotEquals, - GreaterThan, - LessThan, - GreaterThanOrEqual, - LessThanOrEqual, - Contains, - NotContains, - Between, - NotBetween, - } - - /// - /// Logical operators for combining conditions. - /// - public enum LogicalOperator - { - And, - Or, - Not, - } - - /// - /// System state information for condition evaluation. - /// - public class SystemState - { - public double CpuUsage { get; set; } - - public double MemoryUsage { get; set; } - - public int ProcessCount { get; set; } - - public DateTime CurrentTime { get; set; } = DateTime.Now; - - public bool IsOnBattery { get; set; } - - public int BatteryLevel { get; set; } - - public double CpuTemperature { get; set; } - - public bool IsUserIdle { get; set; } - - public TimeSpan UserIdleTime { get; set; } - - public double NetworkActivity { get; set; } - - public Dictionary CustomProperties { get; set; } = new(); - } - - /// - /// Individual condition for profile evaluation. - /// - public partial class ProfileCondition : ObservableObject - { - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private ProfileConditionType conditionType; - - [ObservableProperty] - private ComparisonOperator comparisonOperator; - - [ObservableProperty] - private object? value; - - [ObservableProperty] - private object? secondaryValue; // For Between/NotBetween operations - - [ObservableProperty] - private bool isEnabled = true; - - [ObservableProperty] - private string description = string.Empty; - - /// - /// Evaluate this condition against the current system state. - /// - public bool Evaluate(ProcessModel process, SystemState systemState) - { - if (!this.IsEnabled) - { - return true; // Disabled conditions are considered true - } - - try - { - var actualValue = this.GetActualValue(process, systemState); - return CompareValues(actualValue, this.Value, this.SecondaryValue, this.ComparisonOperator); - } - catch (Exception) - { - return false; // Failed conditions are considered false - } - } - - private object? GetActualValue(ProcessModel process, SystemState systemState) - { - return this.ConditionType switch - { - ProfileConditionType.SystemLoad => systemState.CpuUsage, - ProfileConditionType.TimeOfDay => systemState.CurrentTime.TimeOfDay.TotalHours, - ProfileConditionType.PowerState => systemState.IsOnBattery, - ProfileConditionType.ProcessCount => systemState.ProcessCount, - ProfileConditionType.MemoryUsage => systemState.MemoryUsage, - ProfileConditionType.CpuTemperature => systemState.CpuTemperature, - ProfileConditionType.BatteryLevel => systemState.BatteryLevel, - ProfileConditionType.NetworkActivity => systemState.NetworkActivity, - ProfileConditionType.UserIdle => systemState.IsUserIdle, - ProfileConditionType.Custom => systemState.CustomProperties.GetValueOrDefault(this.Name), - _ => null, - }; - } - - private static bool CompareValues(object? actual, object? expected, object? secondary, ComparisonOperator op) - { - if (actual == null || expected == null) - { - return false; - } - - return op switch - { - ComparisonOperator.Equals => actual.Equals(expected), - ComparisonOperator.NotEquals => !actual.Equals(expected), - ComparisonOperator.GreaterThan => Comparer.Default.Compare(actual, expected) > 0, - ComparisonOperator.LessThan => Comparer.Default.Compare(actual, expected) < 0, - ComparisonOperator.GreaterThanOrEqual => Comparer.Default.Compare(actual, expected) >= 0, - ComparisonOperator.LessThanOrEqual => Comparer.Default.Compare(actual, expected) <= 0, - ComparisonOperator.Contains => actual.ToString()?.Contains(expected.ToString() ?? string.Empty) ?? false, - ComparisonOperator.NotContains => !(actual.ToString()?.Contains(expected.ToString() ?? string.Empty) ?? false), - ComparisonOperator.Between => secondary != null && - Comparer.Default.Compare(actual, expected) >= 0 && - Comparer.Default.Compare(actual, secondary) <= 0, - ComparisonOperator.NotBetween => secondary != null && - !(Comparer.Default.Compare(actual, expected) >= 0 && - Comparer.Default.Compare(actual, secondary) <= 0), - _ => false, - }; - } - } - - /// - /// Group of conditions with logical operators. - /// - public partial class ConditionGroup : ObservableObject - { - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private LogicalOperator logicalOperator = LogicalOperator.And; - - [ObservableProperty] - private List conditions = new(); - - [ObservableProperty] - private List subGroups = new(); - - [ObservableProperty] - private bool isEnabled = true; - - /// - /// Evaluate this condition group. - /// - public bool Evaluate(ProcessModel process, SystemState systemState) - { - if (!this.IsEnabled) - { - return true; - } - - var conditionResults = this.Conditions.Select(c => c.Evaluate(process, systemState)).ToList(); - var subGroupResults = this.SubGroups.Select(g => g.Evaluate(process, systemState)).ToList(); - var allResults = conditionResults.Concat(subGroupResults).ToList(); - - if (!allResults.Any()) - { - return true; // No conditions means always true - } - - return this.LogicalOperator switch - { - LogicalOperator.And => allResults.All(r => r), - LogicalOperator.Or => allResults.Any(r => r), - LogicalOperator.Not => !allResults.All(r => r), - _ => false, - }; - } - } - - /// - /// Extended ProfileModel with conditional triggers. - /// - public partial class ConditionalProcessProfile : ProfileModel - { - [ObservableProperty] - private List conditionGroups = new(); - - [ObservableProperty] - private TimeSpan autoApplyDelay = TimeSpan.FromSeconds(5); - - [ObservableProperty] - private int priority = 0; // Higher priority profiles are applied first - - [ObservableProperty] - private bool isAutoApplyEnabled = true; - - [ObservableProperty] - private DateTime lastEvaluated = DateTime.MinValue; - - [ObservableProperty] - private DateTime lastApplied = DateTime.MinValue; - - [ObservableProperty] - private bool wasLastEvaluationTrue = false; - - [ObservableProperty] - private string lastEvaluationReason = string.Empty; - - /// - /// Check if this profile should be applied based on conditions. - /// - public bool ShouldApply(ProcessModel process, SystemState systemState) - { - if (!this.IsAutoApplyEnabled) - { - return false; - } - - this.LastEvaluated = DateTime.UtcNow; - - try - { - // If no condition groups, always apply (like regular profile) - if (!this.ConditionGroups.Any()) - { - this.WasLastEvaluationTrue = true; - this.LastEvaluationReason = "No conditions defined"; - return true; - } - - // Evaluate all condition groups (AND logic between groups) - var results = this.ConditionGroups.Select(g => g.Evaluate(process, systemState)).ToList(); - var shouldApply = results.All(r => r); - - this.WasLastEvaluationTrue = shouldApply; - this.LastEvaluationReason = shouldApply - ? "All condition groups satisfied" - : $"Failed conditions: {string.Join(", ", this.ConditionGroups.Where((g, i) => !results[i]).Select(g => g.Name))}"; - - return shouldApply; - } - catch (Exception ex) - { - this.WasLastEvaluationTrue = false; - this.LastEvaluationReason = $"Evaluation error: {ex.Message}"; - return false; - } - } - - /// - /// Check if enough time has passed since last application. - /// - public bool CanApplyNow() - { - return DateTime.UtcNow - this.LastApplied >= this.AutoApplyDelay; - } - - /// - /// Mark this profile as applied. - /// - public void MarkAsApplied() - { - this.LastApplied = DateTime.UtcNow; - } - } -} - +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.Linq; + using CommunityToolkit.Mvvm.ComponentModel; + + public enum ProfileConditionType + { + SystemLoad, + TimeOfDay, + PowerState, + ProcessCount, + MemoryUsage, + CpuTemperature, + BatteryLevel, + NetworkActivity, + UserIdle, + Custom, + } + + public enum ComparisonOperator + { + Equals, + NotEquals, + GreaterThan, + LessThan, + GreaterThanOrEqual, + LessThanOrEqual, + Contains, + NotContains, + Between, + NotBetween, + } + + public enum LogicalOperator + { + And, + Or, + Not, + } + + public class SystemState + { + public double CpuUsage { get; set; } + + public double MemoryUsage { get; set; } + + public int ProcessCount { get; set; } + + public DateTime CurrentTime { get; set; } = DateTime.Now; + + public bool IsOnBattery { get; set; } + + public int BatteryLevel { get; set; } + + public double CpuTemperature { get; set; } + + public bool IsUserIdle { get; set; } + + public TimeSpan UserIdleTime { get; set; } + + public double NetworkActivity { get; set; } + + public Dictionary CustomProperties { get; set; } = new(); + } + + public partial class ProfileCondition : ObservableObject + { + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private ProfileConditionType conditionType; + + [ObservableProperty] + private ComparisonOperator comparisonOperator; + + [ObservableProperty] + private object? value; + + [ObservableProperty] + private object? secondaryValue; // For Between/NotBetween operations + + [ObservableProperty] + private bool isEnabled = true; + + [ObservableProperty] + private string description = string.Empty; + + public bool Evaluate(ProcessModel process, SystemState systemState) + { + if (!this.IsEnabled) + { + return true; // Disabled conditions are considered true + } + + try + { + var actualValue = this.GetActualValue(process, systemState); + return CompareValues(actualValue, this.Value, this.SecondaryValue, this.ComparisonOperator); + } + catch (Exception) + { + return false; // Failed conditions are considered false + } + } + + private object? GetActualValue(ProcessModel process, SystemState systemState) + { + return this.ConditionType switch + { + ProfileConditionType.SystemLoad => systemState.CpuUsage, + ProfileConditionType.TimeOfDay => systemState.CurrentTime.TimeOfDay.TotalHours, + ProfileConditionType.PowerState => systemState.IsOnBattery, + ProfileConditionType.ProcessCount => systemState.ProcessCount, + ProfileConditionType.MemoryUsage => systemState.MemoryUsage, + ProfileConditionType.CpuTemperature => systemState.CpuTemperature, + ProfileConditionType.BatteryLevel => systemState.BatteryLevel, + ProfileConditionType.NetworkActivity => systemState.NetworkActivity, + ProfileConditionType.UserIdle => systemState.IsUserIdle, + ProfileConditionType.Custom => systemState.CustomProperties.GetValueOrDefault(this.Name), + _ => null, + }; + } + + private static bool CompareValues(object? actual, object? expected, object? secondary, ComparisonOperator op) + { + if (actual == null || expected == null) + { + return false; + } + + return op switch + { + ComparisonOperator.Equals => actual.Equals(expected), + ComparisonOperator.NotEquals => !actual.Equals(expected), + ComparisonOperator.GreaterThan => Comparer.Default.Compare(actual, expected) > 0, + ComparisonOperator.LessThan => Comparer.Default.Compare(actual, expected) < 0, + ComparisonOperator.GreaterThanOrEqual => Comparer.Default.Compare(actual, expected) >= 0, + ComparisonOperator.LessThanOrEqual => Comparer.Default.Compare(actual, expected) <= 0, + ComparisonOperator.Contains => actual.ToString()?.Contains(expected.ToString() ?? string.Empty) ?? false, + ComparisonOperator.NotContains => !(actual.ToString()?.Contains(expected.ToString() ?? string.Empty) ?? false), + ComparisonOperator.Between => secondary != null && + Comparer.Default.Compare(actual, expected) >= 0 && + Comparer.Default.Compare(actual, secondary) <= 0, + ComparisonOperator.NotBetween => secondary != null && + !(Comparer.Default.Compare(actual, expected) >= 0 && + Comparer.Default.Compare(actual, secondary) <= 0), + _ => false, + }; + } + } + + public partial class ConditionGroup : ObservableObject + { + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private LogicalOperator logicalOperator = LogicalOperator.And; + + [ObservableProperty] + private List conditions = new(); + + [ObservableProperty] + private List subGroups = new(); + + [ObservableProperty] + private bool isEnabled = true; + + public bool Evaluate(ProcessModel process, SystemState systemState) + { + if (!this.IsEnabled) + { + return true; + } + + var conditionResults = this.Conditions.Select(c => c.Evaluate(process, systemState)).ToList(); + var subGroupResults = this.SubGroups.Select(g => g.Evaluate(process, systemState)).ToList(); + var allResults = conditionResults.Concat(subGroupResults).ToList(); + + if (!allResults.Any()) + { + return true; // No conditions means always true + } + + return this.LogicalOperator switch + { + LogicalOperator.And => allResults.All(r => r), + LogicalOperator.Or => allResults.Any(r => r), + LogicalOperator.Not => !allResults.All(r => r), + _ => false, + }; + } + } + + public partial class ConditionalProcessProfile : ProfileModel + { + [ObservableProperty] + private List conditionGroups = new(); + + [ObservableProperty] + private TimeSpan autoApplyDelay = TimeSpan.FromSeconds(5); + + [ObservableProperty] + private int priority = 0; // Higher priority profiles are applied first + + [ObservableProperty] + private bool isAutoApplyEnabled = true; + + [ObservableProperty] + private DateTime lastEvaluated = DateTime.MinValue; + + [ObservableProperty] + private DateTime lastApplied = DateTime.MinValue; + + [ObservableProperty] + private bool wasLastEvaluationTrue = false; + + [ObservableProperty] + private string lastEvaluationReason = string.Empty; + + public bool ShouldApply(ProcessModel process, SystemState systemState) + { + if (!this.IsAutoApplyEnabled) + { + return false; + } + + this.LastEvaluated = DateTime.UtcNow; + + try + { + // If no condition groups, always apply (like regular profile) + if (!this.ConditionGroups.Any()) + { + this.WasLastEvaluationTrue = true; + this.LastEvaluationReason = "No conditions defined"; + return true; + } + + // Evaluate all condition groups (AND logic between groups) + var results = this.ConditionGroups.Select(g => g.Evaluate(process, systemState)).ToList(); + var shouldApply = results.All(r => r); + + this.WasLastEvaluationTrue = shouldApply; + this.LastEvaluationReason = shouldApply + ? "All condition groups satisfied" + : $"Failed conditions: {string.Join(", ", this.ConditionGroups.Where((g, i) => !results[i]).Select(g => g.Name))}"; + + return shouldApply; + } + catch (Exception ex) + { + this.WasLastEvaluationTrue = false; + this.LastEvaluationReason = $"Evaluation error: {ex.Message}"; + return false; + } + } + + public bool CanApplyNow() + { + return DateTime.UtcNow - this.LastApplied >= this.AutoApplyDelay; + } + + public void MarkAsApplied() + { + this.LastApplied = DateTime.UtcNow; + } + } +} + diff --git a/Models/Core/IModel.cs b/Models/Core/IModel.cs index 65b486a..d74a6ea 100644 --- a/Models/Core/IModel.cs +++ b/Models/Core/IModel.cs @@ -1,123 +1,83 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models.Core -{ - using System; - using System.ComponentModel; - - /// - /// Base interface for all domain models. - /// - public interface IModel : INotifyPropertyChanged - { - /// - /// Gets unique identifier for the model instance. - /// - string Id { get; } - - /// - /// Gets timestamp when the model was created. - /// - DateTime CreatedAt { get; } - - /// - /// Gets timestamp when the model was last updated. - /// - DateTime UpdatedAt { get; } - - /// - /// Validate the model state. - /// - ValidationResult Validate(); - - /// - /// Create a copy of the model. - /// - IModel Clone(); - } - - /// - /// Validation result for model validation. - /// - public class ValidationResult - { - public bool IsValid { get; } - - public string[] Errors { get; } - - public ValidationResult(bool isValid, params string[] errors) - { - this.IsValid = isValid; - this.Errors = errors ?? Array.Empty(); - } - - public static ValidationResult Success() => new(true); - - public static ValidationResult Failure(params string[] errors) => new(false, errors); - } - - /// - /// Base implementation for domain models. - /// - public abstract class BaseModel : IModel - { - public string Id { get; protected set; } - - public DateTime CreatedAt { get; protected set; } - - public DateTime UpdatedAt { get; protected set; } - - public event PropertyChangedEventHandler? PropertyChanged; - - protected BaseModel() - { - this.Id = Guid.NewGuid().ToString(); - this.CreatedAt = DateTime.UtcNow; - this.UpdatedAt = DateTime.UtcNow; - } - - protected BaseModel(string id) - { - this.Id = id ?? throw new ArgumentNullException(nameof(id)); - this.CreatedAt = DateTime.UtcNow; - this.UpdatedAt = DateTime.UtcNow; - } - - protected virtual void OnPropertyChanged(string propertyName) - { - this.UpdatedAt = DateTime.UtcNow; - this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - protected bool SetProperty(ref T field, T value, string propertyName) - { - if (Equals(field, value)) - { - return false; - } - - field = value; - this.OnPropertyChanged(propertyName); - return true; - } - - public abstract ValidationResult Validate(); - - public abstract IModel Clone(); - } -} - +namespace ThreadPilot.Models.Core +{ + using System; + using System.ComponentModel; + + public interface IModel : INotifyPropertyChanged + { + string Id { get; } + + DateTime CreatedAt { get; } + + DateTime UpdatedAt { get; } + + ValidationResult Validate(); + + IModel Clone(); + } + + public class ValidationResult + { + public bool IsValid { get; } + + public string[] Errors { get; } + + public ValidationResult(bool isValid, params string[] errors) + { + this.IsValid = isValid; + this.Errors = errors ?? Array.Empty(); + } + + public static ValidationResult Success() => new(true); + + public static ValidationResult Failure(params string[] errors) => new(false, errors); + } + + public abstract class BaseModel : IModel + { + public string Id { get; protected set; } + + public DateTime CreatedAt { get; protected set; } + + public DateTime UpdatedAt { get; protected set; } + + public event PropertyChangedEventHandler? PropertyChanged; + + protected BaseModel() + { + this.Id = Guid.NewGuid().ToString(); + this.CreatedAt = DateTime.UtcNow; + this.UpdatedAt = DateTime.UtcNow; + } + + protected BaseModel(string id) + { + this.Id = id ?? throw new ArgumentNullException(nameof(id)); + this.CreatedAt = DateTime.UtcNow; + this.UpdatedAt = DateTime.UtcNow; + } + + protected virtual void OnPropertyChanged(string propertyName) + { + this.UpdatedAt = DateTime.UtcNow; + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + protected bool SetProperty(ref T field, T value, string propertyName) + { + if (Equals(field, value)) + { + return false; + } + + field = value; + this.OnPropertyChanged(propertyName); + return true; + } + + public abstract ValidationResult Validate(); + + public abstract IModel Clone(); + } +} + diff --git a/Models/CoreMask.cs b/Models/CoreMask.cs index b61cfdc..0f25e31 100644 --- a/Models/CoreMask.cs +++ b/Models/CoreMask.cs @@ -1,166 +1,123 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Linq; - using CommunityToolkit.Mvvm.ComponentModel; - - /// - /// Represents a reusable CPU core affinity mask - /// Based on CPUSetSetter's LogicalProcessorMask. - /// - public partial class CoreMask : ObservableObject - { - [ObservableProperty] - private string id = Guid.NewGuid().ToString(); - - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private string description = string.Empty; - - /// - /// Gets or sets array of boolean values, one per logical core. - /// - public ObservableCollection BoolMask { get; set; } = new(); - - public int ProfileSchemaVersion { get; set; } = CpuAffinityProfileSchemaVersions.Legacy; - - public CpuSelection? CpuSelection { get; set; } - - public CpuSelectionMigrationMetadata? CpuSelectionMigration { get; set; } - - [ObservableProperty] - private bool isDefault = false; - - [ObservableProperty] - private bool isEnabled = true; - - [ObservableProperty] - private DateTime createdAt = DateTime.UtcNow; - - [ObservableProperty] - private DateTime updatedAt = DateTime.UtcNow; - - /// - /// Gets a value indicating whether special mask that allows all cores (no restrictions). - /// - public bool IsNoMask => this.BoolMask.All(b => b); - - /// - /// Gets the count of selected cores. - /// - public int SelectedCoreCount => this.BoolMask.Count(b => b); - - /// - /// Converts the boolean mask to a legacy 64-bit processor affinity value. - /// This is only safe for single processor-group selections below CPU 64; - /// topology-aware apply paths must prefer . - /// - public long ToProcessorAffinity() - { - long affinity = 0; - for (int i = 0; i < this.BoolMask.Count; i++) - { - if (this.BoolMask[i]) - { - affinity |= 1L << i; - } - } - return affinity; - } - - /// - /// Creates a CoreMask from a processor affinity value. - /// - public static CoreMask FromProcessorAffinity(long affinity, int coreCount, string name = "Custom") - { - var mask = new CoreMask { Name = name }; - for (int i = 0; i < coreCount; i++) - { - mask.BoolMask.Add(((affinity >> i) & 1) == 1); - } - return mask; - } - - /// - /// Creates a mask with all cores enabled. - /// - public static CoreMask CreateAllCoresMask(int coreCount) - { - var mask = new CoreMask - { - Name = "All Cores", - Description = "Use all available CPU cores", - IsDefault = true, - }; - - for (int i = 0; i < coreCount; i++) - { - mask.BoolMask.Add(true); - } - - return mask; - } - - /// - /// Creates a mask with no cores (empty mask, for deletion purposes). - /// - public static CoreMask CreateNoMask() - { - return new CoreMask - { - Name = "No Restriction", - Description = "Process can use all cores", - IsDefault = false, - }; - } - - public CoreMask Clone() - { - var cloned = new CoreMask - { - Id = Guid.NewGuid().ToString(), - Name = this.Name + " (Copy)", - Description = this.Description, - IsEnabled = this.IsEnabled, - IsDefault = false, - ProfileSchemaVersion = this.ProfileSchemaVersion, - CpuSelection = this.CpuSelection, - CpuSelectionMigration = this.CpuSelectionMigration, - CreatedAt = DateTime.UtcNow, - UpdatedAt = DateTime.UtcNow, - }; - - foreach (var bit in this.BoolMask) - { - cloned.BoolMask.Add(bit); - } - - return cloned; - } - - public override string ToString() - { - return $"{this.Name} ({this.SelectedCoreCount}/{this.BoolMask.Count} cores)"; - } - } -} +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Linq; + using CommunityToolkit.Mvvm.ComponentModel; + + public partial class CoreMask : ObservableObject + { + [ObservableProperty] + private string id = Guid.NewGuid().ToString(); + + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private string description = string.Empty; + + public ObservableCollection BoolMask { get; set; } = new(); + + public int ProfileSchemaVersion { get; set; } = CpuAffinityProfileSchemaVersions.Legacy; + + public CpuSelection? CpuSelection { get; set; } + + public CpuSelectionMigrationMetadata? CpuSelectionMigration { get; set; } + + [ObservableProperty] + private bool isDefault = false; + + [ObservableProperty] + private bool isEnabled = true; + + [ObservableProperty] + private DateTime createdAt = DateTime.UtcNow; + + [ObservableProperty] + private DateTime updatedAt = DateTime.UtcNow; + + public bool IsNoMask => this.BoolMask.All(b => b); + + public int SelectedCoreCount => this.BoolMask.Count(b => b); + + public long ToProcessorAffinity() + { + long affinity = 0; + for (int i = 0; i < this.BoolMask.Count; i++) + { + if (this.BoolMask[i]) + { + affinity |= 1L << i; + } + } + return affinity; + } + + public static CoreMask FromProcessorAffinity(long affinity, int coreCount, string name = "Custom") + { + var mask = new CoreMask { Name = name }; + for (int i = 0; i < coreCount; i++) + { + mask.BoolMask.Add(((affinity >> i) & 1) == 1); + } + return mask; + } + + public static CoreMask CreateAllCoresMask(int coreCount) + { + var mask = new CoreMask + { + Name = "All Cores", + Description = "Use all available CPU cores", + IsDefault = true, + }; + + for (int i = 0; i < coreCount; i++) + { + mask.BoolMask.Add(true); + } + + return mask; + } + + public static CoreMask CreateNoMask() + { + return new CoreMask + { + Name = "No Restriction", + Description = "Process can use all cores", + IsDefault = false, + }; + } + + public CoreMask Clone() + { + var cloned = new CoreMask + { + Id = Guid.NewGuid().ToString(), + Name = this.Name + " (Copy)", + Description = this.Description, + IsEnabled = this.IsEnabled, + IsDefault = false, + ProfileSchemaVersion = this.ProfileSchemaVersion, + CpuSelection = this.CpuSelection, + CpuSelectionMigration = this.CpuSelectionMigration, + CreatedAt = DateTime.UtcNow, + UpdatedAt = DateTime.UtcNow, + }; + + foreach (var bit in this.BoolMask) + { + cloned.BoolMask.Add(bit); + } + + return cloned; + } + + public override string ToString() + { + return $"{this.Name} ({this.SelectedCoreCount}/{this.BoolMask.Count} cores)"; + } + } +} diff --git a/Models/CpuAffinityProfileSchemaVersions.cs b/Models/CpuAffinityProfileSchemaVersions.cs index 86c71bf..8daf212 100644 --- a/Models/CpuAffinityProfileSchemaVersions.cs +++ b/Models/CpuAffinityProfileSchemaVersions.cs @@ -1,25 +1,9 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - public static class CpuAffinityProfileSchemaVersions - { - public const int Legacy = 1; - - public const int CpuSelection = 2; - } -} +namespace ThreadPilot.Models +{ + public static class CpuAffinityProfileSchemaVersions + { + public const int Legacy = 1; + + public const int CpuSelection = 2; + } +} diff --git a/Models/CpuPreset.cs b/Models/CpuPreset.cs index e5dc17e..45ac309 100644 --- a/Models/CpuPreset.cs +++ b/Models/CpuPreset.cs @@ -1,46 +1,27 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - /// - /// Topology-aware CPU affinity preset generated from a CPU topology snapshot. - /// - public sealed record CpuPreset - { - public string PresetId { get; init; } = string.Empty; - - public string Name { get; init; } = string.Empty; - - public string Description { get; init; } = string.Empty; - - public CpuSelection Selection { get; init; } = new(); - - public string Reason { get; init; } = string.Empty; - - public string? SourcePresetId { get; init; } - - public string? Warning { get; init; } - - public CpuTopologySignature? GeneratedByTopologySignature { get; init; } - - public bool IsUserEditable { get; init; } = true; - - public bool IsGenerated { get; init; } = true; - - public bool ReviewRequired { get; init; } - } -} +namespace ThreadPilot.Models +{ + public sealed record CpuPreset + { + public string PresetId { get; init; } = string.Empty; + + public string Name { get; init; } = string.Empty; + + public string Description { get; init; } = string.Empty; + + public CpuSelection Selection { get; init; } = new(); + + public string Reason { get; init; } = string.Empty; + + public string? SourcePresetId { get; init; } + + public string? Warning { get; init; } + + public CpuTopologySignature? GeneratedByTopologySignature { get; init; } + + public bool IsUserEditable { get; init; } = true; + + public bool IsGenerated { get; init; } = true; + + public bool ReviewRequired { get; init; } + } +} diff --git a/Models/CpuSelection.cs b/Models/CpuSelection.cs index c8d63ab..f16985c 100644 --- a/Models/CpuSelection.cs +++ b/Models/CpuSelection.cs @@ -1,378 +1,346 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - - /// - /// Identifies a logical processor without relying on a legacy 64-bit affinity mask. - /// - public readonly record struct ProcessorRef(ushort Group, byte LogicalProcessorNumber, int GlobalIndex); - - /// - /// Stable signature used to determine whether a persisted CPU selection was created for the current topology. - /// - public sealed record CpuTopologySignature - { - public string CpuBrand { get; init; } = "Unknown"; - - public int LogicalProcessorCount { get; init; } - - public int PhysicalCoreCount { get; init; } - - public int ProcessorGroupCount { get; init; } = 1; - - public int NumaNodeCount { get; init; } - - public int LastLevelCacheGroupCount { get; init; } - - public int PackageCount { get; init; } - - public string Source { get; init; } = "Unknown"; - } - - /// - /// Metadata that explains how a CPU selection was built and whether it can be represented by legacy APIs. - /// - public sealed record CpuSelectionMetadata - { - public CpuTopologySignature? TopologySignature { get; init; } - - public bool CreatedFromLegacyAffinityMask { get; init; } - - public bool ContainsLogicalProcessorsBeyondLegacyMask { get; init; } - - public bool HasMultipleProcessorGroups { get; init; } - - public int ProcessorGroupCount { get; init; } - - public int MaxGlobalLogicalProcessorIndex { get; init; } = -1; - - public string SelectionReason { get; init; } = string.Empty; - } - - /// - /// Lightweight topology snapshot used by the CpuSelection migration layer. - /// Runtime topology detection will populate this in a later phase. - /// - public sealed class CpuTopologySnapshot - { - private readonly IReadOnlyDictionary cpuSetIdsByProcessor; - private readonly IReadOnlyDictionary efficiencyClassesByProcessor; - private readonly IReadOnlyDictionary coreIndexesByProcessor; - private readonly IReadOnlyDictionary numaNodeIndexesByProcessor; - private readonly IReadOnlyDictionary lastLevelCacheIndexesByProcessor; - private readonly IReadOnlyDictionary packageIndexesByProcessor; - private readonly IReadOnlyDictionary> smtSiblingGlobalIndexesByProcessor; - - private CpuTopologySnapshot( - IReadOnlyList logicalProcessors, - IReadOnlyDictionary cpuSetIdsByProcessor, - IReadOnlyDictionary efficiencyClassesByProcessor, - IReadOnlyDictionary coreIndexesByProcessor, - IReadOnlyDictionary numaNodeIndexesByProcessor, - IReadOnlyDictionary lastLevelCacheIndexesByProcessor, - IReadOnlyDictionary packageIndexesByProcessor, - IReadOnlyDictionary> smtSiblingGlobalIndexesByProcessor, - CpuTopologySignature signature) - { - this.LogicalProcessors = logicalProcessors; - this.cpuSetIdsByProcessor = cpuSetIdsByProcessor; - this.efficiencyClassesByProcessor = efficiencyClassesByProcessor; - this.coreIndexesByProcessor = coreIndexesByProcessor; - this.numaNodeIndexesByProcessor = numaNodeIndexesByProcessor; - this.lastLevelCacheIndexesByProcessor = lastLevelCacheIndexesByProcessor; - this.packageIndexesByProcessor = packageIndexesByProcessor; - this.smtSiblingGlobalIndexesByProcessor = smtSiblingGlobalIndexesByProcessor; - this.Signature = signature; - } - - public IReadOnlyList LogicalProcessors { get; } - - public CpuTopologySignature Signature { get; } - - public static CpuTopologySnapshot Create( - IEnumerable logicalProcessors, - IReadOnlyDictionary? cpuSetIds = null, - IReadOnlyDictionary? efficiencyClasses = null, - CpuTopologySignature? signature = null, - IReadOnlyDictionary? coreIndexes = null, - IReadOnlyDictionary? numaNodeIndexes = null, - IReadOnlyDictionary? lastLevelCacheIndexes = null, - IReadOnlyDictionary? packageIndexes = null, - IReadOnlyDictionary>? smtSiblingGlobalIndexes = null) - { - ArgumentNullException.ThrowIfNull(logicalProcessors); - - var processors = logicalProcessors - .Distinct() - .OrderBy(processor => processor.GlobalIndex) - .ThenBy(processor => processor.Group) - .ThenBy(processor => processor.LogicalProcessorNumber) - .ToList(); - - var duplicatedGlobalIndexes = processors - .GroupBy(processor => processor.GlobalIndex) - .Where(group => group.Count() > 1) - .Select(group => group.Key) - .ToList(); - if (duplicatedGlobalIndexes.Count > 0) - { - throw new ArgumentException( - $"GlobalIndex must be unique in a CPU topology snapshot. Duplicates: {string.Join(", ", duplicatedGlobalIndexes)}.", - nameof(logicalProcessors)); - } - - var processorSet = processors.ToHashSet(); - var cpuSetMap = cpuSetIds? - .Where(kvp => processorSet.Contains(kvp.Key)) - .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) - ?? new Dictionary(); - - var efficiencyClassMap = efficiencyClasses? - .Where(kvp => processorSet.Contains(kvp.Key)) - .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) - ?? new Dictionary(); - - var coreIndexMap = FilterKnownProcessorMap(coreIndexes, processorSet); - var numaNodeIndexMap = FilterKnownProcessorMap(numaNodeIndexes, processorSet); - var lastLevelCacheIndexMap = FilterKnownProcessorMap(lastLevelCacheIndexes, processorSet); - var packageIndexMap = FilterKnownProcessorMap(packageIndexes, processorSet); - var knownGlobalIndexes = processors.Select(processor => processor.GlobalIndex).ToHashSet(); - var smtSiblingMap = smtSiblingGlobalIndexes? - .Where(kvp => processorSet.Contains(kvp.Key)) - .ToDictionary( - kvp => kvp.Key, - kvp => (IReadOnlyList)kvp.Value - .Where(knownGlobalIndexes.Contains) - .Distinct() - .OrderBy(index => index) - .ToList()) - ?? new Dictionary>(); - - var resolvedSignature = signature ?? new CpuTopologySignature - { - LogicalProcessorCount = processors.Count, - PhysicalCoreCount = coreIndexMap.Count == 0 - ? processors.Count - : coreIndexMap.Values.Distinct().Count(), - ProcessorGroupCount = processors.Select(processor => processor.Group).Distinct().Count(), - NumaNodeCount = numaNodeIndexMap.Values.Distinct().Count(), - LastLevelCacheGroupCount = lastLevelCacheIndexMap.Values.Distinct().Count(), - PackageCount = packageIndexMap.Values.Distinct().Count(), - Source = "Snapshot", - }; - - return new CpuTopologySnapshot( - processors, - cpuSetMap, - efficiencyClassMap, - coreIndexMap, - numaNodeIndexMap, - lastLevelCacheIndexMap, - packageIndexMap, - smtSiblingMap, - resolvedSignature); - } - - public bool TryGetCpuSetId(ProcessorRef processor, out uint cpuSetId) => - this.cpuSetIdsByProcessor.TryGetValue(processor, out cpuSetId); - - public bool TryGetEfficiencyClass(ProcessorRef processor, out byte efficiencyClass) => - this.efficiencyClassesByProcessor.TryGetValue(processor, out efficiencyClass); - - public bool TryGetCoreIndex(ProcessorRef processor, out int coreIndex) => - this.coreIndexesByProcessor.TryGetValue(processor, out coreIndex); - - public bool TryGetNumaNodeIndex(ProcessorRef processor, out int numaNodeIndex) => - this.numaNodeIndexesByProcessor.TryGetValue(processor, out numaNodeIndex); - - public bool TryGetLastLevelCacheIndex(ProcessorRef processor, out int lastLevelCacheIndex) => - this.lastLevelCacheIndexesByProcessor.TryGetValue(processor, out lastLevelCacheIndex); - - public bool TryGetPackageIndex(ProcessorRef processor, out int packageIndex) => - this.packageIndexesByProcessor.TryGetValue(processor, out packageIndex); - - public IReadOnlyList GetSmtSiblingGlobalIndexes(ProcessorRef processor) => - this.smtSiblingGlobalIndexesByProcessor.TryGetValue(processor, out var siblings) - ? siblings - : []; - - public byte? GetPerformanceEfficiencyClass() - { - if (this.efficiencyClassesByProcessor.Count == 0) - { - return null; - } - - return this.efficiencyClassesByProcessor.Values.Max(); - } - - private static Dictionary FilterKnownProcessorMap( - IReadOnlyDictionary? source, - HashSet processorSet) - { - return source? - .Where(kvp => processorSet.Contains(kvp.Key)) - .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) - ?? new Dictionary(); - } - } - - /// - /// Group-aware CPU selection model used by new persistence and migration code. - /// - public sealed record CpuSelection - { - public List CpuSetIds { get; init; } = new(); - - public List LogicalProcessors { get; init; } = new(); - - public List GlobalLogicalProcessorIndexes { get; init; } = new(); - - public CpuSelectionMetadata Metadata { get; init; } = new(); - - public static CpuSelection FromProcessors( - IEnumerable processors, - CpuTopologySnapshot topology, - string selectionReason = "") - { - ArgumentNullException.ThrowIfNull(processors); - ArgumentNullException.ThrowIfNull(topology); - - var selectedProcessors = processors - .Distinct() - .OrderBy(processor => processor.GlobalIndex) - .ThenBy(processor => processor.Group) - .ThenBy(processor => processor.LogicalProcessorNumber) - .ToList(); - - var topologyProcessors = topology.LogicalProcessors.ToHashSet(); - var missingProcessors = selectedProcessors - .Where(processor => !topologyProcessors.Contains(processor)) - .ToList(); - if (missingProcessors.Count > 0) - { - throw new ArgumentException( - $"CPU selection contains processor(s) not present in the topology: {string.Join(", ", missingProcessors)}.", - nameof(processors)); - } - - var cpuSetIds = selectedProcessors - .Select(processor => topology.TryGetCpuSetId(processor, out var cpuSetId) ? (uint?)cpuSetId : null) - .Where(cpuSetId => cpuSetId.HasValue) - .Select(cpuSetId => cpuSetId!.Value) - .Distinct() - .OrderBy(cpuSetId => cpuSetId) - .ToList(); - - return new CpuSelection - { - CpuSetIds = cpuSetIds, - LogicalProcessors = selectedProcessors, - GlobalLogicalProcessorIndexes = selectedProcessors - .Select(processor => processor.GlobalIndex) - .Distinct() - .OrderBy(index => index) - .ToList(), - Metadata = CreateMetadata(selectedProcessors, topology.Signature, createdFromLegacyAffinityMask: false, selectionReason), - }; - } - - public static CpuSelection FromLegacyAffinityMask(long mask, CpuTopologySnapshot topology) - { - ArgumentNullException.ThrowIfNull(topology); - - var unsignedMask = unchecked((ulong)mask); - var selectedIndexes = new HashSet(); - for (var bit = 0; bit < 64; bit++) - { - if ((unsignedMask & (1UL << bit)) != 0) - { - selectedIndexes.Add(bit); - } - } - - var selectedProcessors = topology.LogicalProcessors - .Where(processor => selectedIndexes.Contains(processor.GlobalIndex)) - .ToList(); - - var selection = FromProcessors(selectedProcessors, topology, "Migrated from legacy affinity mask"); - return selection with - { - Metadata = CreateMetadata( - selection.LogicalProcessors, - topology.Signature, - createdFromLegacyAffinityMask: true, - "Migrated from legacy affinity mask"), - }; - } - - public static long? ToLegacyAffinityMaskOrNull(CpuSelection selection) - { - ArgumentNullException.ThrowIfNull(selection); - - if (selection.LogicalProcessors.Any(processor => processor.GlobalIndex >= 64)) - { - return null; - } - - if (selection.LogicalProcessors.Select(processor => processor.Group).Distinct().Count() > 1) - { - return null; - } - - long mask = 0; - foreach (var processor in selection.LogicalProcessors) - { - if (processor.GlobalIndex < 0) - { - return null; - } - - mask |= 1L << processor.GlobalIndex; - } - - return mask; - } - - private static CpuSelectionMetadata CreateMetadata( - IReadOnlyCollection processors, - CpuTopologySignature signature, - bool createdFromLegacyAffinityMask, - string selectionReason) - { - var groups = processors.Select(processor => processor.Group).Distinct().ToList(); - var maxGlobalIndex = processors.Count == 0 - ? -1 - : processors.Max(processor => processor.GlobalIndex); - - return new CpuSelectionMetadata - { - TopologySignature = signature, - CreatedFromLegacyAffinityMask = createdFromLegacyAffinityMask, - ContainsLogicalProcessorsBeyondLegacyMask = maxGlobalIndex >= 64, - HasMultipleProcessorGroups = groups.Count > 1, - ProcessorGroupCount = groups.Count, - MaxGlobalLogicalProcessorIndex = maxGlobalIndex, - SelectionReason = selectionReason, - }; - } - } -} +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.Linq; + + public readonly record struct ProcessorRef(ushort Group, byte LogicalProcessorNumber, int GlobalIndex); + + public sealed record CpuTopologySignature + { + public string CpuBrand { get; init; } = "Unknown"; + + public int LogicalProcessorCount { get; init; } + + public int PhysicalCoreCount { get; init; } + + public int ProcessorGroupCount { get; init; } = 1; + + public int NumaNodeCount { get; init; } + + public int LastLevelCacheGroupCount { get; init; } + + public int PackageCount { get; init; } + + public string Source { get; init; } = "Unknown"; + } + + public sealed record CpuSelectionMetadata + { + public CpuTopologySignature? TopologySignature { get; init; } + + public bool CreatedFromLegacyAffinityMask { get; init; } + + public bool ContainsLogicalProcessorsBeyondLegacyMask { get; init; } + + public bool HasMultipleProcessorGroups { get; init; } + + public int ProcessorGroupCount { get; init; } + + public int MaxGlobalLogicalProcessorIndex { get; init; } = -1; + + public string SelectionReason { get; init; } = string.Empty; + } + + public sealed class CpuTopologySnapshot + { + private readonly IReadOnlyDictionary cpuSetIdsByProcessor; + private readonly IReadOnlyDictionary efficiencyClassesByProcessor; + private readonly IReadOnlyDictionary coreIndexesByProcessor; + private readonly IReadOnlyDictionary numaNodeIndexesByProcessor; + private readonly IReadOnlyDictionary lastLevelCacheIndexesByProcessor; + private readonly IReadOnlyDictionary packageIndexesByProcessor; + private readonly IReadOnlyDictionary> smtSiblingGlobalIndexesByProcessor; + + private CpuTopologySnapshot( + IReadOnlyList logicalProcessors, + IReadOnlyDictionary cpuSetIdsByProcessor, + IReadOnlyDictionary efficiencyClassesByProcessor, + IReadOnlyDictionary coreIndexesByProcessor, + IReadOnlyDictionary numaNodeIndexesByProcessor, + IReadOnlyDictionary lastLevelCacheIndexesByProcessor, + IReadOnlyDictionary packageIndexesByProcessor, + IReadOnlyDictionary> smtSiblingGlobalIndexesByProcessor, + CpuTopologySignature signature) + { + this.LogicalProcessors = logicalProcessors; + this.cpuSetIdsByProcessor = cpuSetIdsByProcessor; + this.efficiencyClassesByProcessor = efficiencyClassesByProcessor; + this.coreIndexesByProcessor = coreIndexesByProcessor; + this.numaNodeIndexesByProcessor = numaNodeIndexesByProcessor; + this.lastLevelCacheIndexesByProcessor = lastLevelCacheIndexesByProcessor; + this.packageIndexesByProcessor = packageIndexesByProcessor; + this.smtSiblingGlobalIndexesByProcessor = smtSiblingGlobalIndexesByProcessor; + this.Signature = signature; + } + + public IReadOnlyList LogicalProcessors { get; } + + public CpuTopologySignature Signature { get; } + + public static CpuTopologySnapshot Create( + IEnumerable logicalProcessors, + IReadOnlyDictionary? cpuSetIds = null, + IReadOnlyDictionary? efficiencyClasses = null, + CpuTopologySignature? signature = null, + IReadOnlyDictionary? coreIndexes = null, + IReadOnlyDictionary? numaNodeIndexes = null, + IReadOnlyDictionary? lastLevelCacheIndexes = null, + IReadOnlyDictionary? packageIndexes = null, + IReadOnlyDictionary>? smtSiblingGlobalIndexes = null) + { + ArgumentNullException.ThrowIfNull(logicalProcessors); + + var processors = logicalProcessors + .Distinct() + .OrderBy(processor => processor.GlobalIndex) + .ThenBy(processor => processor.Group) + .ThenBy(processor => processor.LogicalProcessorNumber) + .ToList(); + + var duplicatedGlobalIndexes = processors + .GroupBy(processor => processor.GlobalIndex) + .Where(group => group.Count() > 1) + .Select(group => group.Key) + .ToList(); + if (duplicatedGlobalIndexes.Count > 0) + { + throw new ArgumentException( + $"GlobalIndex must be unique in a CPU topology snapshot. Duplicates: {string.Join(", ", duplicatedGlobalIndexes)}.", + nameof(logicalProcessors)); + } + + var processorSet = processors.ToHashSet(); + var cpuSetMap = cpuSetIds? + .Where(kvp => processorSet.Contains(kvp.Key)) + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) + ?? new Dictionary(); + + var efficiencyClassMap = efficiencyClasses? + .Where(kvp => processorSet.Contains(kvp.Key)) + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) + ?? new Dictionary(); + + var coreIndexMap = FilterKnownProcessorMap(coreIndexes, processorSet); + var numaNodeIndexMap = FilterKnownProcessorMap(numaNodeIndexes, processorSet); + var lastLevelCacheIndexMap = FilterKnownProcessorMap(lastLevelCacheIndexes, processorSet); + var packageIndexMap = FilterKnownProcessorMap(packageIndexes, processorSet); + var knownGlobalIndexes = processors.Select(processor => processor.GlobalIndex).ToHashSet(); + var smtSiblingMap = smtSiblingGlobalIndexes? + .Where(kvp => processorSet.Contains(kvp.Key)) + .ToDictionary( + kvp => kvp.Key, + kvp => (IReadOnlyList)kvp.Value + .Where(knownGlobalIndexes.Contains) + .Distinct() + .OrderBy(index => index) + .ToList()) + ?? new Dictionary>(); + + var resolvedSignature = signature ?? new CpuTopologySignature + { + LogicalProcessorCount = processors.Count, + PhysicalCoreCount = coreIndexMap.Count == 0 + ? processors.Count + : coreIndexMap.Values.Distinct().Count(), + ProcessorGroupCount = processors.Select(processor => processor.Group).Distinct().Count(), + NumaNodeCount = numaNodeIndexMap.Values.Distinct().Count(), + LastLevelCacheGroupCount = lastLevelCacheIndexMap.Values.Distinct().Count(), + PackageCount = packageIndexMap.Values.Distinct().Count(), + Source = "Snapshot", + }; + + return new CpuTopologySnapshot( + processors, + cpuSetMap, + efficiencyClassMap, + coreIndexMap, + numaNodeIndexMap, + lastLevelCacheIndexMap, + packageIndexMap, + smtSiblingMap, + resolvedSignature); + } + + public bool TryGetCpuSetId(ProcessorRef processor, out uint cpuSetId) => + this.cpuSetIdsByProcessor.TryGetValue(processor, out cpuSetId); + + public bool TryGetEfficiencyClass(ProcessorRef processor, out byte efficiencyClass) => + this.efficiencyClassesByProcessor.TryGetValue(processor, out efficiencyClass); + + public bool TryGetCoreIndex(ProcessorRef processor, out int coreIndex) => + this.coreIndexesByProcessor.TryGetValue(processor, out coreIndex); + + public bool TryGetNumaNodeIndex(ProcessorRef processor, out int numaNodeIndex) => + this.numaNodeIndexesByProcessor.TryGetValue(processor, out numaNodeIndex); + + public bool TryGetLastLevelCacheIndex(ProcessorRef processor, out int lastLevelCacheIndex) => + this.lastLevelCacheIndexesByProcessor.TryGetValue(processor, out lastLevelCacheIndex); + + public bool TryGetPackageIndex(ProcessorRef processor, out int packageIndex) => + this.packageIndexesByProcessor.TryGetValue(processor, out packageIndex); + + public IReadOnlyList GetSmtSiblingGlobalIndexes(ProcessorRef processor) => + this.smtSiblingGlobalIndexesByProcessor.TryGetValue(processor, out var siblings) + ? siblings + : []; + + public byte? GetPerformanceEfficiencyClass() + { + if (this.efficiencyClassesByProcessor.Count == 0) + { + return null; + } + + return this.efficiencyClassesByProcessor.Values.Max(); + } + + private static Dictionary FilterKnownProcessorMap( + IReadOnlyDictionary? source, + HashSet processorSet) + { + return source? + .Where(kvp => processorSet.Contains(kvp.Key)) + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value) + ?? new Dictionary(); + } + } + + public sealed record CpuSelection + { + public List CpuSetIds { get; init; } = new(); + + public List LogicalProcessors { get; init; } = new(); + + public List GlobalLogicalProcessorIndexes { get; init; } = new(); + + public CpuSelectionMetadata Metadata { get; init; } = new(); + + public static CpuSelection FromProcessors( + IEnumerable processors, + CpuTopologySnapshot topology, + string selectionReason = "") + { + ArgumentNullException.ThrowIfNull(processors); + ArgumentNullException.ThrowIfNull(topology); + + var selectedProcessors = processors + .Distinct() + .OrderBy(processor => processor.GlobalIndex) + .ThenBy(processor => processor.Group) + .ThenBy(processor => processor.LogicalProcessorNumber) + .ToList(); + + var topologyProcessors = topology.LogicalProcessors.ToHashSet(); + var missingProcessors = selectedProcessors + .Where(processor => !topologyProcessors.Contains(processor)) + .ToList(); + if (missingProcessors.Count > 0) + { + throw new ArgumentException( + $"CPU selection contains processor(s) not present in the topology: {string.Join(", ", missingProcessors)}.", + nameof(processors)); + } + + var cpuSetIds = selectedProcessors + .Select(processor => topology.TryGetCpuSetId(processor, out var cpuSetId) ? (uint?)cpuSetId : null) + .Where(cpuSetId => cpuSetId.HasValue) + .Select(cpuSetId => cpuSetId!.Value) + .Distinct() + .OrderBy(cpuSetId => cpuSetId) + .ToList(); + + return new CpuSelection + { + CpuSetIds = cpuSetIds, + LogicalProcessors = selectedProcessors, + GlobalLogicalProcessorIndexes = selectedProcessors + .Select(processor => processor.GlobalIndex) + .Distinct() + .OrderBy(index => index) + .ToList(), + Metadata = CreateMetadata(selectedProcessors, topology.Signature, createdFromLegacyAffinityMask: false, selectionReason), + }; + } + + public static CpuSelection FromLegacyAffinityMask(long mask, CpuTopologySnapshot topology) + { + ArgumentNullException.ThrowIfNull(topology); + + var unsignedMask = unchecked((ulong)mask); + var selectedIndexes = new HashSet(); + for (var bit = 0; bit < 64; bit++) + { + if ((unsignedMask & (1UL << bit)) != 0) + { + selectedIndexes.Add(bit); + } + } + + var selectedProcessors = topology.LogicalProcessors + .Where(processor => selectedIndexes.Contains(processor.GlobalIndex)) + .ToList(); + + var selection = FromProcessors(selectedProcessors, topology, "Migrated from legacy affinity mask"); + return selection with + { + Metadata = CreateMetadata( + selection.LogicalProcessors, + topology.Signature, + createdFromLegacyAffinityMask: true, + "Migrated from legacy affinity mask"), + }; + } + + public static long? ToLegacyAffinityMaskOrNull(CpuSelection selection) + { + ArgumentNullException.ThrowIfNull(selection); + + if (selection.LogicalProcessors.Any(processor => processor.GlobalIndex >= 64)) + { + return null; + } + + if (selection.LogicalProcessors.Select(processor => processor.Group).Distinct().Count() > 1) + { + return null; + } + + long mask = 0; + foreach (var processor in selection.LogicalProcessors) + { + if (processor.GlobalIndex < 0) + { + return null; + } + + mask |= 1L << processor.GlobalIndex; + } + + return mask; + } + + private static CpuSelectionMetadata CreateMetadata( + IReadOnlyCollection processors, + CpuTopologySignature signature, + bool createdFromLegacyAffinityMask, + string selectionReason) + { + var groups = processors.Select(processor => processor.Group).Distinct().ToList(); + var maxGlobalIndex = processors.Count == 0 + ? -1 + : processors.Max(processor => processor.GlobalIndex); + + return new CpuSelectionMetadata + { + TopologySignature = signature, + CreatedFromLegacyAffinityMask = createdFromLegacyAffinityMask, + ContainsLogicalProcessorsBeyondLegacyMask = maxGlobalIndex >= 64, + HasMultipleProcessorGroups = groups.Count > 1, + ProcessorGroupCount = groups.Count, + MaxGlobalLogicalProcessorIndex = maxGlobalIndex, + SelectionReason = selectionReason, + }; + } + } +} diff --git a/Models/CpuSelectionMigrationMetadata.cs b/Models/CpuSelectionMigrationMetadata.cs index a3c47e3..80bc905 100644 --- a/Models/CpuSelectionMigrationMetadata.cs +++ b/Models/CpuSelectionMigrationMetadata.cs @@ -1,35 +1,19 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - public sealed record CpuSelectionMigrationMetadata - { - public bool CreatedFromLegacyAffinityMask { get; init; } - - public bool CreatedFromLegacyCoreMask { get; init; } - - public bool ReviewRequired { get; init; } - - public string MigrationConfidence { get; init; } = string.Empty; - - public string Reason { get; init; } = string.Empty; - - public CpuTopologySignature? TopologySignature { get; init; } - - public long? SourceLegacyAffinityMask { get; init; } - } -} +namespace ThreadPilot.Models +{ + public sealed record CpuSelectionMigrationMetadata + { + public bool CreatedFromLegacyAffinityMask { get; init; } + + public bool CreatedFromLegacyCoreMask { get; init; } + + public bool ReviewRequired { get; init; } + + public string MigrationConfidence { get; init; } = string.Empty; + + public string Reason { get; init; } = string.Empty; + + public CpuTopologySignature? TopologySignature { get; init; } + + public long? SourceLegacyAffinityMask { get; init; } + } +} diff --git a/Models/CpuTopologyModel.cs b/Models/CpuTopologyModel.cs index e0fc3c3..cdca1f5 100644 --- a/Models/CpuTopologyModel.cs +++ b/Models/CpuTopologyModel.cs @@ -1,197 +1,133 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.Linq; - using CommunityToolkit.Mvvm.ComponentModel; - - /// - /// Represents a logical CPU core with topology information. - /// - public partial class CpuCoreModel : ObservableObject - { - public int LogicalCoreId { get; set; } - - public int PhysicalCoreId { get; set; } - - public int SocketId { get; set; } - - public int? CcdId { get; set; } // Core Complex Die (AMD) - - public int? ClusterId { get; set; } // Intel Cluster - - public CpuCoreType CoreType { get; set; } = CpuCoreType.Unknown; - - public bool IsHyperThreaded { get; set; } - - public int? HyperThreadSibling { get; set; } - - public string Label { get; set; } = string.Empty; - - public string LogicalProcessorName { get; set; } = string.Empty; // e.g., "Core0_T0", "Core0_T1" (T0 = physical, T1+ = SMT) - - [ObservableProperty] - private bool isEnabled = true; - - [ObservableProperty] - private bool isSelected = false; - - /// - /// Gets the affinity mask bit for this logical core. - /// - public long AffinityMask => 1L << this.LogicalCoreId; - } - - /// - /// Types of CPU cores. - /// - public enum CpuCoreType - { - Unknown, - Standard, - PerformanceCore, // Intel P-cores - EfficiencyCore, // Intel E-cores - Zen, // AMD Zen cores - ZenPlus, // AMD Zen+ cores - Zen2, // AMD Zen2 cores - Zen3, // AMD Zen3 cores - Zen4, // AMD Zen4 cores - } - - /// - /// Represents CPU topology information. - /// - public class CpuTopologyModel - { - public List LogicalCores { get; set; } = new(); - - public int TotalLogicalCores => this.LogicalCores.Count; - - public int TotalPhysicalCores => this.LogicalCores.GroupBy(c => c.PhysicalCoreId).Count(); - - public int TotalSockets => this.LogicalCores.GroupBy(c => c.SocketId).Count(); - - public int SocketCount => this.TotalSockets; // Alias for TotalSockets - - public bool HasHyperThreading => this.LogicalCores.Any(c => c.IsHyperThreaded); - - public bool HasSmt => this.HasHyperThreading; // SMT is AMD's term for HyperThreading - - public bool HasIntelHybrid => this.LogicalCores.Any(c => c.CoreType == CpuCoreType.PerformanceCore || c.CoreType == CpuCoreType.EfficiencyCore); - - public bool HasHybridArchitecture => this.HasIntelHybrid; // Alias for HasIntelHybrid - - public bool HasAmdCcd => this.LogicalCores.Any(c => c.CcdId.HasValue); - - public int CcdCount => this.LogicalCores.Where(c => c.CcdId.HasValue).Select(c => c.CcdId!.Value).Distinct().Count(); - - public string Architecture => this.CpuArchitecture; // Alias for CpuArchitecture - - public string CpuArchitecture { get; set; } = "Unknown"; - - public string CpuBrand { get; set; } = "Unknown"; - - public bool TopologyDetectionSuccessful { get; set; } = false; - - /// - /// Gets all CCDs (Core Complex Dies) available. - /// - public IEnumerable AvailableCcds => this.LogicalCores - .Where(c => c.CcdId.HasValue) - .Select(c => c.CcdId!.Value) - .Distinct() - .OrderBy(id => id); - - /// - /// Gets all performance cores (Intel P-cores). - /// - public IEnumerable PerformanceCores => this.LogicalCores - .Where(c => c.CoreType == CpuCoreType.PerformanceCore); - - /// - /// Gets all efficiency cores (Intel E-cores). - /// - public IEnumerable EfficiencyCores => this.LogicalCores - .Where(c => c.CoreType == CpuCoreType.EfficiencyCore); - - /// - /// Gets all physical cores (one logical core per physical core, excluding HT siblings). - /// - public IEnumerable PhysicalCores => this.LogicalCores - .GroupBy(c => c.PhysicalCoreId) - .Select(g => g.OrderBy(c => c.LogicalCoreId).First()); - - /// - /// Gets cores by CCD ID. - /// - public IEnumerable GetCoresByCcd(int ccdId) => this.LogicalCores - .Where(c => c.CcdId == ccdId); - - /// - /// Gets cores by socket ID. - /// - public IEnumerable GetCoresBySocket(int socketId) => this.LogicalCores - .Where(c => c.SocketId == socketId); - - /// - /// Calculates affinity mask for selected cores. - /// - public long CalculateAffinityMask(IEnumerable cores) - { - return cores.Aggregate(0L, (mask, core) => mask | core.AffinityMask); - } - - /// - /// Gets affinity mask for all physical cores (excluding HT siblings). - /// - public long GetPhysicalCoresAffinityMask() => this.CalculateAffinityMask(this.PhysicalCores); - - /// - /// Gets affinity mask for performance cores. - /// - public long GetPerformanceCoresAffinityMask() => this.CalculateAffinityMask(this.PerformanceCores); - - /// - /// Gets affinity mask for efficiency cores. - /// - public long GetEfficiencyCoresAffinityMask() => this.CalculateAffinityMask(this.EfficiencyCores); - - /// - /// Gets affinity mask for a specific CCD. - /// - public long GetCcdAffinityMask(int ccdId) => this.CalculateAffinityMask(this.GetCoresByCcd(ccdId)); - } - - /// - /// Quick selection preset for CPU affinity. - /// - public class CpuAffinityPreset - { - public string Name { get; set; } = string.Empty; - - public string Description { get; set; } = string.Empty; - - public long AffinityMask { get; set; } - - public bool IsAvailable { get; set; } = true; - - public string UnavailableReason { get; set; } = string.Empty; - } -} - +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.Linq; + using CommunityToolkit.Mvvm.ComponentModel; + + public partial class CpuCoreModel : ObservableObject + { + public int LogicalCoreId { get; set; } + + public int PhysicalCoreId { get; set; } + + public int SocketId { get; set; } + + public int? CcdId { get; set; } // Core Complex Die (AMD) + + public int? ClusterId { get; set; } // Intel Cluster + + public CpuCoreType CoreType { get; set; } = CpuCoreType.Unknown; + + public bool IsHyperThreaded { get; set; } + + public int? HyperThreadSibling { get; set; } + + public string Label { get; set; } = string.Empty; + + public string LogicalProcessorName { get; set; } = string.Empty; // e.g., "Core0_T0", "Core0_T1" (T0 = physical, T1+ = SMT) + + [ObservableProperty] + private bool isEnabled = true; + + [ObservableProperty] + private bool isSelected = false; + + public long AffinityMask => 1L << this.LogicalCoreId; + } + + public enum CpuCoreType + { + Unknown, + Standard, + PerformanceCore, // Intel P-cores + EfficiencyCore, // Intel E-cores + Zen, // AMD Zen cores + ZenPlus, // AMD Zen+ cores + Zen2, // AMD Zen2 cores + Zen3, // AMD Zen3 cores + Zen4, // AMD Zen4 cores + } + + public class CpuTopologyModel + { + public List LogicalCores { get; set; } = new(); + + public int TotalLogicalCores => this.LogicalCores.Count; + + public int TotalPhysicalCores => this.LogicalCores.GroupBy(c => c.PhysicalCoreId).Count(); + + public int TotalSockets => this.LogicalCores.GroupBy(c => c.SocketId).Count(); + + public int SocketCount => this.TotalSockets; // Alias for TotalSockets + + public bool HasHyperThreading => this.LogicalCores.Any(c => c.IsHyperThreaded); + + public bool HasSmt => this.HasHyperThreading; // SMT is AMD's term for HyperThreading + + public bool HasIntelHybrid => this.LogicalCores.Any(c => c.CoreType == CpuCoreType.PerformanceCore || c.CoreType == CpuCoreType.EfficiencyCore); + + public bool HasHybridArchitecture => this.HasIntelHybrid; // Alias for HasIntelHybrid + + public bool HasAmdCcd => this.LogicalCores.Any(c => c.CcdId.HasValue); + + public int CcdCount => this.LogicalCores.Where(c => c.CcdId.HasValue).Select(c => c.CcdId!.Value).Distinct().Count(); + + public string Architecture => this.CpuArchitecture; // Alias for CpuArchitecture + + public string CpuArchitecture { get; set; } = "Unknown"; + + public string CpuBrand { get; set; } = "Unknown"; + + public bool TopologyDetectionSuccessful { get; set; } = false; + + public IEnumerable AvailableCcds => this.LogicalCores + .Where(c => c.CcdId.HasValue) + .Select(c => c.CcdId!.Value) + .Distinct() + .OrderBy(id => id); + + public IEnumerable PerformanceCores => this.LogicalCores + .Where(c => c.CoreType == CpuCoreType.PerformanceCore); + + public IEnumerable EfficiencyCores => this.LogicalCores + .Where(c => c.CoreType == CpuCoreType.EfficiencyCore); + + public IEnumerable PhysicalCores => this.LogicalCores + .GroupBy(c => c.PhysicalCoreId) + .Select(g => g.OrderBy(c => c.LogicalCoreId).First()); + + public IEnumerable GetCoresByCcd(int ccdId) => this.LogicalCores + .Where(c => c.CcdId == ccdId); + + public IEnumerable GetCoresBySocket(int socketId) => this.LogicalCores + .Where(c => c.SocketId == socketId); + + public long CalculateAffinityMask(IEnumerable cores) + { + return cores.Aggregate(0L, (mask, core) => mask | core.AffinityMask); + } + + public long GetPhysicalCoresAffinityMask() => this.CalculateAffinityMask(this.PhysicalCores); + + public long GetPerformanceCoresAffinityMask() => this.CalculateAffinityMask(this.PerformanceCores); + + public long GetEfficiencyCoresAffinityMask() => this.CalculateAffinityMask(this.EfficiencyCores); + + public long GetCcdAffinityMask(int ccdId) => this.CalculateAffinityMask(this.GetCoresByCcd(ccdId)); + } + + public class CpuAffinityPreset + { + public string Name { get; set; } = string.Empty; + + public string Description { get; set; } = string.Empty; + + public long AffinityMask { get; set; } + + public bool IsAvailable { get; set; } = true; + + public string UnavailableReason { get; set; } = string.Empty; + } +} + diff --git a/Models/LogEventTypes.cs b/Models/LogEventTypes.cs index 98cf8ff..87e2b75 100644 --- a/Models/LogEventTypes.cs +++ b/Models/LogEventTypes.cs @@ -1,233 +1,187 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - /// - /// Defines structured log event types and categories for consistent logging. - /// - public static class LogEventTypes - { - /// - /// Power plan related events. - /// - public static class PowerPlan - { - public const string Changed = "PowerPlanChanged"; - public const string ChangeRequested = "PowerPlanChangeRequested"; - public const string ChangeFailed = "PowerPlanChangeFailed"; - public const string Restored = "PowerPlanRestored"; - public const string DefaultSet = "DefaultPowerPlanSet"; - public const string EnumerationFailed = "PowerPlanEnumerationFailed"; - } - - /// - /// Process monitoring events. - /// - public static class ProcessMonitoring - { - public const string Started = "ProcessStarted"; - public const string Stopped = "ProcessStopped"; - public const string MonitoringStarted = "MonitoringStarted"; - public const string MonitoringStopped = "MonitoringStopped"; - public const string WmiEventReceived = "WmiEventReceived"; - public const string WmiConnectionFailed = "WmiConnectionFailed"; - public const string PollingFallback = "PollingFallbackActivated"; - public const string ProcessDetected = "ProcessDetected"; - public const string ProcessLost = "ProcessLost"; - public const string AssociationTriggered = "AssociationTriggered"; - } - - /// - /// User action events. - /// - public static class UserActions - { - public const string SettingsChanged = "SettingsChanged"; - public const string ProcessAffinityChanged = "ProcessAffinityChanged"; - public const string ProcessPriorityChanged = "ProcessPriorityChanged"; - public const string AssociationAdded = "AssociationAdded"; - public const string AssociationRemoved = "AssociationRemoved"; - public const string MonitoringToggled = "MonitoringToggled"; - public const string GameBoostToggled = "GameBoostToggled"; - public const string AutostartToggled = "AutostartToggled"; - public const string NotificationSettingsChanged = "NotificationSettingsChanged"; - public const string LogsExported = "LogsExported"; - public const string LogsCleared = "LogsCleared"; - } - - /// - /// System events. - /// - public static class System - { - public const string ApplicationStarted = "ApplicationStarted"; - public const string ApplicationShutdown = "ApplicationShutdown"; - public const string ServiceInitialized = "ServiceInitialized"; - public const string ServiceStarted = "ServiceStarted"; - public const string ServiceStopped = "ServiceStopped"; - public const string ConfigurationLoaded = "ConfigurationLoaded"; - public const string ConfigurationSaved = "ConfigurationSaved"; - public const string CpuTopologyDetected = "CpuTopologyDetected"; - public const string SystemTrayInitialized = "SystemTrayInitialized"; - public const string NotificationSent = "NotificationSent"; - public const string ErrorRecovered = "ErrorRecovered"; - } - - /// - /// Error categories. - /// - public static class Errors - { - public const string ServiceFailure = "ServiceFailure"; - public const string ConfigurationError = "ConfigurationError"; - public const string FileSystemError = "FileSystemError"; - public const string PermissionError = "PermissionError"; - public const string NetworkError = "NetworkError"; - public const string WmiError = "WmiError"; - public const string UnhandledException = "UnhandledException"; - public const string ValidationError = "ValidationError"; - } - - /// - /// Performance events. - /// - public static class Performance - { - public const string HighMemoryUsage = "HighMemoryUsage"; - public const string HighCpuUsage = "HighCpuUsage"; - public const string SlowOperation = "SlowOperation"; - public const string LargeLogFile = "LargeLogFile"; - public const string ProcessCountHigh = "ProcessCountHigh"; - public const string Gen2PauseAlert = "Gen2PauseAlert"; - } - } - - /// - /// Log categories for organizing log entries. - /// - public static class LogCategories - { - public const string PowerPlan = "PowerPlan"; - public const string ProcessMonitoring = "ProcessMonitoring"; - public const string UserAction = "UserAction"; - public const string System = "System"; - public const string Error = "Error"; - public const string Performance = "Performance"; - public const string Security = "Security"; - public const string Configuration = "Configuration"; - public const string Lifecycle = "Lifecycle"; - } - - /// - /// Common log properties for structured logging. - /// - public static class LogProperties - { - public const string ProcessName = "ProcessName"; - public const string ProcessId = "ProcessId"; - public const string PowerPlanId = "PowerPlanId"; - public const string PowerPlanName = "PowerPlanName"; - public const string GameName = "GameName"; - public const string UserId = "UserId"; - public const string SessionId = "SessionId"; - public const string CorrelationId = "CorrelationId"; - public const string Duration = "Duration"; - public const string ErrorCode = "ErrorCode"; - public const string StackTrace = "StackTrace"; - public const string MemoryUsage = "MemoryUsage"; - public const string CpuUsage = "CpuUsage"; - public const string ThreadId = "ThreadId"; - public const string Version = "Version"; - public const string Environment = "Environment"; - } - - /// - /// Helper class for creating structured log data. - /// - public static class LogDataBuilder - { - public static Dictionary CreateProcessData(string processName, int processId) - { - return new Dictionary - { - [LogProperties.ProcessName] = processName, - [LogProperties.ProcessId] = processId, - }; - } - - public static Dictionary CreatePowerPlanData(string planId, string planName) - { - return new Dictionary - { - [LogProperties.PowerPlanId] = planId, - [LogProperties.PowerPlanName] = planName, - }; - } - - public static Dictionary CreateGameData(string gameName) - { - return new Dictionary - { - [LogProperties.GameName] = gameName, - }; - } - - public static Dictionary CreatePerformanceData(long memoryUsage, double cpuUsage) - { - return new Dictionary - { - [LogProperties.MemoryUsage] = memoryUsage, - [LogProperties.CpuUsage] = cpuUsage, - }; - } - - public static Dictionary CreateErrorData(Exception exception) - { - var stackTrace = exception.StackTrace ?? "N/A"; - stackTrace = stackTrace[..Math.Min(2000, stackTrace.Length)]; - - return new Dictionary - { - [LogProperties.ErrorCode] = exception.HResult, - [LogProperties.StackTrace] = stackTrace, - ["ExceptionType"] = exception.GetType().Name, - ["InnerException"] = exception.InnerException?.Message ?? "N/A", - }; - } - - public static Dictionary CreateTimingData(TimeSpan duration) - { - return new Dictionary - { - [LogProperties.Duration] = duration.TotalMilliseconds, - }; - } - - public static Dictionary CreateSystemData() - { - return new Dictionary - { - [LogProperties.Version] = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString() ?? "Unknown", - [LogProperties.Environment] = Environment.OSVersion.ToString(), - [LogProperties.ThreadId] = Thread.CurrentThread.ManagedThreadId, - ["MachineName"] = Environment.MachineName, - ["UserName"] = Environment.UserName, - }; - } - } -} - +namespace ThreadPilot.Models +{ + public static class LogEventTypes + { + public static class PowerPlan + { + public const string Changed = "PowerPlanChanged"; + public const string ChangeRequested = "PowerPlanChangeRequested"; + public const string ChangeFailed = "PowerPlanChangeFailed"; + public const string Restored = "PowerPlanRestored"; + public const string DefaultSet = "DefaultPowerPlanSet"; + public const string EnumerationFailed = "PowerPlanEnumerationFailed"; + } + + public static class ProcessMonitoring + { + public const string Started = "ProcessStarted"; + public const string Stopped = "ProcessStopped"; + public const string MonitoringStarted = "MonitoringStarted"; + public const string MonitoringStopped = "MonitoringStopped"; + public const string WmiEventReceived = "WmiEventReceived"; + public const string WmiConnectionFailed = "WmiConnectionFailed"; + public const string PollingFallback = "PollingFallbackActivated"; + public const string ProcessDetected = "ProcessDetected"; + public const string ProcessLost = "ProcessLost"; + public const string AssociationTriggered = "AssociationTriggered"; + } + + public static class UserActions + { + public const string SettingsChanged = "SettingsChanged"; + public const string ProcessAffinityChanged = "ProcessAffinityChanged"; + public const string ProcessPriorityChanged = "ProcessPriorityChanged"; + public const string AssociationAdded = "AssociationAdded"; + public const string AssociationRemoved = "AssociationRemoved"; + public const string MonitoringToggled = "MonitoringToggled"; + public const string GameBoostToggled = "GameBoostToggled"; + public const string AutostartToggled = "AutostartToggled"; + public const string NotificationSettingsChanged = "NotificationSettingsChanged"; + public const string LogsExported = "LogsExported"; + public const string LogsCleared = "LogsCleared"; + } + + public static class System + { + public const string ApplicationStarted = "ApplicationStarted"; + public const string ApplicationShutdown = "ApplicationShutdown"; + public const string ServiceInitialized = "ServiceInitialized"; + public const string ServiceStarted = "ServiceStarted"; + public const string ServiceStopped = "ServiceStopped"; + public const string ConfigurationLoaded = "ConfigurationLoaded"; + public const string ConfigurationSaved = "ConfigurationSaved"; + public const string CpuTopologyDetected = "CpuTopologyDetected"; + public const string SystemTrayInitialized = "SystemTrayInitialized"; + public const string NotificationSent = "NotificationSent"; + public const string ErrorRecovered = "ErrorRecovered"; + } + + public static class Errors + { + public const string ServiceFailure = "ServiceFailure"; + public const string ConfigurationError = "ConfigurationError"; + public const string FileSystemError = "FileSystemError"; + public const string PermissionError = "PermissionError"; + public const string NetworkError = "NetworkError"; + public const string WmiError = "WmiError"; + public const string UnhandledException = "UnhandledException"; + public const string ValidationError = "ValidationError"; + } + + public static class Performance + { + public const string HighMemoryUsage = "HighMemoryUsage"; + public const string HighCpuUsage = "HighCpuUsage"; + public const string SlowOperation = "SlowOperation"; + public const string LargeLogFile = "LargeLogFile"; + public const string ProcessCountHigh = "ProcessCountHigh"; + public const string Gen2PauseAlert = "Gen2PauseAlert"; + } + } + + public static class LogCategories + { + public const string PowerPlan = "PowerPlan"; + public const string ProcessMonitoring = "ProcessMonitoring"; + public const string UserAction = "UserAction"; + public const string System = "System"; + public const string Error = "Error"; + public const string Performance = "Performance"; + public const string Security = "Security"; + public const string Configuration = "Configuration"; + public const string Lifecycle = "Lifecycle"; + } + + public static class LogProperties + { + public const string ProcessName = "ProcessName"; + public const string ProcessId = "ProcessId"; + public const string PowerPlanId = "PowerPlanId"; + public const string PowerPlanName = "PowerPlanName"; + public const string GameName = "GameName"; + public const string UserId = "UserId"; + public const string SessionId = "SessionId"; + public const string CorrelationId = "CorrelationId"; + public const string Duration = "Duration"; + public const string ErrorCode = "ErrorCode"; + public const string StackTrace = "StackTrace"; + public const string MemoryUsage = "MemoryUsage"; + public const string CpuUsage = "CpuUsage"; + public const string ThreadId = "ThreadId"; + public const string Version = "Version"; + public const string Environment = "Environment"; + } + + public static class LogDataBuilder + { + public static Dictionary CreateProcessData(string processName, int processId) + { + return new Dictionary + { + [LogProperties.ProcessName] = processName, + [LogProperties.ProcessId] = processId, + }; + } + + public static Dictionary CreatePowerPlanData(string planId, string planName) + { + return new Dictionary + { + [LogProperties.PowerPlanId] = planId, + [LogProperties.PowerPlanName] = planName, + }; + } + + public static Dictionary CreateGameData(string gameName) + { + return new Dictionary + { + [LogProperties.GameName] = gameName, + }; + } + + public static Dictionary CreatePerformanceData(long memoryUsage, double cpuUsage) + { + return new Dictionary + { + [LogProperties.MemoryUsage] = memoryUsage, + [LogProperties.CpuUsage] = cpuUsage, + }; + } + + public static Dictionary CreateErrorData(Exception exception) + { + var stackTrace = exception.StackTrace ?? "N/A"; + stackTrace = stackTrace[..Math.Min(2000, stackTrace.Length)]; + + return new Dictionary + { + [LogProperties.ErrorCode] = exception.HResult, + [LogProperties.StackTrace] = stackTrace, + ["ExceptionType"] = exception.GetType().Name, + ["InnerException"] = exception.InnerException?.Message ?? "N/A", + }; + } + + public static Dictionary CreateTimingData(TimeSpan duration) + { + return new Dictionary + { + [LogProperties.Duration] = duration.TotalMilliseconds, + }; + } + + public static Dictionary CreateSystemData() + { + return new Dictionary + { + [LogProperties.Version] = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString() ?? "Unknown", + [LogProperties.Environment] = Environment.OSVersion.ToString(), + [LogProperties.ThreadId] = Thread.CurrentThread.ManagedThreadId, + ["MachineName"] = Environment.MachineName, + ["UserName"] = Environment.UserName, + }; + } + } +} + diff --git a/Models/NotificationModel.cs b/Models/NotificationModel.cs index 1ca441f..b6a8c91 100644 --- a/Models/NotificationModel.cs +++ b/Models/NotificationModel.cs @@ -1,160 +1,111 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using CommunityToolkit.Mvvm.ComponentModel; - - /// - /// Model representing a notification. - /// - public partial class NotificationModel : ObservableObject - { - [ObservableProperty] - private string id = Guid.NewGuid().ToString(); - - [ObservableProperty] - private string title = string.Empty; - - [ObservableProperty] - private string message = string.Empty; - - [ObservableProperty] - private NotificationType type = NotificationType.Information; - - [ObservableProperty] - private DateTime timestamp = DateTime.Now; - - [ObservableProperty] - private int durationMs = 3000; - - [ObservableProperty] - private bool isRead = false; - - [ObservableProperty] - private bool isPersistent = false; - - [ObservableProperty] - private string? actionText; - - [ObservableProperty] - private string? actionCommand; - - [ObservableProperty] - private string? iconPath; - - [ObservableProperty] - private NotificationPriority priority = NotificationPriority.Normal; - - [ObservableProperty] - private string? category; - - [ObservableProperty] - private string? sourceService; - - /// - /// Initializes a new instance of the class. - /// Creates a new notification. - /// - public NotificationModel() - { - } - - /// - /// Initializes a new instance of the class. - /// Creates a new notification with basic information. - /// - public NotificationModel(string title, string message, NotificationType type = NotificationType.Information) - { - this.Title = title; - this.Message = message; - this.Type = type; - } - - /// - /// Initializes a new instance of the class. - /// Creates a new notification with full information. - /// - public NotificationModel(string title, string message, NotificationType type, int durationMs, bool isPersistent = false) - { - this.Title = title; - this.Message = message; - this.Type = type; - this.DurationMs = durationMs; - this.IsPersistent = isPersistent; - } - - /// - /// Marks the notification as read. - /// - public void MarkAsRead() - { - this.IsRead = true; - } - - /// - /// Gets the display text for the notification type. - /// - public string TypeDisplayText => this.Type switch - { - NotificationType.Information => "Info", - NotificationType.Success => "Success", - NotificationType.Warning => "Warning", - NotificationType.Error => "Error", - NotificationType.PowerPlanChange => "Power Plan", - NotificationType.ProcessMonitoring => "Process Monitor", - NotificationType.CpuAffinity => "CPU Affinity", - _ => "Unknown", - }; - - /// - /// Gets the formatted timestamp. - /// - public string FormattedTimestamp => this.Timestamp.ToString("HH:mm:ss"); - - /// - /// Gets the formatted date and time. - /// - public string FormattedDateTime => this.Timestamp.ToString("yyyy-MM-dd HH:mm:ss"); - } - - /// - /// Types of notifications. - /// - public enum NotificationType - { - Information, - Success, - Warning, - Error, - PowerPlanChange, - ProcessMonitoring, - CpuAffinity, - } - - /// - /// Notification priority levels. - /// - public enum NotificationPriority - { - Low, - Normal, - High, - Critical, - } -} - +namespace ThreadPilot.Models +{ + using System; + using CommunityToolkit.Mvvm.ComponentModel; + + public partial class NotificationModel : ObservableObject + { + [ObservableProperty] + private string id = Guid.NewGuid().ToString(); + + [ObservableProperty] + private string title = string.Empty; + + [ObservableProperty] + private string message = string.Empty; + + [ObservableProperty] + private NotificationType type = NotificationType.Information; + + [ObservableProperty] + private DateTime timestamp = DateTime.Now; + + [ObservableProperty] + private int durationMs = 3000; + + [ObservableProperty] + private bool isRead = false; + + [ObservableProperty] + private bool isPersistent = false; + + [ObservableProperty] + private string? actionText; + + [ObservableProperty] + private string? actionCommand; + + [ObservableProperty] + private string? iconPath; + + [ObservableProperty] + private NotificationPriority priority = NotificationPriority.Normal; + + [ObservableProperty] + private string? category; + + [ObservableProperty] + private string? sourceService; + + public NotificationModel() + { + } + + public NotificationModel(string title, string message, NotificationType type = NotificationType.Information) + { + this.Title = title; + this.Message = message; + this.Type = type; + } + + public NotificationModel(string title, string message, NotificationType type, int durationMs, bool isPersistent = false) + { + this.Title = title; + this.Message = message; + this.Type = type; + this.DurationMs = durationMs; + this.IsPersistent = isPersistent; + } + + public void MarkAsRead() + { + this.IsRead = true; + } + + public string TypeDisplayText => this.Type switch + { + NotificationType.Information => "Info", + NotificationType.Success => "Success", + NotificationType.Warning => "Warning", + NotificationType.Error => "Error", + NotificationType.PowerPlanChange => "Power Plan", + NotificationType.ProcessMonitoring => "Process Monitor", + NotificationType.CpuAffinity => "CPU Affinity", + _ => "Unknown", + }; + + public string FormattedTimestamp => this.Timestamp.ToString("HH:mm:ss"); + + public string FormattedDateTime => this.Timestamp.ToString("yyyy-MM-dd HH:mm:ss"); + } + + public enum NotificationType + { + Information, + Success, + Warning, + Error, + PowerPlanChange, + ProcessMonitoring, + CpuAffinity, + } + + public enum NotificationPriority + { + Low, + Normal, + High, + Critical, + } +} + diff --git a/Models/PersistentProcessRule.cs b/Models/PersistentProcessRule.cs index c56048c..238e46a 100644 --- a/Models/PersistentProcessRule.cs +++ b/Models/PersistentProcessRule.cs @@ -1,70 +1,70 @@ -/* - * ThreadPilot - persistent process rule models. - */ -namespace ThreadPilot.Models -{ - using System; - using System.Diagnostics; - - public sealed record PersistentProcessRule - { - public string Id { get; init; } = Guid.NewGuid().ToString("N"); - - public string Name { get; init; } = string.Empty; - - public bool IsEnabled { get; init; } - - public string? ProcessName { get; init; } - - public string? ExecutablePath { get; init; } - - public CpuSelection? CpuSelection { get; init; } - - public long? LegacyAffinityMask { get; init; } - - public ProcessPriorityClass? Priority { get; init; } - - public ProcessMemoryPriority? MemoryPriority { get; init; } - - public bool ApplyAffinityOnStart { get; init; } - - public bool ApplyPriorityOnStart { get; init; } - - public bool ApplyMemoryPriorityOnStart { get; init; } - - public DateTime CreatedAt { get; init; } = DateTime.UtcNow; - - public DateTime UpdatedAt { get; init; } = DateTime.UtcNow; - - public string? Description { get; init; } - } - - public sealed record PersistentRuleApplyResult - { - public bool Success { get; init; } - - public string RuleId { get; init; } = string.Empty; - - public int ProcessId { get; init; } - - public string ProcessName { get; init; } = string.Empty; - - public bool AffinityApplied { get; init; } - - public bool PriorityApplied { get; init; } - - public bool MemoryPriorityApplied { get; init; } - - public string? ErrorCode { get; init; } - - public string UserMessage { get; init; } = string.Empty; - - public string TechnicalMessage { get; init; } = string.Empty; - - public bool IsAccessDenied { get; init; } - - public bool IsAntiCheatLikely { get; init; } - - public bool IsProcessExited { get; init; } - } -} +/* + * ThreadPilot - persistent process rule models. + */ +namespace ThreadPilot.Models +{ + using System; + using System.Diagnostics; + + public sealed record PersistentProcessRule + { + public string Id { get; init; } = Guid.NewGuid().ToString("N"); + + public string Name { get; init; } = string.Empty; + + public bool IsEnabled { get; init; } + + public string? ProcessName { get; init; } + + public string? ExecutablePath { get; init; } + + public CpuSelection? CpuSelection { get; init; } + + public long? LegacyAffinityMask { get; init; } + + public ProcessPriorityClass? Priority { get; init; } + + public ProcessMemoryPriority? MemoryPriority { get; init; } + + public bool ApplyAffinityOnStart { get; init; } + + public bool ApplyPriorityOnStart { get; init; } + + public bool ApplyMemoryPriorityOnStart { get; init; } + + public DateTime CreatedAt { get; init; } = DateTime.UtcNow; + + public DateTime UpdatedAt { get; init; } = DateTime.UtcNow; + + public string? Description { get; init; } + } + + public sealed record PersistentRuleApplyResult + { + public bool Success { get; init; } + + public string RuleId { get; init; } = string.Empty; + + public int ProcessId { get; init; } + + public string ProcessName { get; init; } = string.Empty; + + public bool AffinityApplied { get; init; } + + public bool PriorityApplied { get; init; } + + public bool MemoryPriorityApplied { get; init; } + + public string? ErrorCode { get; init; } + + public string UserMessage { get; init; } = string.Empty; + + public string TechnicalMessage { get; init; } = string.Empty; + + public bool IsAccessDenied { get; init; } + + public bool IsAntiCheatLikely { get; init; } + + public bool IsProcessExited { get; init; } + } +} diff --git a/Models/PowerPlanModel.cs b/Models/PowerPlanModel.cs index fc6082f..5d319a9 100644 --- a/Models/PowerPlanModel.cs +++ b/Models/PowerPlanModel.cs @@ -1,41 +1,25 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using CommunityToolkit.Mvvm.ComponentModel; - - public partial class PowerPlanModel : ObservableObject - { - [ObservableProperty] - private string guid = string.Empty; - - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private string description = string.Empty; - - [ObservableProperty] - private bool isActive; - - [ObservableProperty] - private bool isCustomPlan; - - [ObservableProperty] - private string filePath = string.Empty; - } -} +namespace ThreadPilot.Models +{ + using CommunityToolkit.Mvvm.ComponentModel; + + public partial class PowerPlanModel : ObservableObject + { + [ObservableProperty] + private string guid = string.Empty; + + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private string description = string.Empty; + + [ObservableProperty] + private bool isActive; + + [ObservableProperty] + private bool isCustomPlan; + + [ObservableProperty] + private string filePath = string.Empty; + } +} diff --git a/Models/ProcessMemoryPriority.cs b/Models/ProcessMemoryPriority.cs index 7306868..6c83902 100644 --- a/Models/ProcessMemoryPriority.cs +++ b/Models/ProcessMemoryPriority.cs @@ -1,19 +1,14 @@ -/* - * ThreadPilot - process memory priority model. - */ -namespace ThreadPilot.Models -{ - /// - /// Documented Windows process memory priority levels. - /// CPU priority influences CPU scheduling; memory priority influences how aggressively - /// Windows may reclaim or page a process's memory under pressure. - /// - public enum ProcessMemoryPriority - { - VeryLow = 1, - Low = 2, - Medium = 3, - BelowNormal = 4, - Normal = 5, - } -} +/* + * ThreadPilot - process memory priority model. + */ +namespace ThreadPilot.Models +{ + public enum ProcessMemoryPriority + { + VeryLow = 1, + Low = 2, + Medium = 3, + BelowNormal = 4, + Normal = 5, + } +} diff --git a/Models/ProcessModel.cs b/Models/ProcessModel.cs index 301650f..3b54b21 100644 --- a/Models/ProcessModel.cs +++ b/Models/ProcessModel.cs @@ -1,87 +1,67 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Diagnostics; - using CommunityToolkit.Mvvm.ComponentModel; - - public enum ProcessClassification - { - ForegroundApp, - VisibleWindowApp, - BackgroundUser, - System, - ProtectedOrAccessDenied, - Terminated, - Unknown, - } - - public partial class ProcessModel : ObservableObject - { - [ObservableProperty] - private int processId; - - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private string executablePath = string.Empty; - - [ObservableProperty] - private double cpuUsage; - - [ObservableProperty] - private long memoryUsage; - - [ObservableProperty] - private ProcessPriorityClass priority; - - [ObservableProperty] - private long processorAffinity; - - [ObservableProperty] - private IntPtr mainWindowHandle; - - [ObservableProperty] - private string mainWindowTitle = string.Empty; - - [ObservableProperty] - private bool hasVisibleWindow; - - [ObservableProperty] - private bool isForeground; - - [ObservableProperty] - private ProcessClassification classification = ProcessClassification.Unknown; - - [ObservableProperty] - private bool isIdleServerDisabled; - - [ObservableProperty] - private bool isRegistryPriorityEnabled; - - /// - /// Forces PropertyChanged notification for ProcessorAffinity. - /// Used to update DataGrid binding when affinity changes from background thread. - /// - public void ForceNotifyProcessorAffinityChanged() - { - this.OnPropertyChanged(nameof(this.ProcessorAffinity)); - } - } -} +namespace ThreadPilot.Models +{ + using System; + using System.Diagnostics; + using CommunityToolkit.Mvvm.ComponentModel; + + public enum ProcessClassification + { + ForegroundApp, + VisibleWindowApp, + BackgroundUser, + System, + ProtectedOrAccessDenied, + Terminated, + Unknown, + } + + public partial class ProcessModel : ObservableObject + { + [ObservableProperty] + private int processId; + + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private string executablePath = string.Empty; + + [ObservableProperty] + private double cpuUsage; + + [ObservableProperty] + private long memoryUsage; + + [ObservableProperty] + private ProcessPriorityClass priority; + + [ObservableProperty] + private long processorAffinity; + + [ObservableProperty] + private IntPtr mainWindowHandle; + + [ObservableProperty] + private string mainWindowTitle = string.Empty; + + [ObservableProperty] + private bool hasVisibleWindow; + + [ObservableProperty] + private bool isForeground; + + [ObservableProperty] + private ProcessClassification classification = ProcessClassification.Unknown; + + [ObservableProperty] + private bool isIdleServerDisabled; + + [ObservableProperty] + private bool isRegistryPriorityEnabled; + + public void ForceNotifyProcessorAffinityChanged() + { + this.OnPropertyChanged(nameof(this.ProcessorAffinity)); + } + } +} diff --git a/Models/ProcessMonitorConfiguration.cs b/Models/ProcessMonitorConfiguration.cs index 180b193..84afe74 100644 --- a/Models/ProcessMonitorConfiguration.cs +++ b/Models/ProcessMonitorConfiguration.cs @@ -1,160 +1,123 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using CommunityToolkit.Mvvm.ComponentModel; - - /// - /// Configuration model for process monitoring and power plan associations. - /// - public partial class ProcessMonitorConfiguration : ObservableObject - { - [ObservableProperty] - private string defaultPowerPlanGuid = string.Empty; - - [ObservableProperty] - private string defaultPowerPlanName = string.Empty; - - [ObservableProperty] - private bool isEventBasedMonitoringEnabled = true; - - [ObservableProperty] - private bool isFallbackPollingEnabled = true; - - [ObservableProperty] - private int pollingIntervalSeconds = 5; - - [ObservableProperty] - private bool preventDuplicatePowerPlanChanges = true; - - [ObservableProperty] - private int powerPlanChangeDelayMs = 250; - - [ObservableProperty] - private bool enableLogging = true; - - [ObservableProperty] - private List associations = new(); - - [ObservableProperty] - private DateTime lastSavedDate = DateTime.Now; - - [ObservableProperty] - private string configurationVersion = "1.0"; - - public ProcessMonitorConfiguration() - { - this.Associations = new List(); - } - - /// - /// Gets all enabled associations sorted by priority (descending). - /// - public IEnumerable GetEnabledAssociations() - { - return this.Associations - .Where(a => a.IsEnabled) - .OrderByDescending(a => a.Priority) - .ThenBy(a => a.ExecutableName); - } - - /// - /// Finds the best matching association for a process. - /// - public ProcessPowerPlanAssociation? FindMatchingAssociation(ProcessModel process) - { - return this.GetEnabledAssociations() - .FirstOrDefault(a => a.MatchesProcess(process)); - } - - /// - /// Finds association by executable name. - /// - public ProcessPowerPlanAssociation? FindAssociationByExecutable(string executableName) - { - return this.Associations - .FirstOrDefault(a => a.MatchesExecutable(executableName)); - } - - /// - /// Adds or updates an association. - /// - public void AddOrUpdateAssociation(ProcessPowerPlanAssociation association) - { - var existing = this.Associations.FirstOrDefault(a => a.Id == association.Id); - if (existing != null) - { - var index = this.Associations.IndexOf(existing); - this.Associations[index] = association; - } - else - { - this.Associations.Add(association); - } - this.LastSavedDate = DateTime.Now; - } - - /// - /// Removes an association. - /// - public bool RemoveAssociation(string associationId) - { - var association = this.Associations.FirstOrDefault(a => a.Id == associationId); - if (association != null) - { - this.Associations.Remove(association); - this.LastSavedDate = DateTime.Now; - return true; - } - return false; - } - - /// - /// Validates the configuration. - /// - public List Validate() - { - var errors = new List(); - - if (this.PollingIntervalSeconds < 1) - { - errors.Add("Polling interval must be at least 1 second"); - } - - if (this.PowerPlanChangeDelayMs < 0) - { - errors.Add("Power plan change delay cannot be negative"); - } - - // Check for duplicate associations - var duplicates = this.Associations - .GroupBy(a => new { a.ExecutableName, a.MatchByPath }) - .Where(g => g.Count() > 1) - .Select(g => g.Key.ExecutableName); - - foreach (var duplicate in duplicates) - { - errors.Add($"Duplicate association found for executable: {duplicate}"); - } - - return errors; - } - } -} - +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using CommunityToolkit.Mvvm.ComponentModel; + + public partial class ProcessMonitorConfiguration : ObservableObject + { + [ObservableProperty] + private string defaultPowerPlanGuid = string.Empty; + + [ObservableProperty] + private string defaultPowerPlanName = string.Empty; + + [ObservableProperty] + private bool isEventBasedMonitoringEnabled = true; + + [ObservableProperty] + private bool isFallbackPollingEnabled = true; + + [ObservableProperty] + private int pollingIntervalSeconds = 5; + + [ObservableProperty] + private bool preventDuplicatePowerPlanChanges = true; + + [ObservableProperty] + private int powerPlanChangeDelayMs = 250; + + [ObservableProperty] + private bool enableLogging = true; + + [ObservableProperty] + private List associations = new(); + + [ObservableProperty] + private DateTime lastSavedDate = DateTime.Now; + + [ObservableProperty] + private string configurationVersion = "1.0"; + + public ProcessMonitorConfiguration() + { + this.Associations = new List(); + } + + public IEnumerable GetEnabledAssociations() + { + return this.Associations + .Where(a => a.IsEnabled) + .OrderByDescending(a => a.Priority) + .ThenBy(a => a.ExecutableName); + } + + public ProcessPowerPlanAssociation? FindMatchingAssociation(ProcessModel process) + { + return this.GetEnabledAssociations() + .FirstOrDefault(a => a.MatchesProcess(process)); + } + + public ProcessPowerPlanAssociation? FindAssociationByExecutable(string executableName) + { + return this.Associations + .FirstOrDefault(a => a.MatchesExecutable(executableName)); + } + + public void AddOrUpdateAssociation(ProcessPowerPlanAssociation association) + { + var existing = this.Associations.FirstOrDefault(a => a.Id == association.Id); + if (existing != null) + { + var index = this.Associations.IndexOf(existing); + this.Associations[index] = association; + } + else + { + this.Associations.Add(association); + } + this.LastSavedDate = DateTime.Now; + } + + public bool RemoveAssociation(string associationId) + { + var association = this.Associations.FirstOrDefault(a => a.Id == associationId); + if (association != null) + { + this.Associations.Remove(association); + this.LastSavedDate = DateTime.Now; + return true; + } + return false; + } + + public List Validate() + { + var errors = new List(); + + if (this.PollingIntervalSeconds < 1) + { + errors.Add("Polling interval must be at least 1 second"); + } + + if (this.PowerPlanChangeDelayMs < 0) + { + errors.Add("Power plan change delay cannot be negative"); + } + + // Check for duplicate associations + var duplicates = this.Associations + .GroupBy(a => new { a.ExecutableName, a.MatchByPath }) + .Where(g => g.Count() > 1) + .Select(g => g.Key.ExecutableName); + + foreach (var duplicate in duplicates) + { + errors.Add($"Duplicate association found for executable: {duplicate}"); + } + + return errors; + } + } +} + diff --git a/Models/ProcessPowerPlanAssociation.cs b/Models/ProcessPowerPlanAssociation.cs index b59705c..24394e3 100644 --- a/Models/ProcessPowerPlanAssociation.cs +++ b/Models/ProcessPowerPlanAssociation.cs @@ -1,193 +1,152 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.IO; - using CommunityToolkit.Mvvm.ComponentModel; - using ThreadPilot.Models.Core; - - /// - /// Represents an association between an executable and a power plan. - /// - public partial class ProcessPowerPlanAssociation : ObservableObject, IModel - { - [ObservableProperty] - private string id = Guid.NewGuid().ToString(); - - [ObservableProperty] - private string executableName = string.Empty; - - [ObservableProperty] - private string executablePath = string.Empty; - - [ObservableProperty] - private string powerPlanGuid = string.Empty; - - [ObservableProperty] - private string powerPlanName = string.Empty; - - /// - /// Core mask ID to apply to this process (optional). - /// - [ObservableProperty] - private string? coreMaskId = null; - - /// - /// Core mask name for display (optional). - /// - [ObservableProperty] - private string? coreMaskName = null; - - /// - /// Process priority to apply (optional). - /// - [ObservableProperty] - private string? processPriority = null; - - [ObservableProperty] - private bool isEnabled = true; - - [ObservableProperty] - private DateTime createdAt = DateTime.UtcNow; - - [ObservableProperty] - private DateTime updatedAt = DateTime.UtcNow; - - // IModel implementation - properties are auto-generated by ObservableProperty - - [ObservableProperty] - private string description = string.Empty; - - /// - /// Whether to match by exact executable name or path. - /// - [ObservableProperty] - private bool matchByPath = false; - - /// - /// Priority for this association (higher number = higher priority) - /// Used when multiple associations could match the same process. - /// - [ObservableProperty] - private int priority = 0; - - public ProcessPowerPlanAssociation() - { - } - - public ProcessPowerPlanAssociation(string executableName, string powerPlanGuid, string powerPlanName) - { - this.ExecutableName = executableName; - this.PowerPlanGuid = powerPlanGuid; - this.PowerPlanName = powerPlanName; - } - - /// - /// Checks if this association matches the given process. - /// - public bool MatchesProcess(ProcessModel process) - { - if (!this.IsEnabled) - { - return false; - } - - if (this.MatchByPath && !string.IsNullOrEmpty(this.ExecutablePath)) - { - return string.Equals(process.ExecutablePath, this.ExecutablePath, StringComparison.OrdinalIgnoreCase); - } - else - { - var processName = NormalizeExecutableName(process.Name); - var associationName = NormalizeExecutableName(this.ExecutableName); - return string.Equals(processName, associationName, StringComparison.OrdinalIgnoreCase); - } - } - - /// - /// Checks if this association matches the given executable name. - /// - public bool MatchesExecutable(string executableName) - { - if (!this.IsEnabled) - { - return false; - } - - var associationName = NormalizeExecutableName(this.ExecutableName); - var inputName = NormalizeExecutableName(executableName); - return string.Equals(associationName, inputName, StringComparison.OrdinalIgnoreCase); - } - - private static string NormalizeExecutableName(string? executableName) - { - if (string.IsNullOrWhiteSpace(executableName)) - { - return string.Empty; - } - - return Path.GetFileNameWithoutExtension(executableName.Trim()); - } - - - - public ValidationResult Validate() - { - var errors = new List(); - - if (string.IsNullOrWhiteSpace(this.ExecutableName)) - { - errors.Add("Executable name is required"); - } - - if (string.IsNullOrWhiteSpace(this.PowerPlanGuid)) - { - errors.Add("Power plan GUID is required"); - } - - if (string.IsNullOrWhiteSpace(this.PowerPlanName)) - { - errors.Add("Power plan name is required"); - } - - return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); - } - - public IModel Clone() - { - return new ProcessPowerPlanAssociation - { - id = Guid.NewGuid().ToString(), // New ID for clone - ExecutableName = this.ExecutableName, - ExecutablePath = this.ExecutablePath, - PowerPlanGuid = this.PowerPlanGuid, - PowerPlanName = this.PowerPlanName, - CoreMaskId = this.CoreMaskId, - CoreMaskName = this.CoreMaskName, - ProcessPriority = this.ProcessPriority, - IsEnabled = this.IsEnabled, - Description = this.Description, - MatchByPath = this.MatchByPath, - createdAt = DateTime.UtcNow, - updatedAt = DateTime.UtcNow, - }; - } - } -} - +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.IO; + using CommunityToolkit.Mvvm.ComponentModel; + using ThreadPilot.Models.Core; + + public partial class ProcessPowerPlanAssociation : ObservableObject, IModel + { + [ObservableProperty] + private string id = Guid.NewGuid().ToString(); + + [ObservableProperty] + private string executableName = string.Empty; + + [ObservableProperty] + private string executablePath = string.Empty; + + [ObservableProperty] + private string powerPlanGuid = string.Empty; + + [ObservableProperty] + private string powerPlanName = string.Empty; + + [ObservableProperty] + private string? coreMaskId = null; + + [ObservableProperty] + private string? coreMaskName = null; + + [ObservableProperty] + private string? processPriority = null; + + [ObservableProperty] + private bool isEnabled = true; + + [ObservableProperty] + private DateTime createdAt = DateTime.UtcNow; + + [ObservableProperty] + private DateTime updatedAt = DateTime.UtcNow; + + // IModel implementation - properties are auto-generated by ObservableProperty + + [ObservableProperty] + private string description = string.Empty; + + [ObservableProperty] + private bool matchByPath = false; + + [ObservableProperty] + private int priority = 0; + + public ProcessPowerPlanAssociation() + { + } + + public ProcessPowerPlanAssociation(string executableName, string powerPlanGuid, string powerPlanName) + { + this.ExecutableName = executableName; + this.PowerPlanGuid = powerPlanGuid; + this.PowerPlanName = powerPlanName; + } + + public bool MatchesProcess(ProcessModel process) + { + if (!this.IsEnabled) + { + return false; + } + + if (this.MatchByPath && !string.IsNullOrEmpty(this.ExecutablePath)) + { + return string.Equals(process.ExecutablePath, this.ExecutablePath, StringComparison.OrdinalIgnoreCase); + } + else + { + var processName = NormalizeExecutableName(process.Name); + var associationName = NormalizeExecutableName(this.ExecutableName); + return string.Equals(processName, associationName, StringComparison.OrdinalIgnoreCase); + } + } + + public bool MatchesExecutable(string executableName) + { + if (!this.IsEnabled) + { + return false; + } + + var associationName = NormalizeExecutableName(this.ExecutableName); + var inputName = NormalizeExecutableName(executableName); + return string.Equals(associationName, inputName, StringComparison.OrdinalIgnoreCase); + } + + private static string NormalizeExecutableName(string? executableName) + { + if (string.IsNullOrWhiteSpace(executableName)) + { + return string.Empty; + } + + return Path.GetFileNameWithoutExtension(executableName.Trim()); + } + + + + public ValidationResult Validate() + { + var errors = new List(); + + if (string.IsNullOrWhiteSpace(this.ExecutableName)) + { + errors.Add("Executable name is required"); + } + + if (string.IsNullOrWhiteSpace(this.PowerPlanGuid)) + { + errors.Add("Power plan GUID is required"); + } + + if (string.IsNullOrWhiteSpace(this.PowerPlanName)) + { + errors.Add("Power plan name is required"); + } + + return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); + } + + public IModel Clone() + { + return new ProcessPowerPlanAssociation + { + id = Guid.NewGuid().ToString(), // New ID for clone + ExecutableName = this.ExecutableName, + ExecutablePath = this.ExecutablePath, + PowerPlanGuid = this.PowerPlanGuid, + PowerPlanName = this.PowerPlanName, + CoreMaskId = this.CoreMaskId, + CoreMaskName = this.CoreMaskName, + ProcessPriority = this.ProcessPriority, + IsEnabled = this.IsEnabled, + Description = this.Description, + MatchByPath = this.MatchByPath, + createdAt = DateTime.UtcNow, + updatedAt = DateTime.UtcNow, + }; + } + } +} + diff --git a/Models/ProcessProfileSnapshot.cs b/Models/ProcessProfileSnapshot.cs index b8959f2..44b568f 100644 --- a/Models/ProcessProfileSnapshot.cs +++ b/Models/ProcessProfileSnapshot.cs @@ -1,35 +1,19 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System.Diagnostics; - - public sealed class ProcessProfileSnapshot - { - public int ProfileSchemaVersion { get; set; } = CpuAffinityProfileSchemaVersions.Legacy; - - public string ProcessName { get; set; } = string.Empty; - - public ProcessPriorityClass Priority { get; set; } - - public long ProcessorAffinity { get; set; } - - public CpuSelection? CpuSelection { get; set; } - - public CpuSelectionMigrationMetadata? CpuSelectionMigration { get; set; } - } -} +namespace ThreadPilot.Models +{ + using System.Diagnostics; + + public sealed class ProcessProfileSnapshot + { + public int ProfileSchemaVersion { get; set; } = CpuAffinityProfileSchemaVersions.Legacy; + + public string ProcessName { get; set; } = string.Empty; + + public ProcessPriorityClass Priority { get; set; } + + public long ProcessorAffinity { get; set; } + + public CpuSelection? CpuSelection { get; set; } + + public CpuSelectionMigrationMetadata? CpuSelectionMigration { get; set; } + } +} diff --git a/Models/ProfileModel.cs b/Models/ProfileModel.cs index 4eafee9..8bc73d0 100644 --- a/Models/ProfileModel.cs +++ b/Models/ProfileModel.cs @@ -1,107 +1,91 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Models -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Diagnostics; - using CommunityToolkit.Mvvm.ComponentModel; - using ThreadPilot.Models.Core; - - public partial class ProfileModel : ObservableObject, IModel - { - [ObservableProperty] - private string id = Guid.NewGuid().ToString(); - - [ObservableProperty] - private DateTime createdAt = DateTime.UtcNow; - - [ObservableProperty] - private DateTime updatedAt = DateTime.UtcNow; - - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private string processName = string.Empty; - - [ObservableProperty] - private ProcessPriorityClass priority = ProcessPriorityClass.Normal; - - [ObservableProperty] - private long processorAffinity = -1; // All cores - - [ObservableProperty] - private int profileSchemaVersion = CpuAffinityProfileSchemaVersions.Legacy; - - [ObservableProperty] - private CpuSelection? cpuSelection = null; - - [ObservableProperty] - private CpuSelectionMigrationMetadata? cpuSelectionMigration = null; - - [ObservableProperty] - private string description = string.Empty; - - [ObservableProperty] - private bool isEnabled = true; - - // IModel implementation - properties are auto-generated by ObservableProperty - - public ValidationResult Validate() - { - var errors = new List(); - - if (string.IsNullOrWhiteSpace(this.Name)) - { - errors.Add("Profile name is required"); - } - - if (string.IsNullOrWhiteSpace(this.ProcessName)) - { - errors.Add("Process name is required"); - } - - return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); - } - - public IModel Clone() - { - return new ProfileModel - { - id = Guid.NewGuid().ToString(), // New ID for clone - Name = this.Name, - ProcessName = this.ProcessName, - Priority = this.Priority, - ProcessorAffinity = this.ProcessorAffinity, - ProfileSchemaVersion = this.ProfileSchemaVersion, - CpuSelection = this.CpuSelection, - CpuSelectionMigration = this.CpuSelectionMigration, - Description = this.Description, - IsEnabled = this.IsEnabled, - createdAt = DateTime.UtcNow, - updatedAt = DateTime.UtcNow, - }; - } - - partial void OnUpdatedAtChanged(DateTime value) - { - updatedAt = DateTime.UtcNow; - } - } -} +namespace ThreadPilot.Models +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Diagnostics; + using CommunityToolkit.Mvvm.ComponentModel; + using ThreadPilot.Models.Core; + + public partial class ProfileModel : ObservableObject, IModel + { + [ObservableProperty] + private string id = Guid.NewGuid().ToString(); + + [ObservableProperty] + private DateTime createdAt = DateTime.UtcNow; + + [ObservableProperty] + private DateTime updatedAt = DateTime.UtcNow; + + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private string processName = string.Empty; + + [ObservableProperty] + private ProcessPriorityClass priority = ProcessPriorityClass.Normal; + + [ObservableProperty] + private long processorAffinity = -1; // All cores + + [ObservableProperty] + private int profileSchemaVersion = CpuAffinityProfileSchemaVersions.Legacy; + + [ObservableProperty] + private CpuSelection? cpuSelection = null; + + [ObservableProperty] + private CpuSelectionMigrationMetadata? cpuSelectionMigration = null; + + [ObservableProperty] + private string description = string.Empty; + + [ObservableProperty] + private bool isEnabled = true; + + // IModel implementation - properties are auto-generated by ObservableProperty + + public ValidationResult Validate() + { + var errors = new List(); + + if (string.IsNullOrWhiteSpace(this.Name)) + { + errors.Add("Profile name is required"); + } + + if (string.IsNullOrWhiteSpace(this.ProcessName)) + { + errors.Add("Process name is required"); + } + + return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); + } + + public IModel Clone() + { + return new ProfileModel + { + id = Guid.NewGuid().ToString(), // New ID for clone + Name = this.Name, + ProcessName = this.ProcessName, + Priority = this.Priority, + ProcessorAffinity = this.ProcessorAffinity, + ProfileSchemaVersion = this.ProfileSchemaVersion, + CpuSelection = this.CpuSelection, + CpuSelectionMigration = this.CpuSelectionMigration, + Description = this.Description, + IsEnabled = this.IsEnabled, + createdAt = DateTime.UtcNow, + updatedAt = DateTime.UtcNow, + }; + } + + partial void OnUpdatedAtChanged(DateTime value) + { + updatedAt = DateTime.UtcNow; + } + } +} diff --git a/Models/ThreadPilotException.cs b/Models/ThreadPilotException.cs index f700166..9ff88cb 100644 --- a/Models/ThreadPilotException.cs +++ b/Models/ThreadPilotException.cs @@ -1,162 +1,115 @@ -/* - * ThreadPilot - exception hierarchy and error code registry. - */ -namespace ThreadPilot.Models -{ - using System; - - /// - /// Defines stable error codes used in diagnostics and incident reporting. - /// - public enum ErrorCode - { - Unknown = 0, - ProcessManagement = 1000, - Privilege = 2000, - RuleEngine = 3000, - ResourceOptimization = 4000, - Persistence = 5000, - Unhandled = 9000, - } - - /// - /// Base exception type for domain-level ThreadPilot failures. - /// - public class ThreadPilotException : Exception - { - /// - /// Initializes a new instance of the class. - /// - public ThreadPilotException() - : this("A ThreadPilot error has occurred.", ErrorCode.Unknown) - { - } - - /// - /// Initializes a new instance of the class. - /// - /// Error message. - public ThreadPilotException(string message) - : this(message, ErrorCode.Unknown) - { - } - - /// - /// Initializes a new instance of the class. - /// - /// Error message. - /// Inner exception. - public ThreadPilotException(string message, Exception innerException) - : this(message, ErrorCode.Unknown, innerException) - { - } - - /// - /// Initializes a new instance of the class. - /// - /// Error message. - /// Domain error code. - public ThreadPilotException(string message, ErrorCode errorCode) - : base(message) - { - this.ErrorCode = errorCode; - } - - /// - /// Initializes a new instance of the class. - /// - /// Error message. - /// Domain error code. - /// Inner exception. - public ThreadPilotException(string message, ErrorCode errorCode, Exception innerException) - : base(message, innerException) - { - this.ErrorCode = errorCode; - } - - /// - /// Gets the domain error code associated with this exception. - /// - public ErrorCode ErrorCode { get; } - } - - /// - /// Exception for process monitoring and process-control failures. - /// - public sealed class ProcessManagementException : ThreadPilotException - { - public ProcessManagementException(string message) - : base(message, ErrorCode.ProcessManagement) - { - } - - public ProcessManagementException(string message, Exception innerException) - : base(message, ErrorCode.ProcessManagement, innerException) - { - } - } - - /// - /// Exception for privilege and elevation failures. - /// - public sealed class PrivilegeException : ThreadPilotException - { - public PrivilegeException(string message) - : base(message, ErrorCode.Privilege) - { - } - - public PrivilegeException(string message, Exception innerException) - : base(message, ErrorCode.Privilege, innerException) - { - } - } - - /// - /// Exception for rule parsing and rule-matching failures. - /// - public sealed class RuleEngineException : ThreadPilotException - { - public RuleEngineException(string message) - : base(message, ErrorCode.RuleEngine) - { - } - - public RuleEngineException(string message, Exception innerException) - : base(message, ErrorCode.RuleEngine, innerException) - { - } - } - - /// - /// Exception for performance/resource optimization failures. - /// - public sealed class ResourceOptimizationException : ThreadPilotException - { - public ResourceOptimizationException(string message) - : base(message, ErrorCode.ResourceOptimization) - { - } - - public ResourceOptimizationException(string message, Exception innerException) - : base(message, ErrorCode.ResourceOptimization, innerException) - { - } - } - - /// - /// Exception for persistence/configuration I/O failures. - /// - public sealed class PersistenceException : ThreadPilotException - { - public PersistenceException(string message) - : base(message, ErrorCode.Persistence) - { - } - - public PersistenceException(string message, Exception innerException) - : base(message, ErrorCode.Persistence, innerException) - { - } - } -} +/* + * ThreadPilot - exception hierarchy and error code registry. + */ +namespace ThreadPilot.Models +{ + using System; + + public enum ErrorCode + { + Unknown = 0, + ProcessManagement = 1000, + Privilege = 2000, + RuleEngine = 3000, + ResourceOptimization = 4000, + Persistence = 5000, + Unhandled = 9000, + } + + public class ThreadPilotException : Exception + { + public ThreadPilotException() + : this("A ThreadPilot error has occurred.", ErrorCode.Unknown) + { + } + + public ThreadPilotException(string message) + : this(message, ErrorCode.Unknown) + { + } + + public ThreadPilotException(string message, Exception innerException) + : this(message, ErrorCode.Unknown, innerException) + { + } + + public ThreadPilotException(string message, ErrorCode errorCode) + : base(message) + { + this.ErrorCode = errorCode; + } + + public ThreadPilotException(string message, ErrorCode errorCode, Exception innerException) + : base(message, innerException) + { + this.ErrorCode = errorCode; + } + + public ErrorCode ErrorCode { get; } + } + + public sealed class ProcessManagementException : ThreadPilotException + { + public ProcessManagementException(string message) + : base(message, ErrorCode.ProcessManagement) + { + } + + public ProcessManagementException(string message, Exception innerException) + : base(message, ErrorCode.ProcessManagement, innerException) + { + } + } + + public sealed class PrivilegeException : ThreadPilotException + { + public PrivilegeException(string message) + : base(message, ErrorCode.Privilege) + { + } + + public PrivilegeException(string message, Exception innerException) + : base(message, ErrorCode.Privilege, innerException) + { + } + } + + public sealed class RuleEngineException : ThreadPilotException + { + public RuleEngineException(string message) + : base(message, ErrorCode.RuleEngine) + { + } + + public RuleEngineException(string message, Exception innerException) + : base(message, ErrorCode.RuleEngine, innerException) + { + } + } + + public sealed class ResourceOptimizationException : ThreadPilotException + { + public ResourceOptimizationException(string message) + : base(message, ErrorCode.ResourceOptimization) + { + } + + public ResourceOptimizationException(string message, Exception innerException) + : base(message, ErrorCode.ResourceOptimization, innerException) + { + } + } + + public sealed class PersistenceException : ThreadPilotException + { + public PersistenceException(string message) + : base(message, ErrorCode.Persistence) + { + } + + public PersistenceException(string message, Exception innerException) + : base(message, ErrorCode.Persistence, innerException) + { + } + } +} diff --git a/Platforms/Windows/CpuSetApplyResult.cs b/Platforms/Windows/CpuSetApplyResult.cs index e312fd5..533e759 100644 --- a/Platforms/Windows/CpuSetApplyResult.cs +++ b/Platforms/Windows/CpuSetApplyResult.cs @@ -1,46 +1,46 @@ -namespace ThreadPilot.Platforms.Windows -{ - using ThreadPilot.Services; - - public sealed record CpuSetApplyResult - { - public bool Success { get; init; } - - public string ErrorCode { get; init; } = AffinityApplyErrorCodes.None; - - public int Win32ErrorCode { get; init; } - - public string UserMessage { get; init; } = string.Empty; - - public string TechnicalMessage { get; init; } = string.Empty; - - public bool IsAccessDenied { get; init; } - - public bool IsAntiCheatLikely { get; init; } - - public static CpuSetApplyResult Succeeded(string technicalMessage) => - new() - { - Success = true, - TechnicalMessage = technicalMessage, - }; - - public static CpuSetApplyResult Failed( - string errorCode, - string userMessage, - string technicalMessage, - int win32ErrorCode = 0, - bool isAccessDenied = false, - bool isAntiCheatLikely = false) => - new() - { - Success = false, - ErrorCode = errorCode, - UserMessage = userMessage, - TechnicalMessage = technicalMessage, - Win32ErrorCode = win32ErrorCode, - IsAccessDenied = isAccessDenied, - IsAntiCheatLikely = isAntiCheatLikely, - }; - } -} +namespace ThreadPilot.Platforms.Windows +{ + using ThreadPilot.Services; + + public sealed record CpuSetApplyResult + { + public bool Success { get; init; } + + public string ErrorCode { get; init; } = AffinityApplyErrorCodes.None; + + public int Win32ErrorCode { get; init; } + + public string UserMessage { get; init; } = string.Empty; + + public string TechnicalMessage { get; init; } = string.Empty; + + public bool IsAccessDenied { get; init; } + + public bool IsAntiCheatLikely { get; init; } + + public static CpuSetApplyResult Succeeded(string technicalMessage) => + new() + { + Success = true, + TechnicalMessage = technicalMessage, + }; + + public static CpuSetApplyResult Failed( + string errorCode, + string userMessage, + string technicalMessage, + int win32ErrorCode = 0, + bool isAccessDenied = false, + bool isAntiCheatLikely = false) => + new() + { + Success = false, + ErrorCode = errorCode, + UserMessage = userMessage, + TechnicalMessage = technicalMessage, + Win32ErrorCode = win32ErrorCode, + IsAccessDenied = isAccessDenied, + IsAntiCheatLikely = isAntiCheatLikely, + }; + } +} diff --git a/Platforms/Windows/CpuSetMapping.cs b/Platforms/Windows/CpuSetMapping.cs index 6fc8019..73926f5 100644 --- a/Platforms/Windows/CpuSetMapping.cs +++ b/Platforms/Windows/CpuSetMapping.cs @@ -1,129 +1,113 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Platforms.Windows -{ - using System; - using System.Collections.Generic; - using System.Linq; - using ThreadPilot.Models; - - internal sealed class CpuSetMapping - { - private readonly IReadOnlyDictionary cpuSetIdsByProcessor; - private readonly IReadOnlyDictionary processorsByCpuSetId; - - private CpuSetMapping( - IReadOnlyDictionary cpuSetIdsByProcessor, - IReadOnlyDictionary processorsByCpuSetId) - { - this.cpuSetIdsByProcessor = cpuSetIdsByProcessor; - this.processorsByCpuSetId = processorsByCpuSetId; - } - - public static CpuSetMapping Empty { get; } = new( - new Dictionary(), - new Dictionary()); - - public bool IsEmpty => this.cpuSetIdsByProcessor.Count == 0; - - public static CpuSetMapping Create(IReadOnlyDictionary cpuSetIdsByProcessor) - { - ArgumentNullException.ThrowIfNull(cpuSetIdsByProcessor); - - var forwardMap = cpuSetIdsByProcessor - .OrderBy(kvp => kvp.Key.GlobalIndex) - .ThenBy(kvp => kvp.Key.Group) - .ThenBy(kvp => kvp.Key.LogicalProcessorNumber) - .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); - - var inverseMap = forwardMap - .GroupBy(kvp => kvp.Value) - .ToDictionary( - group => group.Key, - group => group - .Select(kvp => kvp.Key) - .OrderBy(processor => processor.GlobalIndex) - .ThenBy(processor => processor.Group) - .ThenBy(processor => processor.LogicalProcessorNumber) - .First()); - - return new CpuSetMapping(forwardMap, inverseMap); - } - - public static ProcessorRef CreateProcessorRef(ushort group, byte logicalProcessorNumber) - { - return new ProcessorRef(group, logicalProcessorNumber, (group * 64) + logicalProcessorNumber); - } - - public bool TryGetCpuSetId(ProcessorRef processor, out uint cpuSetId) - { - return this.cpuSetIdsByProcessor.TryGetValue(processor, out cpuSetId); - } - - public bool TryGetProcessorRef(uint cpuSetId, out ProcessorRef processor) - { - return this.processorsByCpuSetId.TryGetValue(cpuSetId, out processor); - } - - public IReadOnlyList ResolveCpuSetIds(CpuSelection selection) - { - ArgumentNullException.ThrowIfNull(selection); - - if (selection.CpuSetIds.Count > 0) - { - return selection.CpuSetIds - .Distinct() - .OrderBy(cpuSetId => cpuSetId) - .ToList(); - } - - return selection.LogicalProcessors - .Select(processor => this.TryGetCpuSetId(processor, out var cpuSetId) ? (uint?)cpuSetId : null) - .Where(cpuSetId => cpuSetId.HasValue) - .Select(cpuSetId => cpuSetId!.Value) - .Distinct() - .OrderBy(cpuSetId => cpuSetId) - .ToList(); - } - - public IReadOnlyList ResolveLegacyAffinityMask(long affinityMask, int logicalProcessorCount) - { - var unsignedMask = unchecked((ulong)affinityMask); - var maxLegacyBits = Math.Min(Math.Max(logicalProcessorCount, 0), 64); - var cpuSetIds = new List(); - - for (var bit = 0; bit < maxLegacyBits; bit++) - { - if ((unsignedMask & (1UL << bit)) == 0) - { - continue; - } - - var processor = CreateProcessorRef(0, (byte)bit); - if (this.TryGetCpuSetId(processor, out var cpuSetId)) - { - cpuSetIds.Add(cpuSetId); - } - } - - return cpuSetIds - .Distinct() - .OrderBy(cpuSetId => cpuSetId) - .ToList(); - } - } -} +namespace ThreadPilot.Platforms.Windows +{ + using System; + using System.Collections.Generic; + using System.Linq; + using ThreadPilot.Models; + + internal sealed class CpuSetMapping + { + private readonly IReadOnlyDictionary cpuSetIdsByProcessor; + private readonly IReadOnlyDictionary processorsByCpuSetId; + + private CpuSetMapping( + IReadOnlyDictionary cpuSetIdsByProcessor, + IReadOnlyDictionary processorsByCpuSetId) + { + this.cpuSetIdsByProcessor = cpuSetIdsByProcessor; + this.processorsByCpuSetId = processorsByCpuSetId; + } + + public static CpuSetMapping Empty { get; } = new( + new Dictionary(), + new Dictionary()); + + public bool IsEmpty => this.cpuSetIdsByProcessor.Count == 0; + + public static CpuSetMapping Create(IReadOnlyDictionary cpuSetIdsByProcessor) + { + ArgumentNullException.ThrowIfNull(cpuSetIdsByProcessor); + + var forwardMap = cpuSetIdsByProcessor + .OrderBy(kvp => kvp.Key.GlobalIndex) + .ThenBy(kvp => kvp.Key.Group) + .ThenBy(kvp => kvp.Key.LogicalProcessorNumber) + .ToDictionary(kvp => kvp.Key, kvp => kvp.Value); + + var inverseMap = forwardMap + .GroupBy(kvp => kvp.Value) + .ToDictionary( + group => group.Key, + group => group + .Select(kvp => kvp.Key) + .OrderBy(processor => processor.GlobalIndex) + .ThenBy(processor => processor.Group) + .ThenBy(processor => processor.LogicalProcessorNumber) + .First()); + + return new CpuSetMapping(forwardMap, inverseMap); + } + + public static ProcessorRef CreateProcessorRef(ushort group, byte logicalProcessorNumber) + { + return new ProcessorRef(group, logicalProcessorNumber, (group * 64) + logicalProcessorNumber); + } + + public bool TryGetCpuSetId(ProcessorRef processor, out uint cpuSetId) + { + return this.cpuSetIdsByProcessor.TryGetValue(processor, out cpuSetId); + } + + public bool TryGetProcessorRef(uint cpuSetId, out ProcessorRef processor) + { + return this.processorsByCpuSetId.TryGetValue(cpuSetId, out processor); + } + + public IReadOnlyList ResolveCpuSetIds(CpuSelection selection) + { + ArgumentNullException.ThrowIfNull(selection); + + if (selection.CpuSetIds.Count > 0) + { + return selection.CpuSetIds + .Distinct() + .OrderBy(cpuSetId => cpuSetId) + .ToList(); + } + + return selection.LogicalProcessors + .Select(processor => this.TryGetCpuSetId(processor, out var cpuSetId) ? (uint?)cpuSetId : null) + .Where(cpuSetId => cpuSetId.HasValue) + .Select(cpuSetId => cpuSetId!.Value) + .Distinct() + .OrderBy(cpuSetId => cpuSetId) + .ToList(); + } + + public IReadOnlyList ResolveLegacyAffinityMask(long affinityMask, int logicalProcessorCount) + { + var unsignedMask = unchecked((ulong)affinityMask); + var maxLegacyBits = Math.Min(Math.Max(logicalProcessorCount, 0), 64); + var cpuSetIds = new List(); + + for (var bit = 0; bit < maxLegacyBits; bit++) + { + if ((unsignedMask & (1UL << bit)) == 0) + { + continue; + } + + var processor = CreateProcessorRef(0, (byte)bit); + if (this.TryGetCpuSetId(processor, out var cpuSetId)) + { + cpuSetIds.Add(cpuSetId); + } + } + + return cpuSetIds + .Distinct() + .OrderBy(cpuSetId => cpuSetId) + .ToList(); + } + } +} diff --git a/Platforms/Windows/CpuSetNativeMethods.cs b/Platforms/Windows/CpuSetNativeMethods.cs index 06ee816..0251668 100644 --- a/Platforms/Windows/CpuSetNativeMethods.cs +++ b/Platforms/Windows/CpuSetNativeMethods.cs @@ -1,83 +1,64 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Platforms.Windows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - - /// - /// P/Invoke declarations for Windows CPU Set APIs. - /// - internal static partial class CpuSetNativeMethods - { - [LibraryImport("kernel32.dll", SetLastError = true)] - public static partial SafeProcessHandle OpenProcess(ProcessAccessFlags access, [MarshalAs(UnmanagedType.Bool)] bool inheritHandle, uint processId); - - [LibraryImport("kernel32.dll", SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] - public static partial bool GetSystemCpuSetInformation(IntPtr Information, uint BufferLength, ref uint ReturnedLength, SafeProcessHandle Process, uint Flags); - - [LibraryImport("kernel32.dll", SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] - public static partial bool SetProcessDefaultCpuSets(SafeProcessHandle Process, uint[]? CpuSetIds, uint CpuSetIdCount); - - [LibraryImport("kernel32.dll", SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] - public static partial bool GetProcessTimes(SafeProcessHandle hProcess, out FILETIME lpCreationTime, out FILETIME lpExitTime, out FILETIME lpKernelTime, out FILETIME lpUserTime); - } - - [Flags] - public enum ProcessAccessFlags : uint - { - PROCESS_SET_INFORMATION = 0x00000200, - PROCESS_QUERY_LIMITED_INFORMATION = 0x00001000, - PROCESS_SET_LIMITED_INFORMATION = 0x00002000, - } - - [StructLayout(LayoutKind.Sequential)] - public struct FILETIME - { - public uint DwLowDateTime; - public uint DwHighDateTime; - - public readonly ulong ULong => (((ulong)this.DwHighDateTime) << 32) + this.DwLowDateTime; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SYSTEM_CPU_SET_INFORMATION - { - public uint Size; - public CPU_SET_INFORMATION_TYPE Type; - public uint Id; - public ushort Group; - public byte LogicalProcessorIndex; - public byte CoreIndex; - public byte LastLevelCacheIndex; - public byte NumaNodeIndex; - public byte EfficiencyClass; - public byte AllFlags; - public uint Reserved; - public ulong AllocationTag; - } - - public enum CPU_SET_INFORMATION_TYPE : int - { - CpuSetInformation = 0, - } -} - +namespace ThreadPilot.Platforms.Windows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.Win32.SafeHandles; + + internal static partial class CpuSetNativeMethods + { + [LibraryImport("kernel32.dll", SetLastError = true)] + public static partial SafeProcessHandle OpenProcess(ProcessAccessFlags access, [MarshalAs(UnmanagedType.Bool)] bool inheritHandle, uint processId); + + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static partial bool GetSystemCpuSetInformation(IntPtr Information, uint BufferLength, ref uint ReturnedLength, SafeProcessHandle Process, uint Flags); + + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static partial bool SetProcessDefaultCpuSets(SafeProcessHandle Process, uint[]? CpuSetIds, uint CpuSetIdCount); + + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static partial bool GetProcessTimes(SafeProcessHandle hProcess, out FILETIME lpCreationTime, out FILETIME lpExitTime, out FILETIME lpKernelTime, out FILETIME lpUserTime); + } + + [Flags] + public enum ProcessAccessFlags : uint + { + PROCESS_SET_INFORMATION = 0x00000200, + PROCESS_QUERY_LIMITED_INFORMATION = 0x00001000, + PROCESS_SET_LIMITED_INFORMATION = 0x00002000, + } + + [StructLayout(LayoutKind.Sequential)] + public struct FILETIME + { + public uint DwLowDateTime; + public uint DwHighDateTime; + + public readonly ulong ULong => (((ulong)this.DwHighDateTime) << 32) + this.DwLowDateTime; + } + + [StructLayout(LayoutKind.Sequential)] + public struct SYSTEM_CPU_SET_INFORMATION + { + public uint Size; + public CPU_SET_INFORMATION_TYPE Type; + public uint Id; + public ushort Group; + public byte LogicalProcessorIndex; + public byte CoreIndex; + public byte LastLevelCacheIndex; + public byte NumaNodeIndex; + public byte EfficiencyClass; + public byte AllFlags; + public uint Reserved; + public ulong AllocationTag; + } + + public enum CPU_SET_INFORMATION_TYPE : int + { + CpuSetInformation = 0, + } +} + diff --git a/Platforms/Windows/IProcessCpuSetHandler.cs b/Platforms/Windows/IProcessCpuSetHandler.cs index ac06b56..094e13c 100644 --- a/Platforms/Windows/IProcessCpuSetHandler.cs +++ b/Platforms/Windows/IProcessCpuSetHandler.cs @@ -1,83 +1,24 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Platforms.Windows -{ - using System; - using ThreadPilot.Models; - - /// - /// Interface for handling CPU Set operations on a specific process. - /// - public interface IProcessCpuSetHandler : IDisposable - { - /// - /// Gets the process ID this handler manages. - /// - uint ProcessId { get; } - - /// - /// Gets the executable name. - /// - string ExecutableName { get; } - - /// - /// Applies a CPU affinity mask to the process using CPU Sets. - /// This legacy path is valid only for single-processor-group systems with up to - /// 64 logical processors. It will be superseded by - /// for topology-aware CPU Set selection. - /// - /// The affinity mask where each bit represents a logical processor. - /// If true, clears the CPU Set (allows all cores); if false, applies the mask. - /// True if the operation succeeded, false otherwise. - bool ApplyCpuSetMask(long affinityMask, bool clearMask = false); - - /// - /// Applies a CPU affinity mask to the process using CPU Sets and returns detailed failure information. - /// - /// The affinity mask where each bit represents a logical processor. - /// If true, clears the CPU Set (allows all cores); if false, applies the mask. - /// Detailed CPU Set apply result. - CpuSetApplyResult ApplyCpuSetMaskDetailed(long affinityMask, bool clearMask = false); - - /// - /// Applies a topology-aware CPU selection to the process using CPU Sets. - /// - /// The CPU selection to apply. Ignored and allowed to be null when is true. - /// If true, clears the CPU Set selection and ignores . - /// True if the operation succeeded, false otherwise. - bool ApplyCpuSelection(CpuSelection? selection, bool clearSelection = false); - - /// - /// Applies a topology-aware CPU selection to the process using CPU Sets and returns detailed failure information. - /// - /// The CPU selection to apply. Ignored and allowed to be null when is true. - /// If true, clears the CPU Set selection and ignores . - /// Detailed CPU Set apply result. - CpuSetApplyResult ApplyCpuSelectionDetailed(CpuSelection? selection, bool clearSelection = false); - - /// - /// Gets the average CPU usage for this process. - /// - /// CPU usage percentage (0-1 range), or -1 if unavailable. - double GetAverageCpuUsage(); - - /// - /// Gets a value indicating whether checks if the handler has valid handles to the process. - /// - bool IsValid { get; } - } -} +namespace ThreadPilot.Platforms.Windows +{ + using System; + using ThreadPilot.Models; + + public interface IProcessCpuSetHandler : IDisposable + { + uint ProcessId { get; } + + string ExecutableName { get; } + + bool ApplyCpuSetMask(long affinityMask, bool clearMask = false); + + CpuSetApplyResult ApplyCpuSetMaskDetailed(long affinityMask, bool clearMask = false); + + bool ApplyCpuSelection(CpuSelection? selection, bool clearSelection = false); + + CpuSetApplyResult ApplyCpuSelectionDetailed(CpuSelection? selection, bool clearSelection = false); + + double GetAverageCpuUsage(); + + bool IsValid { get; } + } +} diff --git a/Platforms/Windows/IProcessCpuSetNativeApi.cs b/Platforms/Windows/IProcessCpuSetNativeApi.cs index 43d2b84..bfd74da 100644 --- a/Platforms/Windows/IProcessCpuSetNativeApi.cs +++ b/Platforms/Windows/IProcessCpuSetNativeApi.cs @@ -1,89 +1,73 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Platforms.Windows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - - internal interface IProcessCpuSetNativeApi - { - SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId); - - bool SetProcessDefaultCpuSets(SafeProcessHandle process, uint[]? cpuSetIds, uint cpuSetIdCount); - - bool GetProcessTimes( - SafeProcessHandle process, - out FILETIME creationTime, - out FILETIME exitTime, - out FILETIME kernelTime, - out FILETIME userTime); - - bool GetSystemCpuSetInformation( - IntPtr information, - uint bufferLength, - ref uint returnedLength, - SafeProcessHandle process, - uint flags); - - int GetLastWin32Error(); - } - - internal sealed class ProcessCpuSetNativeApi : IProcessCpuSetNativeApi - { - public static ProcessCpuSetNativeApi Instance { get; } = new(); - - private ProcessCpuSetNativeApi() - { - } - - public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) - { - return CpuSetNativeMethods.OpenProcess(access, inheritHandle, processId); - } - - public bool SetProcessDefaultCpuSets(SafeProcessHandle process, uint[]? cpuSetIds, uint cpuSetIdCount) - { - return CpuSetNativeMethods.SetProcessDefaultCpuSets(process, cpuSetIds, cpuSetIdCount); - } - - public bool GetProcessTimes( - SafeProcessHandle process, - out FILETIME creationTime, - out FILETIME exitTime, - out FILETIME kernelTime, - out FILETIME userTime) - { - return CpuSetNativeMethods.GetProcessTimes(process, out creationTime, out exitTime, out kernelTime, out userTime); - } - - public bool GetSystemCpuSetInformation( - IntPtr information, - uint bufferLength, - ref uint returnedLength, - SafeProcessHandle process, - uint flags) - { - return CpuSetNativeMethods.GetSystemCpuSetInformation(information, bufferLength, ref returnedLength, process, flags); - } - - public int GetLastWin32Error() - { - return Marshal.GetLastWin32Error(); - } - } -} +namespace ThreadPilot.Platforms.Windows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.Win32.SafeHandles; + + internal interface IProcessCpuSetNativeApi + { + SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId); + + bool SetProcessDefaultCpuSets(SafeProcessHandle process, uint[]? cpuSetIds, uint cpuSetIdCount); + + bool GetProcessTimes( + SafeProcessHandle process, + out FILETIME creationTime, + out FILETIME exitTime, + out FILETIME kernelTime, + out FILETIME userTime); + + bool GetSystemCpuSetInformation( + IntPtr information, + uint bufferLength, + ref uint returnedLength, + SafeProcessHandle process, + uint flags); + + int GetLastWin32Error(); + } + + internal sealed class ProcessCpuSetNativeApi : IProcessCpuSetNativeApi + { + public static ProcessCpuSetNativeApi Instance { get; } = new(); + + private ProcessCpuSetNativeApi() + { + } + + public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) + { + return CpuSetNativeMethods.OpenProcess(access, inheritHandle, processId); + } + + public bool SetProcessDefaultCpuSets(SafeProcessHandle process, uint[]? cpuSetIds, uint cpuSetIdCount) + { + return CpuSetNativeMethods.SetProcessDefaultCpuSets(process, cpuSetIds, cpuSetIdCount); + } + + public bool GetProcessTimes( + SafeProcessHandle process, + out FILETIME creationTime, + out FILETIME exitTime, + out FILETIME kernelTime, + out FILETIME userTime) + { + return CpuSetNativeMethods.GetProcessTimes(process, out creationTime, out exitTime, out kernelTime, out userTime); + } + + public bool GetSystemCpuSetInformation( + IntPtr information, + uint bufferLength, + ref uint returnedLength, + SafeProcessHandle process, + uint flags) + { + return CpuSetNativeMethods.GetSystemCpuSetInformation(information, bufferLength, ref returnedLength, process, flags); + } + + public int GetLastWin32Error() + { + return Marshal.GetLastWin32Error(); + } + } +} diff --git a/Platforms/Windows/IProcessMemoryPriorityNativeApi.cs b/Platforms/Windows/IProcessMemoryPriorityNativeApi.cs index 3bd8164..d22b2b8 100644 --- a/Platforms/Windows/IProcessMemoryPriorityNativeApi.cs +++ b/Platforms/Windows/IProcessMemoryPriorityNativeApi.cs @@ -1,88 +1,88 @@ -/* - * ThreadPilot - Windows process memory priority native API abstraction. - */ -namespace ThreadPilot.Platforms.Windows -{ - using System; - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - - public interface IProcessMemoryPriorityNativeApi - { - bool IsSupported { get; } - - SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId); - - bool GetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize); - - bool SetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize); - - int GetLastWin32Error(); - } - - public sealed class ProcessMemoryPriorityNativeApi : IProcessMemoryPriorityNativeApi - { - public static ProcessMemoryPriorityNativeApi Instance { get; } = new(); - - private ProcessMemoryPriorityNativeApi() - { - } - - public bool IsSupported => OperatingSystem.IsWindowsVersionAtLeast(6, 2); - - public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) - { - return ProcessMemoryPriorityNativeMethods.OpenProcess(access, inheritHandle, processId); - } - - public bool GetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize) - { - return ProcessMemoryPriorityNativeMethods.GetProcessInformation( - process, - processInformationClass, - ref processInformation, - processInformationSize); - } - - public bool SetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize) - { - return ProcessMemoryPriorityNativeMethods.SetProcessInformation( - process, - processInformationClass, - ref processInformation, - processInformationSize); - } - - public int GetLastWin32Error() - { - return Marshal.GetLastWin32Error(); - } - } - - public enum ProcessInformationClass - { - ProcessMemoryPriority = 0, - } - - [StructLayout(LayoutKind.Sequential)] - public struct MemoryPriorityInformation - { - public uint MemoryPriority; - } -} +/* + * ThreadPilot - Windows process memory priority native API abstraction. + */ +namespace ThreadPilot.Platforms.Windows +{ + using System; + using System.Runtime.InteropServices; + using Microsoft.Win32.SafeHandles; + + public interface IProcessMemoryPriorityNativeApi + { + bool IsSupported { get; } + + SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId); + + bool GetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize); + + bool SetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize); + + int GetLastWin32Error(); + } + + public sealed class ProcessMemoryPriorityNativeApi : IProcessMemoryPriorityNativeApi + { + public static ProcessMemoryPriorityNativeApi Instance { get; } = new(); + + private ProcessMemoryPriorityNativeApi() + { + } + + public bool IsSupported => OperatingSystem.IsWindowsVersionAtLeast(6, 2); + + public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) + { + return ProcessMemoryPriorityNativeMethods.OpenProcess(access, inheritHandle, processId); + } + + public bool GetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize) + { + return ProcessMemoryPriorityNativeMethods.GetProcessInformation( + process, + processInformationClass, + ref processInformation, + processInformationSize); + } + + public bool SetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize) + { + return ProcessMemoryPriorityNativeMethods.SetProcessInformation( + process, + processInformationClass, + ref processInformation, + processInformationSize); + } + + public int GetLastWin32Error() + { + return Marshal.GetLastWin32Error(); + } + } + + public enum ProcessInformationClass + { + ProcessMemoryPriority = 0, + } + + [StructLayout(LayoutKind.Sequential)] + public struct MemoryPriorityInformation + { + public uint MemoryPriority; + } +} diff --git a/Platforms/Windows/ProcessCpuSetHandler.cs b/Platforms/Windows/ProcessCpuSetHandler.cs index 4c4e41b..4cf6e53 100644 --- a/Platforms/Windows/ProcessCpuSetHandler.cs +++ b/Platforms/Windows/ProcessCpuSetHandler.cs @@ -1,447 +1,424 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Platforms.Windows -{ - using System; - using System.Collections.Generic; - using System.ComponentModel; - using System.Runtime.InteropServices; - using Microsoft.Extensions.Logging; - using Microsoft.Win32.SafeHandles; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Handles CPU Set operations for a specific process using Windows APIs - /// Based on CPUSetSetter's ProcessHandlerWindows implementation. - /// - public class ProcessCpuSetHandler : IProcessCpuSetHandler - { - private static CpuSetMapping staticCpuSetMapping = CpuSetMapping.Empty; - private static readonly object staticInitLock = new object(); - private static bool staticInitialized = false; - - private readonly Queue cpuTimeMovingAverageBuffer = new(); - private readonly string executableName; - private readonly uint pid; - private readonly IProcessCpuSetNativeApi nativeApi; - private readonly CpuSetMapping cpuSetMapping; - private readonly ILogger? logger; - - private SafeProcessHandle? queryLimitedInfoHandle; - private SafeProcessHandle? setLimitedInfoHandle; - private bool disposed = false; - - public ProcessCpuSetHandler(uint processId, string executableName, ILogger? logger = null) - : this(processId, executableName, ProcessCpuSetNativeApi.Instance, EnsureStaticInitialization(ProcessCpuSetNativeApi.Instance), logger) - { - } - - internal ProcessCpuSetHandler( - uint processId, - string executableName, - IProcessCpuSetNativeApi nativeApi, - CpuSetMapping cpuSetMapping, - ILogger? logger = null) - { - this.pid = processId; - this.executableName = executableName ?? $"PID_{processId}"; - this.nativeApi = nativeApi ?? throw new ArgumentNullException(nameof(nativeApi)); - this.cpuSetMapping = cpuSetMapping ?? throw new ArgumentNullException(nameof(cpuSetMapping)); - this.logger = logger; - - // Open handle for querying process information - this.queryLimitedInfoHandle = this.nativeApi.OpenProcess( - ProcessAccessFlags.PROCESS_QUERY_LIMITED_INFORMATION, - false, - processId); - - if (this.queryLimitedInfoHandle == null || this.queryLimitedInfoHandle.IsInvalid) - { - var error = this.nativeApi.GetLastWin32Error(); - this.logger?.LogWarning("Failed to open process {ProcessId} for querying: {Error}", processId, new Win32Exception(error).Message); - } - } - - public uint ProcessId => this.pid; - - public string ExecutableName => this.executableName; - - public bool IsValid => this.queryLimitedInfoHandle != null && !this.queryLimitedInfoHandle.IsInvalid; - - private static CpuSetMapping EnsureStaticInitialization(IProcessCpuSetNativeApi nativeApi) - { - if (staticInitialized) - { - return staticCpuSetMapping; - } - - lock (staticInitLock) - { - if (staticInitialized) - { - return staticCpuSetMapping; - } - - try - { - staticCpuSetMapping = GetCpuSetMapping(nativeApi); - } - catch (Exception) - { - // If we can't get CPU Set mapping, CPU Sets won't be available - // The handler will still work but ApplyCpuSetMask will return false - staticCpuSetMapping = CpuSetMapping.Empty; - } - - staticInitialized = true; - return staticCpuSetMapping; - } - } - - public double GetAverageCpuUsage() - { - if (this.queryLimitedInfoHandle == null || this.queryLimitedInfoHandle.IsInvalid) - { - return -1; - } - - try - { - DateTime now = DateTime.Now; - - // Remove datapoints older than 30 seconds from the moving average buffer - while (this.cpuTimeMovingAverageBuffer.Count > 0) - { - TimeSpan datapointAge = now - this.cpuTimeMovingAverageBuffer.Peek().Timestamp; - if (datapointAge.TotalSeconds > 30) - { - this.cpuTimeMovingAverageBuffer.Dequeue(); - } - else - { - break; - } - } - - // Get the current total CPU time of the process - bool success = this.nativeApi.GetProcessTimes( - this.queryLimitedInfoHandle, - out _, - out _, - out FILETIME kernelTime, - out FILETIME userTime); - - if (!success) - { - return -1; - } - - TimeSpan totalCpuTime = TimeSpan.FromTicks((long)(kernelTime.ULong + userTime.ULong)); - this.cpuTimeMovingAverageBuffer.Enqueue(new CpuTimeTimestamp - { - Timestamp = now, - TotalCpuTime = totalCpuTime, - }); - - // Need at least 2 samples to calculate usage - if (this.cpuTimeMovingAverageBuffer.Count < 2) - { - return 0; - } - - // Take the CPU time from now and (up to) a minute ago, and get the average usage % - CpuTimeTimestamp startDatapoint = this.cpuTimeMovingAverageBuffer.Peek(); - TimeSpan deltaTime = now - startDatapoint.Timestamp; - TimeSpan deltaCpuTime = totalCpuTime - startDatapoint.TotalCpuTime; - - if (deltaCpuTime.Ticks == 0 || deltaTime.Ticks == 0) - { - return 0; - } - - return (double)deltaCpuTime.Ticks / deltaTime.Ticks / Environment.ProcessorCount; - } - catch - { - return -1; - } - } - - public bool ApplyCpuSetMask(long affinityMask, bool clearMask = false) => - this.ApplyCpuSetMaskDetailed(affinityMask, clearMask).Success; - - public CpuSetApplyResult ApplyCpuSetMaskDetailed(long affinityMask, bool clearMask = false) - { - if (this.disposed) - { - throw new ObjectDisposedException(nameof(ProcessCpuSetHandler)); - } - - // Legacy mask support is intentionally limited to single-group systems where - // logical processors 0-63 map to processor group 0. CpuSelection will replace - // this path for group-aware selections in a later phase. - if (this.cpuSetMapping.IsEmpty) - { - this.logger?.LogWarning("CPU Set mapping not available. Cannot apply CPU Sets to process {ProcessId}", this.pid); - return CpuSetApplyResult.Failed( - AffinityApplyErrorCodes.CpuSetsUnavailable, - ProcessOperationUserMessages.CpuSetsUnavailable, - $"CPU Set mapping is not available for process '{this.executableName}' (PID: {this.pid})."); - } - - var handleResult = this.EnsureSetHandleDetailed(); - if (!handleResult.Success) - { - return handleResult; - } - - if (clearMask) - { - return this.ApplyCpuSetIdsDetailed(null, 0, "clear CPU Set"); - } - - var cpuSetIds = this.cpuSetMapping.ResolveLegacyAffinityMask(affinityMask, Environment.ProcessorCount); - - if (cpuSetIds.Count == 0) - { - this.logger?.LogWarning( - "No valid CPU Set IDs found for affinity mask 0x{AffinityMask:X} on process '{ExecutableName}'", - affinityMask, this.executableName); - return CpuSetApplyResult.Failed( - AffinityApplyErrorCodes.InvalidTopology, - ProcessOperationUserMessages.InvalidTopology, - $"No valid CPU Set IDs found for affinity mask 0x{affinityMask:X} on process '{this.executableName}'."); - } - - var cpuSetIdsArray = cpuSetIds.ToArray(); - var result = this.ApplyCpuSetIdsDetailed(cpuSetIdsArray, (uint)cpuSetIdsArray.Length, "apply CPU Set"); - - if (result.Success) - { - this.logger?.LogInformation( - "Applied CPU Set (affinity mask 0x{AffinityMask:X}) to '{ExecutableName}' (PID: {ProcessId})", - affinityMask, this.executableName, this.pid); - } - - return result; - } - - public bool ApplyCpuSelection(CpuSelection? selection, bool clearSelection = false) => - this.ApplyCpuSelectionDetailed(selection, clearSelection).Success; - - public CpuSetApplyResult ApplyCpuSelectionDetailed(CpuSelection? selection, bool clearSelection = false) - { - if (this.disposed) - { - throw new ObjectDisposedException(nameof(ProcessCpuSetHandler)); - } - - var handleResult = this.EnsureSetHandleDetailed(); - if (!handleResult.Success) - { - return handleResult; - } - - if (clearSelection) - { - return this.ApplyCpuSetIdsDetailed(null, 0, "clear CPU Set selection"); - } - - ArgumentNullException.ThrowIfNull(selection); - - var cpuSetIds = this.cpuSetMapping.ResolveCpuSetIds(selection); - if (cpuSetIds.Count == 0) - { - this.logger?.LogWarning( - "No valid CPU Set IDs resolved for CPU selection on process '{ExecutableName}' (PID: {ProcessId})", - this.executableName, - this.pid); - return CpuSetApplyResult.Failed( - AffinityApplyErrorCodes.InvalidTopology, - ProcessOperationUserMessages.InvalidTopology, - $"No valid CPU Set IDs resolved for CPU selection on process '{this.executableName}' (PID: {this.pid})."); - } - - var cpuSetIdsArray = cpuSetIds.ToArray(); - return this.ApplyCpuSetIdsDetailed(cpuSetIdsArray, (uint)cpuSetIdsArray.Length, "apply CPU Set selection"); - } - - private bool EnsureSetHandle() - { - return this.EnsureSetHandleDetailed().Success; - } - - private CpuSetApplyResult EnsureSetHandleDetailed() - { - if (this.setLimitedInfoHandle == null) - { - this.setLimitedInfoHandle = this.nativeApi.OpenProcess( - ProcessAccessFlags.PROCESS_SET_LIMITED_INFORMATION, - false, - this.pid); - - if (this.setLimitedInfoHandle == null || this.setLimitedInfoHandle.IsInvalid) - { - int openError = this.nativeApi.GetLastWin32Error(); - string extraHelpString = (openError == 5) - ? $" {ProcessOperationUserMessages.AdminClarification}" - : string.Empty; - this.logger?.LogWarning( - "Could not open process '{ExecutableName}' (PID: {ProcessId}) for setting affinity: {Error}{Help}", - this.executableName, this.pid, new Win32Exception(openError).Message, extraHelpString); - return this.CreateNativeFailureResult( - "open process for CPU Set changes", - openError); - } - } - else if (this.setLimitedInfoHandle.IsInvalid) - { - // The handle was already made previously and failed, don't bother trying again - return CpuSetApplyResult.Failed( - AffinityApplyErrorCodes.CpuSetsUnavailable, - ProcessOperationUserMessages.CpuSetsUnavailable, - $"The cached CPU Set handle for '{this.executableName}' (PID: {this.pid}) is invalid."); - } - - return CpuSetApplyResult.Succeeded($"CPU Set handle is available for '{this.executableName}' (PID: {this.pid})."); - } - - private bool ApplyCpuSetIds(uint[]? cpuSetIds, uint cpuSetIdCount, string operationName) - { - return this.ApplyCpuSetIdsDetailed(cpuSetIds, cpuSetIdCount, operationName).Success; - } - - private CpuSetApplyResult ApplyCpuSetIdsDetailed(uint[]? cpuSetIds, uint cpuSetIdCount, string operationName) - { - bool success = this.nativeApi.SetProcessDefaultCpuSets(this.setLimitedInfoHandle!, cpuSetIds, cpuSetIdCount); - if (success) - { - this.logger?.LogInformation( - "Completed {OperationName} for '{ExecutableName}' (PID: {ProcessId})", - operationName, - this.executableName, - this.pid); - return CpuSetApplyResult.Succeeded( - $"Completed {operationName} for '{this.executableName}' (PID: {this.pid})."); - } - - int error = this.nativeApi.GetLastWin32Error(); - string errorMessage = $"Could not {operationName} for '{this.executableName}' (PID: {this.pid}): {new Win32Exception(error).Message}"; - if (error == 5) - { - errorMessage += $" {ProcessOperationUserMessages.AdminClarification}"; - } - - this.logger?.LogWarning(errorMessage); - return this.CreateNativeFailureResult(operationName, error, errorMessage); - } - - private CpuSetApplyResult CreateNativeFailureResult( - string operationName, - int win32ErrorCode, - string? technicalMessage = null) - { - var message = technicalMessage ?? - $"Could not {operationName} for '{this.executableName}' (PID: {this.pid}): {new Win32Exception(win32ErrorCode).Message}"; - var accessDenied = win32ErrorCode == 5; - - return CpuSetApplyResult.Failed( - accessDenied ? AffinityApplyErrorCodes.AccessDenied : AffinityApplyErrorCodes.NativeApplyFailed, - accessDenied ? ProcessOperationUserMessages.AccessDenied : ProcessOperationUserMessages.CpuSetsUnavailable, - message, - win32ErrorCode, - isAccessDenied: accessDenied); - } - - /// - /// Gets the CPU Set ID of each logical processor keyed by processor group and group-relative logical processor number. - /// - private static CpuSetMapping GetCpuSetMapping(IProcessCpuSetNativeApi nativeApi) - { - uint bufferLength = 0; - - // First call to get buffer size - if (!nativeApi.GetSystemCpuSetInformation(IntPtr.Zero, 0, ref bufferLength, new SafeProcessHandle(), 0)) - { - int error = nativeApi.GetLastWin32Error(); - if (error != 0x7A) // ERROR_INSUFFICIENT_BUFFER - { - throw new Win32Exception(error, "Failed to query CPU Set information buffer size"); - } - } - - Dictionary cpuSets = new Dictionary(); - IntPtr buffer = Marshal.AllocHGlobal((int)bufferLength); - - try - { - // Second call to get actual data - if (!nativeApi.GetSystemCpuSetInformation(buffer, bufferLength, ref bufferLength, new SafeProcessHandle(), 0)) - { - throw new Win32Exception(nativeApi.GetLastWin32Error(), "Failed to get CPU Set information"); - } - - IntPtr current = buffer; - IntPtr bufferEnd = buffer + (int)bufferLength; - - while (current.ToInt64() < bufferEnd.ToInt64()) - { - SYSTEM_CPU_SET_INFORMATION item = Marshal.PtrToStructure(current); - - if (item.Type != CPU_SET_INFORMATION_TYPE.CpuSetInformation) - { - throw new InvalidCastException("Invalid CPU Set information type encountered"); - } - - var processor = CpuSetMapping.CreateProcessorRef(item.Group, item.LogicalProcessorIndex); - cpuSets[processor] = item.Id; - - current = IntPtr.Add(current, (int)item.Size); - } - - return CpuSetMapping.Create(cpuSets); - } - finally - { - Marshal.FreeHGlobal(buffer); - } - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - this.queryLimitedInfoHandle?.Dispose(); - this.setLimitedInfoHandle?.Dispose(); - this.cpuTimeMovingAverageBuffer.Clear(); - - this.disposed = true; - GC.SuppressFinalize(this); - } - - private class CpuTimeTimestamp - { - public DateTime Timestamp { get; init; } - - public TimeSpan TotalCpuTime { get; init; } - } - } -} +namespace ThreadPilot.Platforms.Windows +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Runtime.InteropServices; + using Microsoft.Extensions.Logging; + using Microsoft.Win32.SafeHandles; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public class ProcessCpuSetHandler : IProcessCpuSetHandler + { + private static CpuSetMapping staticCpuSetMapping = CpuSetMapping.Empty; + private static readonly object staticInitLock = new object(); + private static bool staticInitialized = false; + + private readonly Queue cpuTimeMovingAverageBuffer = new(); + private readonly string executableName; + private readonly uint pid; + private readonly IProcessCpuSetNativeApi nativeApi; + private readonly CpuSetMapping cpuSetMapping; + private readonly ILogger? logger; + + private SafeProcessHandle? queryLimitedInfoHandle; + private SafeProcessHandle? setLimitedInfoHandle; + private bool disposed = false; + + public ProcessCpuSetHandler(uint processId, string executableName, ILogger? logger = null) + : this(processId, executableName, ProcessCpuSetNativeApi.Instance, EnsureStaticInitialization(ProcessCpuSetNativeApi.Instance), logger) + { + } + + internal ProcessCpuSetHandler( + uint processId, + string executableName, + IProcessCpuSetNativeApi nativeApi, + CpuSetMapping cpuSetMapping, + ILogger? logger = null) + { + this.pid = processId; + this.executableName = executableName ?? $"PID_{processId}"; + this.nativeApi = nativeApi ?? throw new ArgumentNullException(nameof(nativeApi)); + this.cpuSetMapping = cpuSetMapping ?? throw new ArgumentNullException(nameof(cpuSetMapping)); + this.logger = logger; + + // Open handle for querying process information + this.queryLimitedInfoHandle = this.nativeApi.OpenProcess( + ProcessAccessFlags.PROCESS_QUERY_LIMITED_INFORMATION, + false, + processId); + + if (this.queryLimitedInfoHandle == null || this.queryLimitedInfoHandle.IsInvalid) + { + var error = this.nativeApi.GetLastWin32Error(); + this.logger?.LogWarning("Failed to open process {ProcessId} for querying: {Error}", processId, new Win32Exception(error).Message); + } + } + + public uint ProcessId => this.pid; + + public string ExecutableName => this.executableName; + + public bool IsValid => this.queryLimitedInfoHandle != null && !this.queryLimitedInfoHandle.IsInvalid; + + private static CpuSetMapping EnsureStaticInitialization(IProcessCpuSetNativeApi nativeApi) + { + if (staticInitialized) + { + return staticCpuSetMapping; + } + + lock (staticInitLock) + { + if (staticInitialized) + { + return staticCpuSetMapping; + } + + try + { + staticCpuSetMapping = GetCpuSetMapping(nativeApi); + } + catch (Exception) + { + // If we can't get CPU Set mapping, CPU Sets won't be available + // The handler will still work but ApplyCpuSetMask will return false + staticCpuSetMapping = CpuSetMapping.Empty; + } + + staticInitialized = true; + return staticCpuSetMapping; + } + } + + public double GetAverageCpuUsage() + { + if (this.queryLimitedInfoHandle == null || this.queryLimitedInfoHandle.IsInvalid) + { + return -1; + } + + try + { + DateTime now = DateTime.Now; + + // Remove datapoints older than 30 seconds from the moving average buffer + while (this.cpuTimeMovingAverageBuffer.Count > 0) + { + TimeSpan datapointAge = now - this.cpuTimeMovingAverageBuffer.Peek().Timestamp; + if (datapointAge.TotalSeconds > 30) + { + this.cpuTimeMovingAverageBuffer.Dequeue(); + } + else + { + break; + } + } + + // Get the current total CPU time of the process + bool success = this.nativeApi.GetProcessTimes( + this.queryLimitedInfoHandle, + out _, + out _, + out FILETIME kernelTime, + out FILETIME userTime); + + if (!success) + { + return -1; + } + + TimeSpan totalCpuTime = TimeSpan.FromTicks((long)(kernelTime.ULong + userTime.ULong)); + this.cpuTimeMovingAverageBuffer.Enqueue(new CpuTimeTimestamp + { + Timestamp = now, + TotalCpuTime = totalCpuTime, + }); + + // Need at least 2 samples to calculate usage + if (this.cpuTimeMovingAverageBuffer.Count < 2) + { + return 0; + } + + // Take the CPU time from now and (up to) a minute ago, and get the average usage % + CpuTimeTimestamp startDatapoint = this.cpuTimeMovingAverageBuffer.Peek(); + TimeSpan deltaTime = now - startDatapoint.Timestamp; + TimeSpan deltaCpuTime = totalCpuTime - startDatapoint.TotalCpuTime; + + if (deltaCpuTime.Ticks == 0 || deltaTime.Ticks == 0) + { + return 0; + } + + return (double)deltaCpuTime.Ticks / deltaTime.Ticks / Environment.ProcessorCount; + } + catch + { + return -1; + } + } + + public bool ApplyCpuSetMask(long affinityMask, bool clearMask = false) => + this.ApplyCpuSetMaskDetailed(affinityMask, clearMask).Success; + + public CpuSetApplyResult ApplyCpuSetMaskDetailed(long affinityMask, bool clearMask = false) + { + if (this.disposed) + { + throw new ObjectDisposedException(nameof(ProcessCpuSetHandler)); + } + + // Legacy mask support is intentionally limited to single-group systems where + // logical processors 0-63 map to processor group 0. CpuSelection will replace + // this path for group-aware selections in a later phase. + if (this.cpuSetMapping.IsEmpty) + { + this.logger?.LogWarning("CPU Set mapping not available. Cannot apply CPU Sets to process {ProcessId}", this.pid); + return CpuSetApplyResult.Failed( + AffinityApplyErrorCodes.CpuSetsUnavailable, + ProcessOperationUserMessages.CpuSetsUnavailable, + $"CPU Set mapping is not available for process '{this.executableName}' (PID: {this.pid})."); + } + + var handleResult = this.EnsureSetHandleDetailed(); + if (!handleResult.Success) + { + return handleResult; + } + + if (clearMask) + { + return this.ApplyCpuSetIdsDetailed(null, 0, "clear CPU Set"); + } + + var cpuSetIds = this.cpuSetMapping.ResolveLegacyAffinityMask(affinityMask, Environment.ProcessorCount); + + if (cpuSetIds.Count == 0) + { + this.logger?.LogWarning( + "No valid CPU Set IDs found for affinity mask 0x{AffinityMask:X} on process '{ExecutableName}'", + affinityMask, this.executableName); + return CpuSetApplyResult.Failed( + AffinityApplyErrorCodes.InvalidTopology, + ProcessOperationUserMessages.InvalidTopology, + $"No valid CPU Set IDs found for affinity mask 0x{affinityMask:X} on process '{this.executableName}'."); + } + + var cpuSetIdsArray = cpuSetIds.ToArray(); + var result = this.ApplyCpuSetIdsDetailed(cpuSetIdsArray, (uint)cpuSetIdsArray.Length, "apply CPU Set"); + + if (result.Success) + { + this.logger?.LogInformation( + "Applied CPU Set (affinity mask 0x{AffinityMask:X}) to '{ExecutableName}' (PID: {ProcessId})", + affinityMask, this.executableName, this.pid); + } + + return result; + } + + public bool ApplyCpuSelection(CpuSelection? selection, bool clearSelection = false) => + this.ApplyCpuSelectionDetailed(selection, clearSelection).Success; + + public CpuSetApplyResult ApplyCpuSelectionDetailed(CpuSelection? selection, bool clearSelection = false) + { + if (this.disposed) + { + throw new ObjectDisposedException(nameof(ProcessCpuSetHandler)); + } + + var handleResult = this.EnsureSetHandleDetailed(); + if (!handleResult.Success) + { + return handleResult; + } + + if (clearSelection) + { + return this.ApplyCpuSetIdsDetailed(null, 0, "clear CPU Set selection"); + } + + ArgumentNullException.ThrowIfNull(selection); + + var cpuSetIds = this.cpuSetMapping.ResolveCpuSetIds(selection); + if (cpuSetIds.Count == 0) + { + this.logger?.LogWarning( + "No valid CPU Set IDs resolved for CPU selection on process '{ExecutableName}' (PID: {ProcessId})", + this.executableName, + this.pid); + return CpuSetApplyResult.Failed( + AffinityApplyErrorCodes.InvalidTopology, + ProcessOperationUserMessages.InvalidTopology, + $"No valid CPU Set IDs resolved for CPU selection on process '{this.executableName}' (PID: {this.pid})."); + } + + var cpuSetIdsArray = cpuSetIds.ToArray(); + return this.ApplyCpuSetIdsDetailed(cpuSetIdsArray, (uint)cpuSetIdsArray.Length, "apply CPU Set selection"); + } + + private bool EnsureSetHandle() + { + return this.EnsureSetHandleDetailed().Success; + } + + private CpuSetApplyResult EnsureSetHandleDetailed() + { + if (this.setLimitedInfoHandle == null) + { + this.setLimitedInfoHandle = this.nativeApi.OpenProcess( + ProcessAccessFlags.PROCESS_SET_LIMITED_INFORMATION, + false, + this.pid); + + if (this.setLimitedInfoHandle == null || this.setLimitedInfoHandle.IsInvalid) + { + int openError = this.nativeApi.GetLastWin32Error(); + string extraHelpString = (openError == 5) + ? $" {ProcessOperationUserMessages.AdminClarification}" + : string.Empty; + this.logger?.LogWarning( + "Could not open process '{ExecutableName}' (PID: {ProcessId}) for setting affinity: {Error}{Help}", + this.executableName, this.pid, new Win32Exception(openError).Message, extraHelpString); + return this.CreateNativeFailureResult( + "open process for CPU Set changes", + openError); + } + } + else if (this.setLimitedInfoHandle.IsInvalid) + { + // The handle was already made previously and failed, don't bother trying again + return CpuSetApplyResult.Failed( + AffinityApplyErrorCodes.CpuSetsUnavailable, + ProcessOperationUserMessages.CpuSetsUnavailable, + $"The cached CPU Set handle for '{this.executableName}' (PID: {this.pid}) is invalid."); + } + + return CpuSetApplyResult.Succeeded($"CPU Set handle is available for '{this.executableName}' (PID: {this.pid})."); + } + + private bool ApplyCpuSetIds(uint[]? cpuSetIds, uint cpuSetIdCount, string operationName) + { + return this.ApplyCpuSetIdsDetailed(cpuSetIds, cpuSetIdCount, operationName).Success; + } + + private CpuSetApplyResult ApplyCpuSetIdsDetailed(uint[]? cpuSetIds, uint cpuSetIdCount, string operationName) + { + bool success = this.nativeApi.SetProcessDefaultCpuSets(this.setLimitedInfoHandle!, cpuSetIds, cpuSetIdCount); + if (success) + { + this.logger?.LogInformation( + "Completed {OperationName} for '{ExecutableName}' (PID: {ProcessId})", + operationName, + this.executableName, + this.pid); + return CpuSetApplyResult.Succeeded( + $"Completed {operationName} for '{this.executableName}' (PID: {this.pid})."); + } + + int error = this.nativeApi.GetLastWin32Error(); + string errorMessage = $"Could not {operationName} for '{this.executableName}' (PID: {this.pid}): {new Win32Exception(error).Message}"; + if (error == 5) + { + errorMessage += $" {ProcessOperationUserMessages.AdminClarification}"; + } + + this.logger?.LogWarning(errorMessage); + return this.CreateNativeFailureResult(operationName, error, errorMessage); + } + + private CpuSetApplyResult CreateNativeFailureResult( + string operationName, + int win32ErrorCode, + string? technicalMessage = null) + { + var message = technicalMessage ?? + $"Could not {operationName} for '{this.executableName}' (PID: {this.pid}): {new Win32Exception(win32ErrorCode).Message}"; + var accessDenied = win32ErrorCode == 5; + + return CpuSetApplyResult.Failed( + accessDenied ? AffinityApplyErrorCodes.AccessDenied : AffinityApplyErrorCodes.NativeApplyFailed, + accessDenied ? ProcessOperationUserMessages.AccessDenied : ProcessOperationUserMessages.CpuSetsUnavailable, + message, + win32ErrorCode, + isAccessDenied: accessDenied); + } + + private static CpuSetMapping GetCpuSetMapping(IProcessCpuSetNativeApi nativeApi) + { + uint bufferLength = 0; + + // First call to get buffer size + if (!nativeApi.GetSystemCpuSetInformation(IntPtr.Zero, 0, ref bufferLength, new SafeProcessHandle(), 0)) + { + int error = nativeApi.GetLastWin32Error(); + if (error != 0x7A) // ERROR_INSUFFICIENT_BUFFER + { + throw new Win32Exception(error, "Failed to query CPU Set information buffer size"); + } + } + + Dictionary cpuSets = new Dictionary(); + IntPtr buffer = Marshal.AllocHGlobal((int)bufferLength); + + try + { + // Second call to get actual data + if (!nativeApi.GetSystemCpuSetInformation(buffer, bufferLength, ref bufferLength, new SafeProcessHandle(), 0)) + { + throw new Win32Exception(nativeApi.GetLastWin32Error(), "Failed to get CPU Set information"); + } + + IntPtr current = buffer; + IntPtr bufferEnd = buffer + (int)bufferLength; + + while (current.ToInt64() < bufferEnd.ToInt64()) + { + SYSTEM_CPU_SET_INFORMATION item = Marshal.PtrToStructure(current); + + if (item.Type != CPU_SET_INFORMATION_TYPE.CpuSetInformation) + { + throw new InvalidCastException("Invalid CPU Set information type encountered"); + } + + var processor = CpuSetMapping.CreateProcessorRef(item.Group, item.LogicalProcessorIndex); + cpuSets[processor] = item.Id; + + current = IntPtr.Add(current, (int)item.Size); + } + + return CpuSetMapping.Create(cpuSets); + } + finally + { + Marshal.FreeHGlobal(buffer); + } + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + this.queryLimitedInfoHandle?.Dispose(); + this.setLimitedInfoHandle?.Dispose(); + this.cpuTimeMovingAverageBuffer.Clear(); + + this.disposed = true; + GC.SuppressFinalize(this); + } + + private class CpuTimeTimestamp + { + public DateTime Timestamp { get; init; } + + public TimeSpan TotalCpuTime { get; init; } + } + } +} diff --git a/Platforms/Windows/ProcessMemoryPriorityNativeMethods.cs b/Platforms/Windows/ProcessMemoryPriorityNativeMethods.cs index cc48cfc..1535bfa 100644 --- a/Platforms/Windows/ProcessMemoryPriorityNativeMethods.cs +++ b/Platforms/Windows/ProcessMemoryPriorityNativeMethods.cs @@ -1,33 +1,33 @@ -/* - * ThreadPilot - Windows process memory priority P/Invoke declarations. - */ -namespace ThreadPilot.Platforms.Windows -{ - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - - internal static partial class ProcessMemoryPriorityNativeMethods - { - [LibraryImport("kernel32.dll", SetLastError = true)] - public static partial SafeProcessHandle OpenProcess( - ProcessAccessFlags access, - [MarshalAs(UnmanagedType.Bool)] bool inheritHandle, - uint processId); - - [LibraryImport("kernel32.dll", SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] - public static partial bool GetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize); - - [LibraryImport("kernel32.dll", SetLastError = true)] - [return: MarshalAs(UnmanagedType.Bool)] - public static partial bool SetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize); - } -} +/* + * ThreadPilot - Windows process memory priority P/Invoke declarations. + */ +namespace ThreadPilot.Platforms.Windows +{ + using System.Runtime.InteropServices; + using Microsoft.Win32.SafeHandles; + + internal static partial class ProcessMemoryPriorityNativeMethods + { + [LibraryImport("kernel32.dll", SetLastError = true)] + public static partial SafeProcessHandle OpenProcess( + ProcessAccessFlags access, + [MarshalAs(UnmanagedType.Bool)] bool inheritHandle, + uint processId); + + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static partial bool GetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize); + + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + public static partial bool SetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize); + } +} diff --git a/Services/Abstractions/IGitHubReleaseClient.cs b/Services/Abstractions/IGitHubReleaseClient.cs index 15f0c2e..b6ba850 100644 --- a/Services/Abstractions/IGitHubReleaseClient.cs +++ b/Services/Abstractions/IGitHubReleaseClient.cs @@ -1,15 +1,12 @@ -namespace ThreadPilot.Services.Abstractions -{ - using System.Threading; - using System.Threading.Tasks; - - /// - /// Retrieves GitHub release payloads for update checks. - /// - public interface IGitHubReleaseClient - { - Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default); - - Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default); - } -} +namespace ThreadPilot.Services.Abstractions +{ + using System.Threading; + using System.Threading.Tasks; + + public interface IGitHubReleaseClient + { + Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default); + + Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default); + } +} diff --git a/Services/Abstractions/IProcessRunner.cs b/Services/Abstractions/IProcessRunner.cs index 83a8239..5a1228d 100644 --- a/Services/Abstractions/IProcessRunner.cs +++ b/Services/Abstractions/IProcessRunner.cs @@ -1,32 +1,16 @@ -/* - * ThreadPilot - process execution seam. - */ -namespace ThreadPilot.Services.Abstractions -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - - /// - /// Runs external processes with a bounded timeout and captured output. - /// - public interface IProcessRunner - { - /// - /// Executes a process and returns its exit code with captured output streams. - /// - /// Executable path. - /// Argument list passed verbatim to the process. - /// Maximum execution time before the process is treated as timed out. - /// The captured process result. - Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout); - } - - /// - /// Immutable result returned by . - /// - /// Process exit code, or a synthetic failure code when launch/timeout fails. - /// Captured standard output. - /// Captured standard error. - public readonly record struct ProcessRunResult(int ExitCode, string StandardOutput, string StandardError); -} +/* + * ThreadPilot - process execution seam. + */ +namespace ThreadPilot.Services.Abstractions +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + + public interface IProcessRunner + { + Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout); + } + + public readonly record struct ProcessRunResult(int ExitCode, string StandardOutput, string StandardError); +} diff --git a/Services/Abstractions/ISettingsStorage.cs b/Services/Abstractions/ISettingsStorage.cs index 3c5fa61..1cf0ba3 100644 --- a/Services/Abstractions/ISettingsStorage.cs +++ b/Services/Abstractions/ISettingsStorage.cs @@ -1,20 +1,17 @@ -namespace ThreadPilot.Services.Abstractions -{ - using System.Threading.Tasks; - - /// - /// Provides a seam for reading and writing persisted settings. - /// - public interface ISettingsStorage - { - bool Exists(string path); - - Task ReadAsync(string path); - - Task WriteAsync(string path, string content); - - void EnsureDirectoryForFile(string path); - - void Copy(string sourcePath, string destinationPath, bool overwrite); - } -} +namespace ThreadPilot.Services.Abstractions +{ + using System.Threading.Tasks; + + public interface ISettingsStorage + { + bool Exists(string path); + + Task ReadAsync(string path); + + Task WriteAsync(string path, string content); + + void EnsureDirectoryForFile(string path); + + void Copy(string sourcePath, string destinationPath, bool overwrite); + } +} diff --git a/Services/ActivityAuditService.cs b/Services/ActivityAuditService.cs index 2f3631f..d2abcfb 100644 --- a/Services/ActivityAuditService.cs +++ b/Services/ActivityAuditService.cs @@ -1,244 +1,244 @@ -namespace ThreadPilot.Services -{ - using Microsoft.Extensions.Logging; - - public sealed class ActivityAuditService : IActivityAuditService - { - private const int MaxEntries = 1000; - private readonly ILogger logger; - private readonly object syncRoot = new(); - private readonly List entries = new(); - - public event EventHandler? EntryAdded; - - public ActivityAuditService(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public Task LogInfoAsync(string category, string message, string? details = null) => - this.AddEntryAsync(category, ActivityAuditSeverity.Info, message, details); - - public Task LogSuccessAsync(string category, string message, string? details = null) => - this.AddEntryAsync(category, ActivityAuditSeverity.Success, message, details); - - public Task LogWarningAsync(string category, string message, string? details = null) => - this.AddEntryAsync(category, ActivityAuditSeverity.Warning, message, details); - - public Task LogErrorAsync(string category, string message, string? details = null) => - this.AddEntryAsync(category, ActivityAuditSeverity.Error, message, details); - - public Task LogUserActionAsync(string action, string details, string? context = null) - { - var entry = ActivityAuditActionMapper.Map(action, details, context); - return this.AddEntryAsync(entry.Category, entry.Severity, entry.Message, entry.Details); - } - - public Task> GetEntriesAsync(DateTime? fromDate = null, DateTime? toDate = null) - { - lock (this.syncRoot) - { - IEnumerable snapshot = this.entries; - if (fromDate.HasValue) - { - snapshot = snapshot.Where(entry => entry.Timestamp >= fromDate.Value); - } - - if (toDate.HasValue) - { - snapshot = snapshot.Where(entry => entry.Timestamp <= toDate.Value); - } - - return Task.FromResult>( - snapshot - .OrderByDescending(entry => entry.Timestamp) - .ToList()); - } - } - - public Task ClearDisplayAsync() - { - lock (this.syncRoot) - { - this.entries.Clear(); - } - - return Task.CompletedTask; - } - - private Task AddEntryAsync(string category, ActivityAuditSeverity severity, string message, string? details) - { - if (string.IsNullOrWhiteSpace(message)) - { - return Task.CompletedTask; - } - - var entry = new ActivityAuditEntry - { - Timestamp = DateTime.Now, - Category = string.IsNullOrWhiteSpace(category) ? ActivityAuditCategories.Diagnostics : category.Trim(), - Severity = severity, - Message = message.Trim(), - Details = string.IsNullOrWhiteSpace(details) ? null : details.Trim(), - }; - - lock (this.syncRoot) - { - this.entries.Add(entry); - if (this.entries.Count > MaxEntries) - { - this.entries.RemoveRange(0, this.entries.Count - MaxEntries); - } - } - - this.logger.Log( - ToLogLevel(severity), - "Activity audit: {Category} {Severity}: {Message}", - entry.Category, - entry.Severity, - entry.Message); - this.EntryAdded?.Invoke(this, entry); - return Task.CompletedTask; - } - - private static LogLevel ToLogLevel(ActivityAuditSeverity severity) => - severity switch - { - ActivityAuditSeverity.Error => LogLevel.Error, - ActivityAuditSeverity.Warning => LogLevel.Warning, - _ => LogLevel.Information, - }; - } - - internal static class ActivityAuditCategories - { - public const string Process = "Process"; - public const string Affinity = "Affinity"; - public const string Priority = "Priority"; - public const string MemoryPriority = "Memory Priority"; - public const string Rules = "Rules"; - public const string PowerPlans = "Power Plans"; - public const string Settings = "Settings"; - public const string Tweaks = "Tweaks"; - public const string Optimization = "Optimization"; - public const string Diagnostics = "Diagnostics"; - public const string Safety = "Safety"; - } - - internal static class ActivityAuditActionMapper - { - public static ActivityAuditEntry Map(string action, string details, string? context) - { - var category = ResolveCategory(action); - var severity = ResolveSeverity(action, details); - return new ActivityAuditEntry - { - Category = category, - Severity = severity, - Message = string.IsNullOrWhiteSpace(details) ? action : details, - Details = context, - }; - } - - private static string ResolveCategory(string action) - { - if (action.StartsWith("ProcessAffinity", StringComparison.OrdinalIgnoreCase) || - action.StartsWith("CpuSets", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Affinity; - } - - if (action.StartsWith("ProcessPriority", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Priority; - } - - if (action.StartsWith("ProcessMemoryPriority", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.MemoryPriority; - } - - if (action.StartsWith("PersistentRule", StringComparison.OrdinalIgnoreCase) || - action.Contains("Association", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Rules; - } - - if (action.StartsWith("PowerPlan", StringComparison.OrdinalIgnoreCase) || - action.StartsWith("PowerPlans", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.PowerPlans; - } - - if (action.StartsWith("Theme", StringComparison.OrdinalIgnoreCase) || - action.StartsWith("Settings", StringComparison.OrdinalIgnoreCase) || - action.Contains("Configuration", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Settings; - } - - if (action.StartsWith("SystemTweak", StringComparison.OrdinalIgnoreCase) || - action.Contains("IdleServer", StringComparison.OrdinalIgnoreCase) || - action.Contains("RegistryPriority", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Tweaks; - } - - if (action.StartsWith("Optimization", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Optimization; - } - - if (action.Contains("Protected", StringComparison.OrdinalIgnoreCase) || - action.Contains("Elevation", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Safety; - } - - if (action.StartsWith("Process", StringComparison.OrdinalIgnoreCase)) - { - return ActivityAuditCategories.Process; - } - - return ActivityAuditCategories.Diagnostics; - } - - private static ActivityAuditSeverity ResolveSeverity(string action, string details) - { - if (ContainsAny(action, "Blocked", "Denied") || ContainsAny(details, "blocked", "denied", "anti-cheat", "protected")) - { - return ActivityAuditSeverity.Warning; - } - - if (ContainsAny(action, "Failed", "Failure", "Error") || ContainsAny(details, "failed", "error", "exited")) - { - return ActivityAuditSeverity.Error; - } - - if (ContainsAny( - action, - "Applied", - "Changed", - "Saved", - "Updated", - "Deleted", - "Imported", - "Added", - "Cleared", - "Refreshed", - "Started", - "Stopped", - "Exported", - "Opened", - "Copied")) - { - return ActivityAuditSeverity.Success; - } - - return ActivityAuditSeverity.Info; - } - - private static bool ContainsAny(string value, params string[] terms) => - terms.Any(term => value.Contains(term, StringComparison.OrdinalIgnoreCase)); - } -} +namespace ThreadPilot.Services +{ + using Microsoft.Extensions.Logging; + + public sealed class ActivityAuditService : IActivityAuditService + { + private const int MaxEntries = 1000; + private readonly ILogger logger; + private readonly object syncRoot = new(); + private readonly List entries = new(); + + public event EventHandler? EntryAdded; + + public ActivityAuditService(ILogger logger) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public Task LogInfoAsync(string category, string message, string? details = null) => + this.AddEntryAsync(category, ActivityAuditSeverity.Info, message, details); + + public Task LogSuccessAsync(string category, string message, string? details = null) => + this.AddEntryAsync(category, ActivityAuditSeverity.Success, message, details); + + public Task LogWarningAsync(string category, string message, string? details = null) => + this.AddEntryAsync(category, ActivityAuditSeverity.Warning, message, details); + + public Task LogErrorAsync(string category, string message, string? details = null) => + this.AddEntryAsync(category, ActivityAuditSeverity.Error, message, details); + + public Task LogUserActionAsync(string action, string details, string? context = null) + { + var entry = ActivityAuditActionMapper.Map(action, details, context); + return this.AddEntryAsync(entry.Category, entry.Severity, entry.Message, entry.Details); + } + + public Task> GetEntriesAsync(DateTime? fromDate = null, DateTime? toDate = null) + { + lock (this.syncRoot) + { + IEnumerable snapshot = this.entries; + if (fromDate.HasValue) + { + snapshot = snapshot.Where(entry => entry.Timestamp >= fromDate.Value); + } + + if (toDate.HasValue) + { + snapshot = snapshot.Where(entry => entry.Timestamp <= toDate.Value); + } + + return Task.FromResult>( + snapshot + .OrderByDescending(entry => entry.Timestamp) + .ToList()); + } + } + + public Task ClearDisplayAsync() + { + lock (this.syncRoot) + { + this.entries.Clear(); + } + + return Task.CompletedTask; + } + + private Task AddEntryAsync(string category, ActivityAuditSeverity severity, string message, string? details) + { + if (string.IsNullOrWhiteSpace(message)) + { + return Task.CompletedTask; + } + + var entry = new ActivityAuditEntry + { + Timestamp = DateTime.Now, + Category = string.IsNullOrWhiteSpace(category) ? ActivityAuditCategories.Diagnostics : category.Trim(), + Severity = severity, + Message = message.Trim(), + Details = string.IsNullOrWhiteSpace(details) ? null : details.Trim(), + }; + + lock (this.syncRoot) + { + this.entries.Add(entry); + if (this.entries.Count > MaxEntries) + { + this.entries.RemoveRange(0, this.entries.Count - MaxEntries); + } + } + + this.logger.Log( + ToLogLevel(severity), + "Activity audit: {Category} {Severity}: {Message}", + entry.Category, + entry.Severity, + entry.Message); + this.EntryAdded?.Invoke(this, entry); + return Task.CompletedTask; + } + + private static LogLevel ToLogLevel(ActivityAuditSeverity severity) => + severity switch + { + ActivityAuditSeverity.Error => LogLevel.Error, + ActivityAuditSeverity.Warning => LogLevel.Warning, + _ => LogLevel.Information, + }; + } + + internal static class ActivityAuditCategories + { + public const string Process = "Process"; + public const string Affinity = "Affinity"; + public const string Priority = "Priority"; + public const string MemoryPriority = "Memory Priority"; + public const string Rules = "Rules"; + public const string PowerPlans = "Power Plans"; + public const string Settings = "Settings"; + public const string Tweaks = "Tweaks"; + public const string Optimization = "Optimization"; + public const string Diagnostics = "Diagnostics"; + public const string Safety = "Safety"; + } + + internal static class ActivityAuditActionMapper + { + public static ActivityAuditEntry Map(string action, string details, string? context) + { + var category = ResolveCategory(action); + var severity = ResolveSeverity(action, details); + return new ActivityAuditEntry + { + Category = category, + Severity = severity, + Message = string.IsNullOrWhiteSpace(details) ? action : details, + Details = context, + }; + } + + private static string ResolveCategory(string action) + { + if (action.StartsWith("ProcessAffinity", StringComparison.OrdinalIgnoreCase) || + action.StartsWith("CpuSets", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Affinity; + } + + if (action.StartsWith("ProcessPriority", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Priority; + } + + if (action.StartsWith("ProcessMemoryPriority", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.MemoryPriority; + } + + if (action.StartsWith("PersistentRule", StringComparison.OrdinalIgnoreCase) || + action.Contains("Association", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Rules; + } + + if (action.StartsWith("PowerPlan", StringComparison.OrdinalIgnoreCase) || + action.StartsWith("PowerPlans", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.PowerPlans; + } + + if (action.StartsWith("Theme", StringComparison.OrdinalIgnoreCase) || + action.StartsWith("Settings", StringComparison.OrdinalIgnoreCase) || + action.Contains("Configuration", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Settings; + } + + if (action.StartsWith("SystemTweak", StringComparison.OrdinalIgnoreCase) || + action.Contains("IdleServer", StringComparison.OrdinalIgnoreCase) || + action.Contains("RegistryPriority", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Tweaks; + } + + if (action.StartsWith("Optimization", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Optimization; + } + + if (action.Contains("Protected", StringComparison.OrdinalIgnoreCase) || + action.Contains("Elevation", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Safety; + } + + if (action.StartsWith("Process", StringComparison.OrdinalIgnoreCase)) + { + return ActivityAuditCategories.Process; + } + + return ActivityAuditCategories.Diagnostics; + } + + private static ActivityAuditSeverity ResolveSeverity(string action, string details) + { + if (ContainsAny(action, "Blocked", "Denied") || ContainsAny(details, "blocked", "denied", "anti-cheat", "protected")) + { + return ActivityAuditSeverity.Warning; + } + + if (ContainsAny(action, "Failed", "Failure", "Error") || ContainsAny(details, "failed", "error", "exited")) + { + return ActivityAuditSeverity.Error; + } + + if (ContainsAny( + action, + "Applied", + "Changed", + "Saved", + "Updated", + "Deleted", + "Imported", + "Added", + "Cleared", + "Refreshed", + "Started", + "Stopped", + "Exported", + "Opened", + "Copied")) + { + return ActivityAuditSeverity.Success; + } + + return ActivityAuditSeverity.Info; + } + + private static bool ContainsAny(string value, params string[] terms) => + terms.Any(term => value.Contains(term, StringComparison.OrdinalIgnoreCase)); + } +} diff --git a/Services/AffinityApplyService.cs b/Services/AffinityApplyService.cs index c122ba3..9b4c4a8 100644 --- a/Services/AffinityApplyService.cs +++ b/Services/AffinityApplyService.cs @@ -1,652 +1,636 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.ComponentModel; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Platforms.Windows; - - public enum AffinityApplyFailureReason - { - None, - InvalidMask, - ProcessTerminated, - AccessDenied, - VerificationMismatch, - ApplyFailed, - } - - public static class AffinityApplyErrorCodes - { - public const string None = "None"; - public const string AccessDenied = "AccessDenied"; - public const string AntiCheatOrProtectedProcessLikely = "AntiCheatOrProtectedProcessLikely"; - public const string ProcessExited = "ProcessExited"; - public const string InvalidSelection = "InvalidSelection"; - public const string InvalidTopology = "InvalidTopology"; - public const string CpuSetsUnavailable = "CpuSetsUnavailable"; - public const string LegacyFallbackUnsafe = "LegacyFallbackUnsafe"; - public const string NativeApplyFailed = "NativeApplyFailed"; - public const string UnknownError = "UnknownError"; - } - - public sealed record AffinityApplyResult - { - public bool Success { get; init; } - - public long RequestedMask { get; init; } - - public long VerifiedMask { get; init; } - - public AffinityApplyFailureReason FailureReason { get; init; } - - public string Message => string.IsNullOrWhiteSpace(this.UserMessage) ? this.TechnicalMessage : this.UserMessage; - - public string ErrorCode { get; init; } = AffinityApplyErrorCodes.None; - - public string UserMessage { get; init; } = string.Empty; - - public string TechnicalMessage { get; init; } = string.Empty; - - public bool IsAccessDenied { get; init; } - - public bool IsAntiCheatLikely { get; init; } - - public bool IsInvalidTopology { get; init; } - - public bool IsLegacyFallbackBlocked { get; init; } - - public bool UsedCpuSets { get; init; } - - public bool UsedLegacyAffinity { get; init; } - - public static AffinityApplyResult Succeeded(long requestedMask, long verifiedMask) => - new() - { - Success = true, - RequestedMask = requestedMask, - VerifiedMask = verifiedMask, - FailureReason = AffinityApplyFailureReason.None, - ErrorCode = AffinityApplyErrorCodes.None, - UserMessage = "Affinity applied successfully.", - TechnicalMessage = $"Affinity 0x{requestedMask:X} applied and verified as 0x{verifiedMask:X}.", - }; - - public static AffinityApplyResult SucceededWithCpuSets(string technicalMessage) => - new() - { - Success = true, - FailureReason = AffinityApplyFailureReason.None, - ErrorCode = AffinityApplyErrorCodes.None, - UserMessage = "Affinity applied successfully.", - TechnicalMessage = technicalMessage, - UsedCpuSets = true, - }; - - public static AffinityApplyResult SucceededWithLegacyFallback(long requestedMask, long verifiedMask) => - Succeeded(requestedMask, verifiedMask) with - { - UsedLegacyAffinity = true, - TechnicalMessage = $"CPU Sets failed; legacy affinity 0x{requestedMask:X} applied and verified as 0x{verifiedMask:X}.", - }; - - public static AffinityApplyResult Failed( - long requestedMask, - long verifiedMask, - AffinityApplyFailureReason failureReason, - string message) => - new() - { - Success = false, - RequestedMask = requestedMask, - VerifiedMask = verifiedMask, - FailureReason = failureReason, - ErrorCode = MapFailureReason(failureReason), - UserMessage = message, - TechnicalMessage = message, - IsAccessDenied = failureReason == AffinityApplyFailureReason.AccessDenied, - }; - - public static AffinityApplyResult Failed( - string errorCode, - string userMessage, - string technicalMessage, - bool isAccessDenied = false, - bool isAntiCheatLikely = false, - bool isInvalidTopology = false, - bool isLegacyFallbackBlocked = false, - long requestedMask = 0, - long verifiedMask = 0, - AffinityApplyFailureReason failureReason = AffinityApplyFailureReason.ApplyFailed) => - new() - { - Success = false, - RequestedMask = requestedMask, - VerifiedMask = verifiedMask, - FailureReason = failureReason, - ErrorCode = errorCode, - UserMessage = userMessage, - TechnicalMessage = technicalMessage, - IsAccessDenied = isAccessDenied, - IsAntiCheatLikely = isAntiCheatLikely, - IsInvalidTopology = isInvalidTopology || errorCode == AffinityApplyErrorCodes.InvalidTopology, - IsLegacyFallbackBlocked = isLegacyFallbackBlocked || errorCode == AffinityApplyErrorCodes.LegacyFallbackUnsafe, - }; - - private static string MapFailureReason(AffinityApplyFailureReason failureReason) => - failureReason switch - { - AffinityApplyFailureReason.None => AffinityApplyErrorCodes.None, - AffinityApplyFailureReason.InvalidMask => AffinityApplyErrorCodes.InvalidSelection, - AffinityApplyFailureReason.ProcessTerminated => AffinityApplyErrorCodes.ProcessExited, - AffinityApplyFailureReason.AccessDenied => AffinityApplyErrorCodes.AccessDenied, - AffinityApplyFailureReason.VerificationMismatch => AffinityApplyErrorCodes.NativeApplyFailed, - AffinityApplyFailureReason.ApplyFailed => AffinityApplyErrorCodes.NativeApplyFailed, - _ => AffinityApplyErrorCodes.UnknownError, - }; - } - - public interface IAffinityApplyService - { - Task ApplyAsync(ProcessModel process, long requestedMask); - - Task ApplyAsync(ProcessModel process, CpuSelection selection); - } - - internal sealed class CpuSelectionAffinityApplier - { - internal const string AccessDeniedUserMessage = - ProcessOperationUserMessages.AccessDenied; - - internal const string AntiCheatUserMessage = - ProcessOperationUserMessages.AntiCheatProtectedLikely; - - internal const string LegacyFallbackBlockedUserMessage = - ProcessOperationUserMessages.LegacyFallbackBlocked; - - internal const string InvalidSelectionUserMessage = - ProcessOperationUserMessages.InvalidTopology; - - private readonly Func cpuSetHandlerFactory; - private readonly Func> legacyAffinityApplier; - private readonly ILogger logger; - private readonly Action? cpuSetFailureCallback; - private readonly Action? auditCallback; - - public CpuSelectionAffinityApplier( - Func cpuSetHandlerFactory, - Func> legacyAffinityApplier, - ILogger logger, - Action? cpuSetFailureCallback = null, - Action? auditCallback = null) - { - this.cpuSetHandlerFactory = cpuSetHandlerFactory ?? throw new ArgumentNullException(nameof(cpuSetHandlerFactory)); - this.legacyAffinityApplier = legacyAffinityApplier ?? throw new ArgumentNullException(nameof(legacyAffinityApplier)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.cpuSetFailureCallback = cpuSetFailureCallback; - this.auditCallback = auditCallback; - } - - public async Task ApplyAsync(ProcessModel process, CpuSelection selection) - { - if (process == null || process.ProcessId <= 0) - { - return ProcessExited("Process is no longer running.", process); - } - - if (selection == null || (selection.CpuSetIds.Count == 0 && selection.LogicalProcessors.Count == 0)) - { - this.Audit(process, success: false); - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.InvalidSelection, - InvalidSelectionUserMessage, - "CpuSelection contains neither CPU Set IDs nor logical processors.", - isInvalidTopology: true, - failureReason: AffinityApplyFailureReason.InvalidMask); - } - - var cpuSetsResult = this.TryApplyCpuSets(process, selection); - if (cpuSetsResult != null) - { - return cpuSetsResult; - } - - this.cpuSetFailureCallback?.Invoke(process); - - var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); - if (!legacyMask.HasValue || legacyMask.Value <= 0) - { - this.Audit(process, success: false); - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.LegacyFallbackUnsafe, - LegacyFallbackBlockedUserMessage, - "CpuSelection cannot be represented as a non-zero single-group legacy affinity mask.", - isLegacyFallbackBlocked: true); - } - - try - { - var verifiedMask = await this.legacyAffinityApplier(process, legacyMask.Value).ConfigureAwait(false); - return AffinityApplyResult.SucceededWithLegacyFallback(legacyMask.Value, verifiedMask); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) - { - return AccessDenied(ex, legacyMask.Value, process.ProcessorAffinity); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) - { - return ProcessExited("Process exited before legacy affinity fallback could be applied.", process, legacyMask.Value); - } - catch (Exception ex) - { - this.logger.LogWarning( - ex, - "Legacy affinity fallback failed for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.NativeApplyFailed, - "ThreadPilot could not apply this CPU selection.", - ex.Message, - requestedMask: legacyMask.Value, - verifiedMask: process.ProcessorAffinity); - } - } - - private AffinityApplyResult? TryApplyCpuSets(ProcessModel process, CpuSelection selection) - { - try - { - var handler = this.cpuSetHandlerFactory(process); - if (!handler.IsValid) - { - this.logger.LogDebug( - "CPU Set handler is invalid for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return null; - } - - var result = handler.ApplyCpuSelectionDetailed(selection); - if (result.Success) - { - this.Audit(process, success: true); - return AffinityApplyResult.SucceededWithCpuSets( - string.IsNullOrWhiteSpace(result.TechnicalMessage) - ? $"CPU Sets applied to process {process.Name} (PID: {process.ProcessId})." - : result.TechnicalMessage); - } - - if (result.IsAccessDenied || result.ErrorCode == AffinityApplyErrorCodes.AccessDenied) - { - this.Audit(process, success: false); - return AffinityApplyResult.Failed( - result.IsAntiCheatLikely - ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely - : AffinityApplyErrorCodes.AccessDenied, - result.IsAntiCheatLikely ? AntiCheatUserMessage : AccessDeniedUserMessage, - result.TechnicalMessage, - isAccessDenied: true, - isAntiCheatLikely: result.IsAntiCheatLikely, - verifiedMask: process.ProcessorAffinity, - failureReason: AffinityApplyFailureReason.AccessDenied); - } - - if (result.ErrorCode == AffinityApplyErrorCodes.InvalidTopology) - { - this.Audit(process, success: false); - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.InvalidTopology, - ProcessOperationUserMessages.InvalidTopology, - result.TechnicalMessage, - isInvalidTopology: true, - verifiedMask: process.ProcessorAffinity, - failureReason: AffinityApplyFailureReason.InvalidMask); - } - - this.logger.LogDebug( - "CPU Sets unavailable for process {ProcessName} (PID: {ProcessId}): {Message}", - process.Name, - process.ProcessId, - result.TechnicalMessage); - return null; - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) - { - this.Audit(process, success: false); - return AccessDenied(ex, 0, process.ProcessorAffinity); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) - { - this.Audit(process, success: false); - return ProcessExited("Process exited before CPU Sets could be applied.", process); - } - catch (Exception ex) - { - this.logger.LogDebug( - ex, - "CPU Sets failed for process {ProcessName} (PID: {ProcessId}); evaluating legacy fallback", - process.Name, - process.ProcessId); - return null; - } - } - - private void Audit(ProcessModel process, bool success) => - this.auditCallback?.Invoke(process, success); - - private static AffinityApplyResult AccessDenied(Exception ex, long requestedMask, long verifiedMask) - { - var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); - return AffinityApplyResult.Failed( - antiCheatLikely - ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely - : AffinityApplyErrorCodes.AccessDenied, - antiCheatLikely ? AntiCheatUserMessage : AccessDeniedUserMessage, - ex.Message, - isAccessDenied: true, - isAntiCheatLikely: antiCheatLikely, - requestedMask: requestedMask, - verifiedMask: verifiedMask, - failureReason: AffinityApplyFailureReason.AccessDenied); - } - - private static AffinityApplyResult ProcessExited(string userMessage, ProcessModel? process, long requestedMask = 0) => - AffinityApplyResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - ProcessOperationUserMessages.ProcessExited, - userMessage, - requestedMask: requestedMask, - verifiedMask: process?.ProcessorAffinity ?? 0, - failureReason: AffinityApplyFailureReason.ProcessTerminated); - } - - internal static class AffinityApplyExceptionClassifier - { - public static bool IsAccessDenied(Exception ex) => - ex is UnauthorizedAccessException || - ex is Win32Exception { NativeErrorCode: 5 } || - IsInnerAccessDenied(ex.InnerException) || - ContainsAny( - ex.Message, - "access denied", - "anti-cheat", - "anti cheat", - "protected", - "insufficient privileges"); - - public static bool IsAntiCheatLikely(Exception ex) => - ContainsAny(ex.Message, "anti-cheat", "anti cheat", "protected") || - (ex.InnerException != null && IsAntiCheatLikely(ex.InnerException)); - - public static bool IsProcessExited(Exception ex) - { - if (ex is ArgumentException) - { - return true; - } - - var message = ex.Message ?? string.Empty; - if (ex is InvalidOperationException && - ContainsAny(message, "exit", "exited", "terminated", "not running", "has no process associated")) - { - return true; - } - - return ex.InnerException != null && IsProcessExited(ex.InnerException); - } - - private static bool IsInnerAccessDenied(Exception? ex) => ex != null && IsAccessDenied(ex); - - private static bool ContainsAny(string? value, params string[] needles) - { - var source = value ?? string.Empty; - return needles.Any(needle => source.Contains(needle, StringComparison.OrdinalIgnoreCase)); - } - } - - public sealed class AffinityApplyService : IAffinityApplyService - { - private readonly IProcessService processService; - private readonly ICpuTopologyService cpuTopologyService; - private readonly ILogger logger; - - public AffinityApplyService( - IProcessService processService, - ICpuTopologyService cpuTopologyService, - ILogger logger) - { - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.cpuTopologyService = cpuTopologyService ?? throw new ArgumentNullException(nameof(cpuTopologyService)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public Task ApplyAsync(ProcessModel process, CpuSelection selection) => - process == null - ? Task.FromResult(AffinityApplyResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - ProcessOperationUserMessages.ProcessExited, - "ProcessModel is null.", - failureReason: AffinityApplyFailureReason.ProcessTerminated)) - : selection == null - ? Task.FromResult(AffinityApplyResult.Failed( - AffinityApplyErrorCodes.InvalidSelection, - CpuSelectionAffinityApplier.InvalidSelectionUserMessage, - "CpuSelection is null.", - isInvalidTopology: true, - failureReason: AffinityApplyFailureReason.InvalidMask)) - : this.processService.SetProcessorAffinity(process, selection); - - public async Task ApplyAsync(ProcessModel process, long requestedMask) - { - ArgumentNullException.ThrowIfNull(process); - - var startingMask = process.ProcessorAffinity; - - if (requestedMask == 0) - { - return AffinityApplyResult.Failed( - requestedMask, - startingMask, - AffinityApplyFailureReason.InvalidMask, - ProcessOperationUserMessages.InvalidTopology); - } - - if (!this.cpuTopologyService.IsAffinityMaskValid(requestedMask)) - { - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.InvalidTopology, - ProcessOperationUserMessages.InvalidTopology, - $"Affinity mask 0x{requestedMask:X} is not valid for this CPU topology.", - isInvalidTopology: true, - requestedMask: requestedMask, - verifiedMask: startingMask, - failureReason: AffinityApplyFailureReason.InvalidMask); - } - - if (!await this.IsProcessRunningAsync(process).ConfigureAwait(false)) - { - return AffinityApplyResult.Failed( - requestedMask, - startingMask, - AffinityApplyFailureReason.ProcessTerminated, - ProcessOperationUserMessages.ProcessExited); - } - - try - { - await this.processService.SetProcessorAffinity(process, requestedMask).ConfigureAwait(false); - } - catch (Exception ex) when (IsAccessDenied(ex)) - { - this.logger.LogWarning( - ex, - "Affinity apply blocked for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - - await this.TryRefreshProcessInfoAsync(process).ConfigureAwait(false); - return AccessDenied(ex, requestedMask, process.ProcessorAffinity); - } - catch (Exception ex) when (IsProcessTerminated(ex)) - { - this.logger.LogDebug( - ex, - "Process terminated while applying affinity to {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - - return AffinityApplyResult.Failed( - requestedMask, - process.ProcessorAffinity, - AffinityApplyFailureReason.ProcessTerminated, - ProcessOperationUserMessages.ProcessExited); - } - catch (Exception ex) - { - this.logger.LogWarning( - ex, - "Affinity apply failed for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - - await this.TryRefreshProcessInfoAsync(process).ConfigureAwait(false); - return AffinityApplyResult.Failed( - requestedMask, - process.ProcessorAffinity, - AffinityApplyFailureReason.ApplyFailed, - "ThreadPilot could not apply this affinity change."); - } - - if (!await this.TryRefreshProcessInfoAsync(process).ConfigureAwait(false)) - { - return AffinityApplyResult.Failed( - requestedMask, - process.ProcessorAffinity, - AffinityApplyFailureReason.ProcessTerminated, - ProcessOperationUserMessages.ProcessExited); - } - - var verifiedMask = process.ProcessorAffinity; - if (verifiedMask != requestedMask) - { - return AffinityApplyResult.Failed( - requestedMask, - verifiedMask, - AffinityApplyFailureReason.VerificationMismatch, - $"Windows reported affinity 0x{verifiedMask:X} after requesting 0x{requestedMask:X}."); - } - - return AffinityApplyResult.Succeeded(requestedMask, verifiedMask); - } - - private static AffinityApplyResult AccessDenied(Exception ex, long requestedMask, long verifiedMask) - { - var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); - return AffinityApplyResult.Failed( - antiCheatLikely - ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely - : AffinityApplyErrorCodes.AccessDenied, - antiCheatLikely - ? ProcessOperationUserMessages.AntiCheatProtectedLikely - : ProcessOperationUserMessages.AccessDenied, - ex.Message, - isAccessDenied: true, - isAntiCheatLikely: antiCheatLikely, - requestedMask: requestedMask, - verifiedMask: verifiedMask, - failureReason: AffinityApplyFailureReason.AccessDenied); - } - - private static bool IsAccessDenied(Exception ex) - { - var message = ex.Message ?? string.Empty; - return ex is UnauthorizedAccessException || - message.Contains("access denied", StringComparison.OrdinalIgnoreCase) || - message.Contains("anti-cheat", StringComparison.OrdinalIgnoreCase) || - message.Contains("anti cheat", StringComparison.OrdinalIgnoreCase) || - message.Contains("protected", StringComparison.OrdinalIgnoreCase) || - message.Contains("insufficient privileges", StringComparison.OrdinalIgnoreCase); - } - - private static bool IsProcessTerminated(Exception ex) - { - var message = ex.Message ?? string.Empty; - return ex is ArgumentException || - (ex is InvalidOperationException && - (message.Contains("process", StringComparison.OrdinalIgnoreCase) && - (message.Contains("exit", StringComparison.OrdinalIgnoreCase) || - message.Contains("terminated", StringComparison.OrdinalIgnoreCase) || - message.Contains("not running", StringComparison.OrdinalIgnoreCase)))); - } - - private async Task IsProcessRunningAsync(ProcessModel process) - { - try - { - return await this.processService.IsProcessStillRunning(process).ConfigureAwait(false); - } - catch (Exception ex) when (IsAccessDenied(ex)) - { - this.logger.LogDebug( - ex, - "Could not confirm process state before affinity apply for {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return true; - } - catch (Exception ex) - { - this.logger.LogDebug( - ex, - "Process state check failed before affinity apply for {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return false; - } - } - - private async Task TryRefreshProcessInfoAsync(ProcessModel process) - { - try - { - await this.processService.RefreshProcessInfo(process).ConfigureAwait(false); - return true; - } - catch (Exception ex) when (IsAccessDenied(ex)) - { - this.logger.LogDebug( - ex, - "Could not refresh process after affinity apply for {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return true; - } - catch (Exception ex) - { - this.logger.LogDebug( - ex, - "Process refresh failed after affinity apply for {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return false; - } - } - } -} +namespace ThreadPilot.Services +{ + using System.ComponentModel; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Platforms.Windows; + + public enum AffinityApplyFailureReason + { + None, + InvalidMask, + ProcessTerminated, + AccessDenied, + VerificationMismatch, + ApplyFailed, + } + + public static class AffinityApplyErrorCodes + { + public const string None = "None"; + public const string AccessDenied = "AccessDenied"; + public const string AntiCheatOrProtectedProcessLikely = "AntiCheatOrProtectedProcessLikely"; + public const string ProcessExited = "ProcessExited"; + public const string InvalidSelection = "InvalidSelection"; + public const string InvalidTopology = "InvalidTopology"; + public const string CpuSetsUnavailable = "CpuSetsUnavailable"; + public const string LegacyFallbackUnsafe = "LegacyFallbackUnsafe"; + public const string NativeApplyFailed = "NativeApplyFailed"; + public const string UnknownError = "UnknownError"; + } + + public sealed record AffinityApplyResult + { + public bool Success { get; init; } + + public long RequestedMask { get; init; } + + public long VerifiedMask { get; init; } + + public AffinityApplyFailureReason FailureReason { get; init; } + + public string Message => string.IsNullOrWhiteSpace(this.UserMessage) ? this.TechnicalMessage : this.UserMessage; + + public string ErrorCode { get; init; } = AffinityApplyErrorCodes.None; + + public string UserMessage { get; init; } = string.Empty; + + public string TechnicalMessage { get; init; } = string.Empty; + + public bool IsAccessDenied { get; init; } + + public bool IsAntiCheatLikely { get; init; } + + public bool IsInvalidTopology { get; init; } + + public bool IsLegacyFallbackBlocked { get; init; } + + public bool UsedCpuSets { get; init; } + + public bool UsedLegacyAffinity { get; init; } + + public static AffinityApplyResult Succeeded(long requestedMask, long verifiedMask) => + new() + { + Success = true, + RequestedMask = requestedMask, + VerifiedMask = verifiedMask, + FailureReason = AffinityApplyFailureReason.None, + ErrorCode = AffinityApplyErrorCodes.None, + UserMessage = "Affinity applied successfully.", + TechnicalMessage = $"Affinity 0x{requestedMask:X} applied and verified as 0x{verifiedMask:X}.", + }; + + public static AffinityApplyResult SucceededWithCpuSets(string technicalMessage) => + new() + { + Success = true, + FailureReason = AffinityApplyFailureReason.None, + ErrorCode = AffinityApplyErrorCodes.None, + UserMessage = "Affinity applied successfully.", + TechnicalMessage = technicalMessage, + UsedCpuSets = true, + }; + + public static AffinityApplyResult SucceededWithLegacyFallback(long requestedMask, long verifiedMask) => + Succeeded(requestedMask, verifiedMask) with + { + UsedLegacyAffinity = true, + TechnicalMessage = $"CPU Sets failed; legacy affinity 0x{requestedMask:X} applied and verified as 0x{verifiedMask:X}.", + }; + + public static AffinityApplyResult Failed( + long requestedMask, + long verifiedMask, + AffinityApplyFailureReason failureReason, + string message) => + new() + { + Success = false, + RequestedMask = requestedMask, + VerifiedMask = verifiedMask, + FailureReason = failureReason, + ErrorCode = MapFailureReason(failureReason), + UserMessage = message, + TechnicalMessage = message, + IsAccessDenied = failureReason == AffinityApplyFailureReason.AccessDenied, + }; + + public static AffinityApplyResult Failed( + string errorCode, + string userMessage, + string technicalMessage, + bool isAccessDenied = false, + bool isAntiCheatLikely = false, + bool isInvalidTopology = false, + bool isLegacyFallbackBlocked = false, + long requestedMask = 0, + long verifiedMask = 0, + AffinityApplyFailureReason failureReason = AffinityApplyFailureReason.ApplyFailed) => + new() + { + Success = false, + RequestedMask = requestedMask, + VerifiedMask = verifiedMask, + FailureReason = failureReason, + ErrorCode = errorCode, + UserMessage = userMessage, + TechnicalMessage = technicalMessage, + IsAccessDenied = isAccessDenied, + IsAntiCheatLikely = isAntiCheatLikely, + IsInvalidTopology = isInvalidTopology || errorCode == AffinityApplyErrorCodes.InvalidTopology, + IsLegacyFallbackBlocked = isLegacyFallbackBlocked || errorCode == AffinityApplyErrorCodes.LegacyFallbackUnsafe, + }; + + private static string MapFailureReason(AffinityApplyFailureReason failureReason) => + failureReason switch + { + AffinityApplyFailureReason.None => AffinityApplyErrorCodes.None, + AffinityApplyFailureReason.InvalidMask => AffinityApplyErrorCodes.InvalidSelection, + AffinityApplyFailureReason.ProcessTerminated => AffinityApplyErrorCodes.ProcessExited, + AffinityApplyFailureReason.AccessDenied => AffinityApplyErrorCodes.AccessDenied, + AffinityApplyFailureReason.VerificationMismatch => AffinityApplyErrorCodes.NativeApplyFailed, + AffinityApplyFailureReason.ApplyFailed => AffinityApplyErrorCodes.NativeApplyFailed, + _ => AffinityApplyErrorCodes.UnknownError, + }; + } + + public interface IAffinityApplyService + { + Task ApplyAsync(ProcessModel process, long requestedMask); + + Task ApplyAsync(ProcessModel process, CpuSelection selection); + } + + internal sealed class CpuSelectionAffinityApplier + { + internal const string AccessDeniedUserMessage = + ProcessOperationUserMessages.AccessDenied; + + internal const string AntiCheatUserMessage = + ProcessOperationUserMessages.AntiCheatProtectedLikely; + + internal const string LegacyFallbackBlockedUserMessage = + ProcessOperationUserMessages.LegacyFallbackBlocked; + + internal const string InvalidSelectionUserMessage = + ProcessOperationUserMessages.InvalidTopology; + + private readonly Func cpuSetHandlerFactory; + private readonly Func> legacyAffinityApplier; + private readonly ILogger logger; + private readonly Action? cpuSetFailureCallback; + private readonly Action? auditCallback; + + public CpuSelectionAffinityApplier( + Func cpuSetHandlerFactory, + Func> legacyAffinityApplier, + ILogger logger, + Action? cpuSetFailureCallback = null, + Action? auditCallback = null) + { + this.cpuSetHandlerFactory = cpuSetHandlerFactory ?? throw new ArgumentNullException(nameof(cpuSetHandlerFactory)); + this.legacyAffinityApplier = legacyAffinityApplier ?? throw new ArgumentNullException(nameof(legacyAffinityApplier)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.cpuSetFailureCallback = cpuSetFailureCallback; + this.auditCallback = auditCallback; + } + + public async Task ApplyAsync(ProcessModel process, CpuSelection selection) + { + if (process == null || process.ProcessId <= 0) + { + return ProcessExited("Process is no longer running.", process); + } + + if (selection == null || (selection.CpuSetIds.Count == 0 && selection.LogicalProcessors.Count == 0)) + { + this.Audit(process, success: false); + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.InvalidSelection, + InvalidSelectionUserMessage, + "CpuSelection contains neither CPU Set IDs nor logical processors.", + isInvalidTopology: true, + failureReason: AffinityApplyFailureReason.InvalidMask); + } + + var cpuSetsResult = this.TryApplyCpuSets(process, selection); + if (cpuSetsResult != null) + { + return cpuSetsResult; + } + + this.cpuSetFailureCallback?.Invoke(process); + + var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); + if (!legacyMask.HasValue || legacyMask.Value <= 0) + { + this.Audit(process, success: false); + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.LegacyFallbackUnsafe, + LegacyFallbackBlockedUserMessage, + "CpuSelection cannot be represented as a non-zero single-group legacy affinity mask.", + isLegacyFallbackBlocked: true); + } + + try + { + var verifiedMask = await this.legacyAffinityApplier(process, legacyMask.Value).ConfigureAwait(false); + return AffinityApplyResult.SucceededWithLegacyFallback(legacyMask.Value, verifiedMask); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) + { + return AccessDenied(ex, legacyMask.Value, process.ProcessorAffinity); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) + { + return ProcessExited("Process exited before legacy affinity fallback could be applied.", process, legacyMask.Value); + } + catch (Exception ex) + { + this.logger.LogWarning( + ex, + "Legacy affinity fallback failed for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.NativeApplyFailed, + "ThreadPilot could not apply this CPU selection.", + ex.Message, + requestedMask: legacyMask.Value, + verifiedMask: process.ProcessorAffinity); + } + } + + private AffinityApplyResult? TryApplyCpuSets(ProcessModel process, CpuSelection selection) + { + try + { + var handler = this.cpuSetHandlerFactory(process); + if (!handler.IsValid) + { + this.logger.LogDebug( + "CPU Set handler is invalid for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return null; + } + + var result = handler.ApplyCpuSelectionDetailed(selection); + if (result.Success) + { + this.Audit(process, success: true); + return AffinityApplyResult.SucceededWithCpuSets( + string.IsNullOrWhiteSpace(result.TechnicalMessage) + ? $"CPU Sets applied to process {process.Name} (PID: {process.ProcessId})." + : result.TechnicalMessage); + } + + if (result.IsAccessDenied || result.ErrorCode == AffinityApplyErrorCodes.AccessDenied) + { + this.Audit(process, success: false); + return AffinityApplyResult.Failed( + result.IsAntiCheatLikely + ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely + : AffinityApplyErrorCodes.AccessDenied, + result.IsAntiCheatLikely ? AntiCheatUserMessage : AccessDeniedUserMessage, + result.TechnicalMessage, + isAccessDenied: true, + isAntiCheatLikely: result.IsAntiCheatLikely, + verifiedMask: process.ProcessorAffinity, + failureReason: AffinityApplyFailureReason.AccessDenied); + } + + if (result.ErrorCode == AffinityApplyErrorCodes.InvalidTopology) + { + this.Audit(process, success: false); + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.InvalidTopology, + ProcessOperationUserMessages.InvalidTopology, + result.TechnicalMessage, + isInvalidTopology: true, + verifiedMask: process.ProcessorAffinity, + failureReason: AffinityApplyFailureReason.InvalidMask); + } + + this.logger.LogDebug( + "CPU Sets unavailable for process {ProcessName} (PID: {ProcessId}): {Message}", + process.Name, + process.ProcessId, + result.TechnicalMessage); + return null; + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) + { + this.Audit(process, success: false); + return AccessDenied(ex, 0, process.ProcessorAffinity); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) + { + this.Audit(process, success: false); + return ProcessExited("Process exited before CPU Sets could be applied.", process); + } + catch (Exception ex) + { + this.logger.LogDebug( + ex, + "CPU Sets failed for process {ProcessName} (PID: {ProcessId}); evaluating legacy fallback", + process.Name, + process.ProcessId); + return null; + } + } + + private void Audit(ProcessModel process, bool success) => + this.auditCallback?.Invoke(process, success); + + private static AffinityApplyResult AccessDenied(Exception ex, long requestedMask, long verifiedMask) + { + var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); + return AffinityApplyResult.Failed( + antiCheatLikely + ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely + : AffinityApplyErrorCodes.AccessDenied, + antiCheatLikely ? AntiCheatUserMessage : AccessDeniedUserMessage, + ex.Message, + isAccessDenied: true, + isAntiCheatLikely: antiCheatLikely, + requestedMask: requestedMask, + verifiedMask: verifiedMask, + failureReason: AffinityApplyFailureReason.AccessDenied); + } + + private static AffinityApplyResult ProcessExited(string userMessage, ProcessModel? process, long requestedMask = 0) => + AffinityApplyResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + ProcessOperationUserMessages.ProcessExited, + userMessage, + requestedMask: requestedMask, + verifiedMask: process?.ProcessorAffinity ?? 0, + failureReason: AffinityApplyFailureReason.ProcessTerminated); + } + + internal static class AffinityApplyExceptionClassifier + { + public static bool IsAccessDenied(Exception ex) => + ex is UnauthorizedAccessException || + ex is Win32Exception { NativeErrorCode: 5 } || + IsInnerAccessDenied(ex.InnerException) || + ContainsAny( + ex.Message, + "access denied", + "anti-cheat", + "anti cheat", + "protected", + "insufficient privileges"); + + public static bool IsAntiCheatLikely(Exception ex) => + ContainsAny(ex.Message, "anti-cheat", "anti cheat", "protected") || + (ex.InnerException != null && IsAntiCheatLikely(ex.InnerException)); + + public static bool IsProcessExited(Exception ex) + { + if (ex is ArgumentException) + { + return true; + } + + var message = ex.Message ?? string.Empty; + if (ex is InvalidOperationException && + ContainsAny(message, "exit", "exited", "terminated", "not running", "has no process associated")) + { + return true; + } + + return ex.InnerException != null && IsProcessExited(ex.InnerException); + } + + private static bool IsInnerAccessDenied(Exception? ex) => ex != null && IsAccessDenied(ex); + + private static bool ContainsAny(string? value, params string[] needles) + { + var source = value ?? string.Empty; + return needles.Any(needle => source.Contains(needle, StringComparison.OrdinalIgnoreCase)); + } + } + + public sealed class AffinityApplyService : IAffinityApplyService + { + private readonly IProcessService processService; + private readonly ICpuTopologyService cpuTopologyService; + private readonly ILogger logger; + + public AffinityApplyService( + IProcessService processService, + ICpuTopologyService cpuTopologyService, + ILogger logger) + { + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.cpuTopologyService = cpuTopologyService ?? throw new ArgumentNullException(nameof(cpuTopologyService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public Task ApplyAsync(ProcessModel process, CpuSelection selection) => + process == null + ? Task.FromResult(AffinityApplyResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + ProcessOperationUserMessages.ProcessExited, + "ProcessModel is null.", + failureReason: AffinityApplyFailureReason.ProcessTerminated)) + : selection == null + ? Task.FromResult(AffinityApplyResult.Failed( + AffinityApplyErrorCodes.InvalidSelection, + CpuSelectionAffinityApplier.InvalidSelectionUserMessage, + "CpuSelection is null.", + isInvalidTopology: true, + failureReason: AffinityApplyFailureReason.InvalidMask)) + : this.processService.SetProcessorAffinity(process, selection); + + public async Task ApplyAsync(ProcessModel process, long requestedMask) + { + ArgumentNullException.ThrowIfNull(process); + + var startingMask = process.ProcessorAffinity; + + if (requestedMask == 0) + { + return AffinityApplyResult.Failed( + requestedMask, + startingMask, + AffinityApplyFailureReason.InvalidMask, + ProcessOperationUserMessages.InvalidTopology); + } + + if (!this.cpuTopologyService.IsAffinityMaskValid(requestedMask)) + { + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.InvalidTopology, + ProcessOperationUserMessages.InvalidTopology, + $"Affinity mask 0x{requestedMask:X} is not valid for this CPU topology.", + isInvalidTopology: true, + requestedMask: requestedMask, + verifiedMask: startingMask, + failureReason: AffinityApplyFailureReason.InvalidMask); + } + + if (!await this.IsProcessRunningAsync(process).ConfigureAwait(false)) + { + return AffinityApplyResult.Failed( + requestedMask, + startingMask, + AffinityApplyFailureReason.ProcessTerminated, + ProcessOperationUserMessages.ProcessExited); + } + + try + { + await this.processService.SetProcessorAffinity(process, requestedMask).ConfigureAwait(false); + } + catch (Exception ex) when (IsAccessDenied(ex)) + { + this.logger.LogWarning( + ex, + "Affinity apply blocked for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + + await this.TryRefreshProcessInfoAsync(process).ConfigureAwait(false); + return AccessDenied(ex, requestedMask, process.ProcessorAffinity); + } + catch (Exception ex) when (IsProcessTerminated(ex)) + { + this.logger.LogDebug( + ex, + "Process terminated while applying affinity to {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + + return AffinityApplyResult.Failed( + requestedMask, + process.ProcessorAffinity, + AffinityApplyFailureReason.ProcessTerminated, + ProcessOperationUserMessages.ProcessExited); + } + catch (Exception ex) + { + this.logger.LogWarning( + ex, + "Affinity apply failed for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + + await this.TryRefreshProcessInfoAsync(process).ConfigureAwait(false); + return AffinityApplyResult.Failed( + requestedMask, + process.ProcessorAffinity, + AffinityApplyFailureReason.ApplyFailed, + "ThreadPilot could not apply this affinity change."); + } + + if (!await this.TryRefreshProcessInfoAsync(process).ConfigureAwait(false)) + { + return AffinityApplyResult.Failed( + requestedMask, + process.ProcessorAffinity, + AffinityApplyFailureReason.ProcessTerminated, + ProcessOperationUserMessages.ProcessExited); + } + + var verifiedMask = process.ProcessorAffinity; + if (verifiedMask != requestedMask) + { + return AffinityApplyResult.Failed( + requestedMask, + verifiedMask, + AffinityApplyFailureReason.VerificationMismatch, + $"Windows reported affinity 0x{verifiedMask:X} after requesting 0x{requestedMask:X}."); + } + + return AffinityApplyResult.Succeeded(requestedMask, verifiedMask); + } + + private static AffinityApplyResult AccessDenied(Exception ex, long requestedMask, long verifiedMask) + { + var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); + return AffinityApplyResult.Failed( + antiCheatLikely + ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely + : AffinityApplyErrorCodes.AccessDenied, + antiCheatLikely + ? ProcessOperationUserMessages.AntiCheatProtectedLikely + : ProcessOperationUserMessages.AccessDenied, + ex.Message, + isAccessDenied: true, + isAntiCheatLikely: antiCheatLikely, + requestedMask: requestedMask, + verifiedMask: verifiedMask, + failureReason: AffinityApplyFailureReason.AccessDenied); + } + + private static bool IsAccessDenied(Exception ex) + { + var message = ex.Message ?? string.Empty; + return ex is UnauthorizedAccessException || + message.Contains("access denied", StringComparison.OrdinalIgnoreCase) || + message.Contains("anti-cheat", StringComparison.OrdinalIgnoreCase) || + message.Contains("anti cheat", StringComparison.OrdinalIgnoreCase) || + message.Contains("protected", StringComparison.OrdinalIgnoreCase) || + message.Contains("insufficient privileges", StringComparison.OrdinalIgnoreCase); + } + + private static bool IsProcessTerminated(Exception ex) + { + var message = ex.Message ?? string.Empty; + return ex is ArgumentException || + (ex is InvalidOperationException && + (message.Contains("process", StringComparison.OrdinalIgnoreCase) && + (message.Contains("exit", StringComparison.OrdinalIgnoreCase) || + message.Contains("terminated", StringComparison.OrdinalIgnoreCase) || + message.Contains("not running", StringComparison.OrdinalIgnoreCase)))); + } + + private async Task IsProcessRunningAsync(ProcessModel process) + { + try + { + return await this.processService.IsProcessStillRunning(process).ConfigureAwait(false); + } + catch (Exception ex) when (IsAccessDenied(ex)) + { + this.logger.LogDebug( + ex, + "Could not confirm process state before affinity apply for {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return true; + } + catch (Exception ex) + { + this.logger.LogDebug( + ex, + "Process state check failed before affinity apply for {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return false; + } + } + + private async Task TryRefreshProcessInfoAsync(ProcessModel process) + { + try + { + await this.processService.RefreshProcessInfo(process).ConfigureAwait(false); + return true; + } + catch (Exception ex) when (IsAccessDenied(ex)) + { + this.logger.LogDebug( + ex, + "Could not refresh process after affinity apply for {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return true; + } + catch (Exception ex) + { + this.logger.LogDebug( + ex, + "Process refresh failed after affinity apply for {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return false; + } + } + } +} diff --git a/Services/AppNavigationOptions.cs b/Services/AppNavigationOptions.cs index 3773e0a..466b405 100644 --- a/Services/AppNavigationOptions.cs +++ b/Services/AppNavigationOptions.cs @@ -1,26 +1,7 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - /// - /// Compile-time navigation switches for optional surfaces. - /// - public static class AppNavigationOptions - { - public static bool ShowAdvancedDiagnostics => false; - } -} +namespace ThreadPilot.Services +{ + public static class AppNavigationOptions + { + public static bool ShowAdvancedDiagnostics => false; + } +} diff --git a/Services/AppRefreshPolicy.cs b/Services/AppRefreshPolicy.cs index e9f8455..91fdb85 100644 --- a/Services/AppRefreshPolicy.cs +++ b/Services/AppRefreshPolicy.cs @@ -1,94 +1,69 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - /// - /// Represents the current UI activity state used to decide refresh work. - /// - public enum AppActivityState - { - ForegroundProcessView, - ForegroundDiagnosticsView, - ForegroundOtherTab, - Minimized, - TrayHidden, - } - - /// - /// Describes refresh and monitoring work allowed for a UI activity state. - /// - public sealed record AppRefreshDecision( - bool ProcessUiRefreshEnabled, - bool ImmediateProcessRefresh, - bool VirtualizedPreloadEnabled, - bool PerformanceUiMonitoringEnabled, - bool PowerPlanUiRefreshEnabled, - bool BackgroundAutomationEnabled); - - /// - /// Central policy for foreground/background refresh decisions. - /// - public static class AppRefreshPolicy - { - public static bool ShouldApplyTransition(AppActivityState? previousState, AppActivityState nextState) - { - return previousState != nextState; - } - - public static AppRefreshDecision Evaluate(AppActivityState state) - { - return state switch - { - AppActivityState.ForegroundProcessView => new AppRefreshDecision( - ProcessUiRefreshEnabled: true, - ImmediateProcessRefresh: true, - VirtualizedPreloadEnabled: true, - PerformanceUiMonitoringEnabled: false, - PowerPlanUiRefreshEnabled: true, - BackgroundAutomationEnabled: true), - AppActivityState.ForegroundDiagnosticsView => new AppRefreshDecision( - ProcessUiRefreshEnabled: false, - ImmediateProcessRefresh: false, - VirtualizedPreloadEnabled: false, - PerformanceUiMonitoringEnabled: true, - PowerPlanUiRefreshEnabled: true, - BackgroundAutomationEnabled: true), - AppActivityState.ForegroundOtherTab => new AppRefreshDecision( - ProcessUiRefreshEnabled: false, - ImmediateProcessRefresh: false, - VirtualizedPreloadEnabled: false, - PerformanceUiMonitoringEnabled: false, - PowerPlanUiRefreshEnabled: true, - BackgroundAutomationEnabled: true), - AppActivityState.Minimized or AppActivityState.TrayHidden => new AppRefreshDecision( - ProcessUiRefreshEnabled: false, - ImmediateProcessRefresh: false, - VirtualizedPreloadEnabled: false, - PerformanceUiMonitoringEnabled: false, - PowerPlanUiRefreshEnabled: false, - BackgroundAutomationEnabled: true), - _ => new AppRefreshDecision( - ProcessUiRefreshEnabled: false, - ImmediateProcessRefresh: false, - VirtualizedPreloadEnabled: false, - PerformanceUiMonitoringEnabled: false, - PowerPlanUiRefreshEnabled: false, - BackgroundAutomationEnabled: true), - }; - } - } -} +namespace ThreadPilot.Services +{ + public enum AppActivityState + { + ForegroundProcessView, + ForegroundDiagnosticsView, + ForegroundOtherTab, + Minimized, + TrayHidden, + } + + public sealed record AppRefreshDecision( + bool ProcessUiRefreshEnabled, + bool ImmediateProcessRefresh, + bool VirtualizedPreloadEnabled, + bool PerformanceUiMonitoringEnabled, + bool PowerPlanUiRefreshEnabled, + bool BackgroundAutomationEnabled); + + public static class AppRefreshPolicy + { + public static bool ShouldApplyTransition(AppActivityState? previousState, AppActivityState nextState) + { + return previousState != nextState; + } + + public static AppRefreshDecision Evaluate(AppActivityState state) + { + return state switch + { + AppActivityState.ForegroundProcessView => new AppRefreshDecision( + ProcessUiRefreshEnabled: true, + ImmediateProcessRefresh: true, + VirtualizedPreloadEnabled: true, + PerformanceUiMonitoringEnabled: false, + PowerPlanUiRefreshEnabled: true, + BackgroundAutomationEnabled: true), + AppActivityState.ForegroundDiagnosticsView => new AppRefreshDecision( + ProcessUiRefreshEnabled: false, + ImmediateProcessRefresh: false, + VirtualizedPreloadEnabled: false, + PerformanceUiMonitoringEnabled: true, + PowerPlanUiRefreshEnabled: true, + BackgroundAutomationEnabled: true), + AppActivityState.ForegroundOtherTab => new AppRefreshDecision( + ProcessUiRefreshEnabled: false, + ImmediateProcessRefresh: false, + VirtualizedPreloadEnabled: false, + PerformanceUiMonitoringEnabled: false, + PowerPlanUiRefreshEnabled: true, + BackgroundAutomationEnabled: true), + AppActivityState.Minimized or AppActivityState.TrayHidden => new AppRefreshDecision( + ProcessUiRefreshEnabled: false, + ImmediateProcessRefresh: false, + VirtualizedPreloadEnabled: false, + PerformanceUiMonitoringEnabled: false, + PowerPlanUiRefreshEnabled: false, + BackgroundAutomationEnabled: true), + _ => new AppRefreshDecision( + ProcessUiRefreshEnabled: false, + ImmediateProcessRefresh: false, + VirtualizedPreloadEnabled: false, + PerformanceUiMonitoringEnabled: false, + PowerPlanUiRefreshEnabled: false, + BackgroundAutomationEnabled: true), + }; + } + } +} diff --git a/Services/ApplicationSettingsService.cs b/Services/ApplicationSettingsService.cs index d7ae681..d952705 100644 --- a/Services/ApplicationSettingsService.cs +++ b/Services/ApplicationSettingsService.cs @@ -1,19 +1,3 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ namespace ThreadPilot.Services { using System; @@ -25,9 +9,6 @@ namespace ThreadPilot.Services using ThreadPilot.Models; using ThreadPilot.Services.Abstractions; - /// - /// Service for managing application settings with JSON persistence. - /// public class ApplicationSettingsService : IApplicationSettingsService { private readonly ILogger logger; diff --git a/Services/ApplicationVersionProvider.cs b/Services/ApplicationVersionProvider.cs index b62b44a..89e6c35 100644 --- a/Services/ApplicationVersionProvider.cs +++ b/Services/ApplicationVersionProvider.cs @@ -1,36 +1,36 @@ -/* - * ThreadPilot - application version provider for update checks. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Linq; - using System.Reflection; - - public sealed class ApplicationVersionProvider : IApplicationVersionProvider - { - public SemanticVersion CurrentVersion - { - get - { - var rawVersion = GetRawVersion(); - return SemanticVersion.TryParse(rawVersion, out var version) - ? version - : new SemanticVersion(0, 0, 0); - } - } - - public string DisplayVersion => $"v{this.CurrentVersion}"; - - private static string GetRawVersion() - { - return typeof(App).Assembly - .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) - .OfType() - .FirstOrDefault()? - .InformationalVersion - ?? typeof(App).Assembly.GetName().Version?.ToString() - ?? "0.0.0"; - } - } -} +/* + * ThreadPilot - application version provider for update checks. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Linq; + using System.Reflection; + + public sealed class ApplicationVersionProvider : IApplicationVersionProvider + { + public SemanticVersion CurrentVersion + { + get + { + var rawVersion = GetRawVersion(); + return SemanticVersion.TryParse(rawVersion, out var version) + ? version + : new SemanticVersion(0, 0, 0); + } + } + + public string DisplayVersion => $"v{this.CurrentVersion}"; + + private static string GetRawVersion() + { + return typeof(App).Assembly + .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) + .OfType() + .FirstOrDefault()? + .InformationalVersion + ?? typeof(App).Assembly.GetName().Version?.ToString() + ?? "0.0.0"; + } + } +} diff --git a/Services/AtomicFileWriter.cs b/Services/AtomicFileWriter.cs index 62ac9e0..21e4876 100644 --- a/Services/AtomicFileWriter.cs +++ b/Services/AtomicFileWriter.cs @@ -1,72 +1,56 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Text; - using System.Threading.Tasks; - - internal static class AtomicFileWriter - { - public static async Task WriteAllTextAsync(string filePath, string content, Encoding? encoding = null) - { - if (string.IsNullOrWhiteSpace(filePath)) - { - throw new ArgumentException("File path cannot be null or empty.", nameof(filePath)); - } - - var targetDirectory = Path.GetDirectoryName(filePath); - if (string.IsNullOrEmpty(targetDirectory)) - { - throw new InvalidOperationException($"Cannot determine target directory for path '{filePath}'."); - } - - Directory.CreateDirectory(targetDirectory); - - var tempFilePath = Path.Combine(targetDirectory, $".{Path.GetFileName(filePath)}.{Guid.NewGuid():N}.tmp"); - var backupFilePath = filePath + ".bak"; - - try - { - encoding ??= new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); - await File.WriteAllTextAsync(tempFilePath, content, encoding); - - if (File.Exists(filePath)) - { - File.Replace(tempFilePath, filePath, backupFilePath, ignoreMetadataErrors: true); - - if (File.Exists(backupFilePath)) - { - File.Delete(backupFilePath); - } - } - else - { - File.Move(tempFilePath, filePath); - } - } - finally - { - if (File.Exists(tempFilePath)) - { - File.Delete(tempFilePath); - } - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Text; + using System.Threading.Tasks; + + internal static class AtomicFileWriter + { + public static async Task WriteAllTextAsync(string filePath, string content, Encoding? encoding = null) + { + if (string.IsNullOrWhiteSpace(filePath)) + { + throw new ArgumentException("File path cannot be null or empty.", nameof(filePath)); + } + + var targetDirectory = Path.GetDirectoryName(filePath); + if (string.IsNullOrEmpty(targetDirectory)) + { + throw new InvalidOperationException($"Cannot determine target directory for path '{filePath}'."); + } + + Directory.CreateDirectory(targetDirectory); + + var tempFilePath = Path.Combine(targetDirectory, $".{Path.GetFileName(filePath)}.{Guid.NewGuid():N}.tmp"); + var backupFilePath = filePath + ".bak"; + + try + { + encoding ??= new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); + await File.WriteAllTextAsync(tempFilePath, content, encoding); + + if (File.Exists(filePath)) + { + File.Replace(tempFilePath, filePath, backupFilePath, ignoreMetadataErrors: true); + + if (File.Exists(backupFilePath)) + { + File.Delete(backupFilePath); + } + } + else + { + File.Move(tempFilePath, filePath); + } + } + finally + { + if (File.Exists(tempFilePath)) + { + File.Delete(tempFilePath); + } + } + } + } +} diff --git a/Services/AuthenticodeSignatureVerifier.cs b/Services/AuthenticodeSignatureVerifier.cs index 63b1735..29c8dac 100644 --- a/Services/AuthenticodeSignatureVerifier.cs +++ b/Services/AuthenticodeSignatureVerifier.cs @@ -1,46 +1,46 @@ -/* - * ThreadPilot - best-effort Authenticode signature detection. - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Security.Cryptography; - using System.Security.Cryptography.X509Certificates; - - public sealed class AuthenticodeSignatureVerifier : IUpdateSignatureVerifier - { - public UpdateSignatureStatus Verify(string installerPath) - { - if (!File.Exists(installerPath)) - { - return UpdateSignatureStatus.Invalid; - } - - try - { - using var certificate = new X509Certificate2(X509Certificate.CreateFromSignedFile(installerPath)); - using var chain = new X509Chain - { - ChainPolicy = - { - RevocationMode = X509RevocationMode.Online, - RevocationFlag = X509RevocationFlag.ExcludeRoot, - }, - }; - - return chain.Build(certificate) - ? UpdateSignatureStatus.Valid - : UpdateSignatureStatus.Unknown; - } - catch (CryptographicException) - { - return UpdateSignatureStatus.Unknown; - } - catch (PlatformNotSupportedException) - { - return UpdateSignatureStatus.Unknown; - } - } - } -} +/* + * ThreadPilot - best-effort Authenticode signature detection. + */ +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Security.Cryptography; + using System.Security.Cryptography.X509Certificates; + + public sealed class AuthenticodeSignatureVerifier : IUpdateSignatureVerifier + { + public UpdateSignatureStatus Verify(string installerPath) + { + if (!File.Exists(installerPath)) + { + return UpdateSignatureStatus.Invalid; + } + + try + { + using var certificate = new X509Certificate2(X509Certificate.CreateFromSignedFile(installerPath)); + using var chain = new X509Chain + { + ChainPolicy = + { + RevocationMode = X509RevocationMode.Online, + RevocationFlag = X509RevocationFlag.ExcludeRoot, + }, + }; + + return chain.Build(certificate) + ? UpdateSignatureStatus.Valid + : UpdateSignatureStatus.Unknown; + } + catch (CryptographicException) + { + return UpdateSignatureStatus.Unknown; + } + catch (PlatformNotSupportedException) + { + return UpdateSignatureStatus.Unknown; + } + } + } +} diff --git a/Services/AutostartService.cs b/Services/AutostartService.cs index e591b68..a6ceb85 100644 --- a/Services/AutostartService.cs +++ b/Services/AutostartService.cs @@ -1,334 +1,315 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - - /// - /// Service for managing Windows autostart functionality using registry. - /// - public partial class AutostartService : IAutostartService - { - private const string REGISTRYKEYPATH = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; - private const string APPLICATIONNAME = "ThreadPilot"; - - private readonly ILogger logger; - private readonly IElevationService elevationService; - private readonly IElevatedTaskService elevatedTaskService; - private bool isAutostartEnabled; - private string? autostartPath; - - public event EventHandler? AutostartStatusChanged; - - public bool IsAutostartEnabled => this.isAutostartEnabled; - - public string? AutostartPath => this.autostartPath; - - public AutostartService(ILogger logger, IElevationService elevationService, IElevatedTaskService elevatedTaskService) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.elevationService = elevationService ?? throw new ArgumentNullException(nameof(elevationService)); - this.elevatedTaskService = elevatedTaskService ?? throw new ArgumentNullException(nameof(elevatedTaskService)); - - // Initialize current status without surfacing startup exceptions. - TaskSafety.FireAndForget(this.CheckAutostartStatusAsync(), ex => - { - LogAutostartInitializationFailed(this.logger, ex); - }); - } - - public async Task EnableAutostartAsync(bool startMinimized = true) - { - try - { - var executablePath = this.GetExecutablePath(); - if (string.IsNullOrEmpty(executablePath)) - { - LogAutostartExecutablePathMissing(this.logger); - return false; - } - - var arguments = this.GetAutostartArguments(startMinimized); - var fullCommand = $"\"{executablePath}\" {arguments}"; - - // Clean up legacy registry-based startup to keep a single elevated startup mechanism. - this.TryRemoveLegacyRegistryAutostart(); - - if (!this.elevationService.IsRunningAsAdministrator()) - { - LogAutostartRequiresElevation(this.logger); - - var elevationRequested = await this.elevationService.RequestElevationIfNeeded(); - if (!elevationRequested) - { - return false; - } - - LogAutostartDeferredToElevatedInstance(this.logger); - return false; - } - - var scheduledTaskCreated = await this.elevatedTaskService.EnsureAutostartTaskAsync(executablePath, arguments); - if (!scheduledTaskCreated) - { - LogAutostartTaskRegistrationFailed(this.logger); - return false; - } - - this.isAutostartEnabled = true; - this.autostartPath = fullCommand; - - LogAutostartEnabled(this.logger, fullCommand); - - this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs( - true, startMinimized, fullCommand)); - - return true; - } - catch (Exception ex) - { - LogEnableAutostartFailed(this.logger, ex); - - this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs( - false, startMinimized, null, ex)); - - return false; - } - } - - public async Task DisableAutostartAsync() - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - LogAutostartDisableRequiresElevation(this.logger); - - var elevationRequested = await this.elevationService.RequestElevationIfNeeded(); - if (!elevationRequested) - { - return false; - } - - LogAutostartDisableDeferredToElevatedInstance(this.logger); - return false; - } - - this.TryRemoveLegacyRegistryAutostart(); - - var scheduledTaskRemoved = await this.elevatedTaskService.RemoveAutostartTaskAsync(); - if (!scheduledTaskRemoved) - { - LogAutostartTaskRemovalFailed(this.logger); - return false; - } - - LogAutostartDisabled(this.logger); - - this.isAutostartEnabled = false; - this.autostartPath = null; - - this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs(false)); - - return true; - } - catch (Exception ex) - { - LogDisableAutostartFailed(this.logger, ex); - - this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs( - false, false, null, ex)); - - return false; - } - } - - public async Task CheckAutostartStatusAsync() - { - try - { - var taskRegistered = await this.elevatedTaskService.IsAutostartTaskRegisteredAsync(); - var legacyRegistryValue = this.TryReadLegacyRegistryAutostart(); - - this.isAutostartEnabled = taskRegistered || !string.IsNullOrWhiteSpace(legacyRegistryValue); - this.autostartPath = taskRegistered - ? $"task://{this.elevatedTaskService.AutostartTaskName}" - : legacyRegistryValue; - - LogAutostartStatusChecked(this.logger, this.isAutostartEnabled, this.autostartPath); - - return this.isAutostartEnabled; - } - catch (Exception ex) - { - LogCheckAutostartStatusFailed(this.logger, ex); - this.isAutostartEnabled = false; - this.autostartPath = null; - return false; - } - } - - public async Task UpdateAutostartAsync(bool startMinimized = true) - { - if (!this.isAutostartEnabled) - { - return await this.EnableAutostartAsync(startMinimized); - } - - // Re-enable with new parameters - await this.DisableAutostartAsync(); - return await this.EnableAutostartAsync(startMinimized); - } - - public string GetAutostartArguments(bool startMinimized = true) - { - var args = new System.Collections.Generic.List(); - - if (startMinimized) - { - args.Add("--start-minimized"); - } - - // Add any other startup arguments as needed - args.Add("--autostart"); - - return string.Join(" ", args); - } - - private string? GetExecutablePath() - { - try - { - var assembly = System.Reflection.Assembly.GetExecutingAssembly(); - var location = assembly.Location; - - // Handle .NET Core/5+ scenarios where Location might be empty - if (string.IsNullOrEmpty(location)) - { - location = System.Diagnostics.Process.GetCurrentProcess().MainModule?.FileName; - } - - // If we're running from a .dll, try to find the .exe - if (!string.IsNullOrEmpty(location) && location.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) - { - var exePath = Path.ChangeExtension(location, ".exe"); - if (File.Exists(exePath)) - { - location = exePath; - } - } - - return location; - } - catch (Exception ex) - { - LogGetExecutablePathFailed(this.logger, ex); - return null; - } - } - - private string? TryReadLegacyRegistryAutostart() - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(REGISTRYKEYPATH, false); - return key?.GetValue(APPLICATIONNAME) as string; - } - catch (Exception ex) - { - LogLegacyRegistryReadFailed(this.logger, ex); - return null; - } - } - - private void TryRemoveLegacyRegistryAutostart() - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(REGISTRYKEYPATH, true); - if (key?.GetValue(APPLICATIONNAME) != null) - { - key.DeleteValue(APPLICATIONNAME, false); - LogLegacyRegistryEntryRemoved(this.logger); - } - } - catch (Exception ex) - { - LogLegacyRegistryCleanupFailed(this.logger, ex); - } - } - - [LoggerMessage(EventId = 4200, Level = LogLevel.Debug, Message = "Autostart status initialization failed")] - private static partial void LogAutostartInitializationFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4201, Level = LogLevel.Error, Message = "Could not determine executable path for autostart")] - private static partial void LogAutostartExecutablePathMissing(ILogger logger); - - [LoggerMessage(EventId = 4203, Level = LogLevel.Information, Message = "Autostart enabled: {Command}")] - private static partial void LogAutostartEnabled(ILogger logger, string command); - - [LoggerMessage(EventId = 4204, Level = LogLevel.Error, Message = "Failed to enable autostart")] - private static partial void LogEnableAutostartFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4206, Level = LogLevel.Information, Message = "Autostart disabled")] - private static partial void LogAutostartDisabled(ILogger logger); - - [LoggerMessage(EventId = 4207, Level = LogLevel.Error, Message = "Failed to disable autostart")] - private static partial void LogDisableAutostartFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4208, Level = LogLevel.Debug, Message = "Autostart status checked: {IsEnabled}, Path: {Path}")] - private static partial void LogAutostartStatusChecked(ILogger logger, bool isEnabled, string? path); - - [LoggerMessage(EventId = 4209, Level = LogLevel.Error, Message = "Failed to check autostart status")] - private static partial void LogCheckAutostartStatusFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4210, Level = LogLevel.Error, Message = "Failed to get executable path")] - private static partial void LogGetExecutablePathFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4218, Level = LogLevel.Information, Message = "Autostart configuration requires elevation; requesting elevated restart")] - private static partial void LogAutostartRequiresElevation(ILogger logger); - - [LoggerMessage(EventId = 4219, Level = LogLevel.Information, Message = "Autostart enable request delegated to elevated instance")] - private static partial void LogAutostartDeferredToElevatedInstance(ILogger logger); - - [LoggerMessage(EventId = 4220, Level = LogLevel.Warning, Message = "Failed to register elevated autostart task")] - private static partial void LogAutostartTaskRegistrationFailed(ILogger logger); - - [LoggerMessage(EventId = 4221, Level = LogLevel.Information, Message = "Autostart disable requires elevation; requesting elevated restart")] - private static partial void LogAutostartDisableRequiresElevation(ILogger logger); - - [LoggerMessage(EventId = 4222, Level = LogLevel.Information, Message = "Autostart disable request delegated to elevated instance")] - private static partial void LogAutostartDisableDeferredToElevatedInstance(ILogger logger); - - [LoggerMessage(EventId = 4223, Level = LogLevel.Warning, Message = "Failed to remove elevated autostart task")] - private static partial void LogAutostartTaskRemovalFailed(ILogger logger); - - [LoggerMessage(EventId = 4224, Level = LogLevel.Debug, Message = "Legacy HKCU Run autostart value removed")] - private static partial void LogLegacyRegistryEntryRemoved(ILogger logger); - - [LoggerMessage(EventId = 4225, Level = LogLevel.Debug, Message = "Failed to read legacy HKCU Run autostart value")] - private static partial void LogLegacyRegistryReadFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4226, Level = LogLevel.Debug, Message = "Failed to remove legacy HKCU Run autostart value")] - private static partial void LogLegacyRegistryCleanupFailed(ILogger logger, Exception ex); - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + + public partial class AutostartService : IAutostartService + { + private const string REGISTRYKEYPATH = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; + private const string APPLICATIONNAME = "ThreadPilot"; + + private readonly ILogger logger; + private readonly IElevationService elevationService; + private readonly IElevatedTaskService elevatedTaskService; + private bool isAutostartEnabled; + private string? autostartPath; + + public event EventHandler? AutostartStatusChanged; + + public bool IsAutostartEnabled => this.isAutostartEnabled; + + public string? AutostartPath => this.autostartPath; + + public AutostartService(ILogger logger, IElevationService elevationService, IElevatedTaskService elevatedTaskService) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.elevationService = elevationService ?? throw new ArgumentNullException(nameof(elevationService)); + this.elevatedTaskService = elevatedTaskService ?? throw new ArgumentNullException(nameof(elevatedTaskService)); + + // Initialize current status without surfacing startup exceptions. + TaskSafety.FireAndForget(this.CheckAutostartStatusAsync(), ex => + { + LogAutostartInitializationFailed(this.logger, ex); + }); + } + + public async Task EnableAutostartAsync(bool startMinimized = true) + { + try + { + var executablePath = this.GetExecutablePath(); + if (string.IsNullOrEmpty(executablePath)) + { + LogAutostartExecutablePathMissing(this.logger); + return false; + } + + var arguments = this.GetAutostartArguments(startMinimized); + var fullCommand = $"\"{executablePath}\" {arguments}"; + + // Clean up legacy registry-based startup to keep a single elevated startup mechanism. + this.TryRemoveLegacyRegistryAutostart(); + + if (!this.elevationService.IsRunningAsAdministrator()) + { + LogAutostartRequiresElevation(this.logger); + + var elevationRequested = await this.elevationService.RequestElevationIfNeeded(); + if (!elevationRequested) + { + return false; + } + + LogAutostartDeferredToElevatedInstance(this.logger); + return false; + } + + var scheduledTaskCreated = await this.elevatedTaskService.EnsureAutostartTaskAsync(executablePath, arguments); + if (!scheduledTaskCreated) + { + LogAutostartTaskRegistrationFailed(this.logger); + return false; + } + + this.isAutostartEnabled = true; + this.autostartPath = fullCommand; + + LogAutostartEnabled(this.logger, fullCommand); + + this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs( + true, startMinimized, fullCommand)); + + return true; + } + catch (Exception ex) + { + LogEnableAutostartFailed(this.logger, ex); + + this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs( + false, startMinimized, null, ex)); + + return false; + } + } + + public async Task DisableAutostartAsync() + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + LogAutostartDisableRequiresElevation(this.logger); + + var elevationRequested = await this.elevationService.RequestElevationIfNeeded(); + if (!elevationRequested) + { + return false; + } + + LogAutostartDisableDeferredToElevatedInstance(this.logger); + return false; + } + + this.TryRemoveLegacyRegistryAutostart(); + + var scheduledTaskRemoved = await this.elevatedTaskService.RemoveAutostartTaskAsync(); + if (!scheduledTaskRemoved) + { + LogAutostartTaskRemovalFailed(this.logger); + return false; + } + + LogAutostartDisabled(this.logger); + + this.isAutostartEnabled = false; + this.autostartPath = null; + + this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs(false)); + + return true; + } + catch (Exception ex) + { + LogDisableAutostartFailed(this.logger, ex); + + this.AutostartStatusChanged?.Invoke(this, new AutostartStatusChangedEventArgs( + false, false, null, ex)); + + return false; + } + } + + public async Task CheckAutostartStatusAsync() + { + try + { + var taskRegistered = await this.elevatedTaskService.IsAutostartTaskRegisteredAsync(); + var legacyRegistryValue = this.TryReadLegacyRegistryAutostart(); + + this.isAutostartEnabled = taskRegistered || !string.IsNullOrWhiteSpace(legacyRegistryValue); + this.autostartPath = taskRegistered + ? $"task://{this.elevatedTaskService.AutostartTaskName}" + : legacyRegistryValue; + + LogAutostartStatusChecked(this.logger, this.isAutostartEnabled, this.autostartPath); + + return this.isAutostartEnabled; + } + catch (Exception ex) + { + LogCheckAutostartStatusFailed(this.logger, ex); + this.isAutostartEnabled = false; + this.autostartPath = null; + return false; + } + } + + public async Task UpdateAutostartAsync(bool startMinimized = true) + { + if (!this.isAutostartEnabled) + { + return await this.EnableAutostartAsync(startMinimized); + } + + // Re-enable with new parameters + await this.DisableAutostartAsync(); + return await this.EnableAutostartAsync(startMinimized); + } + + public string GetAutostartArguments(bool startMinimized = true) + { + var args = new System.Collections.Generic.List(); + + if (startMinimized) + { + args.Add("--start-minimized"); + } + + // Add any other startup arguments as needed + args.Add("--autostart"); + + return string.Join(" ", args); + } + + private string? GetExecutablePath() + { + try + { + var assembly = System.Reflection.Assembly.GetExecutingAssembly(); + var location = assembly.Location; + + // Handle .NET Core/5+ scenarios where Location might be empty + if (string.IsNullOrEmpty(location)) + { + location = System.Diagnostics.Process.GetCurrentProcess().MainModule?.FileName; + } + + // If we're running from a .dll, try to find the .exe + if (!string.IsNullOrEmpty(location) && location.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) + { + var exePath = Path.ChangeExtension(location, ".exe"); + if (File.Exists(exePath)) + { + location = exePath; + } + } + + return location; + } + catch (Exception ex) + { + LogGetExecutablePathFailed(this.logger, ex); + return null; + } + } + + private string? TryReadLegacyRegistryAutostart() + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(REGISTRYKEYPATH, false); + return key?.GetValue(APPLICATIONNAME) as string; + } + catch (Exception ex) + { + LogLegacyRegistryReadFailed(this.logger, ex); + return null; + } + } + + private void TryRemoveLegacyRegistryAutostart() + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(REGISTRYKEYPATH, true); + if (key?.GetValue(APPLICATIONNAME) != null) + { + key.DeleteValue(APPLICATIONNAME, false); + LogLegacyRegistryEntryRemoved(this.logger); + } + } + catch (Exception ex) + { + LogLegacyRegistryCleanupFailed(this.logger, ex); + } + } + + [LoggerMessage(EventId = 4200, Level = LogLevel.Debug, Message = "Autostart status initialization failed")] + private static partial void LogAutostartInitializationFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4201, Level = LogLevel.Error, Message = "Could not determine executable path for autostart")] + private static partial void LogAutostartExecutablePathMissing(ILogger logger); + + [LoggerMessage(EventId = 4203, Level = LogLevel.Information, Message = "Autostart enabled: {Command}")] + private static partial void LogAutostartEnabled(ILogger logger, string command); + + [LoggerMessage(EventId = 4204, Level = LogLevel.Error, Message = "Failed to enable autostart")] + private static partial void LogEnableAutostartFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4206, Level = LogLevel.Information, Message = "Autostart disabled")] + private static partial void LogAutostartDisabled(ILogger logger); + + [LoggerMessage(EventId = 4207, Level = LogLevel.Error, Message = "Failed to disable autostart")] + private static partial void LogDisableAutostartFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4208, Level = LogLevel.Debug, Message = "Autostart status checked: {IsEnabled}, Path: {Path}")] + private static partial void LogAutostartStatusChecked(ILogger logger, bool isEnabled, string? path); + + [LoggerMessage(EventId = 4209, Level = LogLevel.Error, Message = "Failed to check autostart status")] + private static partial void LogCheckAutostartStatusFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4210, Level = LogLevel.Error, Message = "Failed to get executable path")] + private static partial void LogGetExecutablePathFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4218, Level = LogLevel.Information, Message = "Autostart configuration requires elevation; requesting elevated restart")] + private static partial void LogAutostartRequiresElevation(ILogger logger); + + [LoggerMessage(EventId = 4219, Level = LogLevel.Information, Message = "Autostart enable request delegated to elevated instance")] + private static partial void LogAutostartDeferredToElevatedInstance(ILogger logger); + + [LoggerMessage(EventId = 4220, Level = LogLevel.Warning, Message = "Failed to register elevated autostart task")] + private static partial void LogAutostartTaskRegistrationFailed(ILogger logger); + + [LoggerMessage(EventId = 4221, Level = LogLevel.Information, Message = "Autostart disable requires elevation; requesting elevated restart")] + private static partial void LogAutostartDisableRequiresElevation(ILogger logger); + + [LoggerMessage(EventId = 4222, Level = LogLevel.Information, Message = "Autostart disable request delegated to elevated instance")] + private static partial void LogAutostartDisableDeferredToElevatedInstance(ILogger logger); + + [LoggerMessage(EventId = 4223, Level = LogLevel.Warning, Message = "Failed to remove elevated autostart task")] + private static partial void LogAutostartTaskRemovalFailed(ILogger logger); + + [LoggerMessage(EventId = 4224, Level = LogLevel.Debug, Message = "Legacy HKCU Run autostart value removed")] + private static partial void LogLegacyRegistryEntryRemoved(ILogger logger); + + [LoggerMessage(EventId = 4225, Level = LogLevel.Debug, Message = "Failed to read legacy HKCU Run autostart value")] + private static partial void LogLegacyRegistryReadFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4226, Level = LogLevel.Debug, Message = "Failed to remove legacy HKCU Run autostart value")] + private static partial void LogLegacyRegistryCleanupFailed(ILogger logger, Exception ex); + } +} + diff --git a/Services/ConditionalProfileService.cs b/Services/ConditionalProfileService.cs index 03ed77a..677ed3d 100644 --- a/Services/ConditionalProfileService.cs +++ b/Services/ConditionalProfileService.cs @@ -1,597 +1,570 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - using System.Text.Json; - using System.Threading; - using System.Threading.Tasks; - using System.Windows.Forms; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Implementation of conditional process profile service. - /// - public class ConditionalProfileService : IConditionalProfileService, IDisposable - { - private readonly ILogger logger; - private readonly IProcessService processService; - private readonly IRetryPolicyService retryPolicy; - private readonly List profiles = new(); - private readonly System.Threading.Timer monitoringTimer; - private readonly SemaphoreSlim profileLock = new(1, 1); - - private SystemState lastSystemState = new(); - private bool isMonitoring; - private bool disposed; - - public bool IsMonitoring => this.isMonitoring; - - public event EventHandler? ProfileApplied; - - public event EventHandler? ProfileConflictResolved; - - public event EventHandler? SystemStateChanged; - - public ConditionalProfileService( - ILogger logger, - IProcessService processService, - IRetryPolicyService retryPolicy) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.retryPolicy = retryPolicy ?? throw new ArgumentNullException(nameof(retryPolicy)); - - // Set up monitoring timer (check every 10 seconds) - this.monitoringTimer = new System.Threading.Timer(this.MonitoringCallback, null, Timeout.Infinite, Timeout.Infinite); - } - - public async Task InitializeAsync() - { - this.logger.LogInformation("Initializing ConditionalProfileService"); - - // Load initial system state - this.lastSystemState = await this.GetSystemStateAsync().ConfigureAwait(false); - - // Create some default profiles for demonstration - await this.CreateDefaultProfilesAsync().ConfigureAwait(false); - } - - public async Task AddProfileAsync(ConditionalProcessProfile profile) - { - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - var (isValid, errors) = await this.ValidateProfileAsync(profile).ConfigureAwait(false); - if (!isValid) - { - throw new ArgumentException($"Invalid profile: {string.Join(", ", errors)}"); - } - - this.profiles.Add(profile); - this.logger.LogInformation( - "Added conditional profile: {ProfileName} for process {ProcessName}", - profile.Name, profile.ProcessName); - } - finally - { - this.profileLock.Release(); - } - } - - public async Task RemoveProfileAsync(string profileId) - { - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - var profile = this.profiles.FirstOrDefault(p => p.Id == profileId); - if (profile != null) - { - this.profiles.Remove(profile); - this.logger.LogInformation("Removed conditional profile: {ProfileName}", profile.Name); - } - } - finally - { - this.profileLock.Release(); - } - } - - public async Task UpdateProfileAsync(ConditionalProcessProfile profile) - { - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - var existingProfile = this.profiles.FirstOrDefault(p => p.Id == profile.Id); - if (existingProfile != null) - { - var index = this.profiles.IndexOf(existingProfile); - this.profiles[index] = profile; - this.logger.LogInformation("Updated conditional profile: {ProfileName}", profile.Name); - } - } - finally - { - this.profileLock.Release(); - } - } - - public async Task> GetAllProfilesAsync() - { - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - return this.profiles.ToList(); - } - finally - { - this.profileLock.Release(); - } - } - - public async Task> GetProfilesForProcessAsync(string processName) - { - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - return this.profiles - .Where(p => p.ProcessName.Equals(processName, StringComparison.OrdinalIgnoreCase)) - .ToList(); - } - finally - { - this.profileLock.Release(); - } - } - - public async Task> EvaluateProfilesAsync(ProcessModel process) - { - var systemState = await this.GetSystemStateAsync().ConfigureAwait(false); - var applicableProfiles = new List(); - - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - var processProfiles = this.profiles - .Where(p => p.ProcessName.Equals(process.Name, StringComparison.OrdinalIgnoreCase)) - .ToList(); - - foreach (var profile in processProfiles) - { - if (profile.ShouldApply(process, systemState) && profile.CanApplyNow()) - { - applicableProfiles.Add(profile); - } - } - - // Sort by priority (higher priority first) - applicableProfiles.Sort((a, b) => b.Priority.CompareTo(a.Priority)); - } - finally - { - this.profileLock.Release(); - } - - return applicableProfiles; - } - - public async Task ApplyBestProfileAsync(ProcessModel process) - { - try - { - var applicableProfiles = await this.EvaluateProfilesAsync(process).ConfigureAwait(false); - - if (!applicableProfiles.Any()) - { - return false; - } - - ConditionalProcessProfile selectedProfile; - - if (applicableProfiles.Count == 1) - { - selectedProfile = applicableProfiles[0]; - } - else - { - // Handle conflicts - selectedProfile = this.ResolveProfileConflict(applicableProfiles, process); - - this.ProfileConflictResolved?.Invoke(this, new ProfileConflictEventArgs - { - ConflictingProfiles = applicableProfiles, - Process = process, - SelectedProfile = selectedProfile, - Resolution = "Priority-based selection", - }); - } - - // Apply the profile (simplified - would use actual process service) - var success = await this.ApplyProfileToProcessAsync(process, selectedProfile).ConfigureAwait(false); - - if (success) - { - selectedProfile.MarkAsApplied(); - - this.ProfileApplied?.Invoke(this, new ProfileApplicationEventArgs - { - Profile = selectedProfile, - Process = process, - SystemState = await this.GetSystemStateAsync().ConfigureAwait(false), - WasApplied = true, - Reason = "Conditions satisfied", - }); - } - - return success; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error applying profile for process {ProcessName}", process.Name); - return false; - } - } - - public async Task GetSystemStateAsync() - { - return await this.retryPolicy.ExecuteAsync( - async () => - { - var systemState = new SystemState - { - CurrentTime = DateTime.Now, - CpuUsage = await this.GetCpuUsageAsync().ConfigureAwait(false), - MemoryUsage = await this.GetMemoryUsageAsync().ConfigureAwait(false), - ProcessCount = await this.GetProcessCountAsync().ConfigureAwait(false), - IsOnBattery = this.GetBatteryStatus(), - BatteryLevel = this.GetBatteryLevel(), - IsUserIdle = this.GetUserIdleStatus(), - UserIdleTime = this.GetUserIdleTime(), - NetworkActivity = await this.GetNetworkActivityAsync().ConfigureAwait(false), - }; - - // Check if system state changed significantly - if (this.HasSystemStateChangedSignificantly(systemState, this.lastSystemState)) - { - this.SystemStateChanged?.Invoke(this, systemState); - this.lastSystemState = systemState; - } - - return systemState; - }, this.retryPolicy.CreateProcessOperationPolicy()).ConfigureAwait(false); - } - - public async Task StartMonitoringAsync() - { - if (this.isMonitoring) - { - return; - } - - this.logger.LogInformation("Starting conditional profile monitoring"); - this.isMonitoring = true; - - // Start monitoring timer (check every 10 seconds) - this.monitoringTimer.Change(TimeSpan.Zero, TimeSpan.FromSeconds(10)); - } - - public async Task StopMonitoringAsync() - { - if (!this.isMonitoring) - { - return; - } - - this.logger.LogInformation("Stopping conditional profile monitoring"); - this.isMonitoring = false; - - this.monitoringTimer.Change(Timeout.Infinite, Timeout.Infinite); - } - - public ConditionalProcessProfile ResolveProfileConflict(List conflictingProfiles, ProcessModel process) - { - // Simple resolution: highest priority wins - return conflictingProfiles.OrderByDescending(p => p.Priority).First(); - } - - public ConditionalProcessProfile CreateDefaultProfile(string processName) - { - return new ConditionalProcessProfile - { - Id = Guid.NewGuid().ToString(), - Name = $"Default Profile for {processName}", - ProcessName = processName, - Priority = 0, - AutoApplyDelay = TimeSpan.FromSeconds(5), - IsAutoApplyEnabled = true, - ConditionGroups = new List - { - new ConditionGroup - { - Name = "Default Conditions", - LogicalOperator = LogicalOperator.And, - Conditions = new List - { - new ProfileCondition - { - Name = "High CPU Usage", - ConditionType = ProfileConditionType.SystemLoad, - ComparisonOperator = ComparisonOperator.GreaterThan, - Value = 50.0, - Description = "Apply when system CPU usage is above 50%" - } - } - } - }, - }; - } - - public async Task<(bool IsValid, List Errors)> ValidateProfileAsync(ConditionalProcessProfile profile) - { - var errors = new List(); - - if (string.IsNullOrWhiteSpace(profile.Name)) - { - errors.Add("Profile name is required"); - } - - if (string.IsNullOrWhiteSpace(profile.ProcessName)) - { - errors.Add("Process name is required"); - } - - if (profile.AutoApplyDelay < TimeSpan.Zero) - { - errors.Add("Auto-apply delay cannot be negative"); - } - - // Validate condition groups - foreach (var group in profile.ConditionGroups) - { - if (!group.Conditions.Any() && !group.SubGroups.Any()) - { - errors.Add($"Condition group '{group.Name}' must have at least one condition or sub-group"); - } - } - - return (errors.Count == 0, errors); - } - - public async Task ExportProfilesToJsonAsync() - { - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - return JsonSerializer.Serialize(this.profiles, new JsonSerializerOptions { WriteIndented = true }); - } - finally - { - this.profileLock.Release(); - } - } - - public async Task ImportProfilesFromJsonAsync(string json) - { - try - { - var importedProfiles = JsonSerializer.Deserialize>(json); - if (importedProfiles == null) - { - return 0; - } - - await this.profileLock.WaitAsync().ConfigureAwait(false); - try - { - var validProfiles = 0; - foreach (var profile in importedProfiles) - { - var (isValid, _) = await this.ValidateProfileAsync(profile).ConfigureAwait(false); - if (isValid) - { - this.profiles.Add(profile); - validProfiles++; - } - } - - this.logger.LogInformation( - "Imported {ValidProfiles} valid profiles out of {TotalProfiles}", - validProfiles, importedProfiles.Count); - - return validProfiles; - } - finally - { - this.profileLock.Release(); - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error importing profiles from JSON"); - return 0; - } - } - - private void MonitoringCallback(object? state) - { - TaskSafety.FireAndForget(this.MonitoringCallbackAsync(), ex => - { - this.logger.LogWarning(ex, "Error during profile monitoring cycle"); - }); - } - - private async Task MonitoringCallbackAsync() - { - if (!this.isMonitoring) - { - return; - } - - try - { - var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); - foreach (var process in processes) - { - await this.ApplyBestProfileAsync(process).ConfigureAwait(false); - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Error during profile monitoring cycle"); - } - } - - private async Task ApplyProfileToProcessAsync(ProcessModel process, ConditionalProcessProfile profile) - { - try - { - // Simplified profile application - would use actual process service methods - this.logger.LogInformation( - "Applying profile {ProfileName} to process {ProcessName}", - profile.Name, process.Name); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error applying profile {ProfileName} to process {ProcessName}", - profile.Name, process.Name); - return false; - } - } - - private async Task CreateDefaultProfilesAsync() - { - // Create some example conditional profiles - var gameProfile = new ConditionalProcessProfile - { - Id = Guid.NewGuid().ToString(), - Name = "High Performance Gaming", - ProcessName = "*", // Wildcard for any process - Priority = 10, - AutoApplyDelay = TimeSpan.FromSeconds(3), - ConditionGroups = new List - { - new ConditionGroup - { - Name = "Gaming Conditions", - LogicalOperator = LogicalOperator.And, - Conditions = new List - { - new ProfileCondition - { - Name = "High CPU Usage", - ConditionType = ProfileConditionType.SystemLoad, - ComparisonOperator = ComparisonOperator.GreaterThan, - Value = 70.0 - }, - new ProfileCondition - { - Name = "Evening Hours", - ConditionType = ProfileConditionType.TimeOfDay, - ComparisonOperator = ComparisonOperator.Between, - Value = 18.0, // 6 PM - SecondaryValue = 23.0 // 11 PM - } - } - } - }, - }; - - await this.AddProfileAsync(gameProfile).ConfigureAwait(false); - } - - private Task GetCpuUsageAsync() - { - // Simplified CPU usage calculation - return Task.FromResult(Environment.ProcessorCount * 10.0); // Placeholder - } - - private Task GetMemoryUsageAsync() - { - var totalMemory = GC.GetTotalMemory(false); - return Task.FromResult(totalMemory / (1024.0 * 1024.0)); // MB - } - - private async Task GetProcessCountAsync() - { - var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); - return processes.Count; - } - - private bool GetBatteryStatus() - { - return SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Offline; - } - - private int GetBatteryLevel() - { - return (int)(SystemInformation.PowerStatus.BatteryLifePercent * 100); - } - - private bool GetUserIdleStatus() - { - return this.GetUserIdleTime() > TimeSpan.FromMinutes(5); - } - - private TimeSpan GetUserIdleTime() - { - // Simplified - would use Windows API to get actual idle time - return TimeSpan.FromMinutes(1); - } - - private async Task GetNetworkActivityAsync() - { - // Simplified network activity measurement - return 0.0; // Placeholder - } - - private bool HasSystemStateChangedSignificantly(SystemState current, SystemState previous) - { - const double cpuThreshold = 10.0; - const double memoryThreshold = 100.0; // MB - - return Math.Abs(current.CpuUsage - previous.CpuUsage) > cpuThreshold || - Math.Abs(current.MemoryUsage - previous.MemoryUsage) > memoryThreshold || - current.IsOnBattery != previous.IsOnBattery; - } - - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - this.monitoringTimer?.Dispose(); - this.profileLock?.Dispose(); - this.logger.LogInformation("ConditionalProfileService disposed"); - } - this.disposed = true; - } - } - - public void Dispose() - { - this.Dispose(disposing: true); - GC.SuppressFinalize(this); - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Linq; + using System.Text.Json; + using System.Threading; + using System.Threading.Tasks; + using System.Windows.Forms; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class ConditionalProfileService : IConditionalProfileService, IDisposable + { + private readonly ILogger logger; + private readonly IProcessService processService; + private readonly List profiles = new(); + private readonly System.Threading.Timer monitoringTimer; + private readonly SemaphoreSlim profileLock = new(1, 1); + + private SystemState lastSystemState = new(); + private bool isMonitoring; + private bool disposed; + + public bool IsMonitoring => this.isMonitoring; + + public event EventHandler? ProfileApplied; + + public event EventHandler? ProfileConflictResolved; + + public event EventHandler? SystemStateChanged; + + public ConditionalProfileService( + ILogger logger, + IProcessService processService) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + + // Set up monitoring timer (check every 10 seconds) + this.monitoringTimer = new System.Threading.Timer(this.MonitoringCallback, null, Timeout.Infinite, Timeout.Infinite); + } + + public async Task InitializeAsync() + { + this.logger.LogInformation("Initializing ConditionalProfileService"); + + // Load initial system state + this.lastSystemState = await this.GetSystemStateAsync().ConfigureAwait(false); + + // Create some default profiles for demonstration + await this.CreateDefaultProfilesAsync().ConfigureAwait(false); + } + + public async Task AddProfileAsync(ConditionalProcessProfile profile) + { + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + var (isValid, errors) = await this.ValidateProfileAsync(profile).ConfigureAwait(false); + if (!isValid) + { + throw new ArgumentException($"Invalid profile: {string.Join(", ", errors)}"); + } + + this.profiles.Add(profile); + this.logger.LogInformation( + "Added conditional profile: {ProfileName} for process {ProcessName}", + profile.Name, profile.ProcessName); + } + finally + { + this.profileLock.Release(); + } + } + + public async Task RemoveProfileAsync(string profileId) + { + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + var profile = this.profiles.FirstOrDefault(p => p.Id == profileId); + if (profile != null) + { + this.profiles.Remove(profile); + this.logger.LogInformation("Removed conditional profile: {ProfileName}", profile.Name); + } + } + finally + { + this.profileLock.Release(); + } + } + + public async Task UpdateProfileAsync(ConditionalProcessProfile profile) + { + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + var existingProfile = this.profiles.FirstOrDefault(p => p.Id == profile.Id); + if (existingProfile != null) + { + var index = this.profiles.IndexOf(existingProfile); + this.profiles[index] = profile; + this.logger.LogInformation("Updated conditional profile: {ProfileName}", profile.Name); + } + } + finally + { + this.profileLock.Release(); + } + } + + public async Task> GetAllProfilesAsync() + { + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + return this.profiles.ToList(); + } + finally + { + this.profileLock.Release(); + } + } + + public async Task> GetProfilesForProcessAsync(string processName) + { + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + return this.profiles + .Where(p => p.ProcessName.Equals(processName, StringComparison.OrdinalIgnoreCase)) + .ToList(); + } + finally + { + this.profileLock.Release(); + } + } + + public async Task> EvaluateProfilesAsync(ProcessModel process) + { + var systemState = await this.GetSystemStateAsync().ConfigureAwait(false); + var applicableProfiles = new List(); + + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + var processProfiles = this.profiles + .Where(p => p.ProcessName.Equals(process.Name, StringComparison.OrdinalIgnoreCase)) + .ToList(); + + foreach (var profile in processProfiles) + { + if (profile.ShouldApply(process, systemState) && profile.CanApplyNow()) + { + applicableProfiles.Add(profile); + } + } + + // Sort by priority (higher priority first) + applicableProfiles.Sort((a, b) => b.Priority.CompareTo(a.Priority)); + } + finally + { + this.profileLock.Release(); + } + + return applicableProfiles; + } + + public async Task ApplyBestProfileAsync(ProcessModel process) + { + try + { + var applicableProfiles = await this.EvaluateProfilesAsync(process).ConfigureAwait(false); + + if (!applicableProfiles.Any()) + { + return false; + } + + ConditionalProcessProfile selectedProfile; + + if (applicableProfiles.Count == 1) + { + selectedProfile = applicableProfiles[0]; + } + else + { + // Handle conflicts + selectedProfile = this.ResolveProfileConflict(applicableProfiles, process); + + this.ProfileConflictResolved?.Invoke(this, new ProfileConflictEventArgs + { + ConflictingProfiles = applicableProfiles, + Process = process, + SelectedProfile = selectedProfile, + Resolution = "Priority-based selection", + }); + } + + // Apply the profile (simplified - would use actual process service) + var success = await this.ApplyProfileToProcessAsync(process, selectedProfile).ConfigureAwait(false); + + if (success) + { + selectedProfile.MarkAsApplied(); + + this.ProfileApplied?.Invoke(this, new ProfileApplicationEventArgs + { + Profile = selectedProfile, + Process = process, + SystemState = await this.GetSystemStateAsync().ConfigureAwait(false), + WasApplied = true, + Reason = "Conditions satisfied", + }); + } + + return success; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error applying profile for process {ProcessName}", process.Name); + return false; + } + } + + public async Task GetSystemStateAsync() + { + var systemState = new SystemState + { + CurrentTime = DateTime.Now, + CpuUsage = await this.GetCpuUsageAsync().ConfigureAwait(false), + MemoryUsage = await this.GetMemoryUsageAsync().ConfigureAwait(false), + ProcessCount = await this.GetProcessCountAsync().ConfigureAwait(false), + IsOnBattery = this.GetBatteryStatus(), + BatteryLevel = this.GetBatteryLevel(), + IsUserIdle = this.GetUserIdleStatus(), + UserIdleTime = this.GetUserIdleTime(), + NetworkActivity = await this.GetNetworkActivityAsync().ConfigureAwait(false), + }; + + if (this.HasSystemStateChangedSignificantly(systemState, this.lastSystemState)) + { + this.SystemStateChanged?.Invoke(this, systemState); + this.lastSystemState = systemState; + } + + return systemState; + } + + public async Task StartMonitoringAsync() + { + if (this.isMonitoring) + { + return; + } + + this.logger.LogInformation("Starting conditional profile monitoring"); + this.isMonitoring = true; + + // Start monitoring timer (check every 10 seconds) + this.monitoringTimer.Change(TimeSpan.Zero, TimeSpan.FromSeconds(10)); + } + + public async Task StopMonitoringAsync() + { + if (!this.isMonitoring) + { + return; + } + + this.logger.LogInformation("Stopping conditional profile monitoring"); + this.isMonitoring = false; + + this.monitoringTimer.Change(Timeout.Infinite, Timeout.Infinite); + } + + public ConditionalProcessProfile ResolveProfileConflict(List conflictingProfiles, ProcessModel process) + { + // Simple resolution: highest priority wins + return conflictingProfiles.OrderByDescending(p => p.Priority).First(); + } + + public ConditionalProcessProfile CreateDefaultProfile(string processName) + { + return new ConditionalProcessProfile + { + Id = Guid.NewGuid().ToString(), + Name = $"Default Profile for {processName}", + ProcessName = processName, + Priority = 0, + AutoApplyDelay = TimeSpan.FromSeconds(5), + IsAutoApplyEnabled = true, + ConditionGroups = new List + { + new ConditionGroup + { + Name = "Default Conditions", + LogicalOperator = LogicalOperator.And, + Conditions = new List + { + new ProfileCondition + { + Name = "High CPU Usage", + ConditionType = ProfileConditionType.SystemLoad, + ComparisonOperator = ComparisonOperator.GreaterThan, + Value = 50.0, + Description = "Apply when system CPU usage is above 50%" + } + } + } + }, + }; + } + + public async Task<(bool IsValid, List Errors)> ValidateProfileAsync(ConditionalProcessProfile profile) + { + var errors = new List(); + + if (string.IsNullOrWhiteSpace(profile.Name)) + { + errors.Add("Profile name is required"); + } + + if (string.IsNullOrWhiteSpace(profile.ProcessName)) + { + errors.Add("Process name is required"); + } + + if (profile.AutoApplyDelay < TimeSpan.Zero) + { + errors.Add("Auto-apply delay cannot be negative"); + } + + // Validate condition groups + foreach (var group in profile.ConditionGroups) + { + if (!group.Conditions.Any() && !group.SubGroups.Any()) + { + errors.Add($"Condition group '{group.Name}' must have at least one condition or sub-group"); + } + } + + return (errors.Count == 0, errors); + } + + public async Task ExportProfilesToJsonAsync() + { + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + return JsonSerializer.Serialize(this.profiles, new JsonSerializerOptions { WriteIndented = true }); + } + finally + { + this.profileLock.Release(); + } + } + + public async Task ImportProfilesFromJsonAsync(string json) + { + try + { + var importedProfiles = JsonSerializer.Deserialize>(json); + if (importedProfiles == null) + { + return 0; + } + + await this.profileLock.WaitAsync().ConfigureAwait(false); + try + { + var validProfiles = 0; + foreach (var profile in importedProfiles) + { + var (isValid, _) = await this.ValidateProfileAsync(profile).ConfigureAwait(false); + if (isValid) + { + this.profiles.Add(profile); + validProfiles++; + } + } + + this.logger.LogInformation( + "Imported {ValidProfiles} valid profiles out of {TotalProfiles}", + validProfiles, importedProfiles.Count); + + return validProfiles; + } + finally + { + this.profileLock.Release(); + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error importing profiles from JSON"); + return 0; + } + } + + private void MonitoringCallback(object? state) + { + TaskSafety.FireAndForget(this.MonitoringCallbackAsync(), ex => + { + this.logger.LogWarning(ex, "Error during profile monitoring cycle"); + }); + } + + private async Task MonitoringCallbackAsync() + { + if (!this.isMonitoring) + { + return; + } + + try + { + var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); + foreach (var process in processes) + { + await this.ApplyBestProfileAsync(process).ConfigureAwait(false); + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Error during profile monitoring cycle"); + } + } + + private async Task ApplyProfileToProcessAsync(ProcessModel process, ConditionalProcessProfile profile) + { + try + { + // Simplified profile application - would use actual process service methods + this.logger.LogInformation( + "Applying profile {ProfileName} to process {ProcessName}", + profile.Name, process.Name); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error applying profile {ProfileName} to process {ProcessName}", + profile.Name, process.Name); + return false; + } + } + + private async Task CreateDefaultProfilesAsync() + { + // Create some example conditional profiles + var gameProfile = new ConditionalProcessProfile + { + Id = Guid.NewGuid().ToString(), + Name = "High Performance Gaming", + ProcessName = "*", // Wildcard for any process + Priority = 10, + AutoApplyDelay = TimeSpan.FromSeconds(3), + ConditionGroups = new List + { + new ConditionGroup + { + Name = "Gaming Conditions", + LogicalOperator = LogicalOperator.And, + Conditions = new List + { + new ProfileCondition + { + Name = "High CPU Usage", + ConditionType = ProfileConditionType.SystemLoad, + ComparisonOperator = ComparisonOperator.GreaterThan, + Value = 70.0 + }, + new ProfileCondition + { + Name = "Evening Hours", + ConditionType = ProfileConditionType.TimeOfDay, + ComparisonOperator = ComparisonOperator.Between, + Value = 18.0, // 6 PM + SecondaryValue = 23.0 // 11 PM + } + } + } + }, + }; + + await this.AddProfileAsync(gameProfile).ConfigureAwait(false); + } + + private Task GetCpuUsageAsync() + { + // Simplified CPU usage calculation + return Task.FromResult(Environment.ProcessorCount * 10.0); // Placeholder + } + + private Task GetMemoryUsageAsync() + { + var totalMemory = GC.GetTotalMemory(false); + return Task.FromResult(totalMemory / (1024.0 * 1024.0)); // MB + } + + private async Task GetProcessCountAsync() + { + var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); + return processes.Count; + } + + private bool GetBatteryStatus() + { + return SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Offline; + } + + private int GetBatteryLevel() + { + return (int)(SystemInformation.PowerStatus.BatteryLifePercent * 100); + } + + private bool GetUserIdleStatus() + { + return this.GetUserIdleTime() > TimeSpan.FromMinutes(5); + } + + private TimeSpan GetUserIdleTime() + { + // Simplified - would use Windows API to get actual idle time + return TimeSpan.FromMinutes(1); + } + + private async Task GetNetworkActivityAsync() + { + // Simplified network activity measurement + return 0.0; // Placeholder + } + + private bool HasSystemStateChangedSignificantly(SystemState current, SystemState previous) + { + const double cpuThreshold = 10.0; + const double memoryThreshold = 100.0; // MB + + return Math.Abs(current.CpuUsage - previous.CpuUsage) > cpuThreshold || + Math.Abs(current.MemoryUsage - previous.MemoryUsage) > memoryThreshold || + current.IsOnBattery != previous.IsOnBattery; + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + this.monitoringTimer?.Dispose(); + this.profileLock?.Dispose(); + this.logger.LogInformation("ConditionalProfileService disposed"); + } + this.disposed = true; + } + } + + public void Dispose() + { + this.Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} + diff --git a/Services/Core/BaseSystemService.cs b/Services/Core/BaseSystemService.cs index 811b166..1614f8b 100644 --- a/Services/Core/BaseSystemService.cs +++ b/Services/Core/BaseSystemService.cs @@ -1,124 +1,105 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services.Core -{ - using System; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Base implementation for system services with common functionality. - /// - public abstract class BaseSystemService : ISystemService, IDisposable - { - protected readonly ILogger Logger; - private bool isAvailable; - private bool disposed; - - public bool IsAvailable - { - get => this.isAvailable; - protected set - { - if (this.isAvailable != value) - { - this.isAvailable = value; - this.OnAvailabilityChanged(value); - } - } - } - - public event EventHandler? AvailabilityChanged; - - protected BaseSystemService(ILogger logger) - { - this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public virtual async Task InitializeAsync() - { - try - { - this.Logger.LogInformation("Initializing {ServiceType}", this.GetType().Name); - await this.InitializeServiceAsync(); - this.IsAvailable = true; - this.Logger.LogInformation("{ServiceType} initialized successfully", this.GetType().Name); - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Failed to initialize {ServiceType}", this.GetType().Name); - this.IsAvailable = false; - throw; - } - } - - public virtual async Task DisposeAsync() - { - if (this.disposed) - { - return; - } - - try - { - this.Logger.LogInformation("Disposing {ServiceType}", this.GetType().Name); - await this.DisposeServiceAsync(); - this.IsAvailable = false; - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Error disposing {ServiceType}", this.GetType().Name); - } - finally - { - this.disposed = true; - } - } - - protected abstract Task InitializeServiceAsync(); - - protected abstract Task DisposeServiceAsync(); - - protected virtual void OnAvailabilityChanged(bool isAvailable, string? reason = null) - { - this.AvailabilityChanged?.Invoke(this, new ServiceAvailabilityChangedEventArgs(isAvailable, reason)); - } - - protected void ThrowIfDisposed() - { - if (this.disposed) - { - throw new ObjectDisposedException(this.GetType().Name); - } - } - - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if (!this.disposed && disposing) - { - _ = Task.Run(async () => await this.DisposeAsync()); - } - } - } -} - +namespace ThreadPilot.Services.Core +{ + using System; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + + public abstract class BaseSystemService : ISystemService, IDisposable + { + protected readonly ILogger Logger; + private bool isAvailable; + private bool disposed; + + public bool IsAvailable + { + get => this.isAvailable; + protected set + { + if (this.isAvailable != value) + { + this.isAvailable = value; + this.OnAvailabilityChanged(value); + } + } + } + + public event EventHandler? AvailabilityChanged; + + protected BaseSystemService(ILogger logger) + { + this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public virtual async Task InitializeAsync() + { + try + { + this.Logger.LogInformation("Initializing {ServiceType}", this.GetType().Name); + await this.InitializeServiceAsync(); + this.IsAvailable = true; + this.Logger.LogInformation("{ServiceType} initialized successfully", this.GetType().Name); + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Failed to initialize {ServiceType}", this.GetType().Name); + this.IsAvailable = false; + throw; + } + } + + public virtual async Task DisposeAsync() + { + if (this.disposed) + { + return; + } + + try + { + this.Logger.LogInformation("Disposing {ServiceType}", this.GetType().Name); + await this.DisposeServiceAsync(); + this.IsAvailable = false; + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Error disposing {ServiceType}", this.GetType().Name); + } + finally + { + this.disposed = true; + } + } + + protected abstract Task InitializeServiceAsync(); + + protected abstract Task DisposeServiceAsync(); + + protected virtual void OnAvailabilityChanged(bool isAvailable, string? reason = null) + { + this.AvailabilityChanged?.Invoke(this, new ServiceAvailabilityChangedEventArgs(isAvailable, reason)); + } + + protected void ThrowIfDisposed() + { + if (this.disposed) + { + throw new ObjectDisposedException(this.GetType().Name); + } + } + + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed && disposing) + { + _ = Task.Run(async () => await this.DisposeAsync()); + } + } + } +} + diff --git a/Services/Core/ISystemService.cs b/Services/Core/ISystemService.cs index ac7bcaa..4875784 100644 --- a/Services/Core/ISystemService.cs +++ b/Services/Core/ISystemService.cs @@ -1,63 +1,29 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services.Core -{ - using System; - - /// - /// Base interface for core system services that interact directly with the operating system. - /// - public interface ISystemService - { - /// - /// Gets a value indicating whether gets whether the service is currently available and functional. - /// - bool IsAvailable { get; } - - /// - /// Event fired when the service availability changes - /// - event EventHandler? AvailabilityChanged; - - /// - /// Initialize the service. - /// - Task InitializeAsync(); - - /// - /// Cleanup and dispose of service resources. - /// - Task DisposeAsync(); - } - - /// - /// Event args for service availability changes. - /// - public class ServiceAvailabilityChangedEventArgs : EventArgs - { - public bool IsAvailable { get; } - - public string? Reason { get; } - - public ServiceAvailabilityChangedEventArgs(bool isAvailable, string? reason = null) - { - this.IsAvailable = isAvailable; - this.Reason = reason; - } - } -} - +namespace ThreadPilot.Services.Core +{ + using System; + + public interface ISystemService + { + bool IsAvailable { get; } + + event EventHandler? AvailabilityChanged; + + Task InitializeAsync(); + + Task DisposeAsync(); + } + + public class ServiceAvailabilityChangedEventArgs : EventArgs + { + public bool IsAvailable { get; } + + public string? Reason { get; } + + public ServiceAvailabilityChangedEventArgs(bool isAvailable, string? reason = null) + { + this.IsAvailable = isAvailable; + this.Reason = reason; + } + } +} + diff --git a/Services/CoreMaskService.cs b/Services/CoreMaskService.cs index a124735..9dd8fb1 100644 --- a/Services/CoreMaskService.cs +++ b/Services/CoreMaskService.cs @@ -1,918 +1,872 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Diagnostics; - using System.IO; - using System.Linq; - using System.Text; - using System.Text.Json; - using System.Threading; - using System.Threading.Tasks; - using System.Windows; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Service for managing CPU core affinity masks - /// Based on CPUSetSetter's AppConfig and LogicalProcessorMask system. - /// - public class CoreMaskService : ICoreMaskService - { - private static readonly JsonSerializerOptions JsonOptions = new() - { - WriteIndented = true, - PropertyNameCaseInsensitive = true, - ReadCommentHandling = JsonCommentHandling.Skip, - AllowTrailingCommas = true, - }; - - private readonly ILogger logger; - private readonly ICpuTopologyService cpuTopologyService; - private readonly IServiceProvider serviceProvider; - private readonly ICpuTopologyProvider? cpuTopologyProvider; - private readonly CpuSelectionMigrationService cpuSelectionMigrationService; - private readonly string masksFilePath; - private bool initialized = false; - private int topologyBackfillInProgress; - - // Tracks which masks are actively applied to processes - private readonly Dictionary activeProcessMasks = new(); // ProcessId -> MaskId - - public ObservableCollection AvailableMasks { get; private set; } = new(); - - public CoreMask? DefaultMask => this.AvailableMasks.FirstOrDefault(m => m.IsDefault); - - /// - /// The "All Cores" baseline mask - cannot be deleted. - /// - private const string ALLCORESMASKNAME = "All Cores"; - private const string NOCORE0MASKNAME = "No Core 0"; - - public CoreMaskService( - ILogger logger, - ICpuTopologyService cpuTopologyService, - IServiceProvider serviceProvider, - ICpuTopologyProvider? cpuTopologyProvider = null, - CpuSelectionMigrationService? cpuSelectionMigrationService = null, - string? masksFilePath = null) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.cpuTopologyService = cpuTopologyService ?? throw new ArgumentNullException(nameof(cpuTopologyService)); - this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); - this.cpuTopologyProvider = cpuTopologyProvider; - this.cpuSelectionMigrationService = cpuSelectionMigrationService ?? new CpuSelectionMigrationService(); - - if (string.IsNullOrWhiteSpace(masksFilePath)) - { - StoragePaths.EnsureAppDataDirectories(); - this.masksFilePath = StoragePaths.CoreMasksFilePath; - } - else - { - Directory.CreateDirectory(Path.GetDirectoryName(masksFilePath)!); - this.masksFilePath = masksFilePath; - } - - this.cpuTopologyService.TopologyDetected += this.OnTopologyDetected; - } - - public async Task InitializeAsync() - { - if (this.initialized) - { - return; - } - - this.logger.LogInformation("Initializing CoreMaskService..."); - - await this.LoadMasksAsync(); - - if (this.AvailableMasks.Count == 0) - { - this.logger.LogInformation("No masks found, creating defaults..."); - } - - if (await this.BackfillBuiltInDefaultMasksAsync()) - { - await this.SaveMasksAsync(); - } - - this.initialized = true; - this.logger.LogInformation("CoreMaskService initialized with {Count} masks", this.AvailableMasks.Count); - } - - private void OnTopologyDetected(object? sender, CpuTopologyDetectedEventArgs e) - { - if (!this.initialized || !e.DetectionSuccessful) - { - return; - } - - var dispatcher = Application.Current?.Dispatcher; - if (dispatcher != null) - { - _ = dispatcher.InvokeAsync(async () => await this.BackfillBuiltInDefaultMasksAndSaveAsync()); - return; - } - - _ = Task.Run(this.BackfillBuiltInDefaultMasksAndSaveAsync); - } - - private async Task BackfillBuiltInDefaultMasksAndSaveAsync() - { - if (Interlocked.Exchange(ref this.topologyBackfillInProgress, 1) != 0) - { - return; - } - - try - { - if (await this.BackfillBuiltInDefaultMasksAsync()) - { - await this.SaveMasksAsync(); - } - } - finally - { - Interlocked.Exchange(ref this.topologyBackfillInProgress, 0); - } - } - - public async Task CreateMaskAsync(string name, string description, IEnumerable boolMask) - { - var mask = new CoreMask - { - Name = name, - Description = description, - CreatedAt = DateTime.UtcNow, - UpdatedAt = DateTime.UtcNow, - }; - - foreach (var bit in boolMask) - { - mask.BoolMask.Add(bit); - } - - this.AvailableMasks.Add(mask); - await this.SaveMasksAsync(); - - this.logger.LogInformation( - "Created new mask '{Name}' with {Count} cores selected", - name, mask.SelectedCoreCount); - - return mask; - } - - public async Task UpdateMaskAsync(CoreMask mask) - { - if (mask == null) - { - throw new ArgumentNullException(nameof(mask)); - } - - var existing = this.GetMaskById(mask.Id); - if (existing == null) - { - this.logger.LogWarning("Cannot update mask {Id}: not found", mask.Id); - return; - } - - mask.UpdatedAt = DateTime.UtcNow; - await this.SaveMasksAsync(); - - this.logger.LogInformation("Updated mask '{Name}'", mask.Name); - } - - public async Task DeleteMaskAsync(string maskId) - { - var mask = this.GetMaskById(maskId); - if (mask == null) - { - this.logger.LogWarning("Cannot delete mask {Id}: not found", maskId); - return; - } - - // Cannot delete the "All Cores" baseline mask - if (mask.Name == ALLCORESMASKNAME) - { - this.logger.LogWarning("Cannot delete 'All Cores' baseline mask"); - throw new InvalidOperationException("Cannot delete the 'All Cores' baseline mask - it is required as the default fallback"); - } - - // Check if mask is actively applied to running processes - if (await this.IsMaskActivelyAppliedAsync(maskId)) - { - this.logger.LogWarning("Cannot delete mask '{Name}': it is actively applied to running processes", mask.Name); - throw new InvalidOperationException($"Cannot delete mask '{mask.Name}' - it is currently applied to running processes. Please change the mask on those processes first."); - } - - this.AvailableMasks.Remove(mask); - await this.SaveMasksAsync(); - - this.logger.LogInformation("Deleted mask '{Name}'", mask.Name); - } - - public CoreMask? GetMaskById(string maskId) - { - return this.AvailableMasks.FirstOrDefault(m => m.Id == maskId); - } - - public CoreMask? GetMaskByName(string name) - { - return this.AvailableMasks.FirstOrDefault(m => - m.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); - } - - public async Task SaveMasksAsync() - { - try - { - await this.ApplyCpuSelectionMigrationAsync().ConfigureAwait(false); - - var data = this.AvailableMasks.Select(m => new - { - id = m.Id, - name = m.Name, - description = m.Description, - boolMask = m.BoolMask.ToList(), - profileSchemaVersion = m.ProfileSchemaVersion, - cpuSelection = m.CpuSelection, - cpuSelectionMigration = m.CpuSelectionMigration, - isDefault = m.IsDefault, - isEnabled = m.IsEnabled, - createdAt = m.CreatedAt, - updatedAt = m.UpdatedAt, - }).ToList(); - - var json = JsonSerializer.Serialize(data, JsonOptions); - - await AtomicFileWriter.WriteAllTextAsync(this.masksFilePath, json, Encoding.UTF8); - this.logger.LogDebug("Saved {Count} masks to {Path}", this.AvailableMasks.Count, this.masksFilePath); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to save masks to {Path}", this.masksFilePath); - throw; - } - } - - public async Task LoadMasksAsync() - { - try - { - if (!File.Exists(this.masksFilePath)) - { - this.logger.LogInformation("Masks file not found at {Path}, will create defaults", this.masksFilePath); - return; - } - - var json = await File.ReadAllTextAsync(this.masksFilePath); - var data = JsonSerializer.Deserialize>(json, JsonOptions); - - if (data == null) - { - this.logger.LogWarning("Failed to deserialize masks from {Path}", this.masksFilePath); - return; - } - - this.AvailableMasks.Clear(); - - foreach (var item in data) - { - try - { - var mask = new CoreMask - { - Id = item.GetProperty("id").GetString() ?? Guid.NewGuid().ToString(), - Name = item.GetProperty("name").GetString() ?? "Unnamed", - Description = item.GetProperty("description").GetString() ?? string.Empty, - ProfileSchemaVersion = item.TryGetProperty("profileSchemaVersion", out var schemaVersion) - ? schemaVersion.GetInt32() - : CpuAffinityProfileSchemaVersions.Legacy, - IsDefault = item.GetProperty("isDefault").GetBoolean(), - IsEnabled = item.GetProperty("isEnabled").GetBoolean(), - CreatedAt = item.GetProperty("createdAt").GetDateTime(), - UpdatedAt = item.GetProperty("updatedAt").GetDateTime(), - }; - - var boolMask = item.GetProperty("boolMask"); - foreach (var bit in boolMask.EnumerateArray()) - { - mask.BoolMask.Add(bit.GetBoolean()); - } - - if (item.TryGetProperty("cpuSelection", out var cpuSelectionElement) && - cpuSelectionElement.ValueKind != JsonValueKind.Null) - { - mask.CpuSelection = cpuSelectionElement.Deserialize(JsonOptions); - } - - if (item.TryGetProperty("cpuSelectionMigration", out var migrationElement) && - migrationElement.ValueKind != JsonValueKind.Null) - { - mask.CpuSelectionMigration = migrationElement.Deserialize(JsonOptions); - } - - this.AvailableMasks.Add(mask); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to load individual mask, skipping"); - } - } - - await this.ApplyCpuSelectionMigrationAsync().ConfigureAwait(false); - this.logger.LogInformation("Loaded {Count} masks from {Path}", this.AvailableMasks.Count, this.masksFilePath); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to load masks from {Path}", this.masksFilePath); - } - } - - public async Task IsMaskReferencedByProfilesAsync(string maskId) - { - try - { - var profileNames = await this.GetProfilesReferencingMaskAsync(maskId); - return profileNames.Any(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to check if mask {MaskId} is referenced by profiles", maskId); - return false; - } - } - - private async Task ApplyCpuSelectionMigrationAsync() - { - var topology = await this.TryGetTopologySnapshotAsync().ConfigureAwait(false); - if (topology == null) - { - return; - } - - foreach (var mask in this.AvailableMasks) - { - if (mask.CpuSelection != null) - { - mask.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; - continue; - } - - if (mask.BoolMask.Count == 0) - { - continue; - } - - var migrated = this.cpuSelectionMigrationService.MigrateFromLegacyCoreMask( - mask.BoolMask.ToList(), - topology); - mask.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; - mask.CpuSelection = migrated.Selection; - mask.CpuSelectionMigration = migrated.Metadata; - } - } - - private async Task TryGetTopologySnapshotAsync() - { - if (this.cpuTopologyProvider == null) - { - return null; - } - - try - { - return await this.cpuTopologyProvider.GetTopologySnapshotAsync().ConfigureAwait(false); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to get CPU topology snapshot for core mask CpuSelection migration"); - return null; - } - } - - public async Task IsMaskActivelyAppliedAsync(string maskId) - { - try - { - // Check our tracking dictionary for active process masks - var isActive = this.activeProcessMasks.ContainsValue(maskId); - - if (isActive) - { - // Verify processes are still running - var deadProcesses = new List(); - foreach (var kvp in this.activeProcessMasks.Where(x => x.Value == maskId)) - { - try - { - Process.GetProcessById(kvp.Key); - } - catch (ArgumentException) - { - // Process no longer exists - deadProcesses.Add(kvp.Key); - } - } - - // Clean up dead processes - foreach (var pid in deadProcesses) - { - this.activeProcessMasks.Remove(pid); - } - - // Re-check after cleanup - isActive = this.activeProcessMasks.ContainsValue(maskId); - } - - await Task.CompletedTask; - return isActive; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to check if mask {MaskId} is actively applied", maskId); - return false; - } - } - - public async Task> GetProfilesReferencingMaskAsync(string maskId) - { - var referencingProfiles = new List(); - - try - { - // Get the association service to check profiles - var associationService = this.serviceProvider.GetService(typeof(IProcessPowerPlanAssociationService)) as IProcessPowerPlanAssociationService; - if (associationService != null) - { - var associations = await associationService.GetAssociationsAsync(); - foreach (var association in associations) - { - if (association.CoreMaskId == maskId) - { - var profileName = !string.IsNullOrEmpty(association.Description) - ? association.Description - : association.ExecutableName; - referencingProfiles.Add(profileName); - } - } - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to get profiles referencing mask {MaskId}", maskId); - } - - return referencingProfiles; - } - - public async Task UpdateProfilesToDefaultMaskAsync(string maskId) - { - try - { - var allCoresMask = this.GetAllCoresMask(); - if (allCoresMask == null) - { - this.logger.LogError("Cannot update profiles: 'All Cores' mask not found"); - return; - } - - var associationService = this.serviceProvider.GetService(typeof(IProcessPowerPlanAssociationService)) as IProcessPowerPlanAssociationService; - if (associationService != null) - { - var associations = await associationService.GetAssociationsAsync(); - foreach (var association in associations) - { - if (association.CoreMaskId == maskId) - { - association.CoreMaskId = allCoresMask.Id; - association.CoreMaskName = allCoresMask.Name; - await associationService.UpdateAssociationAsync(association); - this.logger.LogInformation("Updated association '{Name}' to use 'All Cores' mask", association.ExecutableName); - } - } - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to update profiles to default mask"); - } - } - - public CoreMask? GetAllCoresMask() - { - return this.AvailableMasks.FirstOrDefault(m => m.Name == ALLCORESMASKNAME); - } - - /// - /// Registers that a mask is being applied to a process. - /// - public void RegisterMaskApplication(int processId, string maskId) - { - this.activeProcessMasks[processId] = maskId; - this.logger.LogDebug("Registered mask {MaskId} for process {ProcessId}", maskId, processId); - } - - /// - /// Unregisters a mask application when a process exits or mask is removed. - /// - public void UnregisterMaskApplication(int processId) - { - if (this.activeProcessMasks.Remove(processId)) - { - this.logger.LogDebug("Unregistered mask for process {ProcessId}", processId); - } - } - - /// - /// Gets all processes that have a specific mask applied. - /// - public IEnumerable GetProcessesWithMask(string maskId) - { - return this.activeProcessMasks.Where(x => x.Value == maskId).Select(x => x.Key); - } - - public async Task CreateDefaultMasksAsync() - { - bool changed = await this.BackfillBuiltInDefaultMasksAsync(); - if (changed) - { - await this.SaveMasksAsync(); - } - - this.logger.LogInformation( - "Created or backfilled default masks with topology-aware presets; total masks: {Count}", - this.AvailableMasks.Count); - } - - private async Task BackfillBuiltInDefaultMasksAsync() - { - var topology = this.cpuTopologyService.CurrentTopology; - int coreCount = this.ResolveLogicalCoreCount(topology); - bool topologyConfident = topology?.TopologyDetectionSuccessful == true; - bool hasHyperThreading = topology?.HasHyperThreading == true; - bool canCreateNoSmtVariants = topologyConfident && hasHyperThreading; - bool changed = false; - - // Collect all default masks with their "no SMT" variants - var defaultMasks = new List<(string name, List boolMask, string description)>(); - - // Determine CPU manufacturer for naming convention - bool isIntel = topology?.CpuBrand?.Contains("Intel", StringComparison.OrdinalIgnoreCase) == true; - bool isAmd = topology?.CpuBrand?.Contains("AMD", StringComparison.OrdinalIgnoreCase) == true; - string noSmtSuffix = isIntel ? " no HT" : " no SMT"; - - // 1. Always add "All Cores" baseline mask (IsDefault = true, cannot be deleted) - var allCoresMask = new CoreMask - { - Name = ALLCORESMASKNAME, - Description = "Use all available CPU cores - baseline mask", - IsDefault = true, - IsEnabled = true, - }; - for (int i = 0; i < coreCount; i++) - { - allCoresMask.BoolMask.Add(true); - } - - changed |= this.AddBuiltInMaskIfMissing(allCoresMask); - - if (coreCount > 1) - { - var noCoreZeroMask = new CoreMask - { - Name = NOCORE0MASKNAME, - Description = "Use all logical CPUs except CPU 0", - IsDefault = false, - IsEnabled = true, - }; - - for (int i = 0; i < coreCount; i++) - { - noCoreZeroMask.BoolMask.Add(i != 0); - } - - changed |= this.AddBuiltInMaskIfMissing(noCoreZeroMask); - } - - // 2. Intel Hybrid Architecture: P-Cores, E-Cores, LPE-Cores (Arrow Lake+) - if (topology != null && topology.HasIntelHybrid) - { - // Detect efficiency class distribution for LPE support - var efficiencyClasses = topology.LogicalCores - .Select(c => this.GetEfficiencyClass(c)) - .Distinct() - .OrderByDescending(x => x) - .ToList(); - - bool hasLpeCores = efficiencyClasses.Count >= 3; // P, E, LPE - int pClass = hasLpeCores ? 2 : 1; - int eClass = hasLpeCores ? 1 : 0; - int lpeClass = 0; - - // P-Cores mask - var pCoresBoolMask = new List(); - for (int i = 0; i < coreCount; i++) - { - var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); - pCoresBoolMask.Add(this.GetEfficiencyClass(core) == pClass); - } - if (pCoresBoolMask.Any(b => b)) - { - defaultMasks.Add(("P-Cores", pCoresBoolMask, "Intel Performance cores (highest performance)")); - } - - // E-Cores mask - var eCoresBoolMask = new List(); - for (int i = 0; i < coreCount; i++) - { - var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); - eCoresBoolMask.Add(this.GetEfficiencyClass(core) == eClass); - } - if (eCoresBoolMask.Any(b => b)) - { - defaultMasks.Add(("E-Cores", eCoresBoolMask, "Intel Efficiency cores (power efficient)")); - } - - // LPE-Cores mask (Arrow Lake and beyond) - if (hasLpeCores) - { - var lpeCoresBoolMask = new List(); - for (int i = 0; i < coreCount; i++) - { - var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); - lpeCoresBoolMask.Add(this.GetEfficiencyClass(core) == lpeClass); - } - if (lpeCoresBoolMask.Any(b => b)) - { - defaultMasks.Add(("LPE-Cores", lpeCoresBoolMask, "Intel Low-Power Efficiency cores (ultra power efficient)")); - } - } - - this.logger.LogInformation("Created Intel Hybrid masks (P/E{0})", hasLpeCores ? "/LPE" : string.Empty); - } - - // 3. AMD CCD Masks with Cache/Freq differentiation (like CPU Set Setter) - if (topology != null && topology.HasAmdCcd) - { - await this.CreateAmdCcdMasksAsync(topology, defaultMasks, coreCount); - } - - // 4. Generate "no SMT/HT" variants for each mask - var resultMasks = new List(); - foreach (var (name, boolMask, description) in defaultMasks) - { - // Original mask - resultMasks.Add(this.CreateCoreMaskFromBoolList(name, boolMask, description)); - - // Skip "no HT" variants for E-Cores and LPE-Cores since they don't have HyperThreading - // Only P-Cores on Intel hybrid architectures have HT - if (name == "E-Cores" || name == "LPE-Cores") - { - continue; - } - - // No SMT variant - if (canCreateNoSmtVariants) - { - var noSmtMask = this.StripSMT(boolMask, topology, out bool wasStripped); - if (wasStripped) - { - resultMasks.Add(this.CreateCoreMaskFromBoolList( - name + noSmtSuffix, - noSmtMask, - description + " (no HyperThreading/SMT)")); - } - } - } - - // 5. "All no HT/SMT" as the last mask - if (canCreateNoSmtVariants) - { - var allCoresBoolMask = Enumerable.Repeat(true, coreCount).ToList(); - var allNoSmtMask = this.StripSMT(allCoresBoolMask, topology, out bool hasStripped); - if (hasStripped) - { - resultMasks.Add(this.CreateCoreMaskFromBoolList( - "All" + noSmtSuffix, - allNoSmtMask, - "All physical cores without HyperThreading/SMT")); - } - } - - // Add all generated masks to AvailableMasks - foreach (var mask in resultMasks) - { - changed |= this.AddBuiltInMaskIfMissing(mask); - } - - await Task.CompletedTask; - return changed; - } - - private int ResolveLogicalCoreCount(CpuTopologyModel? topology) - { - if (topology?.TopologyDetectionSuccessful == true && topology.TotalLogicalCores > 0) - { - return topology.TotalLogicalCores; - } - - return Environment.ProcessorCount; - } - - private bool AddBuiltInMaskIfMissing(CoreMask mask) - { - if (this.AvailableMasks.Any(existing => - existing.Name.Equals(mask.Name, StringComparison.OrdinalIgnoreCase))) - { - return false; - } - - this.AvailableMasks.Add(mask); - this.logger.LogInformation("Backfilled built-in core mask '{Name}'", mask.Name); - return true; - } - - /// - /// Creates AMD CCD masks with Cache/Freq differentiation (X3D support) - /// Based on CPU Set Setter's GetDefaultLogicalProcessorMasks. - /// - private async Task CreateAmdCcdMasksAsync( - CpuTopologyModel topology, - List<(string name, List boolMask, string description)> defaultMasks, - int coreCount) - { - try - { - var ccdIds = topology.AvailableCcds.ToList(); - - if (ccdIds.Count < 2) - { - // Single CCD - just create one CCD mask - if (ccdIds.Count == 1) - { - var ccdBoolMask = new List(); - for (int i = 0; i < coreCount; i++) - { - var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); - ccdBoolMask.Add(core?.CcdId == ccdIds[0]); - } - defaultMasks.Add(($"CCD{ccdIds[0]}", ccdBoolMask, $"AMD Core Complex Die {ccdIds[0]}")); - } - return; - } - - // Multiple CCDs - try to detect X3D (Cache vs Freq CCDs) - // X3D chips have one CCD with significantly more L3 cache - // For simplicity, we'll create numbered CCD masks - // TODO: Implement L3 cache size detection for X3D differentiation - - foreach (var ccdId in ccdIds) - { - var ccdBoolMask = new List(); - for (int i = 0; i < coreCount; i++) - { - var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); - ccdBoolMask.Add(core?.CcdId == ccdId); - } - - if (ccdBoolMask.Any(b => b)) - { - defaultMasks.Add(($"CCD{ccdId}", ccdBoolMask, $"AMD Core Complex Die {ccdId}")); - } - } - - this.logger.LogInformation( - "Created {Count} AMD CCD masks for CCDs: {CCDs}", - ccdIds.Count, string.Join(", ", ccdIds)); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to create AMD CCD masks"); - } - } - - /// - /// Strips SMT/HT threads from a bool mask, keeping only physical cores (T0) - /// Based on CPU Set Setter's StripSMT method. - /// - private List StripSMT(List boolMask, CpuTopologyModel? topology, out bool hasStripped) - { - var result = new List(boolMask.Count); - hasStripped = false; - - var coreById = topology?.LogicalCores.ToDictionary(c => c.LogicalCoreId); - var primaryThreadIds = new HashSet(); - - if (coreById != null) - { - foreach (var group in coreById.Values.GroupBy(c => c.PhysicalCoreId)) - { - var primary = group.OrderBy(c => c.LogicalCoreId).First(); - primaryThreadIds.Add(primary.LogicalCoreId); - } - } - - bool topologyBased = topology?.TopologyDetectionSuccessful == true && primaryThreadIds.Count > 0; - - for (int i = 0; i < boolMask.Count; i++) - { - bool isSMTThread = false; - bool keepBit = boolMask[i]; - - if (keepBit) - { - if (topologyBased && coreById != null && coreById.TryGetValue(i, out var core)) - { - isSMTThread = core.IsHyperThreaded && !primaryThreadIds.Contains(i); - } - else - { - // Fallback heuristic based on naming - var fallbackCore = coreById != null && coreById.TryGetValue(i, out var c) ? c : null; - var name = fallbackCore?.LogicalProcessorName; - if (!string.IsNullOrEmpty(name) && name.Length >= 2) - { - var lastTwo = name.Substring(name.Length - 2); - if (lastTwo.StartsWith("T") || lastTwo.StartsWith("_T")) - { - isSMTThread = !name.EndsWith("T0") && !name.EndsWith("_T0"); - } - } - else if (fallbackCore?.IsHyperThreaded == true && fallbackCore.HyperThreadSibling.HasValue) - { - isSMTThread = fallbackCore.LogicalCoreId > fallbackCore.HyperThreadSibling.Value; - } - } - } - - if (keepBit && isSMTThread) - { - hasStripped = true; - } - - result.Add(keepBit && !isSMTThread); - } - - return result; - } - - /// - /// Gets the efficiency class of a core (for Intel Hybrid detection). - /// - private int GetEfficiencyClass(CpuCoreModel? core) - { - if (core == null) - { - return 0; - } - - return core.CoreType switch - { - CpuCoreType.PerformanceCore => 2, // Highest efficiency class - CpuCoreType.EfficiencyCore => 1, // Middle efficiency class - _ => 0, // Lowest (or unknown/LPE) - }; - } - - /// - /// Creates a CoreMask from a bool list. - /// - private CoreMask CreateCoreMaskFromBoolList(string name, List boolMask, string description) - { - var mask = new CoreMask - { - Name = name, - Description = description, - IsDefault = false, - IsEnabled = true, - }; - - foreach (var bit in boolMask) - { - mask.BoolMask.Add(bit); - } - - return mask; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Diagnostics; + using System.IO; + using System.Linq; + using System.Text; + using System.Text.Json; + using System.Threading; + using System.Threading.Tasks; + using System.Windows; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class CoreMaskService : ICoreMaskService + { + private static readonly JsonSerializerOptions JsonOptions = new() + { + WriteIndented = true, + PropertyNameCaseInsensitive = true, + ReadCommentHandling = JsonCommentHandling.Skip, + AllowTrailingCommas = true, + }; + + private readonly ILogger logger; + private readonly ICpuTopologyService cpuTopologyService; + private readonly IServiceProvider serviceProvider; + private readonly ICpuTopologyProvider? cpuTopologyProvider; + private readonly CpuSelectionMigrationService cpuSelectionMigrationService; + private readonly string masksFilePath; + private bool initialized = false; + private int topologyBackfillInProgress; + + // Tracks which masks are actively applied to processes + private readonly Dictionary activeProcessMasks = new(); // ProcessId -> MaskId + + public ObservableCollection AvailableMasks { get; private set; } = new(); + + public CoreMask? DefaultMask => this.AvailableMasks.FirstOrDefault(m => m.IsDefault); + + private const string ALLCORESMASKNAME = "All Cores"; + private const string NOCORE0MASKNAME = "No Core 0"; + + public CoreMaskService( + ILogger logger, + ICpuTopologyService cpuTopologyService, + IServiceProvider serviceProvider, + ICpuTopologyProvider? cpuTopologyProvider = null, + CpuSelectionMigrationService? cpuSelectionMigrationService = null, + string? masksFilePath = null) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.cpuTopologyService = cpuTopologyService ?? throw new ArgumentNullException(nameof(cpuTopologyService)); + this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); + this.cpuTopologyProvider = cpuTopologyProvider; + this.cpuSelectionMigrationService = cpuSelectionMigrationService ?? new CpuSelectionMigrationService(); + + if (string.IsNullOrWhiteSpace(masksFilePath)) + { + StoragePaths.EnsureAppDataDirectories(); + this.masksFilePath = StoragePaths.CoreMasksFilePath; + } + else + { + Directory.CreateDirectory(Path.GetDirectoryName(masksFilePath)!); + this.masksFilePath = masksFilePath; + } + + this.cpuTopologyService.TopologyDetected += this.OnTopologyDetected; + } + + public async Task InitializeAsync() + { + if (this.initialized) + { + return; + } + + this.logger.LogInformation("Initializing CoreMaskService..."); + + await this.LoadMasksAsync(); + + if (this.AvailableMasks.Count == 0) + { + this.logger.LogInformation("No masks found, creating defaults..."); + } + + if (await this.BackfillBuiltInDefaultMasksAsync()) + { + await this.SaveMasksAsync(); + } + + this.initialized = true; + this.logger.LogInformation("CoreMaskService initialized with {Count} masks", this.AvailableMasks.Count); + } + + private void OnTopologyDetected(object? sender, CpuTopologyDetectedEventArgs e) + { + if (!this.initialized || !e.DetectionSuccessful) + { + return; + } + + var dispatcher = Application.Current?.Dispatcher; + if (dispatcher != null) + { + _ = dispatcher.InvokeAsync(async () => await this.BackfillBuiltInDefaultMasksAndSaveAsync()); + return; + } + + _ = Task.Run(this.BackfillBuiltInDefaultMasksAndSaveAsync); + } + + private async Task BackfillBuiltInDefaultMasksAndSaveAsync() + { + if (Interlocked.Exchange(ref this.topologyBackfillInProgress, 1) != 0) + { + return; + } + + try + { + if (await this.BackfillBuiltInDefaultMasksAsync()) + { + await this.SaveMasksAsync(); + } + } + finally + { + Interlocked.Exchange(ref this.topologyBackfillInProgress, 0); + } + } + + public async Task CreateMaskAsync(string name, string description, IEnumerable boolMask) + { + var mask = new CoreMask + { + Name = name, + Description = description, + CreatedAt = DateTime.UtcNow, + UpdatedAt = DateTime.UtcNow, + }; + + foreach (var bit in boolMask) + { + mask.BoolMask.Add(bit); + } + + this.AvailableMasks.Add(mask); + await this.SaveMasksAsync(); + + this.logger.LogInformation( + "Created new mask '{Name}' with {Count} cores selected", + name, mask.SelectedCoreCount); + + return mask; + } + + public async Task UpdateMaskAsync(CoreMask mask) + { + if (mask == null) + { + throw new ArgumentNullException(nameof(mask)); + } + + var existing = this.GetMaskById(mask.Id); + if (existing == null) + { + this.logger.LogWarning("Cannot update mask {Id}: not found", mask.Id); + return; + } + + mask.UpdatedAt = DateTime.UtcNow; + await this.SaveMasksAsync(); + + this.logger.LogInformation("Updated mask '{Name}'", mask.Name); + } + + public async Task DeleteMaskAsync(string maskId) + { + var mask = this.GetMaskById(maskId); + if (mask == null) + { + this.logger.LogWarning("Cannot delete mask {Id}: not found", maskId); + return; + } + + // Cannot delete the "All Cores" baseline mask + if (mask.Name == ALLCORESMASKNAME) + { + this.logger.LogWarning("Cannot delete 'All Cores' baseline mask"); + throw new InvalidOperationException("Cannot delete the 'All Cores' baseline mask - it is required as the default fallback"); + } + + // Check if mask is actively applied to running processes + if (await this.IsMaskActivelyAppliedAsync(maskId)) + { + this.logger.LogWarning("Cannot delete mask '{Name}': it is actively applied to running processes", mask.Name); + throw new InvalidOperationException($"Cannot delete mask '{mask.Name}' - it is currently applied to running processes. Please change the mask on those processes first."); + } + + this.AvailableMasks.Remove(mask); + await this.SaveMasksAsync(); + + this.logger.LogInformation("Deleted mask '{Name}'", mask.Name); + } + + public CoreMask? GetMaskById(string maskId) + { + return this.AvailableMasks.FirstOrDefault(m => m.Id == maskId); + } + + public CoreMask? GetMaskByName(string name) + { + return this.AvailableMasks.FirstOrDefault(m => + m.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + + public async Task SaveMasksAsync() + { + try + { + await this.ApplyCpuSelectionMigrationAsync().ConfigureAwait(false); + + var data = this.AvailableMasks.Select(m => new + { + id = m.Id, + name = m.Name, + description = m.Description, + boolMask = m.BoolMask.ToList(), + profileSchemaVersion = m.ProfileSchemaVersion, + cpuSelection = m.CpuSelection, + cpuSelectionMigration = m.CpuSelectionMigration, + isDefault = m.IsDefault, + isEnabled = m.IsEnabled, + createdAt = m.CreatedAt, + updatedAt = m.UpdatedAt, + }).ToList(); + + var json = JsonSerializer.Serialize(data, JsonOptions); + + await AtomicFileWriter.WriteAllTextAsync(this.masksFilePath, json, Encoding.UTF8); + this.logger.LogDebug("Saved {Count} masks to {Path}", this.AvailableMasks.Count, this.masksFilePath); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to save masks to {Path}", this.masksFilePath); + throw; + } + } + + public async Task LoadMasksAsync() + { + try + { + if (!File.Exists(this.masksFilePath)) + { + this.logger.LogInformation("Masks file not found at {Path}, will create defaults", this.masksFilePath); + return; + } + + var json = await File.ReadAllTextAsync(this.masksFilePath); + var data = JsonSerializer.Deserialize>(json, JsonOptions); + + if (data == null) + { + this.logger.LogWarning("Failed to deserialize masks from {Path}", this.masksFilePath); + return; + } + + this.AvailableMasks.Clear(); + + foreach (var item in data) + { + try + { + var mask = new CoreMask + { + Id = item.GetProperty("id").GetString() ?? Guid.NewGuid().ToString(), + Name = item.GetProperty("name").GetString() ?? "Unnamed", + Description = item.GetProperty("description").GetString() ?? string.Empty, + ProfileSchemaVersion = item.TryGetProperty("profileSchemaVersion", out var schemaVersion) + ? schemaVersion.GetInt32() + : CpuAffinityProfileSchemaVersions.Legacy, + IsDefault = item.GetProperty("isDefault").GetBoolean(), + IsEnabled = item.GetProperty("isEnabled").GetBoolean(), + CreatedAt = item.GetProperty("createdAt").GetDateTime(), + UpdatedAt = item.GetProperty("updatedAt").GetDateTime(), + }; + + var boolMask = item.GetProperty("boolMask"); + foreach (var bit in boolMask.EnumerateArray()) + { + mask.BoolMask.Add(bit.GetBoolean()); + } + + if (item.TryGetProperty("cpuSelection", out var cpuSelectionElement) && + cpuSelectionElement.ValueKind != JsonValueKind.Null) + { + mask.CpuSelection = cpuSelectionElement.Deserialize(JsonOptions); + } + + if (item.TryGetProperty("cpuSelectionMigration", out var migrationElement) && + migrationElement.ValueKind != JsonValueKind.Null) + { + mask.CpuSelectionMigration = migrationElement.Deserialize(JsonOptions); + } + + this.AvailableMasks.Add(mask); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to load individual mask, skipping"); + } + } + + await this.ApplyCpuSelectionMigrationAsync().ConfigureAwait(false); + this.logger.LogInformation("Loaded {Count} masks from {Path}", this.AvailableMasks.Count, this.masksFilePath); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to load masks from {Path}", this.masksFilePath); + } + } + + public async Task IsMaskReferencedByProfilesAsync(string maskId) + { + try + { + var profileNames = await this.GetProfilesReferencingMaskAsync(maskId); + return profileNames.Any(); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to check if mask {MaskId} is referenced by profiles", maskId); + return false; + } + } + + private async Task ApplyCpuSelectionMigrationAsync() + { + var topology = await this.TryGetTopologySnapshotAsync().ConfigureAwait(false); + if (topology == null) + { + return; + } + + foreach (var mask in this.AvailableMasks) + { + if (mask.CpuSelection != null) + { + mask.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; + continue; + } + + if (mask.BoolMask.Count == 0) + { + continue; + } + + var migrated = this.cpuSelectionMigrationService.MigrateFromLegacyCoreMask( + mask.BoolMask.ToList(), + topology); + mask.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; + mask.CpuSelection = migrated.Selection; + mask.CpuSelectionMigration = migrated.Metadata; + } + } + + private async Task TryGetTopologySnapshotAsync() + { + if (this.cpuTopologyProvider == null) + { + return null; + } + + try + { + return await this.cpuTopologyProvider.GetTopologySnapshotAsync().ConfigureAwait(false); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to get CPU topology snapshot for core mask CpuSelection migration"); + return null; + } + } + + public async Task IsMaskActivelyAppliedAsync(string maskId) + { + try + { + // Check our tracking dictionary for active process masks + var isActive = this.activeProcessMasks.ContainsValue(maskId); + + if (isActive) + { + // Verify processes are still running + var deadProcesses = new List(); + foreach (var kvp in this.activeProcessMasks.Where(x => x.Value == maskId)) + { + try + { + Process.GetProcessById(kvp.Key); + } + catch (ArgumentException) + { + // Process no longer exists + deadProcesses.Add(kvp.Key); + } + } + + // Clean up dead processes + foreach (var pid in deadProcesses) + { + this.activeProcessMasks.Remove(pid); + } + + // Re-check after cleanup + isActive = this.activeProcessMasks.ContainsValue(maskId); + } + + await Task.CompletedTask; + return isActive; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to check if mask {MaskId} is actively applied", maskId); + return false; + } + } + + public async Task> GetProfilesReferencingMaskAsync(string maskId) + { + var referencingProfiles = new List(); + + try + { + // Get the association service to check profiles + var associationService = this.serviceProvider.GetService(typeof(IProcessPowerPlanAssociationService)) as IProcessPowerPlanAssociationService; + if (associationService != null) + { + var associations = await associationService.GetAssociationsAsync(); + foreach (var association in associations) + { + if (association.CoreMaskId == maskId) + { + var profileName = !string.IsNullOrEmpty(association.Description) + ? association.Description + : association.ExecutableName; + referencingProfiles.Add(profileName); + } + } + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to get profiles referencing mask {MaskId}", maskId); + } + + return referencingProfiles; + } + + public async Task UpdateProfilesToDefaultMaskAsync(string maskId) + { + try + { + var allCoresMask = this.GetAllCoresMask(); + if (allCoresMask == null) + { + this.logger.LogError("Cannot update profiles: 'All Cores' mask not found"); + return; + } + + var associationService = this.serviceProvider.GetService(typeof(IProcessPowerPlanAssociationService)) as IProcessPowerPlanAssociationService; + if (associationService != null) + { + var associations = await associationService.GetAssociationsAsync(); + foreach (var association in associations) + { + if (association.CoreMaskId == maskId) + { + association.CoreMaskId = allCoresMask.Id; + association.CoreMaskName = allCoresMask.Name; + await associationService.UpdateAssociationAsync(association); + this.logger.LogInformation("Updated association '{Name}' to use 'All Cores' mask", association.ExecutableName); + } + } + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to update profiles to default mask"); + } + } + + public CoreMask? GetAllCoresMask() + { + return this.AvailableMasks.FirstOrDefault(m => m.Name == ALLCORESMASKNAME); + } + + public void RegisterMaskApplication(int processId, string maskId) + { + this.activeProcessMasks[processId] = maskId; + this.logger.LogDebug("Registered mask {MaskId} for process {ProcessId}", maskId, processId); + } + + public void UnregisterMaskApplication(int processId) + { + if (this.activeProcessMasks.Remove(processId)) + { + this.logger.LogDebug("Unregistered mask for process {ProcessId}", processId); + } + } + + public IEnumerable GetProcessesWithMask(string maskId) + { + return this.activeProcessMasks.Where(x => x.Value == maskId).Select(x => x.Key); + } + + public async Task CreateDefaultMasksAsync() + { + bool changed = await this.BackfillBuiltInDefaultMasksAsync(); + if (changed) + { + await this.SaveMasksAsync(); + } + + this.logger.LogInformation( + "Created or backfilled default masks with topology-aware presets; total masks: {Count}", + this.AvailableMasks.Count); + } + + private async Task BackfillBuiltInDefaultMasksAsync() + { + var topology = this.cpuTopologyService.CurrentTopology; + int coreCount = this.ResolveLogicalCoreCount(topology); + bool topologyConfident = topology?.TopologyDetectionSuccessful == true; + bool hasHyperThreading = topology?.HasHyperThreading == true; + bool canCreateNoSmtVariants = topologyConfident && hasHyperThreading; + bool changed = false; + + // Collect all default masks with their "no SMT" variants + var defaultMasks = new List<(string name, List boolMask, string description)>(); + + // Determine CPU manufacturer for naming convention + bool isIntel = topology?.CpuBrand?.Contains("Intel", StringComparison.OrdinalIgnoreCase) == true; + bool isAmd = topology?.CpuBrand?.Contains("AMD", StringComparison.OrdinalIgnoreCase) == true; + string noSmtSuffix = isIntel ? " no HT" : " no SMT"; + + // 1. Always add "All Cores" baseline mask (IsDefault = true, cannot be deleted) + var allCoresMask = new CoreMask + { + Name = ALLCORESMASKNAME, + Description = "Use all available CPU cores - baseline mask", + IsDefault = true, + IsEnabled = true, + }; + for (int i = 0; i < coreCount; i++) + { + allCoresMask.BoolMask.Add(true); + } + + changed |= this.AddBuiltInMaskIfMissing(allCoresMask); + + if (coreCount > 1) + { + var noCoreZeroMask = new CoreMask + { + Name = NOCORE0MASKNAME, + Description = "Use all logical CPUs except CPU 0", + IsDefault = false, + IsEnabled = true, + }; + + for (int i = 0; i < coreCount; i++) + { + noCoreZeroMask.BoolMask.Add(i != 0); + } + + changed |= this.AddBuiltInMaskIfMissing(noCoreZeroMask); + } + + // 2. Intel Hybrid Architecture: P-Cores, E-Cores, LPE-Cores (Arrow Lake+) + if (topology != null && topology.HasIntelHybrid) + { + // Detect efficiency class distribution for LPE support + var efficiencyClasses = topology.LogicalCores + .Select(c => this.GetEfficiencyClass(c)) + .Distinct() + .OrderByDescending(x => x) + .ToList(); + + bool hasLpeCores = efficiencyClasses.Count >= 3; // P, E, LPE + int pClass = hasLpeCores ? 2 : 1; + int eClass = hasLpeCores ? 1 : 0; + int lpeClass = 0; + + // P-Cores mask + var pCoresBoolMask = new List(); + for (int i = 0; i < coreCount; i++) + { + var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); + pCoresBoolMask.Add(this.GetEfficiencyClass(core) == pClass); + } + if (pCoresBoolMask.Any(b => b)) + { + defaultMasks.Add(("P-Cores", pCoresBoolMask, "Intel Performance cores (highest performance)")); + } + + // E-Cores mask + var eCoresBoolMask = new List(); + for (int i = 0; i < coreCount; i++) + { + var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); + eCoresBoolMask.Add(this.GetEfficiencyClass(core) == eClass); + } + if (eCoresBoolMask.Any(b => b)) + { + defaultMasks.Add(("E-Cores", eCoresBoolMask, "Intel Efficiency cores (power efficient)")); + } + + // LPE-Cores mask (Arrow Lake and beyond) + if (hasLpeCores) + { + var lpeCoresBoolMask = new List(); + for (int i = 0; i < coreCount; i++) + { + var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); + lpeCoresBoolMask.Add(this.GetEfficiencyClass(core) == lpeClass); + } + if (lpeCoresBoolMask.Any(b => b)) + { + defaultMasks.Add(("LPE-Cores", lpeCoresBoolMask, "Intel Low-Power Efficiency cores (ultra power efficient)")); + } + } + + this.logger.LogInformation("Created Intel Hybrid masks (P/E{0})", hasLpeCores ? "/LPE" : string.Empty); + } + + // 3. AMD CCD Masks with Cache/Freq differentiation (like CPU Set Setter) + if (topology != null && topology.HasAmdCcd) + { + await this.CreateAmdCcdMasksAsync(topology, defaultMasks, coreCount); + } + + // 4. Generate "no SMT/HT" variants for each mask + var resultMasks = new List(); + foreach (var (name, boolMask, description) in defaultMasks) + { + // Original mask + resultMasks.Add(this.CreateCoreMaskFromBoolList(name, boolMask, description)); + + // Skip "no HT" variants for E-Cores and LPE-Cores since they don't have HyperThreading + // Only P-Cores on Intel hybrid architectures have HT + if (name == "E-Cores" || name == "LPE-Cores") + { + continue; + } + + // No SMT variant + if (canCreateNoSmtVariants) + { + var noSmtMask = this.StripSMT(boolMask, topology, out bool wasStripped); + if (wasStripped) + { + resultMasks.Add(this.CreateCoreMaskFromBoolList( + name + noSmtSuffix, + noSmtMask, + description + " (no HyperThreading/SMT)")); + } + } + } + + // 5. "All no HT/SMT" as the last mask + if (canCreateNoSmtVariants) + { + var allCoresBoolMask = Enumerable.Repeat(true, coreCount).ToList(); + var allNoSmtMask = this.StripSMT(allCoresBoolMask, topology, out bool hasStripped); + if (hasStripped) + { + resultMasks.Add(this.CreateCoreMaskFromBoolList( + "All" + noSmtSuffix, + allNoSmtMask, + "All physical cores without HyperThreading/SMT")); + } + } + + // Add all generated masks to AvailableMasks + foreach (var mask in resultMasks) + { + changed |= this.AddBuiltInMaskIfMissing(mask); + } + + await Task.CompletedTask; + return changed; + } + + private int ResolveLogicalCoreCount(CpuTopologyModel? topology) + { + if (topology?.TopologyDetectionSuccessful == true && topology.TotalLogicalCores > 0) + { + return topology.TotalLogicalCores; + } + + return Environment.ProcessorCount; + } + + private bool AddBuiltInMaskIfMissing(CoreMask mask) + { + if (this.AvailableMasks.Any(existing => + existing.Name.Equals(mask.Name, StringComparison.OrdinalIgnoreCase))) + { + return false; + } + + this.AvailableMasks.Add(mask); + this.logger.LogInformation("Backfilled built-in core mask '{Name}'", mask.Name); + return true; + } + + private async Task CreateAmdCcdMasksAsync( + CpuTopologyModel topology, + List<(string name, List boolMask, string description)> defaultMasks, + int coreCount) + { + try + { + var ccdIds = topology.AvailableCcds.ToList(); + + if (ccdIds.Count < 2) + { + // Single CCD - just create one CCD mask + if (ccdIds.Count == 1) + { + var ccdBoolMask = new List(); + for (int i = 0; i < coreCount; i++) + { + var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); + ccdBoolMask.Add(core?.CcdId == ccdIds[0]); + } + defaultMasks.Add(($"CCD{ccdIds[0]}", ccdBoolMask, $"AMD Core Complex Die {ccdIds[0]}")); + } + return; + } + + // Multiple CCDs - try to detect X3D (Cache vs Freq CCDs) + // X3D chips have one CCD with significantly more L3 cache + // For simplicity, we'll create numbered CCD masks + // TODO: Implement L3 cache size detection for X3D differentiation + + foreach (var ccdId in ccdIds) + { + var ccdBoolMask = new List(); + for (int i = 0; i < coreCount; i++) + { + var core = topology.LogicalCores.FirstOrDefault(c => c.LogicalCoreId == i); + ccdBoolMask.Add(core?.CcdId == ccdId); + } + + if (ccdBoolMask.Any(b => b)) + { + defaultMasks.Add(($"CCD{ccdId}", ccdBoolMask, $"AMD Core Complex Die {ccdId}")); + } + } + + this.logger.LogInformation( + "Created {Count} AMD CCD masks for CCDs: {CCDs}", + ccdIds.Count, string.Join(", ", ccdIds)); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to create AMD CCD masks"); + } + } + + private List StripSMT(List boolMask, CpuTopologyModel? topology, out bool hasStripped) + { + var result = new List(boolMask.Count); + hasStripped = false; + + var coreById = topology?.LogicalCores.ToDictionary(c => c.LogicalCoreId); + var primaryThreadIds = new HashSet(); + + if (coreById != null) + { + foreach (var group in coreById.Values.GroupBy(c => c.PhysicalCoreId)) + { + var primary = group.OrderBy(c => c.LogicalCoreId).First(); + primaryThreadIds.Add(primary.LogicalCoreId); + } + } + + bool topologyBased = topology?.TopologyDetectionSuccessful == true && primaryThreadIds.Count > 0; + + for (int i = 0; i < boolMask.Count; i++) + { + bool isSMTThread = false; + bool keepBit = boolMask[i]; + + if (keepBit) + { + if (topologyBased && coreById != null && coreById.TryGetValue(i, out var core)) + { + isSMTThread = core.IsHyperThreaded && !primaryThreadIds.Contains(i); + } + else + { + // Fallback heuristic based on naming + var fallbackCore = coreById != null && coreById.TryGetValue(i, out var c) ? c : null; + var name = fallbackCore?.LogicalProcessorName; + if (!string.IsNullOrEmpty(name) && name.Length >= 2) + { + var lastTwo = name.Substring(name.Length - 2); + if (lastTwo.StartsWith("T") || lastTwo.StartsWith("_T")) + { + isSMTThread = !name.EndsWith("T0") && !name.EndsWith("_T0"); + } + } + else if (fallbackCore?.IsHyperThreaded == true && fallbackCore.HyperThreadSibling.HasValue) + { + isSMTThread = fallbackCore.LogicalCoreId > fallbackCore.HyperThreadSibling.Value; + } + } + } + + if (keepBit && isSMTThread) + { + hasStripped = true; + } + + result.Add(keepBit && !isSMTThread); + } + + return result; + } + + private int GetEfficiencyClass(CpuCoreModel? core) + { + if (core == null) + { + return 0; + } + + return core.CoreType switch + { + CpuCoreType.PerformanceCore => 2, // Highest efficiency class + CpuCoreType.EfficiencyCore => 1, // Middle efficiency class + _ => 0, // Lowest (or unknown/LPE) + }; + } + + private CoreMask CreateCoreMaskFromBoolList(string name, List boolMask, string description) + { + var mask = new CoreMask + { + Name = name, + Description = description, + IsDefault = false, + IsEnabled = true, + }; + + foreach (var bit in boolMask) + { + mask.BoolMask.Add(bit); + } + + return mask; + } + } +} diff --git a/Services/CpuPresetGenerationOptions.cs b/Services/CpuPresetGenerationOptions.cs index cd77711..31c4baf 100644 --- a/Services/CpuPresetGenerationOptions.cs +++ b/Services/CpuPresetGenerationOptions.cs @@ -1,28 +1,12 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - public sealed record CpuPresetGenerationOptions - { - public bool ExcludeCpu0ForGaming { get; init; } = true; - - public IReadOnlySet DeletedGeneratedPresetIds { get; init; } = - new HashSet(StringComparer.Ordinal); - - public bool IncludeExperimentalPresets { get; init; } - } -} +namespace ThreadPilot.Services +{ + public sealed record CpuPresetGenerationOptions + { + public bool ExcludeCpu0ForGaming { get; init; } = true; + + public IReadOnlySet DeletedGeneratedPresetIds { get; init; } = + new HashSet(StringComparer.Ordinal); + + public bool IncludeExperimentalPresets { get; init; } + } +} diff --git a/Services/CpuPresetGenerator.cs b/Services/CpuPresetGenerator.cs index f3f31b4..3492377 100644 --- a/Services/CpuPresetGenerator.cs +++ b/Services/CpuPresetGenerator.cs @@ -1,340 +1,324 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using ThreadPilot.Models; - - public sealed class CpuPresetGenerator : ICpuPresetGenerator - { - private const string GamingWarning = - "Suggested default. Results may vary by game and system. You can edit or delete this preset."; - - public IReadOnlyList Generate( - CpuTopologySnapshot topology, - CpuPresetGenerationOptions? options = null) - { - ArgumentNullException.ThrowIfNull(topology); - - var resolvedOptions = options ?? new CpuPresetGenerationOptions(); - var presets = new List(); - - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "all-cores", - "All cores", - "Use every logical processor reported by the current CPU topology.", - topology.LogicalProcessors, - topology, - "Uses all logical processors from the topology snapshot.")); - - var allPhysicalProcessors = HasCoreIndexForAllProcessors(topology) - ? SelectOneLogicalProcessorPerCore(topology.LogicalProcessors, topology) - : []; - if (allPhysicalProcessors.Count > 0) - { - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "all-physical-cores", - "All physical cores / no SMT", - "Use one logical processor per physical core.", - allPhysicalProcessors, - topology, - "Uses CoreIndex and SMT sibling metadata to select one logical processor per core.")); - } - - var allExceptCpu0 = topology.LogicalProcessors - .Where(processor => processor.GlobalIndex != 0) - .ToList(); - if (topology.LogicalProcessors.Count >= 2 && allExceptCpu0.Count > 0) - { - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "all-except-cpu0", - "All except CPU0", - "Use every logical processor except global CPU index 0.", - allExceptCpu0, - topology, - "Excludes GlobalIndex 0 while keeping the remaining topology-aware processor refs.")); - } - - var efficiencyClasses = topology.LogicalProcessors - .Select(processor => topology.TryGetEfficiencyClass(processor, out var efficiencyClass) - ? (byte?)efficiencyClass - : null) - .Where(efficiencyClass => efficiencyClass.HasValue) - .Select(efficiencyClass => efficiencyClass!.Value) - .Distinct() - .OrderBy(efficiencyClass => efficiencyClass) - .ToList(); - - var hasDistinctEfficiencyClasses = efficiencyClasses.Count >= 2; - List pCoreProcessors = []; - if (hasDistinctEfficiencyClasses) - { - var performanceClass = efficiencyClasses.Max(); - pCoreProcessors = topology.LogicalProcessors - .Where(processor => - topology.TryGetEfficiencyClass(processor, out var efficiencyClass) && - efficiencyClass == performanceClass) - .ToList(); - var eCoreProcessors = topology.LogicalProcessors - .Where(processor => - topology.TryGetEfficiencyClass(processor, out var efficiencyClass) && - efficiencyClass < performanceClass) - .ToList(); - - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "p-cores-only", - "P-cores only", - "Use logical processors in the highest EfficiencyClass.", - pCoreProcessors, - topology, - "Uses the highest EfficiencyClass in the topology snapshot as performance cores.")); - - if (HasCoreIndexForProcessors(pCoreProcessors, topology)) - { - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "p-cores-no-smt", - "P-cores only / no SMT", - "Use one logical processor per performance core.", - SelectOneLogicalProcessorPerCore(pCoreProcessors, topology), - topology, - "Uses EfficiencyClass plus CoreIndex and SMT sibling metadata to choose one logical processor per P-core.")); - } - - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "e-cores-only", - "E-cores only", - "Use logical processors below the highest EfficiencyClass.", - eCoreProcessors, - topology, - "Uses EfficiencyClass values below the performance class as efficiency cores.", - "Usually not recommended for games. Useful for background tasks.")); - } - - if (topology.Signature.LastLevelCacheGroupCount > 1 && HasCoreIndexForAllProcessors(topology)) - { - var l3Groups = topology.LogicalProcessors - .Select(processor => topology.TryGetLastLevelCacheIndex(processor, out var cacheIndex) - ? new { Processor = processor, CacheIndex = (int?)cacheIndex } - : null) - .Where(item => item?.CacheIndex != null) - .GroupBy(item => item!.CacheIndex!.Value) - .OrderBy(group => group.Key); - - foreach (var group in l3Groups) - { - AddPreset( - presets, - resolvedOptions, - CreatePreset( - $"l3-group-{group.Key}-physical", - $"L3 group {group.Key} / physical cores", - $"Use one logical processor per core in L3/cache group {group.Key}.", - SelectOneLogicalProcessorPerCore(group.Select(item => item!.Processor), topology), - topology, - $"Based on LastLevelCacheIndex/L3 cache group {group.Key}, not on CPU SKU naming.")); - } - } - - var bestGamingSourceId = SelectBestGamingSourcePresetId(presets, resolvedOptions); - if (bestGamingSourceId != null) - { - var sourcePreset = presets.Single(preset => preset.PresetId == bestGamingSourceId); - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "best-gaming", - "Best gaming suggestion", - "Suggested topology-aware starting point for games.", - sourcePreset.Selection.LogicalProcessors, - topology, - CreateBestGamingReason(bestGamingSourceId), - GamingWarning, - sourcePresetId: bestGamingSourceId)); - } - - AddPreset( - presets, - resolvedOptions, - CreatePreset( - "safe-compatibility", - "Safe compatibility", - "Use every logical processor for maximum compatibility.", - topology.LogicalProcessors, - topology, - "Maximum compatibility.")); - - // TODO: X3D CCD-only presets require reliable cache/topology detection. - // Do not generate X3D CCD-only until it can be detected with confidence. - return presets; - } - - private static string? SelectBestGamingSourcePresetId( - IReadOnlyList presets, - CpuPresetGenerationOptions options) - { - var orderedCandidates = options.ExcludeCpu0ForGaming - ? new[] - { - "p-cores-no-smt", - "l3-group-0-physical", - "all-physical-cores", - "all-except-cpu0", - "all-cores", - } - : new[] - { - "p-cores-no-smt", - "l3-group-0-physical", - "all-physical-cores", - "all-cores", - }; - - return orderedCandidates.FirstOrDefault(candidate => - presets.Any(preset => preset.PresetId == candidate)); - } - - private static string CreateBestGamingReason(string sourcePresetId) => - sourcePresetId switch - { - "p-cores-no-smt" => - "Selected P-cores without SMT because the topology exposes distinct performance and efficiency core classes.", - "l3-group-0-physical" => - "Selected physical cores from L3/cache group 0 because the topology exposes multiple L3 groups and no P/E core classes.", - "all-physical-cores" => - "Selected one logical processor per physical core because reliable CoreIndex metadata is available.", - "all-except-cpu0" => - "Selected all logical processors except CPU0 as a conservative gaming-oriented fallback.", - "all-cores" => - "Selected all logical processors as the safest fallback because no more specific topology preset was available.", - _ => - "Selected the best available topology-aware preset for this CPU.", - }; - - private static bool HasCoreIndexForAllProcessors(CpuTopologySnapshot topology) => - HasCoreIndexForProcessors(topology.LogicalProcessors, topology); - - private static bool HasCoreIndexForProcessors( - IEnumerable processors, - CpuTopologySnapshot topology) - { - var processorList = processors.ToList(); - return processorList.Count > 0 && - processorList.All(processor => topology.TryGetCoreIndex(processor, out _)); - } - - private static List SelectOneLogicalProcessorPerCore( - IEnumerable processors, - CpuTopologySnapshot topology) - { - return processors - .Select(processor => - { - topology.TryGetCoreIndex(processor, out var coreIndex); - return new - { - Processor = processor, - CoreIndex = coreIndex, - SmtSiblingCount = topology.GetSmtSiblingGlobalIndexes(processor).Count, - }; - }) - .GroupBy(item => item.CoreIndex) - .OrderBy(group => group.Key) - .Select(group => group - .OrderBy(item => item.Processor.GlobalIndex) - .ThenBy(item => item.SmtSiblingCount) - .First() - .Processor) - .ToList(); - } - - private static CpuPreset CreatePreset( - string presetId, - string name, - string description, - IEnumerable processors, - CpuTopologySnapshot topology, - string reason, - string? warning = null, - string? sourcePresetId = null, - bool reviewRequired = false) - { - var selectedProcessors = processors - .Distinct() - .OrderBy(processor => processor.GlobalIndex) - .ThenBy(processor => processor.Group) - .ThenBy(processor => processor.LogicalProcessorNumber) - .ToList(); - - return new CpuPreset - { - PresetId = presetId, - Name = name, - Description = description, - Selection = CpuSelection.FromProcessors(selectedProcessors, topology, reason), - Reason = reason, - SourcePresetId = sourcePresetId, - Warning = warning, - GeneratedByTopologySignature = topology.Signature, - IsUserEditable = true, - IsGenerated = true, - ReviewRequired = reviewRequired, - }; - } - - private static void AddPreset( - List presets, - CpuPresetGenerationOptions options, - CpuPreset preset) - { - if (options.DeletedGeneratedPresetIds.Contains(preset.PresetId) || - preset.Selection.LogicalProcessors.Count == 0 || - presets.Any(existing => existing.PresetId == preset.PresetId)) - { - return; - } - - var duplicateSamePurpose = presets.Any(existing => - existing.Reason == preset.Reason && - existing.Selection.GlobalLogicalProcessorIndexes.SequenceEqual( - preset.Selection.GlobalLogicalProcessorIndexes)); - if (duplicateSamePurpose) - { - return; - } - - presets.Add(preset); - } - } -} +namespace ThreadPilot.Services +{ + using ThreadPilot.Models; + + public sealed class CpuPresetGenerator : ICpuPresetGenerator + { + private const string GamingWarning = + "Suggested default. Results may vary by game and system. You can edit or delete this preset."; + + public IReadOnlyList Generate( + CpuTopologySnapshot topology, + CpuPresetGenerationOptions? options = null) + { + ArgumentNullException.ThrowIfNull(topology); + + var resolvedOptions = options ?? new CpuPresetGenerationOptions(); + var presets = new List(); + + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "all-cores", + "All cores", + "Use every logical processor reported by the current CPU topology.", + topology.LogicalProcessors, + topology, + "Uses all logical processors from the topology snapshot.")); + + var allPhysicalProcessors = HasCoreIndexForAllProcessors(topology) + ? SelectOneLogicalProcessorPerCore(topology.LogicalProcessors, topology) + : []; + if (allPhysicalProcessors.Count > 0) + { + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "all-physical-cores", + "All physical cores / no SMT", + "Use one logical processor per physical core.", + allPhysicalProcessors, + topology, + "Uses CoreIndex and SMT sibling metadata to select one logical processor per core.")); + } + + var allExceptCpu0 = topology.LogicalProcessors + .Where(processor => processor.GlobalIndex != 0) + .ToList(); + if (topology.LogicalProcessors.Count >= 2 && allExceptCpu0.Count > 0) + { + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "all-except-cpu0", + "All except CPU0", + "Use every logical processor except global CPU index 0.", + allExceptCpu0, + topology, + "Excludes GlobalIndex 0 while keeping the remaining topology-aware processor refs.")); + } + + var efficiencyClasses = topology.LogicalProcessors + .Select(processor => topology.TryGetEfficiencyClass(processor, out var efficiencyClass) + ? (byte?)efficiencyClass + : null) + .Where(efficiencyClass => efficiencyClass.HasValue) + .Select(efficiencyClass => efficiencyClass!.Value) + .Distinct() + .OrderBy(efficiencyClass => efficiencyClass) + .ToList(); + + var hasDistinctEfficiencyClasses = efficiencyClasses.Count >= 2; + List pCoreProcessors = []; + if (hasDistinctEfficiencyClasses) + { + var performanceClass = efficiencyClasses.Max(); + pCoreProcessors = topology.LogicalProcessors + .Where(processor => + topology.TryGetEfficiencyClass(processor, out var efficiencyClass) && + efficiencyClass == performanceClass) + .ToList(); + var eCoreProcessors = topology.LogicalProcessors + .Where(processor => + topology.TryGetEfficiencyClass(processor, out var efficiencyClass) && + efficiencyClass < performanceClass) + .ToList(); + + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "p-cores-only", + "P-cores only", + "Use logical processors in the highest EfficiencyClass.", + pCoreProcessors, + topology, + "Uses the highest EfficiencyClass in the topology snapshot as performance cores.")); + + if (HasCoreIndexForProcessors(pCoreProcessors, topology)) + { + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "p-cores-no-smt", + "P-cores only / no SMT", + "Use one logical processor per performance core.", + SelectOneLogicalProcessorPerCore(pCoreProcessors, topology), + topology, + "Uses EfficiencyClass plus CoreIndex and SMT sibling metadata to choose one logical processor per P-core.")); + } + + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "e-cores-only", + "E-cores only", + "Use logical processors below the highest EfficiencyClass.", + eCoreProcessors, + topology, + "Uses EfficiencyClass values below the performance class as efficiency cores.", + "Usually not recommended for games. Useful for background tasks.")); + } + + if (topology.Signature.LastLevelCacheGroupCount > 1 && HasCoreIndexForAllProcessors(topology)) + { + var l3Groups = topology.LogicalProcessors + .Select(processor => topology.TryGetLastLevelCacheIndex(processor, out var cacheIndex) + ? new { Processor = processor, CacheIndex = (int?)cacheIndex } + : null) + .Where(item => item?.CacheIndex != null) + .GroupBy(item => item!.CacheIndex!.Value) + .OrderBy(group => group.Key); + + foreach (var group in l3Groups) + { + AddPreset( + presets, + resolvedOptions, + CreatePreset( + $"l3-group-{group.Key}-physical", + $"L3 group {group.Key} / physical cores", + $"Use one logical processor per core in L3/cache group {group.Key}.", + SelectOneLogicalProcessorPerCore(group.Select(item => item!.Processor), topology), + topology, + $"Based on LastLevelCacheIndex/L3 cache group {group.Key}, not on CPU SKU naming.")); + } + } + + var bestGamingSourceId = SelectBestGamingSourcePresetId(presets, resolvedOptions); + if (bestGamingSourceId != null) + { + var sourcePreset = presets.Single(preset => preset.PresetId == bestGamingSourceId); + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "best-gaming", + "Best gaming suggestion", + "Suggested topology-aware starting point for games.", + sourcePreset.Selection.LogicalProcessors, + topology, + CreateBestGamingReason(bestGamingSourceId), + GamingWarning, + sourcePresetId: bestGamingSourceId)); + } + + AddPreset( + presets, + resolvedOptions, + CreatePreset( + "safe-compatibility", + "Safe compatibility", + "Use every logical processor for maximum compatibility.", + topology.LogicalProcessors, + topology, + "Maximum compatibility.")); + + // TODO: X3D CCD-only presets require reliable cache/topology detection. + // Do not generate X3D CCD-only until it can be detected with confidence. + return presets; + } + + private static string? SelectBestGamingSourcePresetId( + IReadOnlyList presets, + CpuPresetGenerationOptions options) + { + var orderedCandidates = options.ExcludeCpu0ForGaming + ? new[] + { + "p-cores-no-smt", + "l3-group-0-physical", + "all-physical-cores", + "all-except-cpu0", + "all-cores", + } + : new[] + { + "p-cores-no-smt", + "l3-group-0-physical", + "all-physical-cores", + "all-cores", + }; + + return orderedCandidates.FirstOrDefault(candidate => + presets.Any(preset => preset.PresetId == candidate)); + } + + private static string CreateBestGamingReason(string sourcePresetId) => + sourcePresetId switch + { + "p-cores-no-smt" => + "Selected P-cores without SMT because the topology exposes distinct performance and efficiency core classes.", + "l3-group-0-physical" => + "Selected physical cores from L3/cache group 0 because the topology exposes multiple L3 groups and no P/E core classes.", + "all-physical-cores" => + "Selected one logical processor per physical core because reliable CoreIndex metadata is available.", + "all-except-cpu0" => + "Selected all logical processors except CPU0 as a conservative gaming-oriented fallback.", + "all-cores" => + "Selected all logical processors as the safest fallback because no more specific topology preset was available.", + _ => + "Selected the best available topology-aware preset for this CPU.", + }; + + private static bool HasCoreIndexForAllProcessors(CpuTopologySnapshot topology) => + HasCoreIndexForProcessors(topology.LogicalProcessors, topology); + + private static bool HasCoreIndexForProcessors( + IEnumerable processors, + CpuTopologySnapshot topology) + { + var processorList = processors.ToList(); + return processorList.Count > 0 && + processorList.All(processor => topology.TryGetCoreIndex(processor, out _)); + } + + private static List SelectOneLogicalProcessorPerCore( + IEnumerable processors, + CpuTopologySnapshot topology) + { + return processors + .Select(processor => + { + topology.TryGetCoreIndex(processor, out var coreIndex); + return new + { + Processor = processor, + CoreIndex = coreIndex, + SmtSiblingCount = topology.GetSmtSiblingGlobalIndexes(processor).Count, + }; + }) + .GroupBy(item => item.CoreIndex) + .OrderBy(group => group.Key) + .Select(group => group + .OrderBy(item => item.Processor.GlobalIndex) + .ThenBy(item => item.SmtSiblingCount) + .First() + .Processor) + .ToList(); + } + + private static CpuPreset CreatePreset( + string presetId, + string name, + string description, + IEnumerable processors, + CpuTopologySnapshot topology, + string reason, + string? warning = null, + string? sourcePresetId = null, + bool reviewRequired = false) + { + var selectedProcessors = processors + .Distinct() + .OrderBy(processor => processor.GlobalIndex) + .ThenBy(processor => processor.Group) + .ThenBy(processor => processor.LogicalProcessorNumber) + .ToList(); + + return new CpuPreset + { + PresetId = presetId, + Name = name, + Description = description, + Selection = CpuSelection.FromProcessors(selectedProcessors, topology, reason), + Reason = reason, + SourcePresetId = sourcePresetId, + Warning = warning, + GeneratedByTopologySignature = topology.Signature, + IsUserEditable = true, + IsGenerated = true, + ReviewRequired = reviewRequired, + }; + } + + private static void AddPreset( + List presets, + CpuPresetGenerationOptions options, + CpuPreset preset) + { + if (options.DeletedGeneratedPresetIds.Contains(preset.PresetId) || + preset.Selection.LogicalProcessors.Count == 0 || + presets.Any(existing => existing.PresetId == preset.PresetId)) + { + return; + } + + var duplicateSamePurpose = presets.Any(existing => + existing.Reason == preset.Reason && + existing.Selection.GlobalLogicalProcessorIndexes.SequenceEqual( + preset.Selection.GlobalLogicalProcessorIndexes)); + if (duplicateSamePurpose) + { + return; + } + + presets.Add(preset); + } + } +} diff --git a/Services/CpuSelectionMigrationResult.cs b/Services/CpuSelectionMigrationResult.cs index 5b25804..7e88e3b 100644 --- a/Services/CpuSelectionMigrationResult.cs +++ b/Services/CpuSelectionMigrationResult.cs @@ -1,24 +1,8 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using ThreadPilot.Models; - - public sealed record CpuSelectionMigrationResult( - CpuSelection Selection, - CpuSelectionMigrationMetadata Metadata); -} +namespace ThreadPilot.Services +{ + using ThreadPilot.Models; + + public sealed record CpuSelectionMigrationResult( + CpuSelection Selection, + CpuSelectionMigrationMetadata Metadata); +} diff --git a/Services/CpuSelectionMigrationService.cs b/Services/CpuSelectionMigrationService.cs index eb6799c..2c3008a 100644 --- a/Services/CpuSelectionMigrationService.cs +++ b/Services/CpuSelectionMigrationService.cs @@ -1,168 +1,152 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using ThreadPilot.Models; - - public sealed class CpuSelectionMigrationService - { - public CpuSelectionMigrationResult MigrateFromLegacyAffinityMask( - long mask, - CpuTopologySnapshot topology) - { - ArgumentNullException.ThrowIfNull(topology); - - var selection = CpuSelection.FromLegacyAffinityMask(mask, topology); - var reviewRequired = topology.Signature.LogicalProcessorCount > 64 || - topology.Signature.ProcessorGroupCount > 1; - - return new CpuSelectionMigrationResult( - selection, - new CpuSelectionMigrationMetadata - { - CreatedFromLegacyAffinityMask = true, - ReviewRequired = reviewRequired, - MigrationConfidence = reviewRequired ? "Medium" : "High", - Reason = reviewRequired - ? "Migrated from a legacy affinity mask on a topology that may not be fully represented by legacy masks." - : "Migrated from a legacy affinity mask.", - TopologySignature = topology.Signature, - SourceLegacyAffinityMask = mask, - }); - } - - public CpuSelectionMigrationResult MigrateFromLegacyCoreMask( - IReadOnlyList coreMask, - CpuTopologySnapshot topology) - { - ArgumentNullException.ThrowIfNull(coreMask); - ArgumentNullException.ThrowIfNull(topology); - - var orderedProcessors = topology.LogicalProcessors - .OrderBy(processor => processor.GlobalIndex) - .ThenBy(processor => processor.Group) - .ThenBy(processor => processor.LogicalProcessorNumber) - .ToList(); - var selectedProcessors = orderedProcessors - .Take(Math.Min(coreMask.Count, orderedProcessors.Count)) - .Where((_, index) => coreMask[index]) - .ToList(); - var reviewRequired = coreMask.Count != orderedProcessors.Count; - var selection = CpuSelection.FromProcessors( - selectedProcessors, - topology, - "Migrated from legacy core mask"); - - return new CpuSelectionMigrationResult( - selection, - new CpuSelectionMigrationMetadata - { - CreatedFromLegacyCoreMask = true, - ReviewRequired = reviewRequired, - MigrationConfidence = reviewRequired ? "Medium" : "High", - Reason = reviewRequired - ? "Migrated from a legacy core mask whose length differs from the current topology." - : "Migrated from a legacy core mask.", - TopologySignature = topology.Signature, - }); - } - - public long? BuildLegacyAffinityMaskIfRepresentable(CpuSelection selection) => - CpuSelection.ToLegacyAffinityMaskOrNull(selection); - - public bool ShouldRequireReview( - CpuSelection selection, - CpuTopologySignature? savedSignature, - CpuTopologySnapshot currentTopology) - { - ArgumentNullException.ThrowIfNull(selection); - ArgumentNullException.ThrowIfNull(currentTopology); - - if (savedSignature == null || savedSignature != currentTopology.Signature) - { - return true; - } - - var currentProcessors = currentTopology.LogicalProcessors.ToHashSet(); - return selection.LogicalProcessors.Any(processor => !currentProcessors.Contains(processor)); - } - - public ProcessProfileSnapshot MigrateProcessProfile( - ProcessProfileSnapshot profile, - CpuTopologySnapshot topology) - { - ArgumentNullException.ThrowIfNull(profile); - ArgumentNullException.ThrowIfNull(topology); - - if (profile.CpuSelection != null) - { - profile.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; - profile.CpuSelectionMigration ??= new CpuSelectionMigrationMetadata - { - ReviewRequired = this.ShouldRequireReview( - profile.CpuSelection, - profile.CpuSelection.Metadata.TopologySignature, - topology), - MigrationConfidence = "High", - Reason = "Profile already contains a CpuSelection.", - TopologySignature = profile.CpuSelection.Metadata.TopologySignature, - SourceLegacyAffinityMask = profile.ProcessorAffinity, - }; - return profile; - } - - var migrated = this.MigrateFromLegacyAffinityMask(profile.ProcessorAffinity, topology); - profile.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; - profile.CpuSelection = migrated.Selection; - profile.CpuSelectionMigration = migrated.Metadata; - return profile; - } - - public ProcessProfileSnapshot PrepareProcessProfileForSave( - ProcessProfileSnapshot profile, - CpuTopologySnapshot topology) - { - ArgumentNullException.ThrowIfNull(profile); - ArgumentNullException.ThrowIfNull(topology); - - if (profile.CpuSelection == null) - { - this.MigrateProcessProfile(profile, topology); - } - - profile.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; - if (profile.CpuSelection != null) - { - var legacyMask = this.BuildLegacyAffinityMaskIfRepresentable(profile.CpuSelection); - if (legacyMask.HasValue) - { - profile.ProcessorAffinity = legacyMask.Value; - } - } - - profile.CpuSelectionMigration ??= new CpuSelectionMigrationMetadata - { - MigrationConfidence = "High", - Reason = "Saved with CpuSelection profile schema.", - TopologySignature = topology.Signature, - SourceLegacyAffinityMask = profile.ProcessorAffinity, - }; - - return profile; - } - } -} +namespace ThreadPilot.Services +{ + using ThreadPilot.Models; + + public sealed class CpuSelectionMigrationService + { + public CpuSelectionMigrationResult MigrateFromLegacyAffinityMask( + long mask, + CpuTopologySnapshot topology) + { + ArgumentNullException.ThrowIfNull(topology); + + var selection = CpuSelection.FromLegacyAffinityMask(mask, topology); + var reviewRequired = topology.Signature.LogicalProcessorCount > 64 || + topology.Signature.ProcessorGroupCount > 1; + + return new CpuSelectionMigrationResult( + selection, + new CpuSelectionMigrationMetadata + { + CreatedFromLegacyAffinityMask = true, + ReviewRequired = reviewRequired, + MigrationConfidence = reviewRequired ? "Medium" : "High", + Reason = reviewRequired + ? "Migrated from a legacy affinity mask on a topology that may not be fully represented by legacy masks." + : "Migrated from a legacy affinity mask.", + TopologySignature = topology.Signature, + SourceLegacyAffinityMask = mask, + }); + } + + public CpuSelectionMigrationResult MigrateFromLegacyCoreMask( + IReadOnlyList coreMask, + CpuTopologySnapshot topology) + { + ArgumentNullException.ThrowIfNull(coreMask); + ArgumentNullException.ThrowIfNull(topology); + + var orderedProcessors = topology.LogicalProcessors + .OrderBy(processor => processor.GlobalIndex) + .ThenBy(processor => processor.Group) + .ThenBy(processor => processor.LogicalProcessorNumber) + .ToList(); + var selectedProcessors = orderedProcessors + .Take(Math.Min(coreMask.Count, orderedProcessors.Count)) + .Where((_, index) => coreMask[index]) + .ToList(); + var reviewRequired = coreMask.Count != orderedProcessors.Count; + var selection = CpuSelection.FromProcessors( + selectedProcessors, + topology, + "Migrated from legacy core mask"); + + return new CpuSelectionMigrationResult( + selection, + new CpuSelectionMigrationMetadata + { + CreatedFromLegacyCoreMask = true, + ReviewRequired = reviewRequired, + MigrationConfidence = reviewRequired ? "Medium" : "High", + Reason = reviewRequired + ? "Migrated from a legacy core mask whose length differs from the current topology." + : "Migrated from a legacy core mask.", + TopologySignature = topology.Signature, + }); + } + + public long? BuildLegacyAffinityMaskIfRepresentable(CpuSelection selection) => + CpuSelection.ToLegacyAffinityMaskOrNull(selection); + + public bool ShouldRequireReview( + CpuSelection selection, + CpuTopologySignature? savedSignature, + CpuTopologySnapshot currentTopology) + { + ArgumentNullException.ThrowIfNull(selection); + ArgumentNullException.ThrowIfNull(currentTopology); + + if (savedSignature == null || savedSignature != currentTopology.Signature) + { + return true; + } + + var currentProcessors = currentTopology.LogicalProcessors.ToHashSet(); + return selection.LogicalProcessors.Any(processor => !currentProcessors.Contains(processor)); + } + + public ProcessProfileSnapshot MigrateProcessProfile( + ProcessProfileSnapshot profile, + CpuTopologySnapshot topology) + { + ArgumentNullException.ThrowIfNull(profile); + ArgumentNullException.ThrowIfNull(topology); + + if (profile.CpuSelection != null) + { + profile.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; + profile.CpuSelectionMigration ??= new CpuSelectionMigrationMetadata + { + ReviewRequired = this.ShouldRequireReview( + profile.CpuSelection, + profile.CpuSelection.Metadata.TopologySignature, + topology), + MigrationConfidence = "High", + Reason = "Profile already contains a CpuSelection.", + TopologySignature = profile.CpuSelection.Metadata.TopologySignature, + SourceLegacyAffinityMask = profile.ProcessorAffinity, + }; + return profile; + } + + var migrated = this.MigrateFromLegacyAffinityMask(profile.ProcessorAffinity, topology); + profile.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; + profile.CpuSelection = migrated.Selection; + profile.CpuSelectionMigration = migrated.Metadata; + return profile; + } + + public ProcessProfileSnapshot PrepareProcessProfileForSave( + ProcessProfileSnapshot profile, + CpuTopologySnapshot topology) + { + ArgumentNullException.ThrowIfNull(profile); + ArgumentNullException.ThrowIfNull(topology); + + if (profile.CpuSelection == null) + { + this.MigrateProcessProfile(profile, topology); + } + + profile.ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection; + if (profile.CpuSelection != null) + { + var legacyMask = this.BuildLegacyAffinityMaskIfRepresentable(profile.CpuSelection); + if (legacyMask.HasValue) + { + profile.ProcessorAffinity = legacyMask.Value; + } + } + + profile.CpuSelectionMigration ??= new CpuSelectionMigrationMetadata + { + MigrationConfidence = "High", + Reason = "Saved with CpuSelection profile schema.", + TopologySignature = topology.Signature, + SourceLegacyAffinityMask = profile.ProcessorAffinity, + }; + + return profile; + } + } +} diff --git a/Services/CpuTopologyService.cs b/Services/CpuTopologyService.cs index 5dcbf23..2a44da2 100644 --- a/Services/CpuTopologyService.cs +++ b/Services/CpuTopologyService.cs @@ -1,871 +1,836 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - using System.Management; - using System.Runtime.InteropServices; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Caching.Memory; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Service for detecting CPU topology using WMI and Windows APIs. - /// - public class CpuTopologyService : ICpuTopologyService - { - private readonly ILogger logger; - private readonly IMemoryCache cache; - private readonly SemaphoreSlim detectSemaphore = new(1, 1); - private CpuTopologyModel? currentTopology; - - private const string TOPOLOGYCACHEKEY = "cpu_topology"; - private static readonly TimeSpan CACHEDURATION = TimeSpan.FromHours(1); - private const int ERRORINSUFFICIENTBUFFER = 122; - - public event EventHandler? TopologyDetected; - - public CpuTopologyModel? CurrentTopology => this.currentTopology; - - private enum LOGICAL_PROCESSOR_RELATIONSHIP - { - RelationProcessorCore = 0, - RelationNumaNode = 1, - RelationCache = 2, - RelationProcessorPackage = 3, - RelationGroup = 4, - RelationProcessorDie = 5, - RelationNumaNodeEx = 6, - RelationProcessorModule = 7, - RelationAll = 0xFFFF, - } - - [StructLayout(LayoutKind.Sequential)] - private struct GROUP_AFFINITY - { - public UIntPtr Mask; - public ushort Group; - public ushort Reserved0; - public ushort Reserved1; - public ushort Reserved2; - } - - [StructLayout(LayoutKind.Sequential)] - private unsafe struct PROCESSOR_RELATIONSHIP - { - public byte Flags; - public byte EfficiencyClass; - public fixed byte Reserved[20]; - public ushort GroupCount; - public GROUP_AFFINITY GroupMask; - } - - [StructLayout(LayoutKind.Sequential)] - private unsafe struct SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX - { - public LOGICAL_PROCESSOR_RELATIONSHIP Relationship; - public int Size; - public PROCESSOR_RELATIONSHIP Processor; - } - - [DllImport("kernel32.dll", SetLastError = true)] - private static extern bool GetLogicalProcessorInformationEx( - LOGICAL_PROCESSOR_RELATIONSHIP relationshipType, - IntPtr buffer, - ref int returnedLength); - - public CpuTopologyService(ILogger logger, IMemoryCache? cache = null) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.cache = cache ?? new MemoryCache(new MemoryCacheOptions - { - SizeLimit = 10, - CompactionPercentage = 0.1, - }); - } - - public async Task DetectTopologyAsync() - { - // PERFORMANCE IMPROVEMENT: Check cache first to avoid expensive WMI calls - if (this.cache.TryGetValue(TOPOLOGYCACHEKEY, out CpuTopologyModel? cachedTopology) && cachedTopology != null) - { - this.logger.LogInformation("CPU topology retrieved from cache"); - this.currentTopology = cachedTopology; - return cachedTopology; - } - - await this.detectSemaphore.WaitAsync(); - - try - { - // Re-check cache after entering the critical section - if (this.cache.TryGetValue(TOPOLOGYCACHEKEY, out cachedTopology) && cachedTopology != null) - { - this.logger.LogInformation("CPU topology retrieved from cache after synchronization"); - this.currentTopology = cachedTopology; - return cachedTopology; - } - - this.logger.LogInformation("Starting CPU topology detection (cache miss)"); - - var topology = new CpuTopologyModel(); - - // Get basic system information - await this.DetectBasicCpuInfoAsync(topology); - - // Detect logical cores using multiple methods - await this.DetectLogicalCoresAsync(topology); - - // Try to detect advanced topology (CCD, P/E cores, etc.) - await this.DetectAdvancedTopologyAsync(topology); - - // Validate and finalize topology - this.ValidateTopology(topology); - - this.currentTopology = topology; - topology.TopologyDetectionSuccessful = true; - - // PERFORMANCE IMPROVEMENT: Cache the topology to avoid expensive WMI calls - this.cache.Set( - TOPOLOGYCACHEKEY, - topology, - new MemoryCacheEntryOptions() - .SetAbsoluteExpiration(CACHEDURATION) - .SetSize(1)); - - this.logger.LogInformation( - "CPU topology detection completed successfully and cached. " + - "Logical CPUs: {LogicalCores}, Physical CPUs: {PhysicalCores}, " + - "Sockets: {Sockets}, HT: {HasHT}, Hybrid: {HasHybrid}, CCD: {HasCcd}", - topology.TotalLogicalCores, topology.TotalPhysicalCores, topology.TotalSockets, - topology.HasHyperThreading, topology.HasIntelHybrid, topology.HasAmdCcd); - - this.TopologyDetected?.Invoke(this, new CpuTopologyDetectedEventArgs(topology, true)); - return topology; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to detect CPU topology"); - - // Create fallback topology - var fallbackTopology = this.CreateFallbackTopology(); - this.currentTopology = fallbackTopology; - - this.TopologyDetected?.Invoke(this, new CpuTopologyDetectedEventArgs(fallbackTopology, false, ex.Message)); - return fallbackTopology; - } - finally - { - this.detectSemaphore.Release(); - } - } - - private async Task DetectBasicCpuInfoAsync(CpuTopologyModel topology) - { - try - { - using var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor"); - using var collection = searcher.Get(); - - foreach (ManagementObject processor in collection) - { - topology.CpuBrand = processor["Name"]?.ToString() ?? "Unknown"; - topology.CpuArchitecture = processor["Architecture"]?.ToString() ?? "Unknown"; - break; // Take first processor for basic info - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to detect basic CPU info via WMI"); - } - } - - private async Task DetectLogicalCoresAsync(CpuTopologyModel topology) - { - try - { - // Method 1: Use official Windows topology API for physical/logical CPU mapping. - if (this.TryDetectCoresViaWindowsApi(topology)) - { - return; - } - - // Method 2: Use Environment.ProcessorCount as baseline - int logicalCoreCount = Environment.ProcessorCount; - - // Method 3: Try WMI for more detailed information - await this.DetectCoresViaWmiAsync(topology); - - // If WMI failed, create basic topology - if (topology.LogicalCores.Count == 0) - { - this.CreateBasicTopology(topology, logicalCoreCount); - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to detect logical cores, using fallback"); - this.CreateBasicTopology(topology, Environment.ProcessorCount); - } - } - - private bool TryDetectCoresViaWindowsApi(CpuTopologyModel topology) - { - try - { - int requiredLength = 0; - if (GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore, IntPtr.Zero, ref requiredLength)) - { - // Expected first call should fail with insufficient buffer. - return false; - } - - int firstError = Marshal.GetLastWin32Error(); - if (firstError != ERRORINSUFFICIENTBUFFER || requiredLength <= 0) - { - this.logger.LogWarning("GetLogicalProcessorInformationEx probe failed with Win32 error {Error}", firstError); - return false; - } - - IntPtr buffer = Marshal.AllocHGlobal(requiredLength); - try - { - if (!GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore, buffer, ref requiredLength)) - { - this.logger.LogWarning("GetLogicalProcessorInformationEx read failed with Win32 error {Error}", Marshal.GetLastWin32Error()); - return false; - } - - var discovered = new List<(int PhysicalCpuId, int LogicalCpuId, byte EfficiencyClass)>(); - int offset = 0; - int physicalCpuId = 0; - - while (offset < requiredLength) - { - IntPtr itemPtr = IntPtr.Add(buffer, offset); - var info = Marshal.PtrToStructure(itemPtr); - - if (info.Size <= 0) - { - break; - } - - if (info.Relationship == LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore) - { - var processor = info.Processor; - int groupCount = processor.GroupCount; - int groupMaskOffset = Marshal.OffsetOf(nameof(PROCESSOR_RELATIONSHIP.GroupMask)).ToInt32(); - IntPtr groupMaskPtr = IntPtr.Add(itemPtr, 8 + groupMaskOffset); - - var logicalCpuIdsForCore = new List(); - - for (int g = 0; g < groupCount; g++) - { - int stride = Marshal.SizeOf(); - var groupAffinity = Marshal.PtrToStructure(IntPtr.Add(groupMaskPtr, g * stride)); - - // This app currently represents affinity with a single 64-bit mask. - if (groupAffinity.Group != 0) - { - this.logger.LogWarning("Detected processor group {Group}; falling back to WMI/core-count topology path", groupAffinity.Group); - return false; - } - - ulong mask = groupAffinity.Mask.ToUInt64(); - logicalCpuIdsForCore.AddRange(GetSetBitIndices(mask)); - } - - foreach (int logicalCpuId in logicalCpuIdsForCore.Distinct().OrderBy(id => id)) - { - discovered.Add((physicalCpuId, logicalCpuId, processor.EfficiencyClass)); - } - - physicalCpuId++; - } - - offset += info.Size; - } - - if (discovered.Count == 0) - { - return false; - } - - topology.LogicalCores.Clear(); - foreach (var entry in discovered.OrderBy(d => d.LogicalCpuId)) - { - topology.LogicalCores.Add(new CpuCoreModel - { - LogicalCoreId = entry.LogicalCpuId, - PhysicalCoreId = entry.PhysicalCpuId, - SocketId = 0, - CoreType = CpuCoreType.Standard, - Label = $"CPU {entry.LogicalCpuId}", - LogicalProcessorName = $"CPU{entry.PhysicalCpuId}_T0", - IsEnabled = true, - }); - } - - this.ApplyHyperThreadingFromPhysicalMapping(topology); - this.ApplyCoreTypeFromEfficiencyClass(topology, discovered); - - this.logger.LogInformation( - "Detected CPU topology via GetLogicalProcessorInformationEx: {LogicalCpuCount} logical CPUs, {PhysicalCpuCount} physical CPUs", - topology.TotalLogicalCores, - topology.TotalPhysicalCores); - - return true; - } - finally - { - Marshal.FreeHGlobal(buffer); - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "GetLogicalProcessorInformationEx topology detection failed"); - return false; - } - } - - private static IEnumerable GetSetBitIndices(ulong mask) - { - for (int bit = 0; bit < 64; bit++) - { - if ((mask & (1UL << bit)) != 0) - { - yield return bit; - } - } - } - - private void ApplyHyperThreadingFromPhysicalMapping(CpuTopologyModel topology) - { - foreach (var coreGroup in topology.LogicalCores.GroupBy(c => c.PhysicalCoreId)) - { - var siblings = coreGroup.OrderBy(c => c.LogicalCoreId).ToList(); - if (siblings.Count <= 1) - { - continue; - } - - for (int i = 0; i < siblings.Count; i++) - { - var isLogicalSibling = i > 0; - siblings[i].IsHyperThreaded = isLogicalSibling; - siblings[i].HyperThreadSibling = siblings.Count >= 2 - ? (isLogicalSibling ? siblings[0].LogicalCoreId : siblings[1].LogicalCoreId) - : null; - - siblings[i].LogicalProcessorName = $"CPU{siblings[i].PhysicalCoreId}_T{i}"; - } - } - } - - private void ApplyCoreTypeFromEfficiencyClass( - CpuTopologyModel topology, - List<(int PhysicalCpuId, int LogicalCpuId, byte EfficiencyClass)> discovered) - { - var byPhysical = discovered - .GroupBy(d => d.PhysicalCpuId) - .Select(g => new { PhysicalCpuId = g.Key, EfficiencyClass = g.Min(x => x.EfficiencyClass) }) - .ToList(); - - var classes = byPhysical - .Select(x => x.EfficiencyClass) - .Distinct() - .OrderBy(v => v) - .ToList(); - - if (classes.Count <= 1) - { - return; - } - - byte performanceClass = classes.Min(); - foreach (var logicalCpu in topology.LogicalCores) - { - byte classValue = byPhysical.First(x => x.PhysicalCpuId == logicalCpu.PhysicalCoreId).EfficiencyClass; - logicalCpu.CoreType = classValue == performanceClass - ? CpuCoreType.PerformanceCore - : CpuCoreType.EfficiencyCore; - } - } - - private async Task DetectCoresViaWmiAsync(CpuTopologyModel topology) - { - try - { - // First, get physical processor information - var physicalCoreCount = 0; - var logicalCoreCount = 0; - - using (var processorSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor")) - using (var processorCollection = processorSearcher.Get()) - { - foreach (ManagementObject processor in processorCollection) - { - var numberOfCores = Convert.ToInt32(processor["NumberOfCores"] ?? 0); - var numberOfLogicalProcessors = Convert.ToInt32(processor["NumberOfLogicalProcessors"] ?? 0); - - physicalCoreCount += numberOfCores; - logicalCoreCount += numberOfLogicalProcessors; - - this.logger.LogInformation( - "Detected CPU: {Cores} physical CPUs, {LogicalProcessors} logical processors", - numberOfCores, numberOfLogicalProcessors); - } - } - - // If WMI didn't provide the info, fall back to Environment.ProcessorCount - if (logicalCoreCount == 0) - { - logicalCoreCount = Environment.ProcessorCount; - physicalCoreCount = logicalCoreCount; // Assume no HT if we can't detect - } - - // Create logical cores with proper physical core mapping - var hasHyperThreading = logicalCoreCount > physicalCoreCount; - var threadsPerCore = hasHyperThreading ? logicalCoreCount / physicalCoreCount : 1; - - for (int logicalId = 0; logicalId < logicalCoreCount; logicalId++) - { - var physicalId = logicalId / threadsPerCore; - var threadIndexOnCore = logicalId % threadsPerCore; - var isHyperThreaded = hasHyperThreading && (threadIndexOnCore != 0); - var htSibling = hasHyperThreading ? (threadIndexOnCore == 0 ? logicalId + 1 : logicalId - 1) : (int?)null; - - var core = new CpuCoreModel - { - LogicalCoreId = logicalId, - PhysicalCoreId = physicalId, - SocketId = 0, // Will be refined later - Label = $"CPU {logicalId}", - LogicalProcessorName = $"CPU{physicalId}_T{threadIndexOnCore}", // T0 = physical, T1+ = SMT - IsEnabled = true, - IsHyperThreaded = isHyperThreaded, - HyperThreadSibling = htSibling, - }; - - topology.LogicalCores.Add(core); - } - - this.logger.LogInformation( - "Created topology: {LogicalCores} logical CPUs, {PhysicalCores} physical CPUs, HT: {HasHT}", - logicalCoreCount, physicalCoreCount, hasHyperThreading); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "WMI logical processor detection failed"); - } - } - - private void CreateBasicTopology(CpuTopologyModel topology, int logicalCoreCount) - { - topology.LogicalCores.Clear(); - - for (int i = 0; i < logicalCoreCount; i++) - { - var core = new CpuCoreModel - { - LogicalCoreId = i, - PhysicalCoreId = i, // Assume no HT for basic topology - SocketId = 0, - CoreType = CpuCoreType.Standard, - Label = $"CPU {i}", - LogicalProcessorName = $"CPU{i}_T0", // All physical CPUs in basic fallback (no HT detected) - IsEnabled = true, - }; - - topology.LogicalCores.Add(core); - } - } - - private async Task DetectAdvancedTopologyAsync(CpuTopologyModel topology) - { - // Try to detect Intel Hybrid (P/E cores) - await this.DetectIntelHybridAsync(topology); - - // Try to detect AMD CCD information - await this.DetectAmdCcdAsync(topology); - - // Try to detect HyperThreading - this.DetectHyperThreading(topology); - } - - private async Task DetectIntelHybridAsync(CpuTopologyModel topology) - { - try - { - // Intel Hybrid detection is complex and requires specific APIs - // For now, we'll use heuristics based on CPU brand and core count patterns - if (topology.CpuBrand.Contains("Intel", StringComparison.OrdinalIgnoreCase)) - { - // Preserve already-detected core type data from official API if present. - if (topology.LogicalCores.Any(c => c.CoreType == CpuCoreType.PerformanceCore || c.CoreType == CpuCoreType.EfficiencyCore)) - { - return; - } - - // Check for 12th gen or later Intel processors (Alder Lake+) - if (topology.CpuBrand.Contains("12th") || topology.CpuBrand.Contains("13th") || - topology.CpuBrand.Contains("14th") || topology.CpuBrand.Contains("15th")) - { - // Heuristic: Assume first cores are P-cores, later ones are E-cores - // This is a simplified approach - real detection would require CPUID - var totalCores = topology.LogicalCores.Count; - var estimatedPCores = Math.Min(8, totalCores / 2); // Rough estimate - - for (int i = 0; i < topology.LogicalCores.Count; i++) - { - if (i < estimatedPCores * 2) // P-cores with HT - { - topology.LogicalCores[i].CoreType = CpuCoreType.PerformanceCore; - } - else - { - topology.LogicalCores[i].CoreType = CpuCoreType.EfficiencyCore; - } - } - } - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to detect Intel Hybrid topology"); - } - } - - private async Task DetectAmdCcdAsync(CpuTopologyModel topology) - { - try - { - if (topology.CpuBrand.Contains("AMD", StringComparison.OrdinalIgnoreCase)) - { - // AMD CCD detection - improved heuristic - // Only assign CCD if we actually have multiple CCDs - var totalPhysicalCores = topology.TotalPhysicalCores; - var coresPerCcd = 8; // Typical for Zen 2/3/4 - - // Only assign CCD IDs if we have more than 8 physical cores (indicating multiple CCDs) - if (totalPhysicalCores > coresPerCcd) - { - for (int i = 0; i < topology.LogicalCores.Count; i++) - { - var physicalCoreId = topology.LogicalCores[i].PhysicalCoreId; - topology.LogicalCores[i].CcdId = physicalCoreId / coresPerCcd; - topology.LogicalCores[i].CoreType = CpuCoreType.Zen3; // Default assumption - } - - this.logger.LogInformation( - "Detected AMD multi-CCD configuration: {PhysicalCores} physical cores, estimated {CcdCount} CCDs", - totalPhysicalCores, (totalPhysicalCores + coresPerCcd - 1) / coresPerCcd); - } - else - { - // Single CCD or small core count - don't assign CCD IDs - foreach (var core in topology.LogicalCores) - { - core.CoreType = CpuCoreType.Zen3; // Default assumption - } - - this.logger.LogInformation("Detected AMD single-CCD configuration: {PhysicalCores} physical cores", totalPhysicalCores); - } - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to detect AMD CCD topology"); - } - } - - private void DetectHyperThreading(CpuTopologyModel topology) - { - try - { - // Normalize HT metadata by physical CPU mapping first. - var groupedByPhysical = topology.LogicalCores - .GroupBy(c => c.PhysicalCoreId) - .Select(g => g.OrderBy(c => c.LogicalCoreId).ToList()) - .ToList(); - - if (groupedByPhysical.Any(g => g.Count > 1)) - { - foreach (var siblings in groupedByPhysical) - { - for (int i = 0; i < siblings.Count; i++) - { - var isLogicalSibling = i > 0; - siblings[i].IsHyperThreaded = isLogicalSibling; - siblings[i].HyperThreadSibling = siblings.Count >= 2 - ? (isLogicalSibling ? siblings[0].LogicalCoreId : siblings[1].LogicalCoreId) - : null; - - if (string.IsNullOrWhiteSpace(siblings[i].LogicalProcessorName)) - { - siblings[i].LogicalProcessorName = $"CPU{siblings[i].PhysicalCoreId}_T{i}"; - } - } - } - - return; - } - - // Fallback HT detection: if we only have flat sequential data. - var logicalCount = topology.LogicalCores.Count; - var physicalCount = topology.TotalPhysicalCores; - - if (logicalCount > physicalCount) - { - // Mark pairs as primary/logical siblings conservatively. - for (int i = 0; i < topology.LogicalCores.Count; i += 2) - { - if (i + 1 < topology.LogicalCores.Count) - { - topology.LogicalCores[i].IsHyperThreaded = false; - topology.LogicalCores[i].HyperThreadSibling = i + 1; - topology.LogicalCores[i + 1].IsHyperThreaded = true; - topology.LogicalCores[i + 1].HyperThreadSibling = i; - } - } - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to detect HyperThreading"); - } - } - - private void ValidateTopology(CpuTopologyModel topology) - { - // Ensure we have at least one core - if (topology.LogicalCores.Count == 0) - { - this.CreateBasicTopology(topology, Environment.ProcessorCount); - } - - if (string.IsNullOrWhiteSpace(topology.CpuBrand)) - { - topology.CpuBrand = "Unknown"; - } - - if (string.IsNullOrWhiteSpace(topology.CpuArchitecture)) - { - topology.CpuArchitecture = RuntimeInformation.ProcessArchitecture.ToString(); - } - - // Ensure logical core IDs are sequential - for (int i = 0; i < topology.LogicalCores.Count; i++) - { - topology.LogicalCores[i].LogicalCoreId = i; - } - - // Normalize physical core IDs to avoid invalid/negative mappings - var normalizedPhysicalCoreIds = topology.LogicalCores - .Select((core, index) => new - { - core, - physical = core.PhysicalCoreId >= 0 ? core.PhysicalCoreId : index, - }) - .GroupBy(x => x.physical) - .OrderBy(g => g.Key) - .Select((group, normalizedId) => new { group, normalizedId }) - .ToList(); - - foreach (var item in normalizedPhysicalCoreIds) - { - foreach (var entry in item.group) - { - entry.core.PhysicalCoreId = item.normalizedId; - } - } - - // Update labels with explicit logical-to-physical CPU mapping. - foreach (var core in topology.LogicalCores) - { - var typeLabel = core.CoreType switch - { - CpuCoreType.PerformanceCore => "P-", - CpuCoreType.EfficiencyCore => "E-", - _ => string.Empty, - }; - - var threadIndex = GetThreadIndexOnPhysicalCpu(core, topology); - var roleLabel = threadIndex == 0 - ? $"PH{core.PhysicalCoreId}" - : $"L{threadIndex}/PH{core.PhysicalCoreId}"; - - core.Label = $"{typeLabel}CPU {core.LogicalCoreId} ({roleLabel})"; - - if (string.IsNullOrWhiteSpace(core.LogicalProcessorName)) - { - threadIndex = Math.Max(0, core.LogicalCoreId - core.PhysicalCoreId); - core.LogicalProcessorName = $"CPU{core.PhysicalCoreId}_T{threadIndex}"; - } - } - } - - private static int GetThreadIndexOnPhysicalCpu(CpuCoreModel core, CpuTopologyModel topology) - { - if (!string.IsNullOrWhiteSpace(core.LogicalProcessorName)) - { - var marker = core.LogicalProcessorName.LastIndexOf("_T", StringComparison.Ordinal); - if (marker >= 0) - { - var suffix = core.LogicalProcessorName[(marker + 2)..]; - if (int.TryParse(suffix, out int parsedIndex)) - { - return Math.Max(0, parsedIndex); - } - } - } - - var orderedSiblings = topology.LogicalCores - .Where(c => c.PhysicalCoreId == core.PhysicalCoreId) - .OrderBy(c => c.LogicalCoreId) - .ToList(); - - var index = orderedSiblings.FindIndex(c => c.LogicalCoreId == core.LogicalCoreId); - return index >= 0 ? index : 0; - } - - private CpuTopologyModel CreateFallbackTopology() - { - var topology = new CpuTopologyModel(); - this.CreateBasicTopology(topology, Environment.ProcessorCount); - topology.TopologyDetectionSuccessful = false; - return topology; - } - - private long CalculateFullAffinityMask(int logicalCoreCount) - { - // Affinity masks are represented as signed 64-bit values in this application. - // For 63+ logical cores, use all available bits to avoid undefined shifts. - return logicalCoreCount >= 63 - ? -1L - : (1L << logicalCoreCount) - 1; - } - - public IEnumerable GetAffinityPresets() - { - if (this.currentTopology == null) - { - return Enumerable.Empty(); - } - - var presets = new List(); - - // All CPUs preset - presets.Add(new CpuAffinityPreset - { - Name = "All CPUs", - Description = $"All {this.currentTopology.TotalLogicalCores} logical CPUs", - AffinityMask = this.CalculateFullAffinityMask(this.currentTopology.TotalLogicalCores), - IsAvailable = true, - }); - - // Physical CPUs only (if HT is available) - if (this.currentTopology.HasHyperThreading) - { - presets.Add(new CpuAffinityPreset - { - Name = "No HT", - Description = $"All {this.currentTopology.TotalPhysicalCores} physical CPUs (no Hyper-Threading)", - AffinityMask = this.currentTopology.GetPhysicalCoresAffinityMask(), - IsAvailable = this.currentTopology.GetPhysicalCoresAffinityMask() != 0, - }); - } - - // Performance CPUs (Intel Hybrid) - if (this.currentTopology.HasIntelHybrid && this.currentTopology.PerformanceCores.Any()) - { - presets.Add(new CpuAffinityPreset - { - Name = "Performance CPUs", - Description = $"Intel P-CPUs ({this.currentTopology.PerformanceCores.Count()} logical CPUs)", - AffinityMask = this.currentTopology.GetPerformanceCoresAffinityMask(), - IsAvailable = this.currentTopology.GetPerformanceCoresAffinityMask() != 0, - }); - } - - // Efficiency CPUs (Intel Hybrid) - if (this.currentTopology.HasIntelHybrid && this.currentTopology.EfficiencyCores.Any()) - { - presets.Add(new CpuAffinityPreset - { - Name = "Efficiency CPUs", - Description = $"Intel E-CPUs ({this.currentTopology.EfficiencyCores.Count()} logical CPUs)", - AffinityMask = this.currentTopology.GetEfficiencyCoresAffinityMask(), - IsAvailable = this.currentTopology.GetEfficiencyCoresAffinityMask() != 0, - }); - } - - // CCD presets (AMD) - if (this.currentTopology.HasAmdCcd) - { - foreach (var ccdId in this.currentTopology.AvailableCcds) - { - var ccdCores = this.currentTopology.GetCoresByCcd(ccdId); - presets.Add(new CpuAffinityPreset - { - Name = $"CCD {ccdId}", - Description = $"AMD CCD {ccdId} ({ccdCores.Count()} logical CPUs)", - AffinityMask = this.currentTopology.GetCcdAffinityMask(ccdId), - IsAvailable = this.currentTopology.GetCcdAffinityMask(ccdId) != 0, - }); - } - } - - return presets; - } - - public bool IsAffinityMaskValid(long affinityMask) - { - if (this.currentTopology == null) - { - return false; - } - - // Long-based affinity masks cannot represent cores beyond bit 62 explicitly. - // Accept any non-zero mask for large-core systems and let runtime APIs enforce final validity. - if (this.currentTopology.TotalLogicalCores >= 63) - { - return affinityMask != 0; - } - - var maxMask = this.CalculateFullAffinityMask(this.currentTopology.TotalLogicalCores); - return affinityMask > 0 && affinityMask <= maxMask; - } - - public int GetMaxLogicalCores() - { - return this.currentTopology?.TotalLogicalCores ?? Environment.ProcessorCount; - } - - public async Task RefreshTopologyAsync() - { - this.cache.Remove(TOPOLOGYCACHEKEY); - await this.DetectTopologyAsync(); - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Linq; + using System.Management; + using System.Runtime.InteropServices; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class CpuTopologyService : ICpuTopologyService + { + private readonly ILogger logger; + private readonly SemaphoreSlim detectSemaphore = new(1, 1); + private CpuTopologyModel? currentTopology; + private DateTime topologyCachedAtUtc = DateTime.MinValue; + + private static readonly TimeSpan CACHEDURATION = TimeSpan.FromHours(1); + private const int ERRORINSUFFICIENTBUFFER = 122; + + public event EventHandler? TopologyDetected; + + public CpuTopologyModel? CurrentTopology => this.currentTopology; + + private enum LOGICAL_PROCESSOR_RELATIONSHIP + { + RelationProcessorCore = 0, + RelationNumaNode = 1, + RelationCache = 2, + RelationProcessorPackage = 3, + RelationGroup = 4, + RelationProcessorDie = 5, + RelationNumaNodeEx = 6, + RelationProcessorModule = 7, + RelationAll = 0xFFFF, + } + + [StructLayout(LayoutKind.Sequential)] + private struct GROUP_AFFINITY + { + public UIntPtr Mask; + public ushort Group; + public ushort Reserved0; + public ushort Reserved1; + public ushort Reserved2; + } + + [StructLayout(LayoutKind.Sequential)] + private unsafe struct PROCESSOR_RELATIONSHIP + { + public byte Flags; + public byte EfficiencyClass; + public fixed byte Reserved[20]; + public ushort GroupCount; + public GROUP_AFFINITY GroupMask; + } + + [StructLayout(LayoutKind.Sequential)] + private unsafe struct SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX + { + public LOGICAL_PROCESSOR_RELATIONSHIP Relationship; + public int Size; + public PROCESSOR_RELATIONSHIP Processor; + } + + [DllImport("kernel32.dll", SetLastError = true)] + private static extern bool GetLogicalProcessorInformationEx( + LOGICAL_PROCESSOR_RELATIONSHIP relationshipType, + IntPtr buffer, + ref int returnedLength); + + public CpuTopologyService(ILogger logger) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public async Task DetectTopologyAsync() + { + if (this.currentTopology != null && DateTime.UtcNow - this.topologyCachedAtUtc < CACHEDURATION) + { + this.logger.LogInformation("CPU topology retrieved from cache"); + return this.currentTopology; + } + + await this.detectSemaphore.WaitAsync(); + + try + { + if (this.currentTopology != null && DateTime.UtcNow - this.topologyCachedAtUtc < CACHEDURATION) + { + this.logger.LogInformation("CPU topology retrieved from cache after synchronization"); + return this.currentTopology; + } + + this.logger.LogInformation("Starting CPU topology detection (cache miss)"); + + var topology = new CpuTopologyModel(); + + // Get basic system information + await this.DetectBasicCpuInfoAsync(topology); + + // Detect logical cores using multiple methods + await this.DetectLogicalCoresAsync(topology); + + // Try to detect advanced topology (CCD, P/E cores, etc.) + await this.DetectAdvancedTopologyAsync(topology); + + // Validate and finalize topology + this.ValidateTopology(topology); + + this.currentTopology = topology; + topology.TopologyDetectionSuccessful = true; + + this.topologyCachedAtUtc = DateTime.UtcNow; + + this.logger.LogInformation( + "CPU topology detection completed successfully and cached. " + + "Logical CPUs: {LogicalCores}, Physical CPUs: {PhysicalCores}, " + + "Sockets: {Sockets}, HT: {HasHT}, Hybrid: {HasHybrid}, CCD: {HasCcd}", + topology.TotalLogicalCores, topology.TotalPhysicalCores, topology.TotalSockets, + topology.HasHyperThreading, topology.HasIntelHybrid, topology.HasAmdCcd); + + this.TopologyDetected?.Invoke(this, new CpuTopologyDetectedEventArgs(topology, true)); + return topology; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to detect CPU topology"); + + // Create fallback topology + var fallbackTopology = this.CreateFallbackTopology(); + this.currentTopology = fallbackTopology; + + this.TopologyDetected?.Invoke(this, new CpuTopologyDetectedEventArgs(fallbackTopology, false, ex.Message)); + return fallbackTopology; + } + finally + { + this.detectSemaphore.Release(); + } + } + + private async Task DetectBasicCpuInfoAsync(CpuTopologyModel topology) + { + try + { + using var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor"); + using var collection = searcher.Get(); + + foreach (ManagementObject processor in collection) + { + topology.CpuBrand = processor["Name"]?.ToString() ?? "Unknown"; + topology.CpuArchitecture = processor["Architecture"]?.ToString() ?? "Unknown"; + break; // Take first processor for basic info + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to detect basic CPU info via WMI"); + } + } + + private async Task DetectLogicalCoresAsync(CpuTopologyModel topology) + { + try + { + // Method 1: Use official Windows topology API for physical/logical CPU mapping. + if (this.TryDetectCoresViaWindowsApi(topology)) + { + return; + } + + // Method 2: Use Environment.ProcessorCount as baseline + int logicalCoreCount = Environment.ProcessorCount; + + // Method 3: Try WMI for more detailed information + await this.DetectCoresViaWmiAsync(topology); + + // If WMI failed, create basic topology + if (topology.LogicalCores.Count == 0) + { + this.CreateBasicTopology(topology, logicalCoreCount); + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to detect logical cores, using fallback"); + this.CreateBasicTopology(topology, Environment.ProcessorCount); + } + } + + private bool TryDetectCoresViaWindowsApi(CpuTopologyModel topology) + { + try + { + int requiredLength = 0; + if (GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore, IntPtr.Zero, ref requiredLength)) + { + // Expected first call should fail with insufficient buffer. + return false; + } + + int firstError = Marshal.GetLastWin32Error(); + if (firstError != ERRORINSUFFICIENTBUFFER || requiredLength <= 0) + { + this.logger.LogWarning("GetLogicalProcessorInformationEx probe failed with Win32 error {Error}", firstError); + return false; + } + + IntPtr buffer = Marshal.AllocHGlobal(requiredLength); + try + { + if (!GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore, buffer, ref requiredLength)) + { + this.logger.LogWarning("GetLogicalProcessorInformationEx read failed with Win32 error {Error}", Marshal.GetLastWin32Error()); + return false; + } + + var discovered = new List<(int PhysicalCpuId, int LogicalCpuId, byte EfficiencyClass)>(); + int offset = 0; + int physicalCpuId = 0; + + while (offset < requiredLength) + { + IntPtr itemPtr = IntPtr.Add(buffer, offset); + var info = Marshal.PtrToStructure(itemPtr); + + if (info.Size <= 0) + { + break; + } + + if (info.Relationship == LOGICAL_PROCESSOR_RELATIONSHIP.RelationProcessorCore) + { + var processor = info.Processor; + int groupCount = processor.GroupCount; + int groupMaskOffset = Marshal.OffsetOf(nameof(PROCESSOR_RELATIONSHIP.GroupMask)).ToInt32(); + IntPtr groupMaskPtr = IntPtr.Add(itemPtr, 8 + groupMaskOffset); + + var logicalCpuIdsForCore = new List(); + + for (int g = 0; g < groupCount; g++) + { + int stride = Marshal.SizeOf(); + var groupAffinity = Marshal.PtrToStructure(IntPtr.Add(groupMaskPtr, g * stride)); + + // This app currently represents affinity with a single 64-bit mask. + if (groupAffinity.Group != 0) + { + this.logger.LogWarning("Detected processor group {Group}; falling back to WMI/core-count topology path", groupAffinity.Group); + return false; + } + + ulong mask = groupAffinity.Mask.ToUInt64(); + logicalCpuIdsForCore.AddRange(GetSetBitIndices(mask)); + } + + foreach (int logicalCpuId in logicalCpuIdsForCore.Distinct().OrderBy(id => id)) + { + discovered.Add((physicalCpuId, logicalCpuId, processor.EfficiencyClass)); + } + + physicalCpuId++; + } + + offset += info.Size; + } + + if (discovered.Count == 0) + { + return false; + } + + topology.LogicalCores.Clear(); + foreach (var entry in discovered.OrderBy(d => d.LogicalCpuId)) + { + topology.LogicalCores.Add(new CpuCoreModel + { + LogicalCoreId = entry.LogicalCpuId, + PhysicalCoreId = entry.PhysicalCpuId, + SocketId = 0, + CoreType = CpuCoreType.Standard, + Label = $"CPU {entry.LogicalCpuId}", + LogicalProcessorName = $"CPU{entry.PhysicalCpuId}_T0", + IsEnabled = true, + }); + } + + this.ApplyHyperThreadingFromPhysicalMapping(topology); + this.ApplyCoreTypeFromEfficiencyClass(topology, discovered); + + this.logger.LogInformation( + "Detected CPU topology via GetLogicalProcessorInformationEx: {LogicalCpuCount} logical CPUs, {PhysicalCpuCount} physical CPUs", + topology.TotalLogicalCores, + topology.TotalPhysicalCores); + + return true; + } + finally + { + Marshal.FreeHGlobal(buffer); + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "GetLogicalProcessorInformationEx topology detection failed"); + return false; + } + } + + private static IEnumerable GetSetBitIndices(ulong mask) + { + for (int bit = 0; bit < 64; bit++) + { + if ((mask & (1UL << bit)) != 0) + { + yield return bit; + } + } + } + + private void ApplyHyperThreadingFromPhysicalMapping(CpuTopologyModel topology) + { + foreach (var coreGroup in topology.LogicalCores.GroupBy(c => c.PhysicalCoreId)) + { + var siblings = coreGroup.OrderBy(c => c.LogicalCoreId).ToList(); + if (siblings.Count <= 1) + { + continue; + } + + for (int i = 0; i < siblings.Count; i++) + { + var isLogicalSibling = i > 0; + siblings[i].IsHyperThreaded = isLogicalSibling; + siblings[i].HyperThreadSibling = siblings.Count >= 2 + ? (isLogicalSibling ? siblings[0].LogicalCoreId : siblings[1].LogicalCoreId) + : null; + + siblings[i].LogicalProcessorName = $"CPU{siblings[i].PhysicalCoreId}_T{i}"; + } + } + } + + private void ApplyCoreTypeFromEfficiencyClass( + CpuTopologyModel topology, + List<(int PhysicalCpuId, int LogicalCpuId, byte EfficiencyClass)> discovered) + { + var byPhysical = discovered + .GroupBy(d => d.PhysicalCpuId) + .Select(g => new { PhysicalCpuId = g.Key, EfficiencyClass = g.Min(x => x.EfficiencyClass) }) + .ToList(); + + var classes = byPhysical + .Select(x => x.EfficiencyClass) + .Distinct() + .OrderBy(v => v) + .ToList(); + + if (classes.Count <= 1) + { + return; + } + + byte performanceClass = classes.Min(); + foreach (var logicalCpu in topology.LogicalCores) + { + byte classValue = byPhysical.First(x => x.PhysicalCpuId == logicalCpu.PhysicalCoreId).EfficiencyClass; + logicalCpu.CoreType = classValue == performanceClass + ? CpuCoreType.PerformanceCore + : CpuCoreType.EfficiencyCore; + } + } + + private async Task DetectCoresViaWmiAsync(CpuTopologyModel topology) + { + try + { + // First, get physical processor information + var physicalCoreCount = 0; + var logicalCoreCount = 0; + + using (var processorSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor")) + using (var processorCollection = processorSearcher.Get()) + { + foreach (ManagementObject processor in processorCollection) + { + var numberOfCores = Convert.ToInt32(processor["NumberOfCores"] ?? 0); + var numberOfLogicalProcessors = Convert.ToInt32(processor["NumberOfLogicalProcessors"] ?? 0); + + physicalCoreCount += numberOfCores; + logicalCoreCount += numberOfLogicalProcessors; + + this.logger.LogInformation( + "Detected CPU: {Cores} physical CPUs, {LogicalProcessors} logical processors", + numberOfCores, numberOfLogicalProcessors); + } + } + + // If WMI didn't provide the info, fall back to Environment.ProcessorCount + if (logicalCoreCount == 0) + { + logicalCoreCount = Environment.ProcessorCount; + physicalCoreCount = logicalCoreCount; // Assume no HT if we can't detect + } + + // Create logical cores with proper physical core mapping + var hasHyperThreading = logicalCoreCount > physicalCoreCount; + var threadsPerCore = hasHyperThreading ? logicalCoreCount / physicalCoreCount : 1; + + for (int logicalId = 0; logicalId < logicalCoreCount; logicalId++) + { + var physicalId = logicalId / threadsPerCore; + var threadIndexOnCore = logicalId % threadsPerCore; + var isHyperThreaded = hasHyperThreading && (threadIndexOnCore != 0); + var htSibling = hasHyperThreading ? (threadIndexOnCore == 0 ? logicalId + 1 : logicalId - 1) : (int?)null; + + var core = new CpuCoreModel + { + LogicalCoreId = logicalId, + PhysicalCoreId = physicalId, + SocketId = 0, // Will be refined later + Label = $"CPU {logicalId}", + LogicalProcessorName = $"CPU{physicalId}_T{threadIndexOnCore}", // T0 = physical, T1+ = SMT + IsEnabled = true, + IsHyperThreaded = isHyperThreaded, + HyperThreadSibling = htSibling, + }; + + topology.LogicalCores.Add(core); + } + + this.logger.LogInformation( + "Created topology: {LogicalCores} logical CPUs, {PhysicalCores} physical CPUs, HT: {HasHT}", + logicalCoreCount, physicalCoreCount, hasHyperThreading); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "WMI logical processor detection failed"); + } + } + + private void CreateBasicTopology(CpuTopologyModel topology, int logicalCoreCount) + { + topology.LogicalCores.Clear(); + + for (int i = 0; i < logicalCoreCount; i++) + { + var core = new CpuCoreModel + { + LogicalCoreId = i, + PhysicalCoreId = i, // Assume no HT for basic topology + SocketId = 0, + CoreType = CpuCoreType.Standard, + Label = $"CPU {i}", + LogicalProcessorName = $"CPU{i}_T0", // All physical CPUs in basic fallback (no HT detected) + IsEnabled = true, + }; + + topology.LogicalCores.Add(core); + } + } + + private async Task DetectAdvancedTopologyAsync(CpuTopologyModel topology) + { + // Try to detect Intel Hybrid (P/E cores) + await this.DetectIntelHybridAsync(topology); + + // Try to detect AMD CCD information + await this.DetectAmdCcdAsync(topology); + + // Try to detect HyperThreading + this.DetectHyperThreading(topology); + } + + private async Task DetectIntelHybridAsync(CpuTopologyModel topology) + { + try + { + // Intel Hybrid detection is complex and requires specific APIs + // For now, we'll use heuristics based on CPU brand and core count patterns + if (topology.CpuBrand.Contains("Intel", StringComparison.OrdinalIgnoreCase)) + { + // Preserve already-detected core type data from official API if present. + if (topology.LogicalCores.Any(c => c.CoreType == CpuCoreType.PerformanceCore || c.CoreType == CpuCoreType.EfficiencyCore)) + { + return; + } + + // Check for 12th gen or later Intel processors (Alder Lake+) + if (topology.CpuBrand.Contains("12th") || topology.CpuBrand.Contains("13th") || + topology.CpuBrand.Contains("14th") || topology.CpuBrand.Contains("15th")) + { + // Heuristic: Assume first cores are P-cores, later ones are E-cores + // This is a simplified approach - real detection would require CPUID + var totalCores = topology.LogicalCores.Count; + var estimatedPCores = Math.Min(8, totalCores / 2); // Rough estimate + + for (int i = 0; i < topology.LogicalCores.Count; i++) + { + if (i < estimatedPCores * 2) // P-cores with HT + { + topology.LogicalCores[i].CoreType = CpuCoreType.PerformanceCore; + } + else + { + topology.LogicalCores[i].CoreType = CpuCoreType.EfficiencyCore; + } + } + } + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to detect Intel Hybrid topology"); + } + } + + private async Task DetectAmdCcdAsync(CpuTopologyModel topology) + { + try + { + if (topology.CpuBrand.Contains("AMD", StringComparison.OrdinalIgnoreCase)) + { + // AMD CCD detection - improved heuristic + // Only assign CCD if we actually have multiple CCDs + var totalPhysicalCores = topology.TotalPhysicalCores; + var coresPerCcd = 8; // Typical for Zen 2/3/4 + + // Only assign CCD IDs if we have more than 8 physical cores (indicating multiple CCDs) + if (totalPhysicalCores > coresPerCcd) + { + for (int i = 0; i < topology.LogicalCores.Count; i++) + { + var physicalCoreId = topology.LogicalCores[i].PhysicalCoreId; + topology.LogicalCores[i].CcdId = physicalCoreId / coresPerCcd; + topology.LogicalCores[i].CoreType = CpuCoreType.Zen3; // Default assumption + } + + this.logger.LogInformation( + "Detected AMD multi-CCD configuration: {PhysicalCores} physical cores, estimated {CcdCount} CCDs", + totalPhysicalCores, (totalPhysicalCores + coresPerCcd - 1) / coresPerCcd); + } + else + { + // Single CCD or small core count - don't assign CCD IDs + foreach (var core in topology.LogicalCores) + { + core.CoreType = CpuCoreType.Zen3; // Default assumption + } + + this.logger.LogInformation("Detected AMD single-CCD configuration: {PhysicalCores} physical cores", totalPhysicalCores); + } + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to detect AMD CCD topology"); + } + } + + private void DetectHyperThreading(CpuTopologyModel topology) + { + try + { + // Normalize HT metadata by physical CPU mapping first. + var groupedByPhysical = topology.LogicalCores + .GroupBy(c => c.PhysicalCoreId) + .Select(g => g.OrderBy(c => c.LogicalCoreId).ToList()) + .ToList(); + + if (groupedByPhysical.Any(g => g.Count > 1)) + { + foreach (var siblings in groupedByPhysical) + { + for (int i = 0; i < siblings.Count; i++) + { + var isLogicalSibling = i > 0; + siblings[i].IsHyperThreaded = isLogicalSibling; + siblings[i].HyperThreadSibling = siblings.Count >= 2 + ? (isLogicalSibling ? siblings[0].LogicalCoreId : siblings[1].LogicalCoreId) + : null; + + if (string.IsNullOrWhiteSpace(siblings[i].LogicalProcessorName)) + { + siblings[i].LogicalProcessorName = $"CPU{siblings[i].PhysicalCoreId}_T{i}"; + } + } + } + + return; + } + + // Fallback HT detection: if we only have flat sequential data. + var logicalCount = topology.LogicalCores.Count; + var physicalCount = topology.TotalPhysicalCores; + + if (logicalCount > physicalCount) + { + // Mark pairs as primary/logical siblings conservatively. + for (int i = 0; i < topology.LogicalCores.Count; i += 2) + { + if (i + 1 < topology.LogicalCores.Count) + { + topology.LogicalCores[i].IsHyperThreaded = false; + topology.LogicalCores[i].HyperThreadSibling = i + 1; + topology.LogicalCores[i + 1].IsHyperThreaded = true; + topology.LogicalCores[i + 1].HyperThreadSibling = i; + } + } + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to detect HyperThreading"); + } + } + + private void ValidateTopology(CpuTopologyModel topology) + { + // Ensure we have at least one core + if (topology.LogicalCores.Count == 0) + { + this.CreateBasicTopology(topology, Environment.ProcessorCount); + } + + if (string.IsNullOrWhiteSpace(topology.CpuBrand)) + { + topology.CpuBrand = "Unknown"; + } + + if (string.IsNullOrWhiteSpace(topology.CpuArchitecture)) + { + topology.CpuArchitecture = RuntimeInformation.ProcessArchitecture.ToString(); + } + + // Ensure logical core IDs are sequential + for (int i = 0; i < topology.LogicalCores.Count; i++) + { + topology.LogicalCores[i].LogicalCoreId = i; + } + + // Normalize physical core IDs to avoid invalid/negative mappings + var normalizedPhysicalCoreIds = topology.LogicalCores + .Select((core, index) => new + { + core, + physical = core.PhysicalCoreId >= 0 ? core.PhysicalCoreId : index, + }) + .GroupBy(x => x.physical) + .OrderBy(g => g.Key) + .Select((group, normalizedId) => new { group, normalizedId }) + .ToList(); + + foreach (var item in normalizedPhysicalCoreIds) + { + foreach (var entry in item.group) + { + entry.core.PhysicalCoreId = item.normalizedId; + } + } + + // Update labels with explicit logical-to-physical CPU mapping. + foreach (var core in topology.LogicalCores) + { + var typeLabel = core.CoreType switch + { + CpuCoreType.PerformanceCore => "P-", + CpuCoreType.EfficiencyCore => "E-", + _ => string.Empty, + }; + + var threadIndex = GetThreadIndexOnPhysicalCpu(core, topology); + var roleLabel = threadIndex == 0 + ? $"PH{core.PhysicalCoreId}" + : $"L{threadIndex}/PH{core.PhysicalCoreId}"; + + core.Label = $"{typeLabel}CPU {core.LogicalCoreId} ({roleLabel})"; + + if (string.IsNullOrWhiteSpace(core.LogicalProcessorName)) + { + threadIndex = Math.Max(0, core.LogicalCoreId - core.PhysicalCoreId); + core.LogicalProcessorName = $"CPU{core.PhysicalCoreId}_T{threadIndex}"; + } + } + } + + private static int GetThreadIndexOnPhysicalCpu(CpuCoreModel core, CpuTopologyModel topology) + { + if (!string.IsNullOrWhiteSpace(core.LogicalProcessorName)) + { + var marker = core.LogicalProcessorName.LastIndexOf("_T", StringComparison.Ordinal); + if (marker >= 0) + { + var suffix = core.LogicalProcessorName[(marker + 2)..]; + if (int.TryParse(suffix, out int parsedIndex)) + { + return Math.Max(0, parsedIndex); + } + } + } + + var orderedSiblings = topology.LogicalCores + .Where(c => c.PhysicalCoreId == core.PhysicalCoreId) + .OrderBy(c => c.LogicalCoreId) + .ToList(); + + var index = orderedSiblings.FindIndex(c => c.LogicalCoreId == core.LogicalCoreId); + return index >= 0 ? index : 0; + } + + private CpuTopologyModel CreateFallbackTopology() + { + var topology = new CpuTopologyModel(); + this.CreateBasicTopology(topology, Environment.ProcessorCount); + topology.TopologyDetectionSuccessful = false; + return topology; + } + + private long CalculateFullAffinityMask(int logicalCoreCount) + { + // Affinity masks are represented as signed 64-bit values in this application. + // For 63+ logical cores, use all available bits to avoid undefined shifts. + return logicalCoreCount >= 63 + ? -1L + : (1L << logicalCoreCount) - 1; + } + + public IEnumerable GetAffinityPresets() + { + if (this.currentTopology == null) + { + return Enumerable.Empty(); + } + + var presets = new List(); + + // All CPUs preset + presets.Add(new CpuAffinityPreset + { + Name = "All CPUs", + Description = $"All {this.currentTopology.TotalLogicalCores} logical CPUs", + AffinityMask = this.CalculateFullAffinityMask(this.currentTopology.TotalLogicalCores), + IsAvailable = true, + }); + + // Physical CPUs only (if HT is available) + if (this.currentTopology.HasHyperThreading) + { + presets.Add(new CpuAffinityPreset + { + Name = "No HT", + Description = $"All {this.currentTopology.TotalPhysicalCores} physical CPUs (no Hyper-Threading)", + AffinityMask = this.currentTopology.GetPhysicalCoresAffinityMask(), + IsAvailable = this.currentTopology.GetPhysicalCoresAffinityMask() != 0, + }); + } + + // Performance CPUs (Intel Hybrid) + if (this.currentTopology.HasIntelHybrid && this.currentTopology.PerformanceCores.Any()) + { + presets.Add(new CpuAffinityPreset + { + Name = "Performance CPUs", + Description = $"Intel P-CPUs ({this.currentTopology.PerformanceCores.Count()} logical CPUs)", + AffinityMask = this.currentTopology.GetPerformanceCoresAffinityMask(), + IsAvailable = this.currentTopology.GetPerformanceCoresAffinityMask() != 0, + }); + } + + // Efficiency CPUs (Intel Hybrid) + if (this.currentTopology.HasIntelHybrid && this.currentTopology.EfficiencyCores.Any()) + { + presets.Add(new CpuAffinityPreset + { + Name = "Efficiency CPUs", + Description = $"Intel E-CPUs ({this.currentTopology.EfficiencyCores.Count()} logical CPUs)", + AffinityMask = this.currentTopology.GetEfficiencyCoresAffinityMask(), + IsAvailable = this.currentTopology.GetEfficiencyCoresAffinityMask() != 0, + }); + } + + // CCD presets (AMD) + if (this.currentTopology.HasAmdCcd) + { + foreach (var ccdId in this.currentTopology.AvailableCcds) + { + var ccdCores = this.currentTopology.GetCoresByCcd(ccdId); + presets.Add(new CpuAffinityPreset + { + Name = $"CCD {ccdId}", + Description = $"AMD CCD {ccdId} ({ccdCores.Count()} logical CPUs)", + AffinityMask = this.currentTopology.GetCcdAffinityMask(ccdId), + IsAvailable = this.currentTopology.GetCcdAffinityMask(ccdId) != 0, + }); + } + } + + return presets; + } + + public bool IsAffinityMaskValid(long affinityMask) + { + if (this.currentTopology == null) + { + return false; + } + + // Long-based affinity masks cannot represent cores beyond bit 62 explicitly. + // Accept any non-zero mask for large-core systems and let runtime APIs enforce final validity. + if (this.currentTopology.TotalLogicalCores >= 63) + { + return affinityMask != 0; + } + + var maxMask = this.CalculateFullAffinityMask(this.currentTopology.TotalLogicalCores); + return affinityMask > 0 && affinityMask <= maxMask; + } + + public int GetMaxLogicalCores() + { + return this.currentTopology?.TotalLogicalCores ?? Environment.ProcessorCount; + } + + public async Task RefreshTopologyAsync() + { + this.currentTopology = null; + this.topologyCachedAtUtc = DateTime.MinValue; + await this.DetectTopologyAsync(); + } + } +} + diff --git a/Services/ElevatedTaskService.cs b/Services/ElevatedTaskService.cs index 5d9508b..fe9ad83 100644 --- a/Services/ElevatedTaskService.cs +++ b/Services/ElevatedTaskService.cs @@ -1,433 +1,414 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.IO; - using System.Reflection; - using System.Security; - using System.Security.Principal; - using System.Text; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Services.Abstractions; - - /// - /// Manages Scheduled Tasks used for persistent elevated launch and elevated autostart. - /// - public partial class ElevatedTaskService : IElevatedTaskService - { - private static readonly string SchTasksExecutablePath = Path.Combine(Environment.SystemDirectory, "schtasks.exe"); - private static readonly TimeSpan ScheduledTaskTimeout = TimeSpan.FromSeconds(20); - - private readonly ILogger logger; - private readonly IProcessRunner processRunner; - private readonly Func? executablePathProvider; - private readonly Func? currentUserProvider; - - public ElevatedTaskService(ILogger logger, IProcessRunner processRunner) - : this(logger, processRunner, null, null) - { - } - - public ElevatedTaskService( - ILogger logger, - IProcessRunner processRunner, - Func? executablePathProvider, - Func? currentUserProvider) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.processRunner = processRunner ?? throw new ArgumentNullException(nameof(processRunner)); - this.executablePathProvider = executablePathProvider; - this.currentUserProvider = currentUserProvider; - } - - public string LaunchTaskName => "ThreadPilot_Launch"; - - public string AutostartTaskName => "ThreadPilot_Startup"; - - public async Task EnsureLaunchTaskAsync() - { - try - { - var executablePath = this.executablePathProvider?.Invoke() ?? this.GetExecutablePath(); - if (!IsValidExecutablePath(executablePath)) - { - LogSkipEnsureLaunchTaskInvalidPath(this.logger, executablePath ?? "(null)"); - return false; - } - - var taskXmlPath = Path.Combine(Path.GetTempPath(), $"threadpilot-launch-task-{Guid.NewGuid():N}.xml"); - try - { - WriteLaunchTaskDefinition( - taskXmlPath, - executablePath!, - this.currentUserProvider?.Invoke() ?? GetCurrentUserName()); - - var result = await this.RunSchTasksAsync(new List - { - "/Create", - "/TN", this.LaunchTaskName, - "/XML", taskXmlPath, - "/F", - }); - - if (result.ExitCode == 0) - { - LogLaunchTaskEnsured(this.logger, this.LaunchTaskName, executablePath!); - return true; - } - - LogEnsureLaunchTaskFailed(this.logger, result.ExitCode, result.StandardError); - return false; - } - finally - { - TryDeleteFile(taskXmlPath, this.logger); - } - } - catch (Exception ex) - { - LogEnsureLaunchTaskException(this.logger, ex); - return false; - } - } - - public async Task TryRunLaunchTaskAsync() - { - try - { - var result = await this.RunSchTasksAsync(new List - { - "/Run", - "/TN", this.LaunchTaskName, - }); - - if (result.ExitCode == 0) - { - LogLaunchTaskStarted(this.logger, this.LaunchTaskName); - return true; - } - - LogRunLaunchTaskFailed(this.logger, result.ExitCode, result.StandardError); - return false; - } - catch (Exception ex) - { - LogRunLaunchTaskException(this.logger, ex); - return false; - } - } - - public async Task EnsureAutostartTaskAsync(string executablePath, string arguments) - { - try - { - if (!IsValidExecutablePath(executablePath)) - { - LogSkipEnsureAutostartTaskInvalidPath(this.logger, executablePath); - return false; - } - - var taskRunCommand = BuildCommand(executablePath, arguments); - var result = await this.RunSchTasksAsync(new List - { - "/Create", - "/TN", this.AutostartTaskName, - "/TR", taskRunCommand, - "/SC", "ONLOGON", - "/RL", "HIGHEST", - "/F", - "/RU", Environment.UserName, - }); - - if (result.ExitCode == 0) - { - LogAutostartTaskEnsured(this.logger, this.AutostartTaskName); - return true; - } - - LogEnsureAutostartTaskFailed(this.logger, result.ExitCode, result.StandardError); - return false; - } - catch (Exception ex) - { - LogEnsureAutostartTaskException(this.logger, ex); - return false; - } - } - - public async Task RemoveAutostartTaskAsync() - { - try - { - var result = await this.RunSchTasksAsync(new List - { - "/Delete", - "/TN", this.AutostartTaskName, - "/F", - }); - - if (result.ExitCode == 0) - { - LogAutostartTaskRemoved(this.logger, this.AutostartTaskName); - return true; - } - - // Exit code 1 is expected when task doesn't exist; treat as already removed. - if (result.ExitCode == 1) - { - LogAutostartTaskAlreadyRemoved(this.logger, this.AutostartTaskName); - return true; - } - - LogRemoveAutostartTaskFailed(this.logger, result.ExitCode, result.StandardError); - return false; - } - catch (Exception ex) - { - LogRemoveAutostartTaskException(this.logger, ex); - return false; - } - } - - public async Task IsAutostartTaskRegisteredAsync() - { - try - { - var result = await this.RunSchTasksAsync(new List - { - "/Query", - "/TN", this.AutostartTaskName, - }); - - var exists = result.ExitCode == 0; - LogAutostartTaskQueryResult(this.logger, this.AutostartTaskName, exists, result.ExitCode); - return exists; - } - catch (Exception ex) - { - LogAutostartTaskQueryException(this.logger, ex); - return false; - } - } - - private string? GetExecutablePath() - { - try - { - var currentPath = Process.GetCurrentProcess().MainModule?.FileName; - if (IsValidExecutablePath(currentPath)) - { - return currentPath; - } - - var assemblyLocation = Assembly.GetExecutingAssembly().Location; - if (!string.IsNullOrWhiteSpace(assemblyLocation) && - assemblyLocation.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) - { - var candidatePath = Path.ChangeExtension(assemblyLocation, ".exe"); - if (IsValidExecutablePath(candidatePath)) - { - return candidatePath; - } - } - - return IsValidExecutablePath(assemblyLocation) - ? assemblyLocation - : null; - } - catch (Exception ex) - { - LogGetExecutablePathFailed(this.logger, ex); - return null; - } - } - - private static string BuildCommand(string executablePath, string arguments) - { - var trimmedArguments = arguments?.Trim(); - return string.IsNullOrWhiteSpace(trimmedArguments) - ? $"\"{executablePath}\"" - : $"\"{executablePath}\" {trimmedArguments}"; - } - - private static bool IsValidExecutablePath(string? executablePath) - { - if (string.IsNullOrWhiteSpace(executablePath) || !Path.IsPathRooted(executablePath)) - { - return false; - } - - return File.Exists(executablePath) && - string.Equals(Path.GetExtension(executablePath), ".exe", StringComparison.OrdinalIgnoreCase); - } - - private static string GetCurrentUserName() - { - var userName = WindowsIdentity.GetCurrent().Name; - if (string.IsNullOrWhiteSpace(userName)) - { - throw new InvalidOperationException("Could not determine current user identity for launch task registration."); - } - - return userName; - } - - private static void WriteLaunchTaskDefinition(string taskXmlPath, string executablePath, string userName) - { - if (string.IsNullOrWhiteSpace(userName)) - { - throw new InvalidOperationException("Could not determine current user identity for launch task registration."); - } - - var workingDirectory = Path.GetDirectoryName(executablePath); - if (string.IsNullOrWhiteSpace(workingDirectory)) - { - throw new InvalidOperationException("Could not determine working directory for launch task registration."); - } - - var escapedUserName = SecurityElement.Escape(userName); - var escapedExecutablePath = SecurityElement.Escape(executablePath); - var escapedArguments = SecurityElement.Escape("--launched-via-task"); - var escapedWorkingDirectory = SecurityElement.Escape(workingDirectory); - - var taskXml = $@" - - - ThreadPilot - Launches ThreadPilot with highest available privileges on demand. - - - - {escapedUserName} - InteractiveToken - HighestAvailable - - - - IgnoreNew - false - false - false - false - false - - false - false - - true - true - false - false - false - PT0S - 7 - - - - {escapedExecutablePath} - {escapedArguments} - {escapedWorkingDirectory} - - -"; - - File.WriteAllText(taskXmlPath, taskXml, Encoding.Unicode); - } - - private Task RunSchTasksAsync(IReadOnlyList arguments) - { - return this.processRunner.RunAsync(SchTasksExecutablePath, arguments, ScheduledTaskTimeout); - } - - private static void TryDeleteFile(string path, ILogger logger) - { - try - { - if (File.Exists(path)) - { - File.Delete(path); - } - } - catch (Exception ex) - { - LogDeleteTemporaryFileFailed(logger, path, ex); - } - } - - [LoggerMessage(EventId = 4250, Level = LogLevel.Warning, Message = "Skipping launch task registration due to invalid executable path: {Path}")] - private static partial void LogSkipEnsureLaunchTaskInvalidPath(ILogger logger, string path); - - [LoggerMessage(EventId = 4251, Level = LogLevel.Information, Message = "Ensured elevated launch task '{TaskName}' for executable '{ExecutablePath}'")] - private static partial void LogLaunchTaskEnsured(ILogger logger, string taskName, string executablePath); - - [LoggerMessage(EventId = 4252, Level = LogLevel.Warning, Message = "Failed to ensure elevated launch task. Exit code: {ExitCode}, Error: {Error}")] - private static partial void LogEnsureLaunchTaskFailed(ILogger logger, int exitCode, string error); - - [LoggerMessage(EventId = 4253, Level = LogLevel.Warning, Message = "Exception while ensuring elevated launch task")] - private static partial void LogEnsureLaunchTaskException(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4254, Level = LogLevel.Information, Message = "Started elevated launch task '{TaskName}'")] - private static partial void LogLaunchTaskStarted(ILogger logger, string taskName); - - [LoggerMessage(EventId = 4255, Level = LogLevel.Warning, Message = "Failed to run elevated launch task. Exit code: {ExitCode}, Error: {Error}")] - private static partial void LogRunLaunchTaskFailed(ILogger logger, int exitCode, string error); - - [LoggerMessage(EventId = 4256, Level = LogLevel.Warning, Message = "Exception while running elevated launch task")] - private static partial void LogRunLaunchTaskException(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4257, Level = LogLevel.Warning, Message = "Skipping autostart task registration due to invalid executable path: {Path}")] - private static partial void LogSkipEnsureAutostartTaskInvalidPath(ILogger logger, string path); - - [LoggerMessage(EventId = 4258, Level = LogLevel.Information, Message = "Ensured elevated autostart task '{TaskName}'")] - private static partial void LogAutostartTaskEnsured(ILogger logger, string taskName); - - [LoggerMessage(EventId = 4259, Level = LogLevel.Warning, Message = "Failed to ensure elevated autostart task. Exit code: {ExitCode}, Error: {Error}")] - private static partial void LogEnsureAutostartTaskFailed(ILogger logger, int exitCode, string error); - - [LoggerMessage(EventId = 4260, Level = LogLevel.Warning, Message = "Exception while ensuring elevated autostart task")] - private static partial void LogEnsureAutostartTaskException(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4261, Level = LogLevel.Information, Message = "Removed elevated autostart task '{TaskName}'")] - private static partial void LogAutostartTaskRemoved(ILogger logger, string taskName); - - [LoggerMessage(EventId = 4262, Level = LogLevel.Debug, Message = "Elevated autostart task '{TaskName}' was already absent")] - private static partial void LogAutostartTaskAlreadyRemoved(ILogger logger, string taskName); - - [LoggerMessage(EventId = 4263, Level = LogLevel.Warning, Message = "Failed to remove elevated autostart task. Exit code: {ExitCode}, Error: {Error}")] - private static partial void LogRemoveAutostartTaskFailed(ILogger logger, int exitCode, string error); - - [LoggerMessage(EventId = 4264, Level = LogLevel.Warning, Message = "Exception while removing elevated autostart task")] - private static partial void LogRemoveAutostartTaskException(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4265, Level = LogLevel.Debug, Message = "Autostart task query for '{TaskName}': Exists={Exists}, ExitCode={ExitCode}")] - private static partial void LogAutostartTaskQueryResult(ILogger logger, string taskName, bool exists, int exitCode); - - [LoggerMessage(EventId = 4266, Level = LogLevel.Warning, Message = "Exception while querying elevated autostart task")] - private static partial void LogAutostartTaskQueryException(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4267, Level = LogLevel.Warning, Message = "Failed to resolve executable path while ensuring elevated tasks")] - private static partial void LogGetExecutablePathFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4268, Level = LogLevel.Debug, Message = "Failed to delete temporary file '{Path}'")] - private static partial void LogDeleteTemporaryFileFailed(ILogger logger, string path, Exception ex); - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Reflection; + using System.Security; + using System.Security.Principal; + using System.Text; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Services.Abstractions; + + public partial class ElevatedTaskService : IElevatedTaskService + { + private static readonly string SchTasksExecutablePath = Path.Combine(Environment.SystemDirectory, "schtasks.exe"); + private static readonly TimeSpan ScheduledTaskTimeout = TimeSpan.FromSeconds(20); + + private readonly ILogger logger; + private readonly IProcessRunner processRunner; + private readonly Func? executablePathProvider; + private readonly Func? currentUserProvider; + + public ElevatedTaskService(ILogger logger, IProcessRunner processRunner) + : this(logger, processRunner, null, null) + { + } + + public ElevatedTaskService( + ILogger logger, + IProcessRunner processRunner, + Func? executablePathProvider, + Func? currentUserProvider) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.processRunner = processRunner ?? throw new ArgumentNullException(nameof(processRunner)); + this.executablePathProvider = executablePathProvider; + this.currentUserProvider = currentUserProvider; + } + + public string LaunchTaskName => "ThreadPilot_Launch"; + + public string AutostartTaskName => "ThreadPilot_Startup"; + + public async Task EnsureLaunchTaskAsync() + { + try + { + var executablePath = this.executablePathProvider?.Invoke() ?? this.GetExecutablePath(); + if (!IsValidExecutablePath(executablePath)) + { + LogSkipEnsureLaunchTaskInvalidPath(this.logger, executablePath ?? "(null)"); + return false; + } + + var taskXmlPath = Path.Combine(Path.GetTempPath(), $"threadpilot-launch-task-{Guid.NewGuid():N}.xml"); + try + { + WriteLaunchTaskDefinition( + taskXmlPath, + executablePath!, + this.currentUserProvider?.Invoke() ?? GetCurrentUserName()); + + var result = await this.RunSchTasksAsync(new List + { + "/Create", + "/TN", this.LaunchTaskName, + "/XML", taskXmlPath, + "/F", + }); + + if (result.ExitCode == 0) + { + LogLaunchTaskEnsured(this.logger, this.LaunchTaskName, executablePath!); + return true; + } + + LogEnsureLaunchTaskFailed(this.logger, result.ExitCode, result.StandardError); + return false; + } + finally + { + TryDeleteFile(taskXmlPath, this.logger); + } + } + catch (Exception ex) + { + LogEnsureLaunchTaskException(this.logger, ex); + return false; + } + } + + public async Task TryRunLaunchTaskAsync() + { + try + { + var result = await this.RunSchTasksAsync(new List + { + "/Run", + "/TN", this.LaunchTaskName, + }); + + if (result.ExitCode == 0) + { + LogLaunchTaskStarted(this.logger, this.LaunchTaskName); + return true; + } + + LogRunLaunchTaskFailed(this.logger, result.ExitCode, result.StandardError); + return false; + } + catch (Exception ex) + { + LogRunLaunchTaskException(this.logger, ex); + return false; + } + } + + public async Task EnsureAutostartTaskAsync(string executablePath, string arguments) + { + try + { + if (!IsValidExecutablePath(executablePath)) + { + LogSkipEnsureAutostartTaskInvalidPath(this.logger, executablePath); + return false; + } + + var taskRunCommand = BuildCommand(executablePath, arguments); + var result = await this.RunSchTasksAsync(new List + { + "/Create", + "/TN", this.AutostartTaskName, + "/TR", taskRunCommand, + "/SC", "ONLOGON", + "/RL", "HIGHEST", + "/F", + "/RU", Environment.UserName, + }); + + if (result.ExitCode == 0) + { + LogAutostartTaskEnsured(this.logger, this.AutostartTaskName); + return true; + } + + LogEnsureAutostartTaskFailed(this.logger, result.ExitCode, result.StandardError); + return false; + } + catch (Exception ex) + { + LogEnsureAutostartTaskException(this.logger, ex); + return false; + } + } + + public async Task RemoveAutostartTaskAsync() + { + try + { + var result = await this.RunSchTasksAsync(new List + { + "/Delete", + "/TN", this.AutostartTaskName, + "/F", + }); + + if (result.ExitCode == 0) + { + LogAutostartTaskRemoved(this.logger, this.AutostartTaskName); + return true; + } + + // Exit code 1 is expected when task doesn't exist; treat as already removed. + if (result.ExitCode == 1) + { + LogAutostartTaskAlreadyRemoved(this.logger, this.AutostartTaskName); + return true; + } + + LogRemoveAutostartTaskFailed(this.logger, result.ExitCode, result.StandardError); + return false; + } + catch (Exception ex) + { + LogRemoveAutostartTaskException(this.logger, ex); + return false; + } + } + + public async Task IsAutostartTaskRegisteredAsync() + { + try + { + var result = await this.RunSchTasksAsync(new List + { + "/Query", + "/TN", this.AutostartTaskName, + }); + + var exists = result.ExitCode == 0; + LogAutostartTaskQueryResult(this.logger, this.AutostartTaskName, exists, result.ExitCode); + return exists; + } + catch (Exception ex) + { + LogAutostartTaskQueryException(this.logger, ex); + return false; + } + } + + private string? GetExecutablePath() + { + try + { + var currentPath = Process.GetCurrentProcess().MainModule?.FileName; + if (IsValidExecutablePath(currentPath)) + { + return currentPath; + } + + var assemblyLocation = Assembly.GetExecutingAssembly().Location; + if (!string.IsNullOrWhiteSpace(assemblyLocation) && + assemblyLocation.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) + { + var candidatePath = Path.ChangeExtension(assemblyLocation, ".exe"); + if (IsValidExecutablePath(candidatePath)) + { + return candidatePath; + } + } + + return IsValidExecutablePath(assemblyLocation) + ? assemblyLocation + : null; + } + catch (Exception ex) + { + LogGetExecutablePathFailed(this.logger, ex); + return null; + } + } + + private static string BuildCommand(string executablePath, string arguments) + { + var trimmedArguments = arguments?.Trim(); + return string.IsNullOrWhiteSpace(trimmedArguments) + ? $"\"{executablePath}\"" + : $"\"{executablePath}\" {trimmedArguments}"; + } + + private static bool IsValidExecutablePath(string? executablePath) + { + if (string.IsNullOrWhiteSpace(executablePath) || !Path.IsPathRooted(executablePath)) + { + return false; + } + + return File.Exists(executablePath) && + string.Equals(Path.GetExtension(executablePath), ".exe", StringComparison.OrdinalIgnoreCase); + } + + private static string GetCurrentUserName() + { + var userName = WindowsIdentity.GetCurrent().Name; + if (string.IsNullOrWhiteSpace(userName)) + { + throw new InvalidOperationException("Could not determine current user identity for launch task registration."); + } + + return userName; + } + + private static void WriteLaunchTaskDefinition(string taskXmlPath, string executablePath, string userName) + { + if (string.IsNullOrWhiteSpace(userName)) + { + throw new InvalidOperationException("Could not determine current user identity for launch task registration."); + } + + var workingDirectory = Path.GetDirectoryName(executablePath); + if (string.IsNullOrWhiteSpace(workingDirectory)) + { + throw new InvalidOperationException("Could not determine working directory for launch task registration."); + } + + var escapedUserName = SecurityElement.Escape(userName); + var escapedExecutablePath = SecurityElement.Escape(executablePath); + var escapedArguments = SecurityElement.Escape("--launched-via-task"); + var escapedWorkingDirectory = SecurityElement.Escape(workingDirectory); + + var taskXml = $@" + + + ThreadPilot + Launches ThreadPilot with highest available privileges on demand. + + + + {escapedUserName} + InteractiveToken + HighestAvailable + + + + IgnoreNew + false + false + false + false + false + + false + false + + true + true + false + false + false + PT0S + 7 + + + + {escapedExecutablePath} + {escapedArguments} + {escapedWorkingDirectory} + + +"; + + File.WriteAllText(taskXmlPath, taskXml, Encoding.Unicode); + } + + private Task RunSchTasksAsync(IReadOnlyList arguments) + { + return this.processRunner.RunAsync(SchTasksExecutablePath, arguments, ScheduledTaskTimeout); + } + + private static void TryDeleteFile(string path, ILogger logger) + { + try + { + if (File.Exists(path)) + { + File.Delete(path); + } + } + catch (Exception ex) + { + LogDeleteTemporaryFileFailed(logger, path, ex); + } + } + + [LoggerMessage(EventId = 4250, Level = LogLevel.Warning, Message = "Skipping launch task registration due to invalid executable path: {Path}")] + private static partial void LogSkipEnsureLaunchTaskInvalidPath(ILogger logger, string path); + + [LoggerMessage(EventId = 4251, Level = LogLevel.Information, Message = "Ensured elevated launch task '{TaskName}' for executable '{ExecutablePath}'")] + private static partial void LogLaunchTaskEnsured(ILogger logger, string taskName, string executablePath); + + [LoggerMessage(EventId = 4252, Level = LogLevel.Warning, Message = "Failed to ensure elevated launch task. Exit code: {ExitCode}, Error: {Error}")] + private static partial void LogEnsureLaunchTaskFailed(ILogger logger, int exitCode, string error); + + [LoggerMessage(EventId = 4253, Level = LogLevel.Warning, Message = "Exception while ensuring elevated launch task")] + private static partial void LogEnsureLaunchTaskException(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4254, Level = LogLevel.Information, Message = "Started elevated launch task '{TaskName}'")] + private static partial void LogLaunchTaskStarted(ILogger logger, string taskName); + + [LoggerMessage(EventId = 4255, Level = LogLevel.Warning, Message = "Failed to run elevated launch task. Exit code: {ExitCode}, Error: {Error}")] + private static partial void LogRunLaunchTaskFailed(ILogger logger, int exitCode, string error); + + [LoggerMessage(EventId = 4256, Level = LogLevel.Warning, Message = "Exception while running elevated launch task")] + private static partial void LogRunLaunchTaskException(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4257, Level = LogLevel.Warning, Message = "Skipping autostart task registration due to invalid executable path: {Path}")] + private static partial void LogSkipEnsureAutostartTaskInvalidPath(ILogger logger, string path); + + [LoggerMessage(EventId = 4258, Level = LogLevel.Information, Message = "Ensured elevated autostart task '{TaskName}'")] + private static partial void LogAutostartTaskEnsured(ILogger logger, string taskName); + + [LoggerMessage(EventId = 4259, Level = LogLevel.Warning, Message = "Failed to ensure elevated autostart task. Exit code: {ExitCode}, Error: {Error}")] + private static partial void LogEnsureAutostartTaskFailed(ILogger logger, int exitCode, string error); + + [LoggerMessage(EventId = 4260, Level = LogLevel.Warning, Message = "Exception while ensuring elevated autostart task")] + private static partial void LogEnsureAutostartTaskException(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4261, Level = LogLevel.Information, Message = "Removed elevated autostart task '{TaskName}'")] + private static partial void LogAutostartTaskRemoved(ILogger logger, string taskName); + + [LoggerMessage(EventId = 4262, Level = LogLevel.Debug, Message = "Elevated autostart task '{TaskName}' was already absent")] + private static partial void LogAutostartTaskAlreadyRemoved(ILogger logger, string taskName); + + [LoggerMessage(EventId = 4263, Level = LogLevel.Warning, Message = "Failed to remove elevated autostart task. Exit code: {ExitCode}, Error: {Error}")] + private static partial void LogRemoveAutostartTaskFailed(ILogger logger, int exitCode, string error); + + [LoggerMessage(EventId = 4264, Level = LogLevel.Warning, Message = "Exception while removing elevated autostart task")] + private static partial void LogRemoveAutostartTaskException(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4265, Level = LogLevel.Debug, Message = "Autostart task query for '{TaskName}': Exists={Exists}, ExitCode={ExitCode}")] + private static partial void LogAutostartTaskQueryResult(ILogger logger, string taskName, bool exists, int exitCode); + + [LoggerMessage(EventId = 4266, Level = LogLevel.Warning, Message = "Exception while querying elevated autostart task")] + private static partial void LogAutostartTaskQueryException(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4267, Level = LogLevel.Warning, Message = "Failed to resolve executable path while ensuring elevated tasks")] + private static partial void LogGetExecutablePathFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4268, Level = LogLevel.Debug, Message = "Failed to delete temporary file '{Path}'")] + private static partial void LogDeleteTemporaryFileFailed(ILogger logger, string path, Exception ex); + } +} diff --git a/Services/ElevationService.cs b/Services/ElevationService.cs index 0ab5b00..83cd81d 100644 --- a/Services/ElevationService.cs +++ b/Services/ElevationService.cs @@ -1,242 +1,223 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Diagnostics; - using System.IO; - using System.Linq; - using System.Security.Principal; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using System.Windows; - using Microsoft.Extensions.Logging; - - /// - /// Service for managing application elevation and administrator privileges. - /// - public partial class ElevationService : IElevationService - { - private readonly ILogger logger; - private readonly ISecurityService securityService; - private readonly SemaphoreSlim elevationRequestSemaphore = new(1, 1); - - public ElevationService(ILogger logger, ISecurityService securityService) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.securityService = securityService ?? throw new ArgumentNullException(nameof(securityService)); - } - - public bool IsRunningAsAdministrator() - { - try - { - var identity = WindowsIdentity.GetCurrent(); - var principal = new WindowsPrincipal(identity); - var isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator); - - LogAdministratorPrivilegeCheck(this.logger, isAdmin); - return isAdmin; - } - catch (Exception ex) - { - LogPrivilegeCheckFailed(this.logger, ex); - return false; - } - } - - public async Task RequestElevationIfNeeded() - { - if (this.IsRunningAsAdministrator()) - { - LogAlreadyElevated(this.logger); - return true; - } - - LogRequestingElevation(this.logger); - - // Show elevation prompt to user - var result = System.Windows.MessageBox.Show( - "ThreadPilot requires administrator privileges to manage process affinity and power plans.\n\n" + - "Would you like to restart the application with administrator privileges?", - "Administrator Privileges Required", - MessageBoxButton.YesNo, - MessageBoxImage.Question); - - if (result != MessageBoxResult.Yes) - { - LogUserDeclinedElevation(this.logger); - return false; - } - - return await this.RestartWithElevation(); - } - - public async Task RestartWithElevation(string[]? arguments = null) - { - await this.elevationRequestSemaphore.WaitAsync(); - try - { - var currentProcess = Process.GetCurrentProcess(); - var executablePath = currentProcess.MainModule?.FileName; - - if (string.IsNullOrWhiteSpace(executablePath) || !Path.IsPathFullyQualified(executablePath) || !File.Exists(executablePath)) - { - LogMissingExecutablePath(this.logger); - return false; - } - - // Combine current arguments with any additional arguments - var currentArgs = Environment.GetCommandLineArgs().Skip(1).ToArray(); - var allArgs = arguments != null ? currentArgs.Concat(arguments).ToArray() : currentArgs; - var argumentString = string.Join(" ", allArgs.Select(EscapeCommandLineArgument)); - var workingDirectory = Path.GetDirectoryName(executablePath); - - var startInfo = new ProcessStartInfo - { - FileName = executablePath, - Arguments = argumentString, - UseShellExecute = true, - Verb = "runas", // This triggers UAC elevation - WorkingDirectory = string.IsNullOrWhiteSpace(workingDirectory) ? Environment.SystemDirectory : workingDirectory, - }; - - LogStartingElevatedProcess(this.logger, executablePath, argumentString); - - var elevatedProcess = Process.Start(startInfo); - if (elevatedProcess != null) - { - LogElevatedProcessStarted(this.logger); - - // Audit the elevation request - await this.securityService.AuditElevatedAction("ApplicationRestart", "Self", true); - - // Shutdown current instance - await Task.Delay(1000); // Give the new process time to start - System.Windows.Application.Current.Shutdown(); - return true; - } - else - { - LogElevatedProcessStartFailed(this.logger); - return false; - } - } - catch (Exception ex) - { - LogRestartWithElevationFailed(this.logger, ex); - await this.securityService.AuditElevatedAction("ApplicationRestart", "Self", false); - - // Show user-friendly error message - System.Windows.MessageBox.Show( - "Failed to restart with administrator privileges. Please manually run ThreadPilot as administrator.", - "Elevation Failed", - MessageBoxButton.OK, - MessageBoxImage.Warning); - - return false; - } - finally - { - this.elevationRequestSemaphore.Release(); - } - } - - public bool ValidateElevationForOperation(string operation) - { - var isElevated = this.IsRunningAsAdministrator(); - var isValidOperation = this.securityService.ValidateElevatedOperation(operation); - - var canPerform = isElevated && isValidOperation; - - LogElevationValidation(this.logger, operation, isElevated, isValidOperation, canPerform); - - return canPerform; - } - - public string GetElevationStatus() - { - return this.IsRunningAsAdministrator() - ? "Running with Administrator privileges" - : "Running with limited privileges"; - } - - private static string EscapeCommandLineArgument(string argument) - { - if (string.IsNullOrEmpty(argument)) - { - return "\"\""; - } - - var escaped = new StringBuilder(); - escaped.Append('"'); - - foreach (var c in argument) - { - if (c == '"') - { - escaped.Append("\\\""); - } - else - { - escaped.Append(c); - } - } - - escaped.Append('"'); - return escaped.ToString(); - } - - [LoggerMessage(EventId = 4100, Level = LogLevel.Debug, Message = "Administrator privilege check: {IsAdmin}")] - private static partial void LogAdministratorPrivilegeCheck(ILogger logger, bool isAdmin); - - [LoggerMessage(EventId = 4101, Level = LogLevel.Error, Message = "Failed to check administrator privileges")] - private static partial void LogPrivilegeCheckFailed(ILogger logger, Exception ex); - - [LoggerMessage(EventId = 4102, Level = LogLevel.Debug, Message = "Application is already running with administrator privileges")] - private static partial void LogAlreadyElevated(ILogger logger); - - [LoggerMessage(EventId = 4103, Level = LogLevel.Information, Message = "Requesting elevation to administrator privileges")] - private static partial void LogRequestingElevation(ILogger logger); - - [LoggerMessage(EventId = 4104, Level = LogLevel.Information, Message = "User declined elevation request")] - private static partial void LogUserDeclinedElevation(ILogger logger); - - [LoggerMessage(EventId = 4105, Level = LogLevel.Error, Message = "Could not determine executable path for elevation")] - private static partial void LogMissingExecutablePath(ILogger logger); - - [LoggerMessage(EventId = 4106, Level = LogLevel.Information, Message = "Starting elevated process: {FileName} {Arguments}")] - private static partial void LogStartingElevatedProcess(ILogger logger, string fileName, string arguments); - - [LoggerMessage(EventId = 4107, Level = LogLevel.Information, Message = "Elevated process started successfully. Shutting down current instance.")] - private static partial void LogElevatedProcessStarted(ILogger logger); - - [LoggerMessage(EventId = 4108, Level = LogLevel.Error, Message = "Failed to start elevated process")] - private static partial void LogElevatedProcessStartFailed(ILogger logger); - - [LoggerMessage(EventId = 4109, Level = LogLevel.Error, Message = "Failed to restart with elevation")] - private static partial void LogRestartWithElevationFailed(ILogger logger, Exception ex); - - [LoggerMessage( - EventId = 4110, - Level = LogLevel.Debug, - Message = "Elevation validation for operation '{Operation}': Elevated={IsElevated}, Valid={IsValid}, CanPerform={CanPerform}")] - private static partial void LogElevationValidation(ILogger logger, string operation, bool isElevated, bool isValid, bool canPerform); - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Diagnostics; + using System.IO; + using System.Linq; + using System.Security.Principal; + using System.Text; + using System.Threading; + using System.Threading.Tasks; + using System.Windows; + using Microsoft.Extensions.Logging; + + public partial class ElevationService : IElevationService + { + private readonly ILogger logger; + private readonly ISecurityService securityService; + private readonly SemaphoreSlim elevationRequestSemaphore = new(1, 1); + + public ElevationService(ILogger logger, ISecurityService securityService) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.securityService = securityService ?? throw new ArgumentNullException(nameof(securityService)); + } + + public bool IsRunningAsAdministrator() + { + try + { + var identity = WindowsIdentity.GetCurrent(); + var principal = new WindowsPrincipal(identity); + var isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator); + + LogAdministratorPrivilegeCheck(this.logger, isAdmin); + return isAdmin; + } + catch (Exception ex) + { + LogPrivilegeCheckFailed(this.logger, ex); + return false; + } + } + + public async Task RequestElevationIfNeeded() + { + if (this.IsRunningAsAdministrator()) + { + LogAlreadyElevated(this.logger); + return true; + } + + LogRequestingElevation(this.logger); + + // Show elevation prompt to user + var result = System.Windows.MessageBox.Show( + "ThreadPilot requires administrator privileges to manage process affinity and power plans.\n\n" + + "Would you like to restart the application with administrator privileges?", + "Administrator Privileges Required", + MessageBoxButton.YesNo, + MessageBoxImage.Question); + + if (result != MessageBoxResult.Yes) + { + LogUserDeclinedElevation(this.logger); + return false; + } + + return await this.RestartWithElevation(); + } + + public async Task RestartWithElevation(string[]? arguments = null) + { + await this.elevationRequestSemaphore.WaitAsync(); + try + { + var currentProcess = Process.GetCurrentProcess(); + var executablePath = currentProcess.MainModule?.FileName; + + if (string.IsNullOrWhiteSpace(executablePath) || !Path.IsPathFullyQualified(executablePath) || !File.Exists(executablePath)) + { + LogMissingExecutablePath(this.logger); + return false; + } + + // Combine current arguments with any additional arguments + var currentArgs = Environment.GetCommandLineArgs().Skip(1).ToArray(); + var allArgs = arguments != null ? currentArgs.Concat(arguments).ToArray() : currentArgs; + var argumentString = string.Join(" ", allArgs.Select(EscapeCommandLineArgument)); + var workingDirectory = Path.GetDirectoryName(executablePath); + + var startInfo = new ProcessStartInfo + { + FileName = executablePath, + Arguments = argumentString, + UseShellExecute = true, + Verb = "runas", // This triggers UAC elevation + WorkingDirectory = string.IsNullOrWhiteSpace(workingDirectory) ? Environment.SystemDirectory : workingDirectory, + }; + + LogStartingElevatedProcess(this.logger, executablePath, argumentString); + + var elevatedProcess = Process.Start(startInfo); + if (elevatedProcess != null) + { + LogElevatedProcessStarted(this.logger); + + // Audit the elevation request + await this.securityService.AuditElevatedAction("ApplicationRestart", "Self", true); + + // Shutdown current instance + await Task.Delay(1000); // Give the new process time to start + System.Windows.Application.Current.Shutdown(); + return true; + } + else + { + LogElevatedProcessStartFailed(this.logger); + return false; + } + } + catch (Exception ex) + { + LogRestartWithElevationFailed(this.logger, ex); + await this.securityService.AuditElevatedAction("ApplicationRestart", "Self", false); + + // Show user-friendly error message + System.Windows.MessageBox.Show( + "Failed to restart with administrator privileges. Please manually run ThreadPilot as administrator.", + "Elevation Failed", + MessageBoxButton.OK, + MessageBoxImage.Warning); + + return false; + } + finally + { + this.elevationRequestSemaphore.Release(); + } + } + + public bool ValidateElevationForOperation(string operation) + { + var isElevated = this.IsRunningAsAdministrator(); + var isValidOperation = this.securityService.ValidateElevatedOperation(operation); + + var canPerform = isElevated && isValidOperation; + + LogElevationValidation(this.logger, operation, isElevated, isValidOperation, canPerform); + + return canPerform; + } + + public string GetElevationStatus() + { + return this.IsRunningAsAdministrator() + ? "Running with Administrator privileges" + : "Running with limited privileges"; + } + + private static string EscapeCommandLineArgument(string argument) + { + if (string.IsNullOrEmpty(argument)) + { + return "\"\""; + } + + var escaped = new StringBuilder(); + escaped.Append('"'); + + foreach (var c in argument) + { + if (c == '"') + { + escaped.Append("\\\""); + } + else + { + escaped.Append(c); + } + } + + escaped.Append('"'); + return escaped.ToString(); + } + + [LoggerMessage(EventId = 4100, Level = LogLevel.Debug, Message = "Administrator privilege check: {IsAdmin}")] + private static partial void LogAdministratorPrivilegeCheck(ILogger logger, bool isAdmin); + + [LoggerMessage(EventId = 4101, Level = LogLevel.Error, Message = "Failed to check administrator privileges")] + private static partial void LogPrivilegeCheckFailed(ILogger logger, Exception ex); + + [LoggerMessage(EventId = 4102, Level = LogLevel.Debug, Message = "Application is already running with administrator privileges")] + private static partial void LogAlreadyElevated(ILogger logger); + + [LoggerMessage(EventId = 4103, Level = LogLevel.Information, Message = "Requesting elevation to administrator privileges")] + private static partial void LogRequestingElevation(ILogger logger); + + [LoggerMessage(EventId = 4104, Level = LogLevel.Information, Message = "User declined elevation request")] + private static partial void LogUserDeclinedElevation(ILogger logger); + + [LoggerMessage(EventId = 4105, Level = LogLevel.Error, Message = "Could not determine executable path for elevation")] + private static partial void LogMissingExecutablePath(ILogger logger); + + [LoggerMessage(EventId = 4106, Level = LogLevel.Information, Message = "Starting elevated process: {FileName} {Arguments}")] + private static partial void LogStartingElevatedProcess(ILogger logger, string fileName, string arguments); + + [LoggerMessage(EventId = 4107, Level = LogLevel.Information, Message = "Elevated process started successfully. Shutting down current instance.")] + private static partial void LogElevatedProcessStarted(ILogger logger); + + [LoggerMessage(EventId = 4108, Level = LogLevel.Error, Message = "Failed to start elevated process")] + private static partial void LogElevatedProcessStartFailed(ILogger logger); + + [LoggerMessage(EventId = 4109, Level = LogLevel.Error, Message = "Failed to restart with elevation")] + private static partial void LogRestartWithElevationFailed(ILogger logger, Exception ex); + + [LoggerMessage( + EventId = 4110, + Level = LogLevel.Debug, + Message = "Elevation validation for operation '{Operation}': Elevated={IsElevated}, Valid={IsValid}, CanPerform={CanPerform}")] + private static partial void LogElevationValidation(ILogger logger, string operation, bool isElevated, bool isValid, bool canPerform); + } +} + diff --git a/Services/EnhancedLoggingService.cs b/Services/EnhancedLoggingService.cs index 492987d..7ac3482 100644 --- a/Services/EnhancedLoggingService.cs +++ b/Services/EnhancedLoggingService.cs @@ -1,578 +1,556 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Text.Json; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Enhanced logging service with file persistence and structured logging. - /// - public class EnhancedLoggingService : IEnhancedLoggingService, IDisposable - { - private readonly ILogger logger; - private readonly IApplicationSettingsService settingsService; - private readonly SemaphoreSlim fileLock = new(1, 1); - private readonly ConcurrentQueue logQueue = new(); - private readonly System.Threading.Timer flushTimer; - private readonly string logDirectory; - private string currentLogFilePath; - private bool isInitialized; - private bool disposed; - - // PERFORMANCE IMPROVEMENT: Correlation tracking for better debugging - internal readonly AsyncLocal CorrelationId = new(); - internal readonly ConcurrentDictionary OperationStartTimes = new(); - - public string CurrentLogFilePath => this.currentLogFilePath; - - public string LogDirectoryPath => this.logDirectory; - - public bool IsDebugLoggingEnabled => this.settingsService.Settings.EnableDebugLogging; - - public event EventHandler? CriticalErrorOccurred; - - public EnhancedLoggingService(ILogger logger, IApplicationSettingsService settingsService) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - - // Set up log directory - this.logDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "ThreadPilot", "Logs"); - this.currentLogFilePath = this.GetCurrentLogFilePath(); - - // Create flush timer (flush every 5 seconds) - this.flushTimer = new System.Threading.Timer(this.FlushLogs, null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5)); - } - - public async Task InitializeAsync() - { - if (this.isInitialized) - { - return; - } - - try - { - // Ensure log directory exists - Directory.CreateDirectory(this.logDirectory); - - // Create initial log file if it doesn't exist - if (!File.Exists(this.currentLogFilePath)) - { - await this.CreateNewLogFileAsync(); - } - - // Log initialization - await this.LogSystemEventAsync("LoggingService", "Enhanced logging service initialized", LogLevel.Information); - - // Clean up old logs - await this.CleanupOldLogsAsync(); - - this.isInitialized = true; - this.logger.LogInformation("Enhanced logging service initialized. Log directory: {LogDirectory}", this.logDirectory); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to initialize enhanced logging service"); - throw; - } - } - - public async Task LogPowerPlanChangeAsync(string fromPlan, string toPlan, string reason, string? processName = null) - { - var properties = new Dictionary - { - ["FromPlan"] = fromPlan, - ["ToPlan"] = toPlan, - ["Reason"] = reason, - ["ProcessName"] = processName ?? "N/A", - }; - - var message = processName != null - ? $"Power plan changed from '{fromPlan}' to '{toPlan}' due to process '{processName}' ({reason})" - : $"Power plan changed from '{fromPlan}' to '{toPlan}' ({reason})"; - - await this.LogStructuredEventAsync("PowerPlan", message, LogLevel.Information, properties); - } - - public async Task LogProcessMonitoringEventAsync(string eventType, string processName, int processId, string details) - { - var properties = new Dictionary - { - ["EventType"] = eventType, - ["ProcessName"] = processName, - ["ProcessId"] = processId, - ["Details"] = details, - }; - - var message = $"Process monitoring event: {eventType} - {processName} (PID: {processId}) - {details}"; - await this.LogStructuredEventAsync("ProcessMonitoring", message, LogLevel.Information, properties); - } - - public async Task LogUserActionAsync(string action, string details, string? context = null) - { - var properties = new Dictionary - { - ["Action"] = action, - ["Details"] = details, - ["Context"] = context ?? "N/A", - }; - - var message = $"User action: {action} - {details}"; - if (!string.IsNullOrEmpty(context)) - { - message += $" (Context: {context})"; - } - - await this.LogStructuredEventAsync("UserAction", message, LogLevel.Information, properties); - } - - public async Task LogSystemEventAsync(string eventType, string message, LogLevel level = LogLevel.Information) - { - var properties = new Dictionary - { - ["EventType"] = eventType, - }; - - await this.LogStructuredEventAsync("System", message, level, properties); - } - - public async Task LogErrorAsync(Exception exception, string context, Dictionary? additionalData = null) - { - var properties = new Dictionary - { - ["Context"] = context, - ["ExceptionType"] = exception.GetType().Name, - ["StackTrace"] = exception.StackTrace ?? "N/A", - }; - - if (additionalData != null) - { - foreach (var kvp in additionalData) - { - properties[kvp.Key] = kvp.Value; - } - } - - var message = $"Error in {context}: {exception.Message}"; - await this.LogStructuredEventAsync("Error", message, LogLevel.Error, properties, exception); - - // Raise critical error event for severe exceptions - if (exception is OutOfMemoryException or StackOverflowException or AccessViolationException) - { - this.CriticalErrorOccurred?.Invoke(this, new CriticalErrorEventArgs(exception, context, additionalData)); - } - } - - public async Task LogApplicationLifecycleEventAsync(string eventType, string details) - { - var properties = new Dictionary - { - ["EventType"] = eventType, - ["Details"] = details, - ["Version"] = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString() ?? "Unknown", - }; - - var message = $"Application {eventType}: {details}"; - await this.LogStructuredEventAsync("Lifecycle", message, LogLevel.Information, properties); - } - - public IDisposable BeginScope(string operationName, object? parameters = null) - { - var correlationId = Guid.NewGuid().ToString("N")[..8]; - this.CorrelationId.Value = correlationId; - this.OperationStartTimes[correlationId] = DateTime.UtcNow; - - var parametersDict = parameters != null - ? JsonSerializer.Serialize(parameters) - : "{}"; - - this.logger.LogInformation( - "Operation {OperationName} started with correlation {CorrelationId} and parameters {Parameters}", - operationName, correlationId, parametersDict); - - return new OperationScope(this, operationName, correlationId); - } - - public string? GetCurrentCorrelationId() - { - return this.CorrelationId.Value; - } - - private async Task LogStructuredEventAsync(string category, string message, LogLevel level, Dictionary properties, Exception? exception = null) - { - if (!this.isInitialized && category != "System") - { - return; - } - - // Skip debug messages if debug logging is disabled - if (level == LogLevel.Debug && !this.IsDebugLoggingEnabled) - { - return; - } - - var logEntry = new LogEntry - { - Timestamp = DateTime.UtcNow, - Level = level, - Category = category, - Message = message, - Exception = exception?.ToString(), - Properties = properties, - CorrelationId = Thread.CurrentThread.ManagedThreadId.ToString(), - }; - - this.logQueue.Enqueue(logEntry); - - // Force immediate flush for errors and critical events - if (level >= LogLevel.Error) - { - await this.FlushLogsAsync(); - } - } - - private void FlushLogs(object? state) - { - TaskSafety.FireAndForget(this.FlushLogsAsync(), ex => - { - this.logger.LogWarning(ex, "Periodic log flush failed"); - }); - } - - private async Task FlushLogsAsync() - { - if (this.logQueue.IsEmpty) - { - return; - } - - await this.fileLock.WaitAsync(); - try - { - // Check if we need to rotate the log file - await this.CheckLogRotationAsync(); - - var logEntries = new List(); - while (this.logQueue.TryDequeue(out var entry)) - { - logEntries.Add(entry); - } - - if (logEntries.Count == 0) - { - return; - } - - // Write entries to file - await this.WriteLogEntriesToFileAsync(logEntries); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to flush logs to file"); - } - finally - { - this.fileLock.Release(); - } - } - - private async Task WriteLogEntriesToFileAsync(List entries) - { - var logLines = entries.Select(this.FormatLogEntry); - await File.AppendAllLinesAsync(this.currentLogFilePath, logLines); - } - - private string FormatLogEntry(LogEntry entry) - { - var logData = new - { - timestamp = entry.Timestamp.ToString("yyyy-MM-dd HH:mm:ss.fff"), - level = entry.Level.ToString(), - category = entry.Category, - message = entry.Message, - exception = entry.Exception, - properties = entry.Properties, - correlationId = entry.CorrelationId, - }; - - return JsonSerializer.Serialize(logData, new JsonSerializerOptions { WriteIndented = false }); - } - - private async Task CheckLogRotationAsync() - { - var fileInfo = new FileInfo(this.currentLogFilePath); - var maxSizeBytes = this.settingsService.Settings.MaxLogFileSizeMb * 1024 * 1024; - - if (fileInfo.Exists && fileInfo.Length > maxSizeBytes) - { - // Rotate log file - var rotatedPath = Path.Combine(this.logDirectory, $"ThreadPilot_{DateTime.UtcNow:yyyyMMdd_HHmmss}.log"); - File.Move(this.currentLogFilePath, rotatedPath); - await this.CreateNewLogFileAsync(); - } - } - - private async Task CreateNewLogFileAsync() - { - this.currentLogFilePath = this.GetCurrentLogFilePath(); - await File.WriteAllTextAsync(this.currentLogFilePath, $"# ThreadPilot Log File - Created {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC{Environment.NewLine}"); - } - - private string GetCurrentLogFilePath() - { - return Path.Combine(this.logDirectory, "ThreadPilot.log"); - } - - public async Task> GetRecentLogEntriesAsync(int count = 100) - { - return await this.GetLogEntriesAsync(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow); - } - - public async Task> GetLogEntriesAsync(DateTime fromDate, DateTime toDate) - { - var entries = new List(); - - await this.fileLock.WaitAsync(); - try - { - var logFiles = Directory.GetFiles(this.logDirectory, "*.log") - .OrderByDescending(f => new FileInfo(f).CreationTime); - - foreach (var logFile in logFiles) - { - var fileEntries = await this.ReadLogEntriesFromFileAsync(logFile, fromDate, toDate); - entries.AddRange(fileEntries); - } - - return entries.OrderByDescending(e => e.Timestamp).Take(1000).ToList(); - } - finally - { - this.fileLock.Release(); - } - } - - private async Task> ReadLogEntriesFromFileAsync(string filePath, DateTime fromDate, DateTime toDate) - { - var entries = new List(); - - try - { - var lines = await File.ReadAllLinesAsync(filePath); - foreach (var line in lines) - { - if (line.StartsWith("#") || string.IsNullOrWhiteSpace(line)) - { - continue; - } - - try - { - var logData = JsonSerializer.Deserialize(line); - var timestamp = DateTime.Parse(logData.GetProperty("timestamp").GetString()!); - - if (timestamp >= fromDate && timestamp <= toDate) - { - var entry = new LogEntry - { - Timestamp = timestamp, - Level = Enum.Parse(logData.GetProperty("level").GetString()!), - Category = logData.GetProperty("category").GetString()!, - Message = logData.GetProperty("message").GetString()!, - Exception = logData.TryGetProperty("exception", out var ex) ? ex.GetString() : null, - CorrelationId = logData.TryGetProperty("correlationId", out var cid) ? cid.GetString() : null, - }; - - if (logData.TryGetProperty("properties", out var props)) - { - entry.Properties = JsonSerializer.Deserialize>(props.GetRawText()) ?? new(); - } - - entries.Add(entry); - } - } - catch - { - // Skip malformed log entries - } - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to read log entries from file: {FilePath}", filePath); - } - - return entries; - } - - public async Task CleanupOldLogsAsync() - { - await this.fileLock.WaitAsync(); - try - { - var retentionDate = DateTime.UtcNow.AddDays(-this.settingsService.Settings.LogRetentionDays); - var logFiles = Directory.GetFiles(this.logDirectory, "*.log"); - - foreach (var logFile in logFiles) - { - var fileInfo = new FileInfo(logFile); - if (fileInfo.CreationTime < retentionDate && Path.GetFileName(logFile) != "ThreadPilot.log") - { - try - { - File.Delete(logFile); - this.logger.LogDebug("Deleted old log file: {LogFile}", logFile); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to delete old log file: {LogFile}", logFile); - } - } - } - } - finally - { - this.fileLock.Release(); - } - } - - public async Task GetLogStatisticsAsync() - { - await this.fileLock.WaitAsync(); - try - { - var stats = new LogFileStatistics(); - var logFiles = Directory.GetFiles(this.logDirectory, "*.log"); - - stats.TotalLogFiles = logFiles.Length; - - foreach (var logFile in logFiles) - { - var fileInfo = new FileInfo(logFile); - stats.TotalLogSizeBytes += fileInfo.Length; - - if (Path.GetFileName(logFile) == "ThreadPilot.log") - { - stats.CurrentFileSizeBytes = fileInfo.Length; - } - - if (stats.OldestLogDate == default || fileInfo.CreationTime < stats.OldestLogDate) - { - stats.OldestLogDate = fileInfo.CreationTime; - } - - if (fileInfo.CreationTime > stats.NewestLogDate) - { - stats.NewestLogDate = fileInfo.CreationTime; - } - } - - return stats; - } - finally - { - this.fileLock.Release(); - } - } - - public async Task ExportLogsAsync(DateTime fromDate, DateTime toDate, string? exportPath = null) - { - exportPath ??= Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.Desktop), - $"ThreadPilot_Logs_{DateTime.Now:yyyyMMdd_HHmmss}.txt"); - - var entries = await this.GetLogEntriesAsync(fromDate, toDate); - var exportLines = entries.Select(e => $"{e.Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{e.Level}] {e.Category}: {e.Message}"); - - await File.WriteAllLinesAsync(exportPath, exportLines); - return exportPath; - } - - public async Task UpdateConfigurationAsync(bool enableDebugLogging, int maxFileSizeMb, int retentionDays) - { - var updatedSettings = this.settingsService.Settings; - updatedSettings.EnableDebugLogging = enableDebugLogging; - updatedSettings.MaxLogFileSizeMb = maxFileSizeMb; - updatedSettings.LogRetentionDays = retentionDays; - - await this.settingsService.UpdateSettingsAsync(updatedSettings); - await this.LogSystemEventAsync("Configuration", $"Logging configuration updated: Debug={enableDebugLogging}, MaxSize={maxFileSizeMb}MB, Retention={retentionDays}days"); - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - this.flushTimer?.Dispose(); - this.FlushLogsAsync().Wait(TimeSpan.FromSeconds(5)); - this.fileLock?.Dispose(); - this.disposed = true; - } - } - - /// - /// Operation scope for correlation tracking. - /// - internal class OperationScope : IDisposable - { - private readonly EnhancedLoggingService loggingService; - private readonly string operationName; - private readonly string correlationId; - private readonly DateTime startTime; - private bool disposed; - - public OperationScope(EnhancedLoggingService loggingService, string operationName, string correlationId) - { - this.loggingService = loggingService; - this.operationName = operationName; - this.correlationId = correlationId; - this.startTime = DateTime.UtcNow; - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - var duration = DateTime.UtcNow - this.startTime; - this.loggingService.OperationStartTimes.TryRemove(this.correlationId, out _); - this.loggingService.CorrelationId.Value = null; - - // Use the public logging method instead of accessing private _logger - _ = this.loggingService.LogSystemEventAsync( - "OperationCompleted", - $"Operation {this.operationName} completed with correlation {this.correlationId} in {duration.TotalMilliseconds}ms"); - - this.disposed = true; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Text.Json; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + + public class EnhancedLoggingService : IEnhancedLoggingService, IDisposable + { + private readonly ILogger logger; + private readonly IApplicationSettingsService settingsService; + private readonly SemaphoreSlim fileLock = new(1, 1); + private readonly ConcurrentQueue logQueue = new(); + private readonly System.Threading.Timer flushTimer; + private readonly string logDirectory; + private string currentLogFilePath; + private bool isInitialized; + private bool disposed; + + // PERFORMANCE IMPROVEMENT: Correlation tracking for better debugging + internal readonly AsyncLocal CorrelationId = new(); + internal readonly ConcurrentDictionary OperationStartTimes = new(); + + public string CurrentLogFilePath => this.currentLogFilePath; + + public string LogDirectoryPath => this.logDirectory; + + public bool IsDebugLoggingEnabled => this.settingsService.Settings.EnableDebugLogging; + + public event EventHandler? CriticalErrorOccurred; + + public EnhancedLoggingService(ILogger logger, IApplicationSettingsService settingsService) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + + // Set up log directory + this.logDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "ThreadPilot", "Logs"); + this.currentLogFilePath = this.GetCurrentLogFilePath(); + + // Create flush timer (flush every 5 seconds) + this.flushTimer = new System.Threading.Timer(this.FlushLogs, null, TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(5)); + } + + public async Task InitializeAsync() + { + if (this.isInitialized) + { + return; + } + + try + { + // Ensure log directory exists + Directory.CreateDirectory(this.logDirectory); + + // Create initial log file if it doesn't exist + if (!File.Exists(this.currentLogFilePath)) + { + await this.CreateNewLogFileAsync(); + } + + // Log initialization + await this.LogSystemEventAsync("LoggingService", "Enhanced logging service initialized", LogLevel.Information); + + // Clean up old logs + await this.CleanupOldLogsAsync(); + + this.isInitialized = true; + this.logger.LogInformation("Enhanced logging service initialized. Log directory: {LogDirectory}", this.logDirectory); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to initialize enhanced logging service"); + throw; + } + } + + public async Task LogPowerPlanChangeAsync(string fromPlan, string toPlan, string reason, string? processName = null) + { + var properties = new Dictionary + { + ["FromPlan"] = fromPlan, + ["ToPlan"] = toPlan, + ["Reason"] = reason, + ["ProcessName"] = processName ?? "N/A", + }; + + var message = processName != null + ? $"Power plan changed from '{fromPlan}' to '{toPlan}' due to process '{processName}' ({reason})" + : $"Power plan changed from '{fromPlan}' to '{toPlan}' ({reason})"; + + await this.LogStructuredEventAsync("PowerPlan", message, LogLevel.Information, properties); + } + + public async Task LogProcessMonitoringEventAsync(string eventType, string processName, int processId, string details) + { + var properties = new Dictionary + { + ["EventType"] = eventType, + ["ProcessName"] = processName, + ["ProcessId"] = processId, + ["Details"] = details, + }; + + var message = $"Process monitoring event: {eventType} - {processName} (PID: {processId}) - {details}"; + await this.LogStructuredEventAsync("ProcessMonitoring", message, LogLevel.Information, properties); + } + + public async Task LogUserActionAsync(string action, string details, string? context = null) + { + var properties = new Dictionary + { + ["Action"] = action, + ["Details"] = details, + ["Context"] = context ?? "N/A", + }; + + var message = $"User action: {action} - {details}"; + if (!string.IsNullOrEmpty(context)) + { + message += $" (Context: {context})"; + } + + await this.LogStructuredEventAsync("UserAction", message, LogLevel.Information, properties); + } + + public async Task LogSystemEventAsync(string eventType, string message, LogLevel level = LogLevel.Information) + { + var properties = new Dictionary + { + ["EventType"] = eventType, + }; + + await this.LogStructuredEventAsync("System", message, level, properties); + } + + public async Task LogErrorAsync(Exception exception, string context, Dictionary? additionalData = null) + { + var properties = new Dictionary + { + ["Context"] = context, + ["ExceptionType"] = exception.GetType().Name, + ["StackTrace"] = exception.StackTrace ?? "N/A", + }; + + if (additionalData != null) + { + foreach (var kvp in additionalData) + { + properties[kvp.Key] = kvp.Value; + } + } + + var message = $"Error in {context}: {exception.Message}"; + await this.LogStructuredEventAsync("Error", message, LogLevel.Error, properties, exception); + + // Raise critical error event for severe exceptions + if (exception is OutOfMemoryException or StackOverflowException or AccessViolationException) + { + this.CriticalErrorOccurred?.Invoke(this, new CriticalErrorEventArgs(exception, context, additionalData)); + } + } + + public async Task LogApplicationLifecycleEventAsync(string eventType, string details) + { + var properties = new Dictionary + { + ["EventType"] = eventType, + ["Details"] = details, + ["Version"] = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version?.ToString() ?? "Unknown", + }; + + var message = $"Application {eventType}: {details}"; + await this.LogStructuredEventAsync("Lifecycle", message, LogLevel.Information, properties); + } + + public IDisposable BeginScope(string operationName, object? parameters = null) + { + var correlationId = Guid.NewGuid().ToString("N")[..8]; + this.CorrelationId.Value = correlationId; + this.OperationStartTimes[correlationId] = DateTime.UtcNow; + + var parametersDict = parameters != null + ? JsonSerializer.Serialize(parameters) + : "{}"; + + this.logger.LogInformation( + "Operation {OperationName} started with correlation {CorrelationId} and parameters {Parameters}", + operationName, correlationId, parametersDict); + + return new OperationScope(this, operationName, correlationId); + } + + public string? GetCurrentCorrelationId() + { + return this.CorrelationId.Value; + } + + private async Task LogStructuredEventAsync(string category, string message, LogLevel level, Dictionary properties, Exception? exception = null) + { + if (!this.isInitialized && category != "System") + { + return; + } + + // Skip debug messages if debug logging is disabled + if (level == LogLevel.Debug && !this.IsDebugLoggingEnabled) + { + return; + } + + var logEntry = new LogEntry + { + Timestamp = DateTime.UtcNow, + Level = level, + Category = category, + Message = message, + Exception = exception?.ToString(), + Properties = properties, + CorrelationId = Thread.CurrentThread.ManagedThreadId.ToString(), + }; + + this.logQueue.Enqueue(logEntry); + + // Force immediate flush for errors and critical events + if (level >= LogLevel.Error) + { + await this.FlushLogsAsync(); + } + } + + private void FlushLogs(object? state) + { + TaskSafety.FireAndForget(this.FlushLogsAsync(), ex => + { + this.logger.LogWarning(ex, "Periodic log flush failed"); + }); + } + + private async Task FlushLogsAsync() + { + if (this.logQueue.IsEmpty) + { + return; + } + + await this.fileLock.WaitAsync(); + try + { + // Check if we need to rotate the log file + await this.CheckLogRotationAsync(); + + var logEntries = new List(); + while (this.logQueue.TryDequeue(out var entry)) + { + logEntries.Add(entry); + } + + if (logEntries.Count == 0) + { + return; + } + + // Write entries to file + await this.WriteLogEntriesToFileAsync(logEntries); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to flush logs to file"); + } + finally + { + this.fileLock.Release(); + } + } + + private async Task WriteLogEntriesToFileAsync(List entries) + { + var logLines = entries.Select(this.FormatLogEntry); + await File.AppendAllLinesAsync(this.currentLogFilePath, logLines); + } + + private string FormatLogEntry(LogEntry entry) + { + var logData = new + { + timestamp = entry.Timestamp.ToString("yyyy-MM-dd HH:mm:ss.fff"), + level = entry.Level.ToString(), + category = entry.Category, + message = entry.Message, + exception = entry.Exception, + properties = entry.Properties, + correlationId = entry.CorrelationId, + }; + + return JsonSerializer.Serialize(logData, new JsonSerializerOptions { WriteIndented = false }); + } + + private async Task CheckLogRotationAsync() + { + var fileInfo = new FileInfo(this.currentLogFilePath); + var maxSizeBytes = this.settingsService.Settings.MaxLogFileSizeMb * 1024 * 1024; + + if (fileInfo.Exists && fileInfo.Length > maxSizeBytes) + { + // Rotate log file + var rotatedPath = Path.Combine(this.logDirectory, $"ThreadPilot_{DateTime.UtcNow:yyyyMMdd_HHmmss}.log"); + File.Move(this.currentLogFilePath, rotatedPath); + await this.CreateNewLogFileAsync(); + } + } + + private async Task CreateNewLogFileAsync() + { + this.currentLogFilePath = this.GetCurrentLogFilePath(); + await File.WriteAllTextAsync(this.currentLogFilePath, $"# ThreadPilot Log File - Created {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC{Environment.NewLine}"); + } + + private string GetCurrentLogFilePath() + { + return Path.Combine(this.logDirectory, "ThreadPilot.log"); + } + + public async Task> GetRecentLogEntriesAsync(int count = 100) + { + return await this.GetLogEntriesAsync(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow); + } + + public async Task> GetLogEntriesAsync(DateTime fromDate, DateTime toDate) + { + var entries = new List(); + + await this.fileLock.WaitAsync(); + try + { + var logFiles = Directory.GetFiles(this.logDirectory, "*.log") + .OrderByDescending(f => new FileInfo(f).CreationTime); + + foreach (var logFile in logFiles) + { + var fileEntries = await this.ReadLogEntriesFromFileAsync(logFile, fromDate, toDate); + entries.AddRange(fileEntries); + } + + return entries.OrderByDescending(e => e.Timestamp).Take(1000).ToList(); + } + finally + { + this.fileLock.Release(); + } + } + + private async Task> ReadLogEntriesFromFileAsync(string filePath, DateTime fromDate, DateTime toDate) + { + var entries = new List(); + + try + { + var lines = await File.ReadAllLinesAsync(filePath); + foreach (var line in lines) + { + if (line.StartsWith("#") || string.IsNullOrWhiteSpace(line)) + { + continue; + } + + try + { + var logData = JsonSerializer.Deserialize(line); + var timestamp = DateTime.Parse(logData.GetProperty("timestamp").GetString()!); + + if (timestamp >= fromDate && timestamp <= toDate) + { + var entry = new LogEntry + { + Timestamp = timestamp, + Level = Enum.Parse(logData.GetProperty("level").GetString()!), + Category = logData.GetProperty("category").GetString()!, + Message = logData.GetProperty("message").GetString()!, + Exception = logData.TryGetProperty("exception", out var ex) ? ex.GetString() : null, + CorrelationId = logData.TryGetProperty("correlationId", out var cid) ? cid.GetString() : null, + }; + + if (logData.TryGetProperty("properties", out var props)) + { + entry.Properties = JsonSerializer.Deserialize>(props.GetRawText()) ?? new(); + } + + entries.Add(entry); + } + } + catch + { + // Skip malformed log entries + } + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to read log entries from file: {FilePath}", filePath); + } + + return entries; + } + + public async Task CleanupOldLogsAsync() + { + await this.fileLock.WaitAsync(); + try + { + var retentionDate = DateTime.UtcNow.AddDays(-this.settingsService.Settings.LogRetentionDays); + var logFiles = Directory.GetFiles(this.logDirectory, "*.log"); + + foreach (var logFile in logFiles) + { + var fileInfo = new FileInfo(logFile); + if (fileInfo.CreationTime < retentionDate && Path.GetFileName(logFile) != "ThreadPilot.log") + { + try + { + File.Delete(logFile); + this.logger.LogDebug("Deleted old log file: {LogFile}", logFile); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to delete old log file: {LogFile}", logFile); + } + } + } + } + finally + { + this.fileLock.Release(); + } + } + + public async Task GetLogStatisticsAsync() + { + await this.fileLock.WaitAsync(); + try + { + var stats = new LogFileStatistics(); + var logFiles = Directory.GetFiles(this.logDirectory, "*.log"); + + stats.TotalLogFiles = logFiles.Length; + + foreach (var logFile in logFiles) + { + var fileInfo = new FileInfo(logFile); + stats.TotalLogSizeBytes += fileInfo.Length; + + if (Path.GetFileName(logFile) == "ThreadPilot.log") + { + stats.CurrentFileSizeBytes = fileInfo.Length; + } + + if (stats.OldestLogDate == default || fileInfo.CreationTime < stats.OldestLogDate) + { + stats.OldestLogDate = fileInfo.CreationTime; + } + + if (fileInfo.CreationTime > stats.NewestLogDate) + { + stats.NewestLogDate = fileInfo.CreationTime; + } + } + + return stats; + } + finally + { + this.fileLock.Release(); + } + } + + public async Task ExportLogsAsync(DateTime fromDate, DateTime toDate, string? exportPath = null) + { + exportPath ??= Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + $"ThreadPilot_Logs_{DateTime.Now:yyyyMMdd_HHmmss}.txt"); + + var entries = await this.GetLogEntriesAsync(fromDate, toDate); + var exportLines = entries.Select(e => $"{e.Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{e.Level}] {e.Category}: {e.Message}"); + + await File.WriteAllLinesAsync(exportPath, exportLines); + return exportPath; + } + + public async Task UpdateConfigurationAsync(bool enableDebugLogging, int maxFileSizeMb, int retentionDays) + { + var updatedSettings = this.settingsService.Settings; + updatedSettings.EnableDebugLogging = enableDebugLogging; + updatedSettings.MaxLogFileSizeMb = maxFileSizeMb; + updatedSettings.LogRetentionDays = retentionDays; + + await this.settingsService.UpdateSettingsAsync(updatedSettings); + await this.LogSystemEventAsync("Configuration", $"Logging configuration updated: Debug={enableDebugLogging}, MaxSize={maxFileSizeMb}MB, Retention={retentionDays}days"); + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + this.flushTimer?.Dispose(); + this.FlushLogsAsync().Wait(TimeSpan.FromSeconds(5)); + this.fileLock?.Dispose(); + this.disposed = true; + } + } + + internal class OperationScope : IDisposable + { + private readonly EnhancedLoggingService loggingService; + private readonly string operationName; + private readonly string correlationId; + private readonly DateTime startTime; + private bool disposed; + + public OperationScope(EnhancedLoggingService loggingService, string operationName, string correlationId) + { + this.loggingService = loggingService; + this.operationName = operationName; + this.correlationId = correlationId; + this.startTime = DateTime.UtcNow; + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + var duration = DateTime.UtcNow - this.startTime; + this.loggingService.OperationStartTimes.TryRemove(this.correlationId, out _); + this.loggingService.CorrelationId.Value = null; + + // Use the public logging method instead of accessing private _logger + _ = this.loggingService.LogSystemEventAsync( + "OperationCompleted", + $"Operation {this.operationName} completed with correlation {this.correlationId} in {duration.TotalMilliseconds}ms"); + + this.disposed = true; + } + } +} + diff --git a/Services/FileSettingsStorage.cs b/Services/FileSettingsStorage.cs index 200c4f0..35ee7ff 100644 --- a/Services/FileSettingsStorage.cs +++ b/Services/FileSettingsStorage.cs @@ -1,46 +1,43 @@ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Text; - using System.Threading.Tasks; - using ThreadPilot.Services.Abstractions; - - /// - /// Default filesystem-backed settings storage. - /// - public sealed class FileSettingsStorage : ISettingsStorage - { - public void Copy(string sourcePath, string destinationPath, bool overwrite) - { - File.Copy(sourcePath, destinationPath, overwrite); - } - - public void EnsureDirectoryForFile(string path) - { - var directory = Path.GetDirectoryName(path); - if (!string.IsNullOrWhiteSpace(directory)) - { - Directory.CreateDirectory(directory); - } - } - - public bool Exists(string path) - { - return File.Exists(path); - } - - public async Task ReadAsync(string path) - { - return this.Exists(path) - ? await File.ReadAllTextAsync(path) - : null; - } - - public Task WriteAsync(string path, string content) - { - this.EnsureDirectoryForFile(path); - return AtomicFileWriter.WriteAllTextAsync(path, content, Encoding.UTF8); - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Text; + using System.Threading.Tasks; + using ThreadPilot.Services.Abstractions; + + public sealed class FileSettingsStorage : ISettingsStorage + { + public void Copy(string sourcePath, string destinationPath, bool overwrite) + { + File.Copy(sourcePath, destinationPath, overwrite); + } + + public void EnsureDirectoryForFile(string path) + { + var directory = Path.GetDirectoryName(path); + if (!string.IsNullOrWhiteSpace(directory)) + { + Directory.CreateDirectory(directory); + } + } + + public bool Exists(string path) + { + return File.Exists(path); + } + + public async Task ReadAsync(string path) + { + return this.Exists(path) + ? await File.ReadAllTextAsync(path) + : null; + } + + public Task WriteAsync(string path, string content) + { + this.EnsureDirectoryForFile(path); + return AtomicFileWriter.WriteAllTextAsync(path, content, Encoding.UTF8); + } + } +} diff --git a/Services/ForegroundProcessService.cs b/Services/ForegroundProcessService.cs index d3c6541..77e88ca 100644 --- a/Services/ForegroundProcessService.cs +++ b/Services/ForegroundProcessService.cs @@ -1,74 +1,58 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using Microsoft.Extensions.Logging; - - public readonly record struct ForegroundWindowSnapshot( - IntPtr WindowHandle, - int ProcessId, - bool IsVisible, - bool IsCloaked); - - public interface IForegroundWindowProvider - { - bool TryGetForegroundWindow(out ForegroundWindowSnapshot snapshot); - } - - public interface IForegroundProcessService - { - int? TryGetForegroundProcessId(); - } - - public sealed class ForegroundProcessService : IForegroundProcessService - { - private readonly IForegroundWindowProvider foregroundWindowProvider; - private readonly ILogger logger; - - public ForegroundProcessService( - IForegroundWindowProvider foregroundWindowProvider, - ILogger logger) - { - this.foregroundWindowProvider = foregroundWindowProvider ?? throw new ArgumentNullException(nameof(foregroundWindowProvider)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public int? TryGetForegroundProcessId() - { - try - { - if (!this.foregroundWindowProvider.TryGetForegroundWindow(out var snapshot)) - { - return null; - } - - if (snapshot.ProcessId <= 0 || !snapshot.IsVisible || snapshot.IsCloaked) - { - return null; - } - - return snapshot.ProcessId; - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Foreground process detection failed"); - return null; - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using Microsoft.Extensions.Logging; + + public readonly record struct ForegroundWindowSnapshot( + IntPtr WindowHandle, + int ProcessId, + bool IsVisible, + bool IsCloaked); + + public interface IForegroundWindowProvider + { + bool TryGetForegroundWindow(out ForegroundWindowSnapshot snapshot); + } + + public interface IForegroundProcessService + { + int? TryGetForegroundProcessId(); + } + + public sealed class ForegroundProcessService : IForegroundProcessService + { + private readonly IForegroundWindowProvider foregroundWindowProvider; + private readonly ILogger logger; + + public ForegroundProcessService( + IForegroundWindowProvider foregroundWindowProvider, + ILogger logger) + { + this.foregroundWindowProvider = foregroundWindowProvider ?? throw new ArgumentNullException(nameof(foregroundWindowProvider)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public int? TryGetForegroundProcessId() + { + try + { + if (!this.foregroundWindowProvider.TryGetForegroundWindow(out var snapshot)) + { + return null; + } + + if (snapshot.ProcessId <= 0 || !snapshot.IsVisible || snapshot.IsCloaked) + { + return null; + } + + return snapshot.ProcessId; + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Foreground process detection failed"); + return null; + } + } + } +} diff --git a/Services/GameBoostService.cs b/Services/GameBoostService.cs deleted file mode 100644 index b23dd36..0000000 --- a/Services/GameBoostService.cs +++ /dev/null @@ -1,646 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; -using ThreadPilot.Models; - -namespace ThreadPilot.Services -{ - /// - /// Service for managing Game Boost mode functionality - /// - public class GameBoostService : IGameBoostService - { - private readonly ILogger _logger; - private readonly IPowerPlanService _powerPlanService; - private readonly IProcessService _processService; - private readonly INotificationService _notificationService; - private readonly IApplicationSettingsService _settingsService; - - private ApplicationSettingsModel _settings; - private bool _isGameBoostActive; - private ProcessModel? _currentGameProcess; - private string? _previousPowerPlanId; - private DateTime? _gameBoostStartTime; - private readonly List _knownGameExecutables; - - public event EventHandler? GameBoostActivated; - public event EventHandler? GameBoostDeactivated; - public event EventHandler? GameDetected; - - public bool IsGameBoostActive => _isGameBoostActive; - public ProcessModel? CurrentGameProcess => _currentGameProcess; - public IReadOnlyList KnownGameExecutables => _knownGameExecutables.AsReadOnly(); - - public GameBoostService( - ILogger logger, - IPowerPlanService powerPlanService, - IProcessService processService, - INotificationService notificationService, - IApplicationSettingsService settingsService) - { - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - _powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); - _processService = processService ?? throw new ArgumentNullException(nameof(processService)); - _notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); - _settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - - _settings = _settingsService.Settings; - _knownGameExecutables = InitializeKnownGames(); - - // Subscribe to settings changes - _settingsService.SettingsChanged += OnSettingsChanged; - - _logger.LogInformation("Game Boost service initialized with {Count} known games", _knownGameExecutables.Count); - } - - public async Task EnableGameBoostAsync() - { - try - { - if (!_settings.EnableGameBoostMode) - { - _logger.LogWarning("Game Boost mode is disabled in settings"); - return false; - } - - _logger.LogInformation("Game Boost mode enabled"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to enable Game Boost mode"); - return false; - } - } - - public async Task DisableGameBoostAsync() - { - try - { - if (_isGameBoostActive) - { - await DeactivateGameBoostAsync(); - } - - _logger.LogInformation("Game Boost mode disabled"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to disable Game Boost mode"); - return false; - } - } - - public async Task ActivateGameBoostAsync(ProcessModel process) - { - try - { - if (_isGameBoostActive && _currentGameProcess?.ProcessId == process.ProcessId) - { - _logger.LogDebug("Game Boost already active for process {ProcessName}", process.Name); - return true; - } - - // Deactivate current boost if active - if (_isGameBoostActive) - { - await DeactivateGameBoostAsync(); - } - - // Store current power plan - var currentPowerPlan = await _powerPlanService.GetActivePowerPlan(); - _previousPowerPlanId = currentPowerPlan?.Guid; - - // Apply Game Boost power plan - var gameBoostPowerPlanId = !string.IsNullOrEmpty(_settings.GameBoostPowerPlanId) - ? _settings.GameBoostPowerPlanId - : await GetHighPerformancePowerPlanIdAsync(); - - if (!string.IsNullOrEmpty(gameBoostPowerPlanId)) - { - await _powerPlanService.SetActivePowerPlanByGuidAsync(gameBoostPowerPlanId); - } - - // Set high priority if enabled - if (_settings.GameBoostSetHighPriority) - { - await SetProcessPriorityAsync(process, ProcessPriorityClass.High); - } - - // Optimize CPU affinity if enabled - if (_settings.GameBoostOptimizeCpuAffinity) - { - await OptimizeCpuAffinityAsync(process); - } - - _isGameBoostActive = true; - _currentGameProcess = process; - _gameBoostStartTime = DateTime.Now; - - _logger.LogInformation("Game Boost activated for {ProcessName} (PID: {ProcessId})", - process.Name, process.ProcessId); - - // Fire events - GameDetected?.Invoke(this, new GameDetectedEventArgs(process, _knownGameExecutables.Contains(process.Name.ToLowerInvariant()))); - GameBoostActivated?.Invoke(this, new GameBoostActivatedEventArgs(process, gameBoostPowerPlanId ?? "")); - - await _notificationService.ShowSuccessNotificationAsync( - "Game Boost Activated", - $"Game Boost mode activated for {process.Name}"); - - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to activate Game Boost for process {ProcessName}", process.Name); - return false; - } - } - - public async Task DeactivateGameBoostAsync() - { - try - { - if (!_isGameBoostActive) - { - return true; - } - - var duration = _gameBoostStartTime.HasValue - ? DateTime.Now - _gameBoostStartTime.Value - : TimeSpan.Zero; - - // Restore previous power plan - if (!string.IsNullOrEmpty(_previousPowerPlanId)) - { - await _powerPlanService.SetActivePowerPlanByGuidAsync(_previousPowerPlanId); - } - else if (!string.IsNullOrEmpty(_settings.DefaultPowerPlanId)) - { - await _powerPlanService.SetActivePowerPlanByGuidAsync(_settings.DefaultPowerPlanId); - } - - var gameProcess = _currentGameProcess; - var restoredPowerPlanId = _previousPowerPlanId ?? _settings.DefaultPowerPlanId; - - _isGameBoostActive = false; - _currentGameProcess = null; - _previousPowerPlanId = null; - _gameBoostStartTime = null; - - _logger.LogInformation("Game Boost deactivated after {Duration}", duration); - - GameBoostDeactivated?.Invoke(this, new GameBoostDeactivatedEventArgs( - gameProcess, restoredPowerPlanId, duration)); - - await _notificationService.ShowNotificationAsync( - "Game Boost Deactivated", - $"Game Boost mode deactivated after {duration:hh\\:mm\\:ss}", - NotificationType.Information); - - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to deactivate Game Boost"); - return false; - } - } - - public async Task AddKnownGameAsync(string executableName) - { - if (string.IsNullOrWhiteSpace(executableName)) - return false; - - var normalizedName = executableName.ToLowerInvariant(); - if (!_knownGameExecutables.Contains(normalizedName)) - { - _knownGameExecutables.Add(normalizedName); - _logger.LogInformation("Added known game: {ExecutableName}", executableName); - return true; - } - - return false; - } - - public async Task RemoveKnownGameAsync(string executableName) - { - if (string.IsNullOrWhiteSpace(executableName)) - return false; - - var normalizedName = executableName.ToLowerInvariant(); - var removed = _knownGameExecutables.Remove(normalizedName); - - if (removed) - { - _logger.LogInformation("Removed known game: {ExecutableName}", executableName); - } - - return removed; - } - - public IReadOnlyList GetKnownGameExecutables() - { - return _knownGameExecutables.ToList().AsReadOnly(); - } - - public bool IsGameProcess(ProcessModel process) - { - if (process == null || string.IsNullOrEmpty(process.Name)) - return false; - - var processName = process.Name.ToLowerInvariant(); - - // Check against known games list - if (_knownGameExecutables.Contains(processName)) - return true; - - // Auto-detection heuristics (if enabled) - if (_settings.GameBoostAutoDetectGames) - { - return IsLikelyGameProcess(process); - } - - return false; - } - - private void OnSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) - { - try - { - _settings = e.NewSettings; - _logger.LogDebug("Game Boost settings updated"); - } - catch (Exception ex) - { - _logger.LogError(ex, "Error updating Game Boost settings"); - } - } - - private List InitializeKnownGames() - { - return new List - { - // Game Launchers - "steam.exe", - "steamwebhelper.exe", - "origin.exe", - "epicgameslauncher.exe", - "uplay.exe", - "ubisoft connect.exe", - "battlenet.exe", - "battle.net.exe", - "gog.exe", - "gog galaxy.exe", - "rockstarlauncher.exe", - "bethesdanetlauncher.exe", - "ea desktop.exe", - "xbox.exe", - "xboxapp.exe", - "gamepass.exe", - - // Popular Games - FPS/Shooters - "csgo.exe", - "cs2.exe", - "valorant.exe", - "valorant-win64-shipping.exe", - "fortniteclient-win64-shipping.exe", - "fortnite.exe", - "apex_legends.exe", - "r5apex.exe", - "overwatch.exe", - "overwatch2.exe", - "cod.exe", - "modernwarfare.exe", - "warzone.exe", - "blackops.exe", - "rainbow6.exe", - "rainbowsix.exe", - "pubg.exe", - "tslgame.exe", - "bf1.exe", - "bfv.exe", - "bf2042.exe", - "titanfall2.exe", - "doom.exe", - "doomslayers.exe", - "doom eternal.exe", - "halo.exe", - "haloinfinite.exe", - "destiny2.exe", - - // Popular Games - MOBA/Strategy - "dota2.exe", - "league of legends.exe", - "lol.exe", - "riotclientservices.exe", - "teamfighttactics.exe", - "starcraft2.exe", - "sc2.exe", - "warcraft3.exe", - "aoe2de.exe", - "aoe4.exe", - "civilization6.exe", - "civ6.exe", - "totalwar.exe", - - // Popular Games - RPG/Adventure - "witcher3.exe", - "cyberpunk2077.exe", - "skyrim.exe", - "skyrimse.exe", - "fallout4.exe", - "fallout76.exe", - "elderscrollsonline.exe", - "wow.exe", - "worldofwarcraft.exe", - "ffxiv.exe", - "ffxiv_dx11.exe", - "guildwars2.exe", - "newworld.exe", - "lostark.exe", - "diablo3.exe", - "diablo4.exe", - "pathofexile.exe", - "borderlands3.exe", - "masseffect.exe", - "dragonage.exe", - "assassinscreed.exe", - "farcry.exe", - "watchdogs.exe", - - // Popular Games - Open World/Action - "gta5.exe", - "gtav.exe", - "rdr2.exe", - "reddeadredemption2.exe", - "minecraft.exe", - "minecraftlauncher.exe", - "javaw.exe", // Minecraft Java - "terraria.exe", - "stardewvalley.exe", - "subnautica.exe", - "nomanssky.exe", - "spiderman.exe", - "godofwar.exe", - "horizonzerodawn.exe", - "deathstranding.exe", - - // Popular Games - Racing/Sports - "forza.exe", - "forzahorizon.exe", - "granturismo.exe", - "f1.exe", - "dirt.exe", - "wreckfest.exe", - "fifa.exe", - "nba2k.exe", - "madden.exe", - "rocketleague.exe", - - // Popular Games - Simulation/Building - "citiesskylines.exe", - "simcity.exe", - "planetcoaster.exe", - "twopointcampus.exe", - "kerbalspaceprogram.exe", - "factorio.exe", - "satisfactory.exe", - "valheim.exe", - "rust.exe", - "ark.exe", - "7daystodie.exe", - "greenhell.exe", - "theforest.exe", - - // VR Games - "vrchat.exe", - "beatsaber.exe", - "halflife alyx.exe", - "pavlov.exe", - "boneworks.exe", - - // Indie/Popular Smaller Games - "amongus.exe", - "fallguys.exe", - "cuphead.exe", - "hollowknight.exe", - "celeste.exe", - "ori.exe", - "hades.exe", - "deadcells.exe", - "riskofrain2.exe", - "deeprockgalactic.exe", - "seaofthieves.exe", - "phasmophobia.exe", - "genshinimpact.exe", - "honkaiimpact.exe" - }; - } - - private bool IsLikelyGameProcess(ProcessModel process) - { - try - { - var processName = process.Name.ToLowerInvariant(); - var processPath = process.ExecutablePath?.ToLowerInvariant() ?? ""; - - // Skip system processes and common applications - if (IsSystemOrCommonProcess(processName)) - return false; - - // Check for game-related keywords in process name - if (HasGameKeywords(processName)) - return true; - - // Check for game-related paths - if (HasGamePath(processPath)) - return true; - - // Check for game engines - if (HasGameEngineIndicators(processName, processPath)) - return true; - - // Check for executable patterns common in games - if (HasGameExecutablePatterns(processName)) - return true; - - return false; - } - catch (Exception ex) - { - _logger.LogDebug(ex, "Error in game detection heuristics for process {ProcessName}", process.Name); - return false; - } - } - - private bool IsSystemOrCommonProcess(string processName) - { - var systemProcesses = new[] - { - "explorer.exe", "dwm.exe", "winlogon.exe", "csrss.exe", "smss.exe", "wininit.exe", - "services.exe", "lsass.exe", "svchost.exe", "taskhost.exe", "taskhostw.exe", - "conhost.exe", "audiodg.exe", "spoolsv.exe", "winlogon.exe", "userinit.exe", - "chrome.exe", "firefox.exe", "msedge.exe", "iexplore.exe", "opera.exe", - "notepad.exe", "calc.exe", "mspaint.exe", "wordpad.exe", "cmd.exe", "powershell.exe", - "winword.exe", "excel.exe", "powerpoint.exe", "outlook.exe", "onenote.exe", - "photoshop.exe", "illustrator.exe", "premiere.exe", "aftereffects.exe", - "code.exe", "devenv.exe", "rider.exe", "intellij.exe", "eclipse.exe", - "discord.exe", "slack.exe", "teams.exe", "zoom.exe", "skype.exe", - "spotify.exe", "vlc.exe", "wmplayer.exe", "itunes.exe", "winamp.exe", - "7z.exe", "winrar.exe", "winzip.exe", "filezilla.exe", "putty.exe" - }; - - return systemProcesses.Contains(processName); - } - - private bool HasGameKeywords(string processName) - { - var gameKeywords = new[] - { - "game", "launcher", "client", "engine", "unity", "unreal", "godot", "cryengine", - "steam", "epic", "origin", "uplay", "battlenet", "gog", "rockstar", - "minecraft", "roblox", "fortnite", "valorant", "csgo", "dota", "lol", - "wow", "overwatch", "apex", "pubg", "cod", "battlefield", "destiny", - "cyberpunk", "witcher", "skyrim", "fallout", "gta", "rdr", "assassin", - "farcry", "watchdog", "borderlands", "diablo", "starcraft", "warcraft", - "civilization", "totalwar", "aoe", "fifa", "nba", "madden", "forza", - "racing", "simulator", "tycoon", "builder", "strategy", "rpg", "mmo", - "shooter", "adventure", "action", "puzzle", "platformer", "indie" - }; - - return gameKeywords.Any(keyword => processName.Contains(keyword)); - } - - private bool HasGamePath(string processPath) - { - if (string.IsNullOrEmpty(processPath)) - return false; - - var gamePaths = new[] - { - @"\steam\steamapps\", @"\steamapps\common\", @"\steam games\", - @"\epic games\", @"\epicgames\", @"\epic\", - @"\origin games\", @"\origin\", @"\ea games\", - @"\ubisoft\", @"\uplay\", @"\ubisoft game launcher\", - @"\gog galaxy\", @"\gog games\", @"\gog.com\", - @"\battle.net\", @"\battlenet\", @"\blizzard\", - @"\rockstar games\", @"\rockstar\", - @"\xbox games\", @"\microsoft games\", @"\windowsapps\", - @"\games\", @"\gaming\", @"\my games\", - @"\program files\games\", @"\program files (x86)\games\", - @"\minecraft\", @"\roblox\", @"\riot games\", - @"\square enix\", @"\activision\", @"\electronic arts\", - @"\2k games\", @"\bethesda\", @"\cd projekt red\", - @"\valve\", @"\id software\", @"\bungie\" - }; - - return gamePaths.Any(path => processPath.Contains(path)); - } - - private bool HasGameEngineIndicators(string processName, string processPath) - { - var engineIndicators = new[] - { - "unity", "unreal", "ue4", "ue5", "godot", "cryengine", "frostbite", - "source", "idtech", "creation", "anvil", "dunia", "snowdrop", - "decima", "fox", "mt framework", "luminous", "crystal tools", - "gamebryo", "havok", "physx", "directx", "opengl", "vulkan" - }; - - return engineIndicators.Any(indicator => - processName.Contains(indicator) || processPath.Contains(indicator)); - } - - private bool HasGameExecutablePatterns(string processName) - { - // Common patterns in game executables - var patterns = new[] - { - // Shipping builds (Unreal Engine) - "shipping.exe", "-shipping.exe", "_shipping.exe", - // Win64 builds - "win64.exe", "-win64.exe", "_win64.exe", - // Game suffixes - "game.exe", "_game.exe", "-game.exe", - // Client executables - "client.exe", "_client.exe", "-client.exe", - // Launcher patterns - "launcher.exe", "_launcher.exe", "-launcher.exe", - // Engine patterns - "engine.exe", "_engine.exe", "-engine.exe", - // Common game number patterns (sequels) - "2.exe", "3.exe", "4.exe", "5.exe", "2077.exe", "2042.exe" - }; - - return patterns.Any(pattern => processName.EndsWith(pattern)); - } - - private async Task GetHighPerformancePowerPlanIdAsync() - { - try - { - var powerPlans = await _powerPlanService.GetPowerPlansAsync(); - var highPerformancePlan = powerPlans.FirstOrDefault(p => - p.Name.Contains("High performance", StringComparison.OrdinalIgnoreCase) || - p.Name.Contains("Ultimate Performance", StringComparison.OrdinalIgnoreCase)); - - return highPerformancePlan?.Guid; - } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to get high performance power plan"); - return null; - } - } - - private async Task SetProcessPriorityAsync(ProcessModel processModel, ProcessPriorityClass priority) - { - try - { - var process = Process.GetProcessById(processModel.ProcessId); - process.PriorityClass = priority; - _logger.LogDebug("Set process {ProcessName} priority to {Priority}", processModel.Name, priority); - } - catch (Exception ex) - { - _logger.LogWarning(ex, "Failed to set process priority for {ProcessName}", processModel.Name); - } - } - - private async Task OptimizeCpuAffinityAsync(ProcessModel processModel) - { - try - { - // This would integrate with the CPU topology service - // For now, just log the intent - _logger.LogDebug("CPU affinity optimization requested for {ProcessName}", processModel.Name); - } - catch (Exception ex) - { - _logger.LogWarning(ex, "Failed to optimize CPU affinity for {ProcessName}", processModel.Name); - } - } - } -} - diff --git a/Services/GameDetectionService.cs b/Services/GameDetectionService.cs deleted file mode 100644 index ba6d535..0000000 --- a/Services/GameDetectionService.cs +++ /dev/null @@ -1,692 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; -using Microsoft.Win32; -using ThreadPilot.Models; - -namespace ThreadPilot.Services -{ - /// - /// Service for detecting running games and applying optimal performance profiles - /// - public class GameDetectionService : IGameDetectionService - { - private readonly ILogger _logger; - private readonly IProcessService _processService; - private readonly ICpuTopologyService _cpuTopologyService; - private readonly IPowerPlanService _powerPlanService; - private readonly Dictionary _gameProfiles; - private readonly Dictionary _gameStartTimes; - - // ADVANCED GAME DETECTION: ML and performance monitoring - private readonly Dictionary _gameOverrides = new(); - private readonly Dictionary _monitoredGames = new(); - private readonly List _gameKeywords = new() - { - "game", "gaming", "play", "steam", "epic", "origin", "uplay", "battle.net", - "launcher", "client", "engine", "unity", "unreal", "directx", "opengl", "vulkan" - }; - private readonly List _gamesFolders = new() - { - "games", "steam", "steamapps", "epic games", "origin games", "uplay", "battle.net" - }; - - public event EventHandler? GameDetected; - public event EventHandler? GameStopped; - - public GameDetectionService( - ILogger logger, - IProcessService processService, - ICpuTopologyService cpuTopologyService, - IPowerPlanService powerPlanService) - { - _logger = logger; - _processService = processService; - _cpuTopologyService = cpuTopologyService; - _powerPlanService = powerPlanService; - _gameProfiles = new Dictionary(); - _gameStartTimes = new Dictionary(); - - InitializeDefaultGameProfiles(); - } - - public async Task ExtractProcessFeaturesAsync(ProcessModel process) - { - var (threadCount, handleCount) = GetRuntimeProcessMetrics(process.ProcessId); - - var features = new ProcessFeatures - { - ProcessName = process.Name, - ExecutablePath = process.ExecutablePath ?? string.Empty, - HasVisibleWindow = process.HasVisibleWindow, - CpuUsage = process.CpuUsage, - MemoryUsage = process.MemoryUsage, - ThreadCount = threadCount, - HandleCount = handleCount - }; - - try - { - // Check for graphics API DLLs - features.HasDirectXDlls = await HasLoadedDllAsync(process, "d3d", "dxgi", "d3d11", "d3d12"); - features.HasOpenGLDlls = await HasLoadedDllAsync(process, "opengl32", "glu32"); - features.HasVulkanDlls = await HasLoadedDllAsync(process, "vulkan"); - features.HasAudioDlls = await HasLoadedDllAsync(process, "dsound", "xaudio", "fmod"); - - // Check file properties - if (!string.IsNullOrEmpty(features.ExecutablePath) && File.Exists(features.ExecutablePath)) - { - var fileInfo = FileVersionInfo.GetVersionInfo(features.ExecutablePath); - features.FileDescription = fileInfo.FileDescription ?? string.Empty; - features.CompanyName = fileInfo.CompanyName ?? string.Empty; - } - - // Check if in games folder - features.IsInGamesFolder = _gamesFolders.Any(folder => - features.ExecutablePath.Contains(folder, StringComparison.OrdinalIgnoreCase)); - - // Check for game keywords - features.HasGameKeywords = _gameKeywords.Any(keyword => - features.ProcessName.Contains(keyword, StringComparison.OrdinalIgnoreCase) || - features.FileDescription.Contains(keyword, StringComparison.OrdinalIgnoreCase)); - - // Check if fullscreen (simplified check) - features.IsFullscreen = process.HasVisibleWindow && process.MainWindowTitle != null; - - _logger.LogDebug("Extracted features for {ProcessName}: DirectX={HasDirectX}, OpenGL={HasOpenGL}, GamesFolder={IsInGamesFolder}", - process.Name, features.HasDirectXDlls, features.HasOpenGLDlls, features.IsInGamesFolder); - } - catch (Exception ex) - { - _logger.LogWarning(ex, "Error extracting features for process {ProcessName}", process.Name); - } - - return features; - } - - private static (int ThreadCount, int HandleCount) GetRuntimeProcessMetrics(int processId) - { - try - { - using var liveProcess = Process.GetProcessById(processId); - return (liveProcess.Threads.Count, liveProcess.HandleCount); - } - catch - { - return (0, 0); - } - } - - public async Task GetGamePerformanceAsync(ProcessModel process) - { - var metrics = new GamePerformanceMetrics - { - ProcessId = process.ProcessId, - GameName = process.Name, - CpuUsage = process.CpuUsage, - MemoryUsage = process.MemoryUsage, - Timestamp = DateTime.UtcNow, - IsFullscreen = process.HasVisibleWindow - }; - - try - { - // Estimate frame rate based on CPU usage patterns (simplified) - metrics.FrameRate = EstimateFrameRate(process); - - // Get GPU usage (would require additional APIs in real implementation) - metrics.GpuUsage = 0.0; // Placeholder - metrics.GpuMemoryUsage = 0; // Placeholder - - // Get window resolution (simplified) - metrics.Resolution = process.HasVisibleWindow ? "1920x1080" : "N/A"; // Placeholder - } - catch (Exception ex) - { - _logger.LogWarning(ex, "Error getting performance metrics for {ProcessName}", process.Name); - } - - return metrics; - } - - public async Task DetectGameWithMLAsync(ProcessModel process) - { - try - { - // Check manual overrides first - if (_gameOverrides.TryGetValue(process.Name.ToLower(), out var isGameOverride)) - { - return new GameDetectionResult - { - IsGame = isGameOverride, - Confidence = 1.0f, - GameName = process.Name, - DetectionMethod = "Manual Override", - DetectionTime = DateTime.UtcNow - }; - } - - // Extract features for ML classification - var features = await ExtractProcessFeaturesAsync(process); - - // Simple ML-like scoring based on features (can be replaced with actual ML model) - var score = CalculateGameScore(features); - - var result = new GameDetectionResult - { - IsGame = score >= 0.5f, - Confidence = score, - GameName = features.ProcessName, - DetectionMethod = "ML Classification", - Features = ConvertFeaturesToDictionary(features), - DetectionTime = DateTime.UtcNow - }; - - _logger.LogDebug("ML game detection for {ProcessName}: IsGame={IsGame}, Confidence={Confidence:P1}", - process.Name, result.IsGame, result.Confidence); - - return result; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error in ML game detection for process {ProcessName}", process.Name); - return new GameDetectionResult - { - IsGame = false, - Confidence = 0.0f, - GameName = process.Name, - DetectionMethod = "Error", - DetectionTime = DateTime.UtcNow - }; - } - } - - public async Task DetectGameAsync(ProcessModel process) - { - try - { - // Check known games database first - if (_gameProfiles.TryGetValue(process.Name.ToLower(), out var profile)) - { - profile.LastDetected = DateTime.UtcNow; - profile.DetectionCount++; - - // Track game start time - if (!_gameStartTimes.ContainsKey(process.Name)) - { - _gameStartTimes[process.Name] = DateTime.UtcNow; - GameDetected?.Invoke(this, new GameProfileDetectedEventArgs(process, profile)); - } - - return profile; - } - - // Check Steam games - if (await IsSteamGameAsync(process)) - { - var steamProfile = await GetSteamGameProfileAsync(process); - if (steamProfile != null) - { - return steamProfile; - } - } - - // Check Epic Games - if (await IsEpicGameAsync(process)) - { - var epicProfile = await GetEpicGameProfileAsync(process); - if (epicProfile != null) - { - return epicProfile; - } - } - - // Check for common game patterns - if (IsLikelyGame(process)) - { - return CreateGenericGameProfile(process); - } - - return null; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error detecting game for process {ProcessName}", process.Name); - return null; - } - } - - public async Task> GetRunningGamesAsync() - { - var runningGames = new List(); - var processes = await _processService.GetActiveApplicationsAsync(); - - foreach (var process in processes) - { - var gameProfile = await DetectGameAsync(process); - if (gameProfile != null) - { - runningGames.Add(gameProfile); - } - } - - return runningGames; - } - - public async Task ApplyGameOptimizationsAsync(ProcessModel process, GameProfile gameProfile) - { - try - { - _logger.LogInformation("Applying optimizations for game {GameName} (Process: {ProcessName})", - gameProfile.Name, process.Name); - - var success = true; - - // Apply CPU affinity - if (!string.IsNullOrEmpty(gameProfile.OptimalCores)) - { - var affinityMask = await CalculateOptimalAffinityMask(gameProfile.OptimalCores); - if (affinityMask.HasValue) - { - await _processService.SetProcessorAffinity(process, (long)affinityMask.Value); - } - } - - // Apply process priority - await _processService.SetProcessPriority(process, gameProfile.Priority); - - // Apply power plan if specified - if (!string.IsNullOrEmpty(gameProfile.PowerPlan)) - { - var powerPlans = await _powerPlanService.GetPowerPlansAsync(); - var targetPlan = powerPlans.FirstOrDefault(p => - p.Name.Contains(gameProfile.PowerPlan, StringComparison.OrdinalIgnoreCase)); - - if (targetPlan != null) - { - success &= await _powerPlanService.SetActivePowerPlan(targetPlan); - } - } - - return success; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error applying game optimizations for {ProcessName}", process.Name); - return false; - } - } - - public async Task IsSteamGameAsync(ProcessModel process) - { - try - { - // Check if process is launched by Steam - var parentProcess = GetParentProcess(process.ProcessId); - if (parentProcess?.ProcessName?.Contains("steam", StringComparison.OrdinalIgnoreCase) == true) - { - return true; - } - - // Check Steam installation directory - var steamPath = GetSteamInstallPath(); - if (!string.IsNullOrEmpty(steamPath) && !string.IsNullOrEmpty(process.ExecutablePath)) - { - return process.ExecutablePath.StartsWith(steamPath, StringComparison.OrdinalIgnoreCase); - } - - return false; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error checking if process is Steam game: {ProcessName}", process.Name); - return false; - } - } - - public async Task IsEpicGameAsync(ProcessModel process) - { - try - { - // Check if process is launched by Epic Games Launcher - var parentProcess = GetParentProcess(process.ProcessId); - if (parentProcess?.ProcessName?.Contains("EpicGamesLauncher", StringComparison.OrdinalIgnoreCase) == true || - parentProcess?.ProcessName?.Contains("UnrealEngineLauncher", StringComparison.OrdinalIgnoreCase) == true) - { - return true; - } - - // Check Epic Games installation directory - var epicPath = GetEpicGamesInstallPath(); - if (!string.IsNullOrEmpty(epicPath) && !string.IsNullOrEmpty(process.ExecutablePath)) - { - return process.ExecutablePath.StartsWith(epicPath, StringComparison.OrdinalIgnoreCase); - } - - return false; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error checking if process is Epic game: {ProcessName}", process.Name); - return false; - } - } - - public async Task GetSteamGameProfileAsync(ProcessModel process) - { - // Create a Steam-specific game profile - return new GameProfile - { - Name = $"Steam: {process.Name}", - ProcessName = process.Name, - OptimalCores = "Physical", // Steam games generally benefit from physical cores - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.Unknown, - Description = "Steam game detected automatically" - }; - } - - public async Task GetEpicGameProfileAsync(ProcessModel process) - { - // Create an Epic-specific game profile - return new GameProfile - { - Name = $"Epic: {process.Name}", - ProcessName = process.Name, - OptimalCores = "Physical", // Epic games generally benefit from physical cores - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.Unknown, - Description = "Epic Games game detected automatically" - }; - } - - public async Task AddCustomGameProfileAsync(string processName, GameProfile profile) - { - _gameProfiles[processName.ToLower()] = profile; - _logger.LogInformation("Added custom game profile for {ProcessName}", processName); - } - - public async Task RemoveCustomGameProfileAsync(string processName) - { - if (_gameProfiles.Remove(processName.ToLower())) - { - _logger.LogInformation("Removed custom game profile for {ProcessName}", processName); - } - } - - public async Task> GetAllGameProfilesAsync() - { - return new Dictionary(_gameProfiles); - } - - private void InitializeDefaultGameProfiles() - { - // Popular FPS games - _gameProfiles["valorant.exe"] = new GameProfile - { - Name = "Valorant", - ProcessName = "valorant.exe", - OptimalCores = "Physical", - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.FPS, - Description = "Riot Games' tactical FPS" - }; - - _gameProfiles["csgo.exe"] = new GameProfile - { - Name = "Counter-Strike: Global Offensive", - ProcessName = "csgo.exe", - OptimalCores = "Physical", - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.FPS - }; - - _gameProfiles["cs2.exe"] = new GameProfile - { - Name = "Counter-Strike 2", - ProcessName = "cs2.exe", - OptimalCores = "P-Cores", - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.FPS - }; - - _gameProfiles["cyberpunk2077.exe"] = new GameProfile - { - Name = "Cyberpunk 2077", - ProcessName = "cyberpunk2077.exe", - OptimalCores = "P-Cores", - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.RPG - }; - - _gameProfiles["fortnite.exe"] = new GameProfile - { - Name = "Fortnite", - ProcessName = "fortnite.exe", - OptimalCores = "Physical", - Priority = ProcessPriorityClass.High, - PowerPlan = "High Performance", - Category = GameCategory.FPS - }; - - _gameProfiles["league of legends.exe"] = new GameProfile - { - Name = "League of Legends", - ProcessName = "league of legends.exe", - OptimalCores = "Physical", - Priority = ProcessPriorityClass.AboveNormal, - PowerPlan = "High Performance", - Category = GameCategory.MOBA - }; - } - - private async Task CalculateOptimalAffinityMask(string optimalCores) - { - try - { - var topology = await _cpuTopologyService.DetectTopologyAsync(); - if (topology == null) return null; - - return optimalCores switch - { - "Physical" => new IntPtr(topology.GetPhysicalCoresAffinityMask()), - "P-Cores" => new IntPtr(topology.GetPerformanceCoresAffinityMask()), - "E-Cores" => new IntPtr(topology.GetEfficiencyCoresAffinityMask()), - "All" => new IntPtr(topology.CalculateAffinityMask(topology.LogicalCores)), - _ => null - }; - } - catch (Exception ex) - { - _logger.LogError(ex, "Error calculating affinity mask for {OptimalCores}", optimalCores); - return null; - } - } - - private float CalculateGameScore(ProcessFeatures features) - { - float score = 0.0f; - - // Graphics API indicators (strong indicators) - if (features.HasDirectXDlls) score += 0.3f; - if (features.HasOpenGLDlls) score += 0.25f; - if (features.HasVulkanDlls) score += 0.3f; - - // Audio indicators - if (features.HasAudioDlls) score += 0.1f; - - // Location indicators - if (features.IsInGamesFolder) score += 0.2f; - - // Keyword indicators - if (features.HasGameKeywords) score += 0.15f; - - // Window and resource usage indicators - if (features.HasVisibleWindow) score += 0.1f; - if (features.IsFullscreen) score += 0.15f; - if (features.CpuUsage > 10.0) score += 0.1f; - if (features.MemoryUsage > 100 * 1024 * 1024) score += 0.05f; // > 100MB - - // Company indicators - var gameCompanies = new[] { "valve", "epic", "ubisoft", "ea", "activision", "blizzard", "steam" }; - if (gameCompanies.Any(company => features.CompanyName.Contains(company, StringComparison.OrdinalIgnoreCase))) - score += 0.1f; - - // Clamp score to [0, 1] - return Math.Min(1.0f, Math.Max(0.0f, score)); - } - - private Dictionary ConvertFeaturesToDictionary(ProcessFeatures features) - { - return new Dictionary - { - ["ProcessName"] = features.ProcessName, - ["HasDirectXDlls"] = features.HasDirectXDlls, - ["HasOpenGLDlls"] = features.HasOpenGLDlls, - ["HasVulkanDlls"] = features.HasVulkanDlls, - ["HasAudioDlls"] = features.HasAudioDlls, - ["IsInGamesFolder"] = features.IsInGamesFolder, - ["HasGameKeywords"] = features.HasGameKeywords, - ["HasVisibleWindow"] = features.HasVisibleWindow, - ["IsFullscreen"] = features.IsFullscreen, - ["CpuUsage"] = features.CpuUsage, - ["MemoryUsage"] = features.MemoryUsage, - ["CompanyName"] = features.CompanyName - }; - } - - private async Task HasLoadedDllAsync(ProcessModel process, params string[] dllNames) - { - try - { - // Simplified check - in real implementation would check loaded modules - // For now, check if executable path contains any of the DLL indicators - var execPath = process.ExecutablePath?.ToLower() ?? string.Empty; - return dllNames.Any(dll => execPath.Contains(dll.ToLower())); - } - catch (Exception ex) - { - _logger.LogDebug(ex, "Error checking DLLs for process {ProcessName}", process.Name); - return false; - } - } - - private float EstimateFrameRate(ProcessModel process) - { - // Simplified frame rate estimation based on CPU usage patterns - // In real implementation, would use performance counters or graphics APIs - if (process.CpuUsage > 20.0) - return 60.0f; // Assume 60 FPS for high CPU usage games - else if (process.CpuUsage > 10.0) - return 30.0f; // Assume 30 FPS for moderate CPU usage - else - return 0.0f; // Not actively rendering - } - - private static bool IsLikelyGame(ProcessModel process) - { - var gameIndicators = new[] - { - "game", "launcher", "client", "engine", "unity", "unreal", - "dx11", "dx12", "vulkan", "opengl" - }; - - var processName = process.Name.ToLower(); - var executablePath = process.ExecutablePath?.ToLower() ?? ""; - - return gameIndicators.Any(indicator => - processName.Contains(indicator) || executablePath.Contains(indicator)) || - process.HasVisibleWindow && process.CpuUsage > 5.0; // High CPU with window - } - - private GameProfile CreateGenericGameProfile(ProcessModel process) - { - return new GameProfile - { - Name = $"Generic Game: {process.Name}", - ProcessName = process.Name, - OptimalCores = "Physical", - Priority = ProcessPriorityClass.AboveNormal, - PowerPlan = "Balanced", - Category = GameCategory.Unknown, - Description = "Automatically detected game" - }; - } - - private static Process? GetParentProcess(int processId) - { - try - { - using var process = Process.GetProcessById(processId); - var parentId = GetParentProcessId(processId); - return parentId > 0 ? Process.GetProcessById(parentId) : null; - } - catch - { - return null; - } - } - - private static int GetParentProcessId(int processId) - { - // Implementation would use WMI or P/Invoke to get parent process ID - // Simplified for now - return 0; - } - - private static string? GetSteamInstallPath() - { - try - { - using var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\WOW6432Node\Valve\Steam") ?? - Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Valve\Steam"); - return key?.GetValue("InstallPath")?.ToString(); - } - catch - { - return null; - } - } - - private static string? GetEpicGamesInstallPath() - { - try - { - var epicPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), - "Epic", "EpicGamesLauncher"); - return Directory.Exists(epicPath) ? epicPath : null; - } - catch - { - return null; - } - } - } -} - diff --git a/Services/GameModeService.cs b/Services/GameModeService.cs index fd5fdf6..7550192 100644 --- a/Services/GameModeService.cs +++ b/Services/GameModeService.cs @@ -1,136 +1,112 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - - /// - /// Service for managing Windows Game Mode settings - /// Windows Game Mode can interfere with CPU Sets and affinity, particularly on AMD systems - /// Reference: CPU Set Setter warning system. - /// - public class GameModeService : IGameModeService - { - private readonly ILogger logger; - private const string GameBarKeyPath = @"Software\Microsoft\GameBar"; - private const string GameModeValueName = "AutoGameModeEnabled"; - - public GameModeService(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - /// - public async Task IsGameModeEnabledAsync() - { - await Task.CompletedTask; // Make async for consistency - - try - { - using var key = Registry.CurrentUser.OpenSubKey(GameBarKeyPath, writable: false); - if (key == null) - { - this.logger.LogDebug("GameBar registry key not found, assuming Game Mode is disabled"); - return false; - } - - var value = key.GetValue(GameModeValueName); - if (value is int intValue) - { - bool isEnabled = intValue != 0; - this.logger.LogDebug("Game Mode status: {Status}", isEnabled ? "Enabled" : "Disabled"); - return isEnabled; - } - - this.logger.LogDebug("GameMode value not found, assuming disabled"); - return false; - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to read Game Mode registry key, assuming disabled"); - return false; - } - } - - /// - public async Task SetGameModeAsync(bool enabled) - { - await Task.CompletedTask; // Make async for consistency - - try - { - using var key = Registry.CurrentUser.OpenSubKey(GameBarKeyPath, writable: true); - if (key == null) - { - this.logger.LogWarning("GameBar registry key not found, cannot modify Game Mode"); - return false; - } - - key.SetValue(GameModeValueName, enabled ? 1 : 0, RegistryValueKind.DWord); - this.logger.LogInformation("Set Windows Game Mode to {State}", enabled ? "enabled" : "disabled"); - return true; - } - catch (UnauthorizedAccessException ex) - { - this.logger.LogWarning(ex, "Insufficient permissions to modify Game Mode registry key"); - return false; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to set Game Mode to {State}", enabled ? "enabled" : "disabled"); - return false; - } - } - - /// - public async Task DisableGameModeForAffinityAsync() - { - try - { - bool isEnabled = await this.IsGameModeEnabledAsync(); - if (!isEnabled) - { - this.logger.LogDebug("Game Mode already disabled, no action needed"); - return false; - } - - this.logger.LogInformation("Game Mode is enabled, disabling for better CPU affinity control"); - bool success = await this.SetGameModeAsync(false); - - if (success) - { - this.logger.LogInformation("Successfully disabled Windows Game Mode for CPU affinity optimization"); - } - else - { - this.logger.LogWarning("Failed to disable Game Mode, CPU affinity may be affected"); - } - - return success; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error disabling Game Mode for affinity"); - return false; - } - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + + public class GameModeService : IGameModeService + { + private readonly ILogger logger; + private const string GameBarKeyPath = @"Software\Microsoft\GameBar"; + private const string GameModeValueName = "AutoGameModeEnabled"; + + public GameModeService(ILogger logger) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public async Task IsGameModeEnabledAsync() + { + await Task.CompletedTask; // Make async for consistency + + try + { + using var key = Registry.CurrentUser.OpenSubKey(GameBarKeyPath, writable: false); + if (key == null) + { + this.logger.LogDebug("GameBar registry key not found, assuming Game Mode is disabled"); + return false; + } + + var value = key.GetValue(GameModeValueName); + if (value is int intValue) + { + bool isEnabled = intValue != 0; + this.logger.LogDebug("Game Mode status: {Status}", isEnabled ? "Enabled" : "Disabled"); + return isEnabled; + } + + this.logger.LogDebug("GameMode value not found, assuming disabled"); + return false; + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to read Game Mode registry key, assuming disabled"); + return false; + } + } + + public async Task SetGameModeAsync(bool enabled) + { + await Task.CompletedTask; // Make async for consistency + + try + { + using var key = Registry.CurrentUser.OpenSubKey(GameBarKeyPath, writable: true); + if (key == null) + { + this.logger.LogWarning("GameBar registry key not found, cannot modify Game Mode"); + return false; + } + + key.SetValue(GameModeValueName, enabled ? 1 : 0, RegistryValueKind.DWord); + this.logger.LogInformation("Set Windows Game Mode to {State}", enabled ? "enabled" : "disabled"); + return true; + } + catch (UnauthorizedAccessException ex) + { + this.logger.LogWarning(ex, "Insufficient permissions to modify Game Mode registry key"); + return false; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to set Game Mode to {State}", enabled ? "enabled" : "disabled"); + return false; + } + } + + public async Task DisableGameModeForAffinityAsync() + { + try + { + bool isEnabled = await this.IsGameModeEnabledAsync(); + if (!isEnabled) + { + this.logger.LogDebug("Game Mode already disabled, no action needed"); + return false; + } + + this.logger.LogInformation("Game Mode is enabled, disabling for better CPU affinity control"); + bool success = await this.SetGameModeAsync(false); + + if (success) + { + this.logger.LogInformation("Successfully disabled Windows Game Mode for CPU affinity optimization"); + } + else + { + this.logger.LogWarning("Failed to disable Game Mode, CPU affinity may be affected"); + } + + return success; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error disabling Game Mode for affinity"); + return false; + } + } + } +} + diff --git a/Services/GitHubReleaseClient.cs b/Services/GitHubReleaseClient.cs index 655ce50..370d1d2 100644 --- a/Services/GitHubReleaseClient.cs +++ b/Services/GitHubReleaseClient.cs @@ -1,33 +1,30 @@ -namespace ThreadPilot.Services -{ - using System; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - using ThreadPilot.Services.Abstractions; - - /// - /// HTTP client wrapper for GitHub release metadata. - /// - public sealed class GitHubReleaseClient : IGitHubReleaseClient - { - private readonly HttpClient httpClient; - - public GitHubReleaseClient(HttpClient httpClient) - { - this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); - } - - public Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) - { - var url = $"https://api.github.com/repos/{owner}/{repo}/releases/latest"; - return this.httpClient.GetStringAsync(url, cancellationToken); - } - - public Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) - { - var url = $"https://api.github.com/repos/{owner}/{repo}/releases"; - return this.httpClient.GetStringAsync(url, cancellationToken); - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using ThreadPilot.Services.Abstractions; + + public sealed class GitHubReleaseClient : IGitHubReleaseClient + { + private readonly HttpClient httpClient; + + public GitHubReleaseClient(HttpClient httpClient) + { + this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); + } + + public Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) + { + var url = $"https://api.github.com/repos/{owner}/{repo}/releases/latest"; + return this.httpClient.GetStringAsync(url, cancellationToken); + } + + public Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) + { + var url = $"https://api.github.com/repos/{owner}/{repo}/releases"; + return this.httpClient.GetStringAsync(url, cancellationToken); + } + } +} diff --git a/Services/GitHubUpdateChecker.cs b/Services/GitHubUpdateChecker.cs index 621b31e..3a6d4b0 100644 --- a/Services/GitHubUpdateChecker.cs +++ b/Services/GitHubUpdateChecker.cs @@ -1,143 +1,127 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Text.Json; - using System.Threading; - using System.Threading.Tasks; - using ThreadPilot.Services.Abstractions; - - public sealed class GitHubUpdateChecker - { - private readonly IGitHubReleaseClient gitHubReleaseClient; - - private record LatestRelease( - string Tag_name, - bool Prerelease, - bool Draft, - string Html_url, - IReadOnlyList? Assets); - - private record LatestReleaseAsset(string Name, string Browser_download_url, long Size); - - public GitHubUpdateChecker(IGitHubReleaseClient gitHubReleaseClient) - { - this.gitHubReleaseClient = gitHubReleaseClient ?? throw new ArgumentNullException(nameof(gitHubReleaseClient)); - } - - public async Task<(Version? latest, string? releaseUrl)> GetLatestVersionAsync( - string owner, - string repo, - CancellationToken cancellationToken = default) - { - if (string.IsNullOrWhiteSpace(owner)) - { - throw new ArgumentException("Owner is required", nameof(owner)); - } - - if (string.IsNullOrWhiteSpace(repo)) - { - throw new ArgumentException("Repository is required", nameof(repo)); - } - - var json = await this.gitHubReleaseClient.GetLatestReleaseJsonAsync(owner, repo, cancellationToken); - var release = JsonSerializer.Deserialize(json, new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true, - }); - - if (release is null || release.Draft || release.Prerelease || string.IsNullOrWhiteSpace(release.Tag_name)) - { - return (null, null); - } - - var tag = release.Tag_name.Trim(); - if (tag.StartsWith("v", StringComparison.OrdinalIgnoreCase)) - { - tag = tag[1..]; - } - - var sanitized = tag.Split('-', '+')[0]; - - return Version.TryParse(sanitized, out var version) - ? (version, release.Html_url) - : (null, release.Html_url); - } - - public async Task GetLatestReleaseInfoAsync( - string owner, - string repo, - bool includePrereleases = false, - CancellationToken cancellationToken = default) - { - if (string.IsNullOrWhiteSpace(owner)) - { - throw new ArgumentException("Owner is required", nameof(owner)); - } - - if (string.IsNullOrWhiteSpace(repo)) - { - throw new ArgumentException("Repository is required", nameof(repo)); - } - - var json = await this.gitHubReleaseClient.GetReleasesJsonAsync(owner, repo, cancellationToken).ConfigureAwait(false); - var releases = JsonSerializer.Deserialize>(json, new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true, - }); - - if (releases == null || releases.Count == 0) - { - return null; - } - - return releases - .Where(release => !release.Draft) - .Where(release => includePrereleases || !release.Prerelease) - .Select(TryMapRelease) - .Where(release => release != null) - .Cast() - .OrderByDescending(release => release.Version) - .FirstOrDefault(); - } - - private static UpdateReleaseInfo? TryMapRelease(LatestRelease release) - { - if (!SemanticVersion.TryParse(release.Tag_name, out var version) || - string.IsNullOrWhiteSpace(release.Html_url) || - !Uri.TryCreate(release.Html_url, UriKind.Absolute, out var releasePageUrl)) - { - return null; - } - - var assets = (release.Assets ?? Array.Empty()) - .Where(asset => !string.IsNullOrWhiteSpace(asset.Name)) - .Where(asset => Uri.TryCreate(asset.Browser_download_url, UriKind.Absolute, out _)) - .Select(asset => new UpdateAsset( - asset.Name, - new Uri(asset.Browser_download_url, UriKind.Absolute), - asset.Size)) - .ToArray(); - - return new UpdateReleaseInfo(version, release.Tag_name, releasePageUrl, release.Prerelease, assets); - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Text.Json; + using System.Threading; + using System.Threading.Tasks; + using ThreadPilot.Services.Abstractions; + + public sealed class GitHubUpdateChecker + { + private readonly IGitHubReleaseClient gitHubReleaseClient; + + private record LatestRelease( + string Tag_name, + bool Prerelease, + bool Draft, + string Html_url, + IReadOnlyList? Assets); + + private record LatestReleaseAsset(string Name, string Browser_download_url, long Size); + + public GitHubUpdateChecker(IGitHubReleaseClient gitHubReleaseClient) + { + this.gitHubReleaseClient = gitHubReleaseClient ?? throw new ArgumentNullException(nameof(gitHubReleaseClient)); + } + + public async Task<(Version? latest, string? releaseUrl)> GetLatestVersionAsync( + string owner, + string repo, + CancellationToken cancellationToken = default) + { + if (string.IsNullOrWhiteSpace(owner)) + { + throw new ArgumentException("Owner is required", nameof(owner)); + } + + if (string.IsNullOrWhiteSpace(repo)) + { + throw new ArgumentException("Repository is required", nameof(repo)); + } + + var json = await this.gitHubReleaseClient.GetLatestReleaseJsonAsync(owner, repo, cancellationToken); + var release = JsonSerializer.Deserialize(json, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true, + }); + + if (release is null || release.Draft || release.Prerelease || string.IsNullOrWhiteSpace(release.Tag_name)) + { + return (null, null); + } + + var tag = release.Tag_name.Trim(); + if (tag.StartsWith("v", StringComparison.OrdinalIgnoreCase)) + { + tag = tag[1..]; + } + + var sanitized = tag.Split('-', '+')[0]; + + return Version.TryParse(sanitized, out var version) + ? (version, release.Html_url) + : (null, release.Html_url); + } + + public async Task GetLatestReleaseInfoAsync( + string owner, + string repo, + bool includePrereleases = false, + CancellationToken cancellationToken = default) + { + if (string.IsNullOrWhiteSpace(owner)) + { + throw new ArgumentException("Owner is required", nameof(owner)); + } + + if (string.IsNullOrWhiteSpace(repo)) + { + throw new ArgumentException("Repository is required", nameof(repo)); + } + + var json = await this.gitHubReleaseClient.GetReleasesJsonAsync(owner, repo, cancellationToken).ConfigureAwait(false); + var releases = JsonSerializer.Deserialize>(json, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true, + }); + + if (releases == null || releases.Count == 0) + { + return null; + } + + return releases + .Where(release => !release.Draft) + .Where(release => includePrereleases || !release.Prerelease) + .Select(TryMapRelease) + .Where(release => release != null) + .Cast() + .OrderByDescending(release => release.Version) + .FirstOrDefault(); + } + + private static UpdateReleaseInfo? TryMapRelease(LatestRelease release) + { + if (!SemanticVersion.TryParse(release.Tag_name, out var version) || + string.IsNullOrWhiteSpace(release.Html_url) || + !Uri.TryCreate(release.Html_url, UriKind.Absolute, out var releasePageUrl)) + { + return null; + } + + var assets = (release.Assets ?? Array.Empty()) + .Where(asset => !string.IsNullOrWhiteSpace(asset.Name)) + .Where(asset => Uri.TryCreate(asset.Browser_download_url, UriKind.Absolute, out _)) + .Select(asset => new UpdateAsset( + asset.Name, + new Uri(asset.Browser_download_url, UriKind.Absolute), + asset.Size)) + .ToArray(); + + return new UpdateReleaseInfo(version, release.Tag_name, releasePageUrl, release.Prerelease, assets); + } + } +} + diff --git a/Services/HttpUpdateDownloadClient.cs b/Services/HttpUpdateDownloadClient.cs index a98aba1..b4ee05b 100644 --- a/Services/HttpUpdateDownloadClient.cs +++ b/Services/HttpUpdateDownloadClient.cs @@ -1,44 +1,44 @@ -/* - * ThreadPilot - HTTP downloads for update assets. - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - public sealed class HttpUpdateDownloadClient : IUpdateDownloadClient - { - private readonly HttpClient httpClient; - - public HttpUpdateDownloadClient(HttpClient httpClient) - { - this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); - } - - public async Task DownloadFileAsync(Uri uri, string destinationPath, CancellationToken cancellationToken = default) - { - using var response = await this.httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead, cancellationToken) - .ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - - await using var source = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); - await using var destination = File.Create(destinationPath); - await source.CopyToAsync(destination, cancellationToken).ConfigureAwait(false); - } - - public async Task TryDownloadStringAsync(Uri uri, CancellationToken cancellationToken = default) - { - try - { - return await this.httpClient.GetStringAsync(uri, cancellationToken).ConfigureAwait(false); - } - catch (HttpRequestException) - { - return null; - } - } - } -} +/* + * ThreadPilot - HTTP downloads for update assets. + */ +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + public sealed class HttpUpdateDownloadClient : IUpdateDownloadClient + { + private readonly HttpClient httpClient; + + public HttpUpdateDownloadClient(HttpClient httpClient) + { + this.httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); + } + + public async Task DownloadFileAsync(Uri uri, string destinationPath, CancellationToken cancellationToken = default) + { + using var response = await this.httpClient.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead, cancellationToken) + .ConfigureAwait(false); + response.EnsureSuccessStatusCode(); + + await using var source = await response.Content.ReadAsStreamAsync(cancellationToken).ConfigureAwait(false); + await using var destination = File.Create(destinationPath); + await source.CopyToAsync(destination, cancellationToken).ConfigureAwait(false); + } + + public async Task TryDownloadStringAsync(Uri uri, CancellationToken cancellationToken = default) + { + try + { + return await this.httpClient.GetStringAsync(uri, cancellationToken).ConfigureAwait(false); + } + catch (HttpRequestException) + { + return null; + } + } + } +} diff --git a/Services/IActivityAuditService.cs b/Services/IActivityAuditService.cs index 9ccab1a..c54f6db 100644 --- a/Services/IActivityAuditService.cs +++ b/Services/IActivityAuditService.cs @@ -1,42 +1,42 @@ -namespace ThreadPilot.Services -{ - public enum ActivityAuditSeverity - { - Info, - Success, - Warning, - Error, - } - - public sealed record ActivityAuditEntry - { - public DateTime Timestamp { get; init; } - - public string Category { get; init; } = string.Empty; - - public ActivityAuditSeverity Severity { get; init; } - - public string Message { get; init; } = string.Empty; - - public string? Details { get; init; } - } - - public interface IActivityAuditService - { - event EventHandler? EntryAdded; - - Task LogInfoAsync(string category, string message, string? details = null); - - Task LogSuccessAsync(string category, string message, string? details = null); - - Task LogWarningAsync(string category, string message, string? details = null); - - Task LogErrorAsync(string category, string message, string? details = null); - - Task LogUserActionAsync(string action, string details, string? context = null); - - Task> GetEntriesAsync(DateTime? fromDate = null, DateTime? toDate = null); - - Task ClearDisplayAsync(); - } -} +namespace ThreadPilot.Services +{ + public enum ActivityAuditSeverity + { + Info, + Success, + Warning, + Error, + } + + public sealed record ActivityAuditEntry + { + public DateTime Timestamp { get; init; } + + public string Category { get; init; } = string.Empty; + + public ActivityAuditSeverity Severity { get; init; } + + public string Message { get; init; } = string.Empty; + + public string? Details { get; init; } + } + + public interface IActivityAuditService + { + event EventHandler? EntryAdded; + + Task LogInfoAsync(string category, string message, string? details = null); + + Task LogSuccessAsync(string category, string message, string? details = null); + + Task LogWarningAsync(string category, string message, string? details = null); + + Task LogErrorAsync(string category, string message, string? details = null); + + Task LogUserActionAsync(string action, string details, string? context = null); + + Task> GetEntriesAsync(DateTime? fromDate = null, DateTime? toDate = null); + + Task ClearDisplayAsync(); + } +} diff --git a/Services/IApplicationSettingsService.cs b/Services/IApplicationSettingsService.cs index 7c9aa9f..fb159da 100644 --- a/Services/IApplicationSettingsService.cs +++ b/Services/IApplicationSettingsService.cs @@ -1,101 +1,49 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for managing application settings. - /// - public interface IApplicationSettingsService - { - /// - /// Event fired when settings are changed - /// - event EventHandler? SettingsChanged; - - /// - /// Gets the current application settings. - /// - ApplicationSettingsModel Settings { get; } - - /// - /// Loads settings from storage. - /// - Task LoadSettingsAsync(); - - /// - /// Saves current settings to storage. - /// - Task SaveSettingsAsync(); - - /// - /// Updates settings and saves them. - /// - Task UpdateSettingsAsync(ApplicationSettingsModel newSettings); - - /// - /// Resets settings to default values. - /// - Task ResetToDefaultsAsync(); - - /// - /// Gets the settings file path. - /// - string GetSettingsFilePath(); - - /// - /// Validates settings and fixes any invalid values. - /// - void ValidateAndFixSettings(); - - /// - /// Exports settings to a file. - /// - Task ExportSettingsAsync(string filePath); - - /// - /// Imports settings from a file. - /// - Task ImportSettingsAsync(string filePath); - } - - /// - /// Event args for settings changed event. - /// - public class ApplicationSettingsChangedEventArgs : EventArgs - { - public ApplicationSettingsModel OldSettings { get; } - - public ApplicationSettingsModel NewSettings { get; } - - public string[] ChangedProperties { get; } - - public ApplicationSettingsChangedEventArgs( - ApplicationSettingsModel oldSettings, - ApplicationSettingsModel newSettings, - string[] changedProperties) - { - this.OldSettings = oldSettings; - this.NewSettings = newSettings; - this.ChangedProperties = changedProperties; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IApplicationSettingsService + { + event EventHandler? SettingsChanged; + + ApplicationSettingsModel Settings { get; } + + Task LoadSettingsAsync(); + + Task SaveSettingsAsync(); + + Task UpdateSettingsAsync(ApplicationSettingsModel newSettings); + + Task ResetToDefaultsAsync(); + + string GetSettingsFilePath(); + + void ValidateAndFixSettings(); + + Task ExportSettingsAsync(string filePath); + + Task ImportSettingsAsync(string filePath); + } + + public class ApplicationSettingsChangedEventArgs : EventArgs + { + public ApplicationSettingsModel OldSettings { get; } + + public ApplicationSettingsModel NewSettings { get; } + + public string[] ChangedProperties { get; } + + public ApplicationSettingsChangedEventArgs( + ApplicationSettingsModel oldSettings, + ApplicationSettingsModel newSettings, + string[] changedProperties) + { + this.OldSettings = oldSettings; + this.NewSettings = newSettings; + this.ChangedProperties = changedProperties; + } + } +} + diff --git a/Services/IAutostartService.cs b/Services/IAutostartService.cs index 462c103..3aad691 100644 --- a/Services/IAutostartService.cs +++ b/Services/IAutostartService.cs @@ -1,117 +1,44 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - - /// - /// Interface for managing Windows autostart functionality. - /// - public interface IAutostartService - { - /// - /// Occurs when autostart state changes. - /// - event EventHandler? AutostartStatusChanged; - - /// - /// Gets a value indicating whether gets whether the application is currently set to autostart with Windows. - /// - bool IsAutostartEnabled { get; } - - /// - /// Gets the current autostart registry entry path. - /// - string? AutostartPath { get; } - - /// - /// Enables autostart with Windows. - /// - /// Whether to start the application minimized. - /// True if successful, false otherwise. - Task EnableAutostartAsync(bool startMinimized = true); - - /// - /// Disables autostart with Windows. - /// - /// True if successful, false otherwise. - Task DisableAutostartAsync(); - - /// - /// Checks if autostart is currently enabled. - /// - /// True if autostart is enabled, false otherwise. - Task CheckAutostartStatusAsync(); - - /// - /// Updates the autostart entry with new parameters. - /// - /// Whether to start minimized. - /// True if successful, false otherwise. - Task UpdateAutostartAsync(bool startMinimized = true); - - /// - /// Gets the command line arguments for autostart. - /// - /// Whether to include start minimized flag. - /// Command line arguments string. - string GetAutostartArguments(bool startMinimized = true); - } - - /// - /// Event arguments for autostart status changes. - /// - public class AutostartStatusChangedEventArgs : EventArgs - { - /// - /// Gets a value indicating whether autostart is currently enabled. - /// - public bool IsEnabled { get; } - - /// - /// Gets a value indicating whether startup should launch minimized. - /// - public bool StartMinimized { get; } - - /// - /// Gets the registry command value currently used for startup. - /// - public string? RegistryPath { get; } - - /// - /// Gets the error that caused the status update when the operation failed. - /// - public Exception? Error { get; } - - /// - /// Initializes a new instance of the class. - /// - /// Whether autostart is enabled. - /// Whether startup should launch minimized. - /// The autostart registry value when available. - /// The failure that occurred, if any. - public AutostartStatusChangedEventArgs(bool isEnabled, bool startMinimized = false, string? registryPath = null, Exception? error = null) - { - this.IsEnabled = isEnabled; - this.StartMinimized = startMinimized; - this.RegistryPath = registryPath; - this.Error = error; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + + public interface IAutostartService + { + event EventHandler? AutostartStatusChanged; + + bool IsAutostartEnabled { get; } + + string? AutostartPath { get; } + + Task EnableAutostartAsync(bool startMinimized = true); + + Task DisableAutostartAsync(); + + Task CheckAutostartStatusAsync(); + + Task UpdateAutostartAsync(bool startMinimized = true); + + string GetAutostartArguments(bool startMinimized = true); + } + + public class AutostartStatusChangedEventArgs : EventArgs + { + public bool IsEnabled { get; } + + public bool StartMinimized { get; } + + public string? RegistryPath { get; } + + public Exception? Error { get; } + + public AutostartStatusChangedEventArgs(bool isEnabled, bool startMinimized = false, string? registryPath = null, Exception? error = null) + { + this.IsEnabled = isEnabled; + this.StartMinimized = startMinimized; + this.RegistryPath = registryPath; + this.Error = error; + } + } +} + diff --git a/Services/IConditionalProfileService.cs b/Services/IConditionalProfileService.cs index dca4840..b7176ca 100644 --- a/Services/IConditionalProfileService.cs +++ b/Services/IConditionalProfileService.cs @@ -1,162 +1,77 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Event arguments for profile application events. - /// - public class ProfileApplicationEventArgs : EventArgs - { - public ConditionalProcessProfile Profile { get; set; } = new(); - - public ProcessModel Process { get; set; } = new(); - - public SystemState SystemState { get; set; } = new(); - - public bool WasApplied { get; set; } - - public string Reason { get; set; } = string.Empty; - - public DateTime Timestamp { get; set; } = DateTime.UtcNow; - } - - /// - /// Event arguments for profile conflict events. - /// - public class ProfileConflictEventArgs : EventArgs - { - public List ConflictingProfiles { get; set; } = new(); - - public ProcessModel Process { get; set; } = new(); - - public ConditionalProcessProfile SelectedProfile { get; set; } = new(); - - public string Resolution { get; set; } = string.Empty; - } - - /// - /// Service for managing conditional process profiles. - /// - public interface IConditionalProfileService - { - /// - /// Initialize the conditional profile service. - /// - Task InitializeAsync(); - - /// - /// Add a conditional profile. - /// - Task AddProfileAsync(ConditionalProcessProfile profile); - - /// - /// Remove a conditional profile. - /// - Task RemoveProfileAsync(string profileId); - - /// - /// Update an existing conditional profile. - /// - Task UpdateProfileAsync(ConditionalProcessProfile profile); - - /// - /// Get all conditional profiles. - /// - Task> GetAllProfilesAsync(); - - /// - /// Get profiles for a specific process. - /// - Task> GetProfilesForProcessAsync(string processName); - - /// - /// Evaluate all profiles for a process and return applicable ones. - /// - Task> EvaluateProfilesAsync(ProcessModel process); - - /// - /// Apply the best matching profile for a process. - /// - Task ApplyBestProfileAsync(ProcessModel process); - - /// - /// Get current system state for condition evaluation. - /// - Task GetSystemStateAsync(); - - /// - /// Start automatic profile monitoring and application. - /// - Task StartMonitoringAsync(); - - /// - /// Stop automatic profile monitoring. - /// - Task StopMonitoringAsync(); - - /// - /// Gets a value indicating whether check if monitoring is active. - /// - bool IsMonitoring { get; } - - /// - /// Resolve conflicts when multiple profiles match. - /// - ConditionalProcessProfile ResolveProfileConflict(List conflictingProfiles, ProcessModel process); - - /// - /// Create a default conditional profile template. - /// - ConditionalProcessProfile CreateDefaultProfile(string processName); - - /// - /// Validate a conditional profile. - /// - Task<(bool IsValid, List Errors)> ValidateProfileAsync(ConditionalProcessProfile profile); - - /// - /// Export profiles to JSON. - /// - Task ExportProfilesToJsonAsync(); - - /// - /// Import profiles from JSON. - /// - Task ImportProfilesFromJsonAsync(string json); - - /// - /// Event raised when a profile is automatically applied - /// - event EventHandler? ProfileApplied; - - /// - /// Event raised when profile conflicts are resolved - /// - event EventHandler? ProfileConflictResolved; - - /// - /// Event raised when system state changes significantly - /// - event EventHandler? SystemStateChanged; - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public class ProfileApplicationEventArgs : EventArgs + { + public ConditionalProcessProfile Profile { get; set; } = new(); + + public ProcessModel Process { get; set; } = new(); + + public SystemState SystemState { get; set; } = new(); + + public bool WasApplied { get; set; } + + public string Reason { get; set; } = string.Empty; + + public DateTime Timestamp { get; set; } = DateTime.UtcNow; + } + + public class ProfileConflictEventArgs : EventArgs + { + public List ConflictingProfiles { get; set; } = new(); + + public ProcessModel Process { get; set; } = new(); + + public ConditionalProcessProfile SelectedProfile { get; set; } = new(); + + public string Resolution { get; set; } = string.Empty; + } + + public interface IConditionalProfileService + { + Task InitializeAsync(); + + Task AddProfileAsync(ConditionalProcessProfile profile); + + Task RemoveProfileAsync(string profileId); + + Task UpdateProfileAsync(ConditionalProcessProfile profile); + + Task> GetAllProfilesAsync(); + + Task> GetProfilesForProcessAsync(string processName); + + Task> EvaluateProfilesAsync(ProcessModel process); + + Task ApplyBestProfileAsync(ProcessModel process); + + Task GetSystemStateAsync(); + + Task StartMonitoringAsync(); + + Task StopMonitoringAsync(); + + bool IsMonitoring { get; } + + ConditionalProcessProfile ResolveProfileConflict(List conflictingProfiles, ProcessModel process); + + ConditionalProcessProfile CreateDefaultProfile(string processName); + + Task<(bool IsValid, List Errors)> ValidateProfileAsync(ConditionalProcessProfile profile); + + Task ExportProfilesToJsonAsync(); + + Task ImportProfilesFromJsonAsync(string json); + + event EventHandler? ProfileApplied; + + event EventHandler? ProfileConflictResolved; + + event EventHandler? SystemStateChanged; + } +} + diff --git a/Services/ICoreMaskService.cs b/Services/ICoreMaskService.cs index 5ced649..d8f7f66 100644 --- a/Services/ICoreMaskService.cs +++ b/Services/ICoreMaskService.cs @@ -1,120 +1,47 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for managing CPU core affinity masks. - /// - public interface ICoreMaskService - { - /// - /// Gets all available core masks. - /// - ObservableCollection AvailableMasks { get; } - - /// - /// Gets the default mask (all cores). - /// - CoreMask? DefaultMask { get; } - - /// - /// Initializes the service and loads masks from storage. - /// - Task InitializeAsync(); - - /// - /// Creates a new core mask. - /// - Task CreateMaskAsync(string name, string description, IEnumerable boolMask); - - /// - /// Updates an existing mask. - /// - Task UpdateMaskAsync(CoreMask mask); - - /// - /// Deletes a mask by ID. - /// - Task DeleteMaskAsync(string maskId); - - /// - /// Gets a mask by ID. - /// - CoreMask? GetMaskById(string maskId); - - /// - /// Gets a mask by name. - /// - CoreMask? GetMaskByName(string name); - - /// - /// Saves all masks to persistent storage. - /// - Task SaveMasksAsync(); - - /// - /// Loads masks from persistent storage. - /// - Task LoadMasksAsync(); - - /// - /// Checks if a mask is referenced by any profile or rule (not necessarily active). - /// - Task IsMaskReferencedByProfilesAsync(string maskId); - - /// - /// Checks if a mask is actively applied to any running process. - /// - Task IsMaskActivelyAppliedAsync(string maskId); - - /// - /// Gets the names of profiles/rules that reference a specific mask. - /// - Task> GetProfilesReferencingMaskAsync(string maskId); - - /// - /// Updates all profiles referencing a mask to use the default "All Cores" mask. - /// - Task UpdateProfilesToDefaultMaskAsync(string maskId); - - /// - /// Creates default masks for the system based on CPU topology. - /// - Task CreateDefaultMasksAsync(); - - /// - /// Gets the "All Cores" baseline mask (cannot be deleted). - /// - CoreMask? GetAllCoresMask(); - - /// - /// Registers that a mask has been applied to a running process. - /// - void RegisterMaskApplication(int processId, string maskId); - - /// - /// Unregisters mask tracking when a process exits or a mask is removed. - /// - void UnregisterMaskApplication(int processId); - } -} - +namespace ThreadPilot.Services +{ + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface ICoreMaskService + { + ObservableCollection AvailableMasks { get; } + + CoreMask? DefaultMask { get; } + + Task InitializeAsync(); + + Task CreateMaskAsync(string name, string description, IEnumerable boolMask); + + Task UpdateMaskAsync(CoreMask mask); + + Task DeleteMaskAsync(string maskId); + + CoreMask? GetMaskById(string maskId); + + CoreMask? GetMaskByName(string name); + + Task SaveMasksAsync(); + + Task LoadMasksAsync(); + + Task IsMaskReferencedByProfilesAsync(string maskId); + + Task IsMaskActivelyAppliedAsync(string maskId); + + Task> GetProfilesReferencingMaskAsync(string maskId); + + Task UpdateProfilesToDefaultMaskAsync(string maskId); + + Task CreateDefaultMasksAsync(); + + CoreMask? GetAllCoresMask(); + + void RegisterMaskApplication(int processId, string maskId); + + void UnregisterMaskApplication(int processId); + } +} + diff --git a/Services/ICpuPresetGenerator.cs b/Services/ICpuPresetGenerator.cs index c53763a..0c2988f 100644 --- a/Services/ICpuPresetGenerator.cs +++ b/Services/ICpuPresetGenerator.cs @@ -1,27 +1,11 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using ThreadPilot.Models; - - public interface ICpuPresetGenerator - { - IReadOnlyList Generate( - CpuTopologySnapshot topology, - CpuPresetGenerationOptions? options = null); - } -} +namespace ThreadPilot.Services +{ + using ThreadPilot.Models; + + public interface ICpuPresetGenerator + { + IReadOnlyList Generate( + CpuTopologySnapshot topology, + CpuPresetGenerationOptions? options = null); + } +} diff --git a/Services/ICpuTopologyProvider.cs b/Services/ICpuTopologyProvider.cs index 27e5c32..7eb2fdc 100644 --- a/Services/ICpuTopologyProvider.cs +++ b/Services/ICpuTopologyProvider.cs @@ -1,33 +1,11 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Threading; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Provides a topology-aware CPU snapshot without applying runtime affinity changes. - /// - public interface ICpuTopologyProvider - { - /// - /// Gets a current CPU topology snapshot. - /// - Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default); - } -} +namespace ThreadPilot.Services +{ + using System.Threading; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface ICpuTopologyProvider + { + Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default); + } +} diff --git a/Services/ICpuTopologyService.cs b/Services/ICpuTopologyService.cs index 333e347..0b38f0c 100644 --- a/Services/ICpuTopologyService.cs +++ b/Services/ICpuTopologyService.cs @@ -1,87 +1,44 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for detecting and managing CPU topology information. - /// - public interface ICpuTopologyService - { - /// - /// Event fired when CPU topology is detected or updated - /// - event EventHandler? TopologyDetected; - - /// - /// Gets the current CPU topology information. - /// - CpuTopologyModel? CurrentTopology { get; } - - /// - /// Detects CPU topology information. - /// - Task DetectTopologyAsync(); - - /// - /// Gets available affinity presets based on current topology. - /// - IEnumerable GetAffinityPresets(); - - /// - /// Validates if an affinity mask is valid for the current system. - /// - bool IsAffinityMaskValid(long affinityMask); - - /// - /// Gets the maximum number of logical cores supported. - /// - int GetMaxLogicalCores(); - - /// - /// Refreshes topology information (useful for hot-plug scenarios). - /// - Task RefreshTopologyAsync(); - } - - /// - /// Event arguments for CPU topology detection. - /// - public class CpuTopologyDetectedEventArgs : EventArgs - { - public CpuTopologyModel Topology { get; } - - public bool DetectionSuccessful { get; } - - public string? ErrorMessage { get; } - - public DateTime DetectionTime { get; } - - public CpuTopologyDetectedEventArgs(CpuTopologyModel topology, bool successful, string? errorMessage = null) - { - this.Topology = topology; - this.DetectionSuccessful = successful; - this.ErrorMessage = errorMessage; - this.DetectionTime = DateTime.Now; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface ICpuTopologyService + { + event EventHandler? TopologyDetected; + + CpuTopologyModel? CurrentTopology { get; } + + Task DetectTopologyAsync(); + + IEnumerable GetAffinityPresets(); + + bool IsAffinityMaskValid(long affinityMask); + + int GetMaxLogicalCores(); + + Task RefreshTopologyAsync(); + } + + public class CpuTopologyDetectedEventArgs : EventArgs + { + public CpuTopologyModel Topology { get; } + + public bool DetectionSuccessful { get; } + + public string? ErrorMessage { get; } + + public DateTime DetectionTime { get; } + + public CpuTopologyDetectedEventArgs(CpuTopologyModel topology, bool successful, string? errorMessage = null) + { + this.Topology = topology; + this.DetectionSuccessful = successful; + this.ErrorMessage = errorMessage; + this.DetectionTime = DateTime.Now; + } + } +} + diff --git a/Services/IElevatedTaskService.cs b/Services/IElevatedTaskService.cs index 80d996b..f815f5b 100644 --- a/Services/IElevatedTaskService.cs +++ b/Services/IElevatedTaskService.cs @@ -1,68 +1,21 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Threading.Tasks; - - /// - /// Service for managing Scheduled Task-based elevation entrypoints. - /// - public interface IElevatedTaskService - { - /// - /// Gets the managed task name used for on-demand elevated launch. - /// - string LaunchTaskName { get; } - - /// - /// Gets the managed task name used for elevated logon autostart. - /// - string AutostartTaskName { get; } - - /// - /// Ensures the managed on-demand elevated launch task exists and targets the current executable. - /// - /// True when the task exists and is up to date; otherwise false. - Task EnsureLaunchTaskAsync(); - - /// - /// Runs the managed on-demand elevated launch task. - /// - /// True if task execution was started successfully; otherwise false. - Task TryRunLaunchTaskAsync(); - - /// - /// Ensures elevated autostart task exists and points to the provided executable command. - /// - /// Absolute executable path. - /// Command-line arguments for autostart launches. - /// True if task was created/updated successfully; otherwise false. - Task EnsureAutostartTaskAsync(string executablePath, string arguments); - - /// - /// Removes the managed elevated autostart task. - /// - /// True when the task is removed (or already absent); otherwise false. - Task RemoveAutostartTaskAsync(); - - /// - /// Checks whether the managed elevated autostart task is currently registered. - /// - /// True when the task exists; otherwise false. - Task IsAutostartTaskRegisteredAsync(); - } -} +namespace ThreadPilot.Services +{ + using System.Threading.Tasks; + + public interface IElevatedTaskService + { + string LaunchTaskName { get; } + + string AutostartTaskName { get; } + + Task EnsureLaunchTaskAsync(); + + Task TryRunLaunchTaskAsync(); + + Task EnsureAutostartTaskAsync(string executablePath, string arguments); + + Task RemoveAutostartTaskAsync(); + + Task IsAutostartTaskRegisteredAsync(); + } +} diff --git a/Services/IElevationService.cs b/Services/IElevationService.cs index 48a244e..4741451 100644 --- a/Services/IElevationService.cs +++ b/Services/IElevationService.cs @@ -1,59 +1,18 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Threading.Tasks; - - /// - /// Service for managing application elevation and administrator privileges. - /// - public interface IElevationService - { - /// - /// Checks if the current process is running with administrator privileges. - /// - /// True if running as administrator, false otherwise. - bool IsRunningAsAdministrator(); - - /// - /// Requests elevation if the current process is not running as administrator. - /// - /// True if already elevated or elevation was successful, false if elevation failed or was cancelled. - Task RequestElevationIfNeeded(); - - /// - /// Restarts the application with administrator privileges. - /// - /// Command line arguments to pass to the elevated process. - /// True if restart was initiated successfully, false otherwise. - Task RestartWithElevation(string[]? arguments = null); - - /// - /// Validates that the current process has the necessary privileges for the specified operation. - /// - /// The operation that requires validation. - /// True if the operation can be performed, false otherwise. - bool ValidateElevationForOperation(string operation); - - /// - /// Gets the current elevation status as a user-friendly string. - /// - /// Elevation status description. - string GetElevationStatus(); - } -} - +namespace ThreadPilot.Services +{ + using System.Threading.Tasks; + + public interface IElevationService + { + bool IsRunningAsAdministrator(); + + Task RequestElevationIfNeeded(); + + Task RestartWithElevation(string[]? arguments = null); + + bool ValidateElevationForOperation(string operation); + + string GetElevationStatus(); + } +} + diff --git a/Services/IEnhancedLoggingService.cs b/Services/IEnhancedLoggingService.cs index 0325d61..7e1966e 100644 --- a/Services/IEnhancedLoggingService.cs +++ b/Services/IEnhancedLoggingService.cs @@ -1,189 +1,104 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Enhanced logging service interface for persistent, structured logging. - /// - public interface IEnhancedLoggingService - { - /// - /// Gets the current log file path. - /// - string CurrentLogFilePath { get; } - - /// - /// Gets the log directory path. - /// - string LogDirectoryPath { get; } - - /// - /// Gets a value indicating whether gets whether debug logging is enabled. - /// - bool IsDebugLoggingEnabled { get; } - - /// - /// Event raised when a critical error occurs - /// - event EventHandler? CriticalErrorOccurred; - - /// - /// Initialize the logging service. - /// - Task InitializeAsync(); - - /// - /// Log a power plan change event. - /// - Task LogPowerPlanChangeAsync(string fromPlan, string toPlan, string reason, string? processName = null); - - /// - /// Log a process monitoring event. - /// - Task LogProcessMonitoringEventAsync(string eventType, string processName, int processId, string details); - - /// - /// Log a user action. - /// - Task LogUserActionAsync(string action, string details, string? context = null); - - /// - /// Log a system event. - /// - Task LogSystemEventAsync(string eventType, string message, LogLevel level = LogLevel.Information); - - /// - /// Log an error with structured data. - /// - Task LogErrorAsync(Exception exception, string context, Dictionary? additionalData = null); - - /// - /// Log application startup/shutdown events. - /// - Task LogApplicationLifecycleEventAsync(string eventType, string details); - - /// - /// Get recent log entries. - /// - Task> GetRecentLogEntriesAsync(int count = 100); - - /// - /// Begin a correlated operation scope for better debugging. - /// - IDisposable BeginScope(string operationName, object? parameters = null); - - /// - /// Get the current correlation ID. - /// - string? GetCurrentCorrelationId(); - - /// - /// Get log entries for a specific date range. - /// - Task> GetLogEntriesAsync(DateTime fromDate, DateTime toDate); - - /// - /// Clean up old log files based on retention policy. - /// - Task CleanupOldLogsAsync(); - - /// - /// Get log file statistics. - /// - Task GetLogStatisticsAsync(); - - /// - /// Export logs to a file. - /// - Task ExportLogsAsync(DateTime fromDate, DateTime toDate, string? exportPath = null); - - /// - /// Update logging configuration. - /// - Task UpdateConfigurationAsync(bool enableDebugLogging, int maxFileSizeMb, int retentionDays); - } - - /// - /// Event args for critical errors. - /// - public class CriticalErrorEventArgs : EventArgs - { - public Exception Exception { get; } - - public string Context { get; } - - public DateTime Timestamp { get; } - - public Dictionary AdditionalData { get; } - - public CriticalErrorEventArgs(Exception exception, string context, Dictionary? additionalData = null) - { - this.Exception = exception; - this.Context = context; - this.Timestamp = DateTime.UtcNow; - this.AdditionalData = additionalData ?? new Dictionary(); - } - } - - /// - /// Represents a log entry. - /// - public class LogEntry - { - public DateTime Timestamp { get; set; } - - public LogLevel Level { get; set; } - - public string Category { get; set; } = string.Empty; - - public string Message { get; set; } = string.Empty; - - public string? Exception { get; set; } - - public Dictionary Properties { get; set; } = new(); - - public string? CorrelationId { get; set; } - } - - /// - /// Log file statistics. - /// - public class LogFileStatistics - { - public long CurrentFileSizeBytes { get; set; } - - public int TotalLogFiles { get; set; } - - public long TotalLogSizeBytes { get; set; } - - public DateTime OldestLogDate { get; set; } - - public DateTime NewestLogDate { get; set; } - - public int ErrorCount { get; set; } - - public int WarningCount { get; set; } - - public int InfoCount { get; set; } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + + public interface IEnhancedLoggingService + { + string CurrentLogFilePath { get; } + + string LogDirectoryPath { get; } + + bool IsDebugLoggingEnabled { get; } + + event EventHandler? CriticalErrorOccurred; + + Task InitializeAsync(); + + Task LogPowerPlanChangeAsync(string fromPlan, string toPlan, string reason, string? processName = null); + + Task LogProcessMonitoringEventAsync(string eventType, string processName, int processId, string details); + + Task LogUserActionAsync(string action, string details, string? context = null); + + Task LogSystemEventAsync(string eventType, string message, LogLevel level = LogLevel.Information); + + Task LogErrorAsync(Exception exception, string context, Dictionary? additionalData = null); + + Task LogApplicationLifecycleEventAsync(string eventType, string details); + + Task> GetRecentLogEntriesAsync(int count = 100); + + IDisposable BeginScope(string operationName, object? parameters = null); + + string? GetCurrentCorrelationId(); + + Task> GetLogEntriesAsync(DateTime fromDate, DateTime toDate); + + Task CleanupOldLogsAsync(); + + Task GetLogStatisticsAsync(); + + Task ExportLogsAsync(DateTime fromDate, DateTime toDate, string? exportPath = null); + + Task UpdateConfigurationAsync(bool enableDebugLogging, int maxFileSizeMb, int retentionDays); + } + + public class CriticalErrorEventArgs : EventArgs + { + public Exception Exception { get; } + + public string Context { get; } + + public DateTime Timestamp { get; } + + public Dictionary AdditionalData { get; } + + public CriticalErrorEventArgs(Exception exception, string context, Dictionary? additionalData = null) + { + this.Exception = exception; + this.Context = context; + this.Timestamp = DateTime.UtcNow; + this.AdditionalData = additionalData ?? new Dictionary(); + } + } + + public class LogEntry + { + public DateTime Timestamp { get; set; } + + public LogLevel Level { get; set; } + + public string Category { get; set; } = string.Empty; + + public string Message { get; set; } = string.Empty; + + public string? Exception { get; set; } + + public Dictionary Properties { get; set; } = new(); + + public string? CorrelationId { get; set; } + } + + public class LogFileStatistics + { + public long CurrentFileSizeBytes { get; set; } + + public int TotalLogFiles { get; set; } + + public long TotalLogSizeBytes { get; set; } + + public DateTime OldestLogDate { get; set; } + + public DateTime NewestLogDate { get; set; } + + public int ErrorCount { get; set; } + + public int WarningCount { get; set; } + + public int InfoCount { get; set; } + } +} + diff --git a/Services/IGameBoostService.cs b/Services/IGameBoostService.cs deleted file mode 100644 index e7ee4ec..0000000 --- a/Services/IGameBoostService.cs +++ /dev/null @@ -1,157 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using ThreadPilot.Models; - -namespace ThreadPilot.Services -{ - /// - /// Interface for Game Boost mode functionality - /// - public interface IGameBoostService - { - /// - /// Event fired when Game Boost mode is activated - /// - event EventHandler? GameBoostActivated; - - /// - /// Event fired when Game Boost mode is deactivated - /// - event EventHandler? GameBoostDeactivated; - - /// - /// Event fired when a game is detected - /// - event EventHandler? GameDetected; - - /// - /// Gets whether Game Boost mode is currently active - /// - bool IsGameBoostActive { get; } - - /// - /// Gets the currently detected game process - /// - ProcessModel? CurrentGameProcess { get; } - - /// - /// Gets the list of known game executables - /// - IReadOnlyList KnownGameExecutables { get; } - - /// - /// Gets the list of known game executables as a collection - /// - IReadOnlyList GetKnownGameExecutables(); - - /// - /// Enables Game Boost mode - /// - Task EnableGameBoostAsync(); - - /// - /// Disables Game Boost mode - /// - Task DisableGameBoostAsync(); - - /// - /// Manually activates Game Boost for a specific process - /// - /// The process to boost - Task ActivateGameBoostAsync(ProcessModel process); - - /// - /// Manually deactivates Game Boost - /// - Task DeactivateGameBoostAsync(); - - /// - /// Adds a game executable to the known games list - /// - /// Name of the executable (e.g., "game.exe") - Task AddKnownGameAsync(string executableName); - - /// - /// Removes a game executable from the known games list - /// - /// Name of the executable to remove - Task RemoveKnownGameAsync(string executableName); - - /// - /// Checks if a process is considered a game - /// - /// The process to check - bool IsGameProcess(ProcessModel process); - } - - /// - /// Event arguments for Game Boost activation - /// - public class GameBoostActivatedEventArgs : EventArgs - { - public ProcessModel GameProcess { get; } - public string PowerPlanId { get; } - public DateTime ActivatedAt { get; } - - public GameBoostActivatedEventArgs(ProcessModel gameProcess, string powerPlanId) - { - GameProcess = gameProcess; - PowerPlanId = powerPlanId; - ActivatedAt = DateTime.Now; - } - } - - /// - /// Event arguments for Game Boost deactivation - /// - public class GameBoostDeactivatedEventArgs : EventArgs - { - public ProcessModel? GameProcess { get; } - public string? RestoredPowerPlanId { get; } - public DateTime DeactivatedAt { get; } - public TimeSpan Duration { get; } - - public GameBoostDeactivatedEventArgs(ProcessModel? gameProcess, string? restoredPowerPlanId, TimeSpan duration) - { - GameProcess = gameProcess; - RestoredPowerPlanId = restoredPowerPlanId; - DeactivatedAt = DateTime.Now; - Duration = duration; - } - } - - /// - /// Event arguments for game detection - /// - public class GameDetectedEventArgs : EventArgs - { - public ProcessModel GameProcess { get; } - public bool IsKnownGame { get; } - public DateTime DetectedAt { get; } - - public GameDetectedEventArgs(ProcessModel gameProcess, bool isKnownGame) - { - GameProcess = gameProcess; - IsKnownGame = isKnownGame; - DetectedAt = DateTime.Now; - } - } -} - diff --git a/Services/IGameDetectionService.cs b/Services/IGameDetectionService.cs deleted file mode 100644 index 1ba741f..0000000 --- a/Services/IGameDetectionService.cs +++ /dev/null @@ -1,259 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Threading.Tasks; -using ThreadPilot.Models; - -namespace ThreadPilot.Services -{ - /// - /// Game classification confidence levels - /// - public enum GameConfidenceLevel - { - VeryLow = 0, // 0-20% - Low = 1, // 20-40% - Medium = 2, // 40-60% - High = 3, // 60-80% - VeryHigh = 4 // 80-100% - } - - /// - /// Game detection result with confidence scoring - /// - public class GameDetectionResult - { - public bool IsGame { get; set; } - public float Confidence { get; set; } - public GameConfidenceLevel ConfidenceLevel => Confidence switch - { - >= 0.8f => GameConfidenceLevel.VeryHigh, - >= 0.6f => GameConfidenceLevel.High, - >= 0.4f => GameConfidenceLevel.Medium, - >= 0.2f => GameConfidenceLevel.Low, - _ => GameConfidenceLevel.VeryLow - }; - public string GameName { get; set; } = string.Empty; - public string DetectionMethod { get; set; } = string.Empty; - public Dictionary Features { get; set; } = new(); - public DateTime DetectionTime { get; set; } = DateTime.UtcNow; - } - - /// - /// Real-time game performance metrics - /// - public class GamePerformanceMetrics - { - public int ProcessId { get; set; } - public string GameName { get; set; } = string.Empty; - public float FrameRate { get; set; } - public double CpuUsage { get; set; } - public long MemoryUsage { get; set; } - public double GpuUsage { get; set; } - public long GpuMemoryUsage { get; set; } - public DateTime Timestamp { get; set; } = DateTime.UtcNow; - public bool IsFullscreen { get; set; } - public string Resolution { get; set; } = string.Empty; - } - - /// - /// Process features for ML classification - /// - public class ProcessFeatures - { - public string ProcessName { get; set; } = string.Empty; - public string ExecutablePath { get; set; } = string.Empty; - public bool HasVisibleWindow { get; set; } - public bool IsFullscreen { get; set; } - public double CpuUsage { get; set; } - public long MemoryUsage { get; set; } - public int ThreadCount { get; set; } - public int HandleCount { get; set; } - public bool HasDirectXDlls { get; set; } - public bool HasOpenGLDlls { get; set; } - public bool HasVulkanDlls { get; set; } - public bool HasAudioDlls { get; set; } - public bool HasNetworkActivity { get; set; } - public string FileDescription { get; set; } = string.Empty; - public string CompanyName { get; set; } = string.Empty; - public bool IsInGamesFolder { get; set; } - public bool HasGameKeywords { get; set; } - public float WindowAspectRatio { get; set; } - public bool IsElevated { get; set; } - } - - /// - /// Service for detecting running games and applying optimal performance profiles - /// - public interface IGameDetectionService - { - /// - /// Detect if a process is a known game - /// - Task DetectGameAsync(ProcessModel process); - - /// - /// Detect if a process is a game using ML classification - /// - Task DetectGameWithMLAsync(ProcessModel process); - - /// - /// Extract features from a process for ML classification - /// - Task ExtractProcessFeaturesAsync(ProcessModel process); - - /// - /// Get real-time performance metrics for a game - /// - Task GetGamePerformanceAsync(ProcessModel process); - - /// - /// Get all currently running games - /// - Task> GetRunningGamesAsync(); - - /// - /// Apply optimal settings for a detected game - /// - Task ApplyGameOptimizationsAsync(ProcessModel process, GameProfile gameProfile); - - /// - /// Check if a process is running through Steam - /// - Task IsSteamGameAsync(ProcessModel process); - - /// - /// Check if a process is running through Epic Games Launcher - /// - Task IsEpicGameAsync(ProcessModel process); - - /// - /// Get game profile for a Steam game - /// - Task GetSteamGameProfileAsync(ProcessModel process); - - /// - /// Get game profile for an Epic Games game - /// - Task GetEpicGameProfileAsync(ProcessModel process); - - /// - /// Add or update a custom game profile - /// - Task AddCustomGameProfileAsync(string processName, GameProfile profile); - - /// - /// Remove a custom game profile - /// - Task RemoveCustomGameProfileAsync(string processName); - - /// - /// Get all available game profiles - /// - Task> GetAllGameProfilesAsync(); - - /// - /// Event raised when a new game is detected - /// - event EventHandler? GameDetected; - - /// - /// Event raised when a game stops running - /// - event EventHandler? GameStopped; - } - - /// - /// Represents a game profile with optimal settings - /// - public class GameProfile - { - public string Name { get; set; } = string.Empty; - public string ProcessName { get; set; } = string.Empty; - public string OptimalCores { get; set; } = "All"; // "All", "Physical", "P-Cores", "E-Cores", "Custom" - public ProcessPriorityClass Priority { get; set; } = ProcessPriorityClass.High; - public string? PowerPlan { get; set; } - public bool DisableFullscreenOptimizations { get; set; } = true; - public bool HighDpiAware { get; set; } = true; - public string? CustomAffinityMask { get; set; } - public Dictionary CustomSettings { get; set; } = new(); - public DateTime LastDetected { get; set; } - public int DetectionCount { get; set; } - public string? SteamAppId { get; set; } - public string? EpicAppId { get; set; } - public GameCategory Category { get; set; } = GameCategory.Unknown; - public string? Description { get; set; } - } - - /// - /// Game categories for better organization - /// - public enum GameCategory - { - Unknown, - FPS, - MOBA, - RTS, - RPG, - Racing, - Sports, - Simulation, - Strategy, - Action, - Adventure, - Indie - } - - /// - /// Event args for game profile detection - /// - public class GameProfileDetectedEventArgs : EventArgs - { - public ProcessModel Process { get; } - public GameProfile GameProfile { get; } - public DateTime DetectedAt { get; } - - public GameProfileDetectedEventArgs(ProcessModel process, GameProfile gameProfile) - { - Process = process; - GameProfile = gameProfile; - DetectedAt = DateTime.UtcNow; - } - } - - /// - /// Event args for game stopped - /// - public class GameStoppedEventArgs : EventArgs - { - public string ProcessName { get; } - public GameProfile GameProfile { get; } - public DateTime StoppedAt { get; } - public TimeSpan PlayDuration { get; } - - public GameStoppedEventArgs(string processName, GameProfile gameProfile, TimeSpan playDuration) - { - ProcessName = processName; - GameProfile = gameProfile; - StoppedAt = DateTime.UtcNow; - PlayDuration = playDuration; - } - } -} - diff --git a/Services/IGameModeService.cs b/Services/IGameModeService.cs index 87fb9bf..fcd29ac 100644 --- a/Services/IGameModeService.cs +++ b/Services/IGameModeService.cs @@ -1,48 +1,14 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Threading.Tasks; - - /// - /// Service for managing Windows Game Mode settings - /// Game Mode can interfere with CPU affinity settings, particularly on AMD systems. - /// - public interface IGameModeService - { - /// - /// Checks if Windows Game Mode is currently enabled. - /// - /// True if Game Mode is enabled, false otherwise. - Task IsGameModeEnabledAsync(); - - /// - /// Sets Windows Game Mode to enabled or disabled. - /// - /// True to enable Game Mode, false to disable. - /// True if the operation succeeded, false otherwise. - Task SetGameModeAsync(bool enabled); - - /// - /// Disables Game Mode for better CPU affinity control - /// This is a non-intrusive operation that only disables if currently enabled. - /// - /// True if Game Mode was disabled, false if it was already disabled or operation failed. - Task DisableGameModeForAffinityAsync(); - } -} - +namespace ThreadPilot.Services +{ + using System.Threading.Tasks; + + public interface IGameModeService + { + Task IsGameModeEnabledAsync(); + + Task SetGameModeAsync(bool enabled); + + Task DisableGameModeForAffinityAsync(); + } +} + diff --git a/Services/IKeyboardShortcutService.cs b/Services/IKeyboardShortcutService.cs index 19df38a..fa1f151 100644 --- a/Services/IKeyboardShortcutService.cs +++ b/Services/IKeyboardShortcutService.cs @@ -1,164 +1,106 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using System.Windows.Input; - - /// - /// Service for managing global keyboard shortcuts. - /// - public interface IKeyboardShortcutService - { - /// - /// Event raised when a registered shortcut is activated - /// - event EventHandler? ShortcutActivated; - - /// - /// Register a global keyboard shortcut. - /// - Task RegisterShortcutAsync(string actionName, Key key, ModifierKeys modifiers); - - /// - /// Unregister a keyboard shortcut. - /// - Task UnregisterShortcutAsync(string actionName); - - /// - /// Update an existing shortcut with new key combination. - /// - Task UpdateShortcutAsync(string actionName, Key key, ModifierKeys modifiers); - - /// - /// Get all registered shortcuts. - /// - Task> GetRegisteredShortcutsAsync(); - - /// - /// Check if a key combination is already registered. - /// - Task IsShortcutRegisteredAsync(Key key, ModifierKeys modifiers); - - /// - /// Load shortcuts from settings. - /// - Task LoadShortcutsFromSettingsAsync(); - - /// - /// Save shortcuts to settings. - /// - Task SaveShortcutsToSettingsAsync(); - - /// - /// Clear all registered shortcuts. - /// - Task ClearAllShortcutsAsync(); - - /// - /// Get the default shortcuts for the application. - /// - Dictionary GetDefaultShortcuts(); - } - - /// - /// Represents a keyboard shortcut. - /// - public class KeyboardShortcut - { - public string ActionName { get; set; } = string.Empty; - - public Key Key { get; set; } - - public ModifierKeys Modifiers { get; set; } - - public string Description { get; set; } = string.Empty; - - public bool IsEnabled { get; set; } = true; - - public bool IsGlobal { get; set; } = true; - - public override string ToString() - { - var parts = new List(); - - if (this.Modifiers.HasFlag(ModifierKeys.Control)) - { - parts.Add("Ctrl"); - } - - if (this.Modifiers.HasFlag(ModifierKeys.Alt)) - { - parts.Add("Alt"); - } - - if (this.Modifiers.HasFlag(ModifierKeys.Shift)) - { - parts.Add("Shift"); - } - - if (this.Modifiers.HasFlag(ModifierKeys.Windows)) - { - parts.Add("Win"); - } - - parts.Add(this.Key.ToString()); - - return string.Join(" + ", parts); - } - } - - /// - /// Event args for shortcut activation. - /// - public class ShortcutActivatedEventArgs : EventArgs - { - public string ActionName { get; } - - public KeyboardShortcut Shortcut { get; } - - public DateTime ActivationTime { get; } - - public ShortcutActivatedEventArgs(string actionName, KeyboardShortcut shortcut) - { - this.ActionName = actionName; - this.Shortcut = shortcut; - this.ActivationTime = DateTime.UtcNow; - } - } - - /// - /// Predefined shortcut actions. - /// - public static class ShortcutActions - { - public const string QuickApply = "QuickApply"; - public const string ToggleMonitoring = "ToggleMonitoring"; - public const string ShowMainWindow = "ShowMainWindow"; - public const string HideToTray = "HideToTray"; - public const string PowerPlanBalanced = "PowerPlanBalanced"; - public const string PowerPlanHighPerformance = "PowerPlanHighPerformance"; - public const string PowerPlanPowerSaver = "PowerPlanPowerSaver"; - public const string RefreshProcessList = "RefreshProcessList"; - public const string OpenSettings = "OpenSettings"; - public const string OpenTweaks = "OpenTweaks"; - public const string ExitApplication = "ExitApplication"; - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using System.Windows.Input; + + public interface IKeyboardShortcutService + { + event EventHandler? ShortcutActivated; + + Task RegisterShortcutAsync(string actionName, Key key, ModifierKeys modifiers); + + Task UnregisterShortcutAsync(string actionName); + + Task UpdateShortcutAsync(string actionName, Key key, ModifierKeys modifiers); + + Task> GetRegisteredShortcutsAsync(); + + Task IsShortcutRegisteredAsync(Key key, ModifierKeys modifiers); + + Task LoadShortcutsFromSettingsAsync(); + + Task SaveShortcutsToSettingsAsync(); + + Task ClearAllShortcutsAsync(); + + Dictionary GetDefaultShortcuts(); + } + + public class KeyboardShortcut + { + public string ActionName { get; set; } = string.Empty; + + public Key Key { get; set; } + + public ModifierKeys Modifiers { get; set; } + + public string Description { get; set; } = string.Empty; + + public bool IsEnabled { get; set; } = true; + + public bool IsGlobal { get; set; } = true; + + public override string ToString() + { + var parts = new List(); + + if (this.Modifiers.HasFlag(ModifierKeys.Control)) + { + parts.Add("Ctrl"); + } + + if (this.Modifiers.HasFlag(ModifierKeys.Alt)) + { + parts.Add("Alt"); + } + + if (this.Modifiers.HasFlag(ModifierKeys.Shift)) + { + parts.Add("Shift"); + } + + if (this.Modifiers.HasFlag(ModifierKeys.Windows)) + { + parts.Add("Win"); + } + + parts.Add(this.Key.ToString()); + + return string.Join(" + ", parts); + } + } + + public class ShortcutActivatedEventArgs : EventArgs + { + public string ActionName { get; } + + public KeyboardShortcut Shortcut { get; } + + public DateTime ActivationTime { get; } + + public ShortcutActivatedEventArgs(string actionName, KeyboardShortcut shortcut) + { + this.ActionName = actionName; + this.Shortcut = shortcut; + this.ActivationTime = DateTime.UtcNow; + } + } + + public static class ShortcutActions + { + public const string QuickApply = "QuickApply"; + public const string ToggleMonitoring = "ToggleMonitoring"; + public const string ShowMainWindow = "ShowMainWindow"; + public const string HideToTray = "HideToTray"; + public const string PowerPlanBalanced = "PowerPlanBalanced"; + public const string PowerPlanHighPerformance = "PowerPlanHighPerformance"; + public const string PowerPlanPowerSaver = "PowerPlanPowerSaver"; + public const string RefreshProcessList = "RefreshProcessList"; + public const string OpenSettings = "OpenSettings"; + public const string OpenTweaks = "OpenTweaks"; + public const string ExitApplication = "ExitApplication"; + } +} + diff --git a/Services/ILocalizationService.cs b/Services/ILocalizationService.cs index 5361e75..bed3d6d 100644 --- a/Services/ILocalizationService.cs +++ b/Services/ILocalizationService.cs @@ -1,44 +1,13 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - /// - /// Service for managing application localization and display language. - /// - public interface ILocalizationService - { - /// - /// Gets the current display language. - /// - string CurrentLanguage { get; } - - /// - /// Event fired when the active language changes. - /// - event EventHandler? LanguageChanged; - - /// - /// Applies the specified display language. - /// - void ApplyLanguage(string? language); - - /// - /// Gets the localized string for the specified key. - /// - string GetString(string key); - } -} +namespace ThreadPilot.Services +{ + public interface ILocalizationService + { + string CurrentLanguage { get; } + + event EventHandler? LanguageChanged; + + void ApplyLanguage(string? language); + + string GetString(string key); + } +} diff --git a/Services/INotificationService.cs b/Services/INotificationService.cs index cf594d7..3feac80 100644 --- a/Services/INotificationService.cs +++ b/Services/INotificationService.cs @@ -1,169 +1,78 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for managing notifications (balloon tips and toast notifications). - /// - public interface INotificationService - { - /// - /// Event fired when a notification is shown - /// - event EventHandler? NotificationShown; - - /// - /// Event fired when a notification is dismissed - /// - event EventHandler? NotificationDismissed; - - /// - /// Event fired when a notification action is clicked - /// - event EventHandler? NotificationActionClicked; - - /// - /// Gets the notification history. - /// - IReadOnlyList NotificationHistory { get; } - - /// - /// Shows a simple notification. - /// - Task ShowNotificationAsync(string title, string message, NotificationType type = NotificationType.Information); - - /// - /// Shows a notification with custom settings. - /// - Task ShowNotificationAsync(NotificationModel notification); - - /// - /// Shows a balloon tip notification. - /// - Task ShowBalloonTipAsync(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000); - - /// - /// Shows a Windows toast notification (if available). - /// - Task ShowToastNotificationAsync(string title, string message, NotificationType type = NotificationType.Information); - - /// - /// Shows a notification for power plan changes. - /// - Task ShowPowerPlanChangeNotificationAsync(string oldPlan, string newPlan, string processName = ""); - - /// - /// Shows a notification for process monitoring events. - /// - Task ShowProcessMonitoringNotificationAsync(string message, bool isEnabled); - - /// - /// Shows a notification for CPU affinity changes. - /// - Task ShowCpuAffinityNotificationAsync(string processName, string affinityInfo); - - /// - /// Shows an error notification. - /// - Task ShowErrorNotificationAsync(string title, string message, Exception? exception = null); - - /// - /// Shows a success notification. - /// - Task ShowSuccessNotificationAsync(string title, string message); - - /// - /// Dismisses a specific notification. - /// - Task DismissNotificationAsync(string notificationId); - - /// - /// Dismisses all notifications. - /// - Task DismissAllNotificationsAsync(); - - /// - /// Clears notification history. - /// - Task ClearNotificationHistoryAsync(); - - /// - /// Gets unread notification count. - /// - int GetUnreadNotificationCount(); - - /// - /// Marks all notifications as read. - /// - Task MarkAllNotificationsAsReadAsync(); - - /// - /// Checks if notifications are enabled for the given type. - /// - bool AreNotificationsEnabled(NotificationType type); - - /// - /// Updates notification settings. - /// - void UpdateSettings(ApplicationSettingsModel settings); - - /// - /// Initializes the notification service. - /// - Task InitializeAsync(); - - /// - /// Disposes the notification service. - /// - void Dispose(); - } - - /// - /// Event args for notification events. - /// - public class NotificationEventArgs : EventArgs - { - public NotificationModel Notification { get; } - - public NotificationEventArgs(NotificationModel notification) - { - this.Notification = notification; - } - } - - /// - /// Event args for notification action events. - /// - public class NotificationActionEventArgs : EventArgs - { - public NotificationModel Notification { get; } - - public string ActionCommand { get; } - - public NotificationActionEventArgs(NotificationModel notification, string actionCommand) - { - this.Notification = notification; - this.ActionCommand = actionCommand; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface INotificationService + { + event EventHandler? NotificationShown; + + event EventHandler? NotificationDismissed; + + event EventHandler? NotificationActionClicked; + + IReadOnlyList NotificationHistory { get; } + + Task ShowNotificationAsync(string title, string message, NotificationType type = NotificationType.Information); + + Task ShowNotificationAsync(NotificationModel notification); + + Task ShowBalloonTipAsync(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000); + + Task ShowToastNotificationAsync(string title, string message, NotificationType type = NotificationType.Information); + + Task ShowPowerPlanChangeNotificationAsync(string oldPlan, string newPlan, string processName = ""); + + Task ShowProcessMonitoringNotificationAsync(string message, bool isEnabled); + + Task ShowCpuAffinityNotificationAsync(string processName, string affinityInfo); + + Task ShowErrorNotificationAsync(string title, string message, Exception? exception = null); + + Task ShowSuccessNotificationAsync(string title, string message); + + Task DismissNotificationAsync(string notificationId); + + Task DismissAllNotificationsAsync(); + + Task ClearNotificationHistoryAsync(); + + int GetUnreadNotificationCount(); + + Task MarkAllNotificationsAsReadAsync(); + + bool AreNotificationsEnabled(NotificationType type); + + void UpdateSettings(ApplicationSettingsModel settings); + + Task InitializeAsync(); + + void Dispose(); + } + + public class NotificationEventArgs : EventArgs + { + public NotificationModel Notification { get; } + + public NotificationEventArgs(NotificationModel notification) + { + this.Notification = notification; + } + } + + public class NotificationActionEventArgs : EventArgs + { + public NotificationModel Notification { get; } + + public string ActionCommand { get; } + + public NotificationActionEventArgs(NotificationModel notification, string actionCommand) + { + this.Notification = notification; + this.ActionCommand = actionCommand; + } + } +} + diff --git a/Services/IPerformanceMonitoringService.cs b/Services/IPerformanceMonitoringService.cs index 029203e..bb334d8 100644 --- a/Services/IPerformanceMonitoringService.cs +++ b/Services/IPerformanceMonitoringService.cs @@ -1,240 +1,176 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for real-time performance monitoring. - /// - public interface IPerformanceMonitoringService - { - /// - /// Get current system performance metrics. - /// - Task GetSystemMetricsAsync(bool lightweight = false); - - /// - /// Get per-core CPU usage. - /// - Task> GetCpuCoreUsageAsync(); - - /// - /// Get memory usage information. - /// - Task GetMemoryUsageAsync(); - - /// - /// Get top CPU consuming processes. - /// - Task> GetTopCpuProcessesAsync(int count = 10); - - /// - /// Get top memory consuming processes. - /// - Task> GetTopMemoryProcessesAsync(int count = 10); - - /// - /// Start real-time monitoring. - /// - Task StartMonitoringAsync(); - - /// - /// Stop real-time monitoring. - /// - Task StopMonitoringAsync(); - - /// - /// Event raised when performance metrics are updated - /// - event EventHandler? MetricsUpdated; - - /// - /// Get historical performance data. - /// - Task> GetHistoricalDataAsync(TimeSpan duration); - - /// - /// Clear historical performance data. - /// - Task ClearHistoricalDataAsync(); - } - - /// - /// System performance metrics. - /// - public class SystemPerformanceMetrics - { - public DateTime Timestamp { get; set; } = DateTime.UtcNow; - - public double TotalCpuUsage { get; set; } - - public long TotalMemoryUsage { get; set; } - - public long AvailableMemory { get; set; } - - public long TotalMemory { get; set; } - - public double MemoryUsagePercentage { get; set; } - - public int Gen0Collections { get; set; } - - public int Gen1Collections { get; set; } - - public int Gen2Collections { get; set; } - - public int Gen0CollectionsDelta { get; set; } - - public int Gen1CollectionsDelta { get; set; } - - public int Gen2CollectionsDelta { get; set; } - - public long TotalAllocatedBytes { get; set; } - - public long AllocatedBytesDelta { get; set; } - - public long ManagedHeapSizeBytes { get; set; } - - public long GcCommittedBytes { get; set; } - - public double LastGcPauseMs { get; set; } - - public double MaxGcPauseMs { get; set; } - - public int HandleCount { get; set; } - - public long ProcessWorkingSetBytes { get; set; } - - public List CpuCoreUsages { get; set; } = new(); - - public ProcessPerformanceInfo? TopCpuProcess { get; set; } - - public ProcessPerformanceInfo? TopMemoryProcess { get; set; } - - public int ActiveProcessCount { get; set; } - - public int ThreadCount { get; set; } - - public double DiskUsage { get; set; } - - public double NetworkUsage { get; set; } - } - - /// - /// CPU core usage information. - /// - public class CpuCoreUsage - { - public int CoreId { get; set; } - - public string CoreName { get; set; } = string.Empty; - - public double Usage { get; set; } - - public string CoreType { get; set; } = "Unknown"; // P-Core, E-Core, etc. - - public bool IsHyperThreaded { get; set; } - - public int PhysicalCoreId { get; set; } - - public double Frequency { get; set; } - - public double Temperature { get; set; } - } - - /// - /// Memory usage information. - /// - public class MemoryUsageInfo - { - public long TotalPhysicalMemory { get; set; } - - public long AvailablePhysicalMemory { get; set; } - - public long UsedPhysicalMemory { get; set; } - - public double PhysicalMemoryUsagePercentage { get; set; } - - public long TotalVirtualMemory { get; set; } - - public long AvailableVirtualMemory { get; set; } - - public long UsedVirtualMemory { get; set; } - - public double VirtualMemoryUsagePercentage { get; set; } - - public long PageFileSize { get; set; } - - public long PageFileUsage { get; set; } - - public double PageFileUsagePercentage { get; set; } - } - - /// - /// Process performance information. - /// - public class ProcessPerformanceInfo - { - public int ProcessId { get; set; } - - public string ProcessName { get; set; } = string.Empty; - - public string WindowTitle { get; set; } = string.Empty; - - public double CpuUsage { get; set; } - - public long MemoryUsage { get; set; } - - public long VirtualMemoryUsage { get; set; } - - public int ThreadCount { get; set; } - - public int HandleCount { get; set; } - - public DateTime StartTime { get; set; } - - public TimeSpan RunTime { get; set; } - - public string ExecutablePath { get; set; } = string.Empty; - - public bool IsResponding { get; set; } - - public string Priority { get; set; } = string.Empty; - - public IntPtr ProcessorAffinity { get; set; } - } - - /// - /// Event args for performance metrics updates. - /// - public class PerformanceMetricsUpdatedEventArgs : EventArgs - { - public SystemPerformanceMetrics Metrics { get; } - - public DateTime UpdateTime { get; } - - public PerformanceMetricsUpdatedEventArgs(SystemPerformanceMetrics metrics) - { - this.Metrics = metrics; - this.UpdateTime = DateTime.UtcNow; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IPerformanceMonitoringService + { + Task GetSystemMetricsAsync(bool lightweight = false); + + Task> GetCpuCoreUsageAsync(); + + Task GetMemoryUsageAsync(); + + Task> GetTopCpuProcessesAsync(int count = 10); + + Task> GetTopMemoryProcessesAsync(int count = 10); + + Task StartMonitoringAsync(); + + Task StopMonitoringAsync(); + + event EventHandler? MetricsUpdated; + + Task> GetHistoricalDataAsync(TimeSpan duration); + + Task ClearHistoricalDataAsync(); + } + + public class SystemPerformanceMetrics + { + public DateTime Timestamp { get; set; } = DateTime.UtcNow; + + public double TotalCpuUsage { get; set; } + + public long TotalMemoryUsage { get; set; } + + public long AvailableMemory { get; set; } + + public long TotalMemory { get; set; } + + public double MemoryUsagePercentage { get; set; } + + public int Gen0Collections { get; set; } + + public int Gen1Collections { get; set; } + + public int Gen2Collections { get; set; } + + public int Gen0CollectionsDelta { get; set; } + + public int Gen1CollectionsDelta { get; set; } + + public int Gen2CollectionsDelta { get; set; } + + public long TotalAllocatedBytes { get; set; } + + public long AllocatedBytesDelta { get; set; } + + public long ManagedHeapSizeBytes { get; set; } + + public long GcCommittedBytes { get; set; } + + public double LastGcPauseMs { get; set; } + + public double MaxGcPauseMs { get; set; } + + public int HandleCount { get; set; } + + public long ProcessWorkingSetBytes { get; set; } + + public List CpuCoreUsages { get; set; } = new(); + + public ProcessPerformanceInfo? TopCpuProcess { get; set; } + + public ProcessPerformanceInfo? TopMemoryProcess { get; set; } + + public int ActiveProcessCount { get; set; } + + public int ThreadCount { get; set; } + + public double DiskUsage { get; set; } + + public double NetworkUsage { get; set; } + } + + public class CpuCoreUsage + { + public int CoreId { get; set; } + + public string CoreName { get; set; } = string.Empty; + + public double Usage { get; set; } + + public string CoreType { get; set; } = "Unknown"; // P-Core, E-Core, etc. + + public bool IsHyperThreaded { get; set; } + + public int PhysicalCoreId { get; set; } + + public double Frequency { get; set; } + + public double Temperature { get; set; } + } + + public class MemoryUsageInfo + { + public long TotalPhysicalMemory { get; set; } + + public long AvailablePhysicalMemory { get; set; } + + public long UsedPhysicalMemory { get; set; } + + public double PhysicalMemoryUsagePercentage { get; set; } + + public long TotalVirtualMemory { get; set; } + + public long AvailableVirtualMemory { get; set; } + + public long UsedVirtualMemory { get; set; } + + public double VirtualMemoryUsagePercentage { get; set; } + + public long PageFileSize { get; set; } + + public long PageFileUsage { get; set; } + + public double PageFileUsagePercentage { get; set; } + } + + public class ProcessPerformanceInfo + { + public int ProcessId { get; set; } + + public string ProcessName { get; set; } = string.Empty; + + public string WindowTitle { get; set; } = string.Empty; + + public double CpuUsage { get; set; } + + public long MemoryUsage { get; set; } + + public long VirtualMemoryUsage { get; set; } + + public int ThreadCount { get; set; } + + public int HandleCount { get; set; } + + public DateTime StartTime { get; set; } + + public TimeSpan RunTime { get; set; } + + public string ExecutablePath { get; set; } = string.Empty; + + public bool IsResponding { get; set; } + + public string Priority { get; set; } = string.Empty; + + public IntPtr ProcessorAffinity { get; set; } + } + + public class PerformanceMetricsUpdatedEventArgs : EventArgs + { + public SystemPerformanceMetrics Metrics { get; } + + public DateTime UpdateTime { get; } + + public PerformanceMetricsUpdatedEventArgs(SystemPerformanceMetrics metrics) + { + this.Metrics = metrics; + this.UpdateTime = DateTime.UtcNow; + } + } +} + diff --git a/Services/IPersistentProcessRuleStore.cs b/Services/IPersistentProcessRuleStore.cs index 80187a3..713b9c5 100644 --- a/Services/IPersistentProcessRuleStore.cs +++ b/Services/IPersistentProcessRuleStore.cs @@ -1,14 +1,14 @@ -/* - * ThreadPilot - persistent process rule store contract. - */ -namespace ThreadPilot.Services -{ - using ThreadPilot.Models; - - public interface IPersistentProcessRuleStore - { - Task> LoadAsync(); - - Task SaveAsync(IReadOnlyList rules); - } -} +/* + * ThreadPilot - persistent process rule store contract. + */ +namespace ThreadPilot.Services +{ + using ThreadPilot.Models; + + public interface IPersistentProcessRuleStore + { + Task> LoadAsync(); + + Task SaveAsync(IReadOnlyList rules); + } +} diff --git a/Services/IPowerPlanService.cs b/Services/IPowerPlanService.cs index 6f50d0e..186e1e5 100644 --- a/Services/IPowerPlanService.cs +++ b/Services/IPowerPlanService.cs @@ -1,152 +1,55 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.ObjectModel; - using System.Threading.Tasks; - using ThreadPilot.Models; - - public interface IPowerPlanService - { - /// - /// Occurs when the active power plan changes. - /// - event EventHandler? PowerPlanChanged; - - /// - /// Retrieves all power plans currently available on the system. - /// - /// Collection of power plans with active-state metadata. - Task> GetPowerPlansAsync(); - - /// - /// Retrieves custom power plans discovered in the managed plans directory. - /// - /// Collection of importable custom power plans. - Task> GetCustomPowerPlansAsync(); - - /// - /// Sets the active plan using a instance. - /// - /// Power plan to activate. - /// when activation succeeds; otherwise . - Task SetActivePowerPlan(PowerPlanModel powerPlan); - - /// - /// Gets the current active power plan. - /// - /// The active power plan, or when unavailable. - Task GetActivePowerPlan(); - - /// - /// Imports a custom power plan from a .pow file. - /// - /// Absolute path to the source .pow file. - /// when import succeeds; otherwise . - Task ImportCustomPowerPlan(string filePath); - - /// - /// Adds a custom .pow file to the managed custom plans library. - /// - /// Absolute path to the source .pow file. - /// when the file is added successfully; otherwise . - Task AddCustomPowerPlanFileAsync(string filePath); - - /// - /// Deletes a non-active Windows power plan by GUID when Windows permits removal. - /// - /// Power plan GUID to delete. - /// when deletion succeeds; otherwise . - Task DeletePowerPlanAsync(string powerPlanGuid); - - /// - /// Sets the active power plan by GUID with duplicate change prevention. - /// - /// Target power plan GUID. - /// Whether to skip redundant changes when already active. - /// when the operation succeeds; otherwise . - Task SetActivePowerPlanByGuidAsync(string powerPlanGuid, bool preventDuplicateChanges = true); - - /// - /// Gets the currently active power plan GUID. - /// - /// Active plan GUID, or when unavailable. - Task GetActivePowerPlanGuidAsync(); - - /// - /// Checks if a power plan with the given GUID exists. - /// - /// Power plan GUID to check. - /// when the plan exists; otherwise . - Task PowerPlanExistsAsync(string powerPlanGuid); - - /// - /// Gets a power plan by GUID. - /// - /// Power plan GUID. - /// Matching plan when found; otherwise . - Task GetPowerPlanByGuidAsync(string powerPlanGuid); - - /// - /// Validates that a power plan change is necessary. - /// - /// Target plan GUID. - /// when a change should be applied; otherwise . - Task IsPowerPlanChangeNeededAsync(string targetPowerPlanGuid); - } - - /// - /// Event arguments for power plan changes. - /// - public class PowerPlanChangedEventArgs : EventArgs - { - /// - /// Gets the previously active power plan. - /// - public PowerPlanModel? PreviousPowerPlan { get; } - - /// - /// Gets the newly active power plan. - /// - public PowerPlanModel? NewPowerPlan { get; } - - /// - /// Gets the local timestamp when the change was recorded. - /// - public DateTime Timestamp { get; } - - /// - /// Gets the optional reason for the power plan transition. - /// - public string? Reason { get; } - - /// - /// Initializes a new instance of the class. - /// - /// Power plan active before the change. - /// Power plan active after the change. - /// Optional reason describing why the change occurred. - public PowerPlanChangedEventArgs(PowerPlanModel? previousPowerPlan, PowerPlanModel? newPowerPlan, string? reason = null) - { - this.PreviousPowerPlan = previousPowerPlan; - this.NewPowerPlan = newPowerPlan; - this.Timestamp = DateTime.Now; - this.Reason = reason; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.ObjectModel; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IPowerPlanService + { + event EventHandler? PowerPlanChanged; + + Task> GetPowerPlansAsync(); + + Task> GetCustomPowerPlansAsync(); + + Task SetActivePowerPlan(PowerPlanModel powerPlan); + + Task GetActivePowerPlan(); + + Task ImportCustomPowerPlan(string filePath); + + Task AddCustomPowerPlanFileAsync(string filePath); + + Task DeletePowerPlanAsync(string powerPlanGuid); + + Task SetActivePowerPlanByGuidAsync(string powerPlanGuid, bool preventDuplicateChanges = true); + + Task GetActivePowerPlanGuidAsync(); + + Task PowerPlanExistsAsync(string powerPlanGuid); + + Task GetPowerPlanByGuidAsync(string powerPlanGuid); + + Task IsPowerPlanChangeNeededAsync(string targetPowerPlanGuid); + } + + public class PowerPlanChangedEventArgs : EventArgs + { + public PowerPlanModel? PreviousPowerPlan { get; } + + public PowerPlanModel? NewPowerPlan { get; } + + public DateTime Timestamp { get; } + + public string? Reason { get; } + + public PowerPlanChangedEventArgs(PowerPlanModel? previousPowerPlan, PowerPlanModel? newPowerPlan, string? reason = null) + { + this.PreviousPowerPlan = previousPowerPlan; + this.NewPowerPlan = newPowerPlan; + this.Timestamp = DateTime.Now; + this.Reason = reason; + } + } +} diff --git a/Services/IProcessMemoryPriorityService.cs b/Services/IProcessMemoryPriorityService.cs index c1920b6..c2e6b34 100644 --- a/Services/IProcessMemoryPriorityService.cs +++ b/Services/IProcessMemoryPriorityService.cs @@ -1,14 +1,14 @@ -/* - * ThreadPilot - process memory priority service contract. - */ -namespace ThreadPilot.Services -{ - using ThreadPilot.Models; - - public interface IProcessMemoryPriorityService - { - Task GetMemoryPriorityAsync(ProcessModel process); - - Task SetMemoryPriorityAsync(ProcessModel process, ProcessMemoryPriority priority); - } -} +/* + * ThreadPilot - process memory priority service contract. + */ +namespace ThreadPilot.Services +{ + using ThreadPilot.Models; + + public interface IProcessMemoryPriorityService + { + Task GetMemoryPriorityAsync(ProcessModel process); + + Task SetMemoryPriorityAsync(ProcessModel process, ProcessMemoryPriority priority); + } +} diff --git a/Services/IProcessMonitorManagerService.cs b/Services/IProcessMonitorManagerService.cs index 2340488..0ff418f 100644 --- a/Services/IProcessMonitorManagerService.cs +++ b/Services/IProcessMonitorManagerService.cs @@ -1,148 +1,87 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Main orchestration service for process monitoring and power plan management. - /// - public interface IProcessMonitorManagerService : IDisposable - { - /// - /// Event fired when a process-triggered power plan change occurs - /// - event EventHandler? ProcessPowerPlanChanged; - - /// - /// Event fired when the service status changes - /// - event EventHandler? ServiceStatusChanged; - - /// - /// Gets a value indicating whether gets whether the service is currently running. - /// - bool IsRunning { get; } - - /// - /// Gets the current service status. - /// - string Status { get; } - - /// - /// Gets currently running associated processes. - /// - IEnumerable RunningAssociatedProcesses { get; } - - /// - /// Starts the process monitoring and power plan management service. - /// - Task StartAsync(); - - /// - /// Stops the service. - /// - Task StopAsync(); - - /// - /// Manually triggers a power plan evaluation for all running processes. - /// - Task EvaluateCurrentProcessesAsync(); - - /// - /// Forces a return to the default power plan. - /// - Task ForceDefaultPowerPlanAsync(); - - /// - /// Gets the current active power plan information. - /// - Task GetCurrentActivePowerPlanAsync(); - - /// - /// Refreshes the configuration from the association service. - /// - Task RefreshConfigurationAsync(); - - /// - /// Updates the service settings (polling intervals, etc.) - /// - void UpdateSettings(); - } - - /// - /// Event arguments for process-triggered power plan changes. - /// - public class ProcessPowerPlanChangeEventArgs : EventArgs - { - public ProcessModel Process { get; } - - public ProcessPowerPlanAssociation Association { get; } - - public PowerPlanModel? PreviousPowerPlan { get; } - - public PowerPlanModel? NewPowerPlan { get; } - - public string Action { get; } // "ProcessStarted", "ProcessStopped", "DefaultRestored" - - public DateTime Timestamp { get; } - - public ProcessPowerPlanChangeEventArgs( - ProcessModel process, - ProcessPowerPlanAssociation association, - PowerPlanModel? previousPowerPlan, - PowerPlanModel? newPowerPlan, - string action) - { - this.Process = process; - this.Association = association; - this.PreviousPowerPlan = previousPowerPlan; - this.NewPowerPlan = newPowerPlan; - this.Action = action; - this.Timestamp = DateTime.Now; - } - } - - /// - /// Event arguments for service status changes. - /// - public class ServiceStatusEventArgs : EventArgs - { - public bool IsRunning { get; } - - public string Status { get; } - - public string? Details { get; } - - public Exception? Error { get; } - - public DateTime Timestamp { get; } - - public ServiceStatusEventArgs(bool isRunning, string status, string? details = null, Exception? error = null) - { - this.IsRunning = isRunning; - this.Status = status; - this.Details = details; - this.Error = error; - this.Timestamp = DateTime.Now; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IProcessMonitorManagerService : IDisposable + { + event EventHandler? ProcessPowerPlanChanged; + + event EventHandler? ServiceStatusChanged; + + bool IsRunning { get; } + + string Status { get; } + + IEnumerable RunningAssociatedProcesses { get; } + + Task StartAsync(); + + Task StopAsync(); + + Task EvaluateCurrentProcessesAsync(); + + Task ForceDefaultPowerPlanAsync(); + + Task GetCurrentActivePowerPlanAsync(); + + Task RefreshConfigurationAsync(); + + void UpdateSettings(); + } + + public class ProcessPowerPlanChangeEventArgs : EventArgs + { + public ProcessModel Process { get; } + + public ProcessPowerPlanAssociation Association { get; } + + public PowerPlanModel? PreviousPowerPlan { get; } + + public PowerPlanModel? NewPowerPlan { get; } + + public string Action { get; } // "ProcessStarted", "ProcessStopped", "DefaultRestored" + + public DateTime Timestamp { get; } + + public ProcessPowerPlanChangeEventArgs( + ProcessModel process, + ProcessPowerPlanAssociation association, + PowerPlanModel? previousPowerPlan, + PowerPlanModel? newPowerPlan, + string action) + { + this.Process = process; + this.Association = association; + this.PreviousPowerPlan = previousPowerPlan; + this.NewPowerPlan = newPowerPlan; + this.Action = action; + this.Timestamp = DateTime.Now; + } + } + + public class ServiceStatusEventArgs : EventArgs + { + public bool IsRunning { get; } + + public string Status { get; } + + public string? Details { get; } + + public Exception? Error { get; } + + public DateTime Timestamp { get; } + + public ServiceStatusEventArgs(bool isRunning, string status, string? details = null, Exception? error = null) + { + this.IsRunning = isRunning; + this.Status = status; + this.Details = details; + this.Error = error; + this.Timestamp = DateTime.Now; + } + } +} + diff --git a/Services/IProcessMonitorService.cs b/Services/IProcessMonitorService.cs index e923058..3d0eff2 100644 --- a/Services/IProcessMonitorService.cs +++ b/Services/IProcessMonitorService.cs @@ -1,125 +1,67 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Interface for process monitoring service that uses WMI events with fallback polling. - /// - public interface IProcessMonitorService : IDisposable - { - /// - /// Event fired when a process starts - /// - event EventHandler? ProcessStarted; - - /// - /// Event fired when a process stops - /// - event EventHandler? ProcessStopped; - - /// - /// Event fired when monitoring status changes - /// - event EventHandler? MonitoringStatusChanged; - - /// - /// Gets a value indicating whether gets whether the service is currently monitoring. - /// - bool IsMonitoring { get; } - - /// - /// Gets a value indicating whether gets whether WMI monitoring is available and working. - /// - bool IsWmiAvailable { get; } - - /// - /// Gets a value indicating whether gets whether fallback polling is currently active. - /// - bool IsFallbackPollingActive { get; } - - /// - /// Starts monitoring processes. - /// - Task StartMonitoringAsync(); - - /// - /// Stops monitoring processes. - /// - Task StopMonitoringAsync(); - - /// - /// Gets all currently running processes. - /// - Task> GetRunningProcessesAsync(); - - /// - /// Checks if a specific process is currently running. - /// - Task IsProcessRunningAsync(string executableName); - - /// - /// Updates the service settings (polling intervals, etc.) - /// - void UpdateSettings(); - } - - /// - /// Event arguments for process events. - /// - public class ProcessEventArgs : EventArgs - { - public ProcessModel Process { get; } - - public DateTime Timestamp { get; } - - public ProcessEventArgs(ProcessModel process) - { - this.Process = process; - this.Timestamp = DateTime.Now; - } - } - - /// - /// Event arguments for monitoring status changes. - /// - public class MonitoringStatusEventArgs : EventArgs - { - public bool IsMonitoring { get; } - - public bool IsWmiAvailable { get; } - - public bool IsFallbackPollingActive { get; } - - public string? StatusMessage { get; } - - public Exception? Error { get; } - - public MonitoringStatusEventArgs(bool isMonitoring, bool isWmiAvailable, bool isFallbackPollingActive, string? statusMessage = null, Exception? error = null) - { - this.IsMonitoring = isMonitoring; - this.IsWmiAvailable = isWmiAvailable; - this.IsFallbackPollingActive = isFallbackPollingActive; - this.StatusMessage = statusMessage; - this.Error = error; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IProcessMonitorService : IDisposable + { + event EventHandler? ProcessStarted; + + event EventHandler? ProcessStopped; + + event EventHandler? MonitoringStatusChanged; + + bool IsMonitoring { get; } + + bool IsWmiAvailable { get; } + + bool IsFallbackPollingActive { get; } + + Task StartMonitoringAsync(); + + Task StopMonitoringAsync(); + + Task> GetRunningProcessesAsync(); + + Task IsProcessRunningAsync(string executableName); + + void UpdateSettings(); + } + + public class ProcessEventArgs : EventArgs + { + public ProcessModel Process { get; } + + public DateTime Timestamp { get; } + + public ProcessEventArgs(ProcessModel process) + { + this.Process = process; + this.Timestamp = DateTime.Now; + } + } + + public class MonitoringStatusEventArgs : EventArgs + { + public bool IsMonitoring { get; } + + public bool IsWmiAvailable { get; } + + public bool IsFallbackPollingActive { get; } + + public string? StatusMessage { get; } + + public Exception? Error { get; } + + public MonitoringStatusEventArgs(bool isMonitoring, bool isWmiAvailable, bool isFallbackPollingActive, string? statusMessage = null, Exception? error = null) + { + this.IsMonitoring = isMonitoring; + this.IsWmiAvailable = isWmiAvailable; + this.IsFallbackPollingActive = isFallbackPollingActive; + this.StatusMessage = statusMessage; + this.Error = error; + } + } +} + diff --git a/Services/IProcessPowerPlanAssociationService.cs b/Services/IProcessPowerPlanAssociationService.cs index e96693f..4e2ec65 100644 --- a/Services/IProcessPowerPlanAssociationService.cs +++ b/Services/IProcessPowerPlanAssociationService.cs @@ -1,139 +1,63 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Interface for managing process-power plan associations. - /// - public interface IProcessPowerPlanAssociationService - { - /// - /// Event fired when configuration changes - /// - event EventHandler? ConfigurationChanged; - - /// - /// Gets the current configuration. - /// - ProcessMonitorConfiguration Configuration { get; } - - /// - /// Loads configuration from persistent storage. - /// - Task LoadConfigurationAsync(); - - /// - /// Saves configuration to persistent storage. - /// - Task SaveConfigurationAsync(); - - /// - /// Gets all associations. - /// - Task> GetAssociationsAsync(); - - /// - /// Gets enabled associations only. - /// - Task> GetEnabledAssociationsAsync(); - - /// - /// Adds a new association. - /// - Task AddAssociationAsync(ProcessPowerPlanAssociation association); - - /// - /// Updates an existing association. - /// - Task UpdateAssociationAsync(ProcessPowerPlanAssociation association); - - /// - /// Removes an association. - /// - Task RemoveAssociationAsync(string associationId); - - /// - /// Finds the best matching association for a process. - /// - Task FindMatchingAssociationAsync(ProcessModel process); - - /// - /// Finds association by executable name. - /// - Task FindAssociationByExecutableAsync(string executableName); - - /// - /// Sets the default power plan. - /// - Task SetDefaultPowerPlanAsync(string powerPlanGuid, string powerPlanName); - - /// - /// Gets the default power plan. - /// - Task<(string Guid, string Name)> GetDefaultPowerPlanAsync(); - - /// - /// Validates the current configuration. - /// - Task> ValidateConfigurationAsync(); - - /// - /// Resets configuration to defaults. - /// - Task ResetConfigurationAsync(); - - /// - /// Exports configuration to a file. - /// - Task ExportConfigurationAsync(string filePath); - - /// - /// Imports configuration from a file. - /// - Task ImportConfigurationAsync(string filePath); - - /// - /// Replaces the current configuration and persists it. - /// - Task ReplaceConfigurationAsync(ProcessMonitorConfiguration configuration); - } - - /// - /// Event arguments for configuration changes. - /// - public class ConfigurationChangedEventArgs : EventArgs - { - public string ChangeType { get; } - - public ProcessPowerPlanAssociation? Association { get; } - - public string? Details { get; } - - public ConfigurationChangedEventArgs(string changeType, ProcessPowerPlanAssociation? association = null, string? details = null) - { - this.ChangeType = changeType; - this.Association = association; - this.Details = details; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IProcessPowerPlanAssociationService + { + event EventHandler? ConfigurationChanged; + + ProcessMonitorConfiguration Configuration { get; } + + Task LoadConfigurationAsync(); + + Task SaveConfigurationAsync(); + + Task> GetAssociationsAsync(); + + Task> GetEnabledAssociationsAsync(); + + Task AddAssociationAsync(ProcessPowerPlanAssociation association); + + Task UpdateAssociationAsync(ProcessPowerPlanAssociation association); + + Task RemoveAssociationAsync(string associationId); + + Task FindMatchingAssociationAsync(ProcessModel process); + + Task FindAssociationByExecutableAsync(string executableName); + + Task SetDefaultPowerPlanAsync(string powerPlanGuid, string powerPlanName); + + Task<(string Guid, string Name)> GetDefaultPowerPlanAsync(); + + Task> ValidateConfigurationAsync(); + + Task ResetConfigurationAsync(); + + Task ExportConfigurationAsync(string filePath); + + Task ImportConfigurationAsync(string filePath); + + Task ReplaceConfigurationAsync(ProcessMonitorConfiguration configuration); + } + + public class ConfigurationChangedEventArgs : EventArgs + { + public string ChangeType { get; } + + public ProcessPowerPlanAssociation? Association { get; } + + public string? Details { get; } + + public ConfigurationChangedEventArgs(string changeType, ProcessPowerPlanAssociation? association = null, string? details = null) + { + this.ChangeType = changeType; + this.Association = association; + this.Details = details; + } + } +} + diff --git a/Services/IProcessService.cs b/Services/IProcessService.cs index 78baf5e..3c95f9b 100644 --- a/Services/IProcessService.cs +++ b/Services/IProcessService.cs @@ -1,128 +1,59 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Diagnostics; - using System.Threading.Tasks; - using ThreadPilot.Models; - - public interface IProcessService - { - Task> GetProcessesAsync(); - - Task SetProcessorAffinity(ProcessModel process, long affinityMask); - - Task SetProcessorAffinity(ProcessModel process, CpuSelection selection); - - Task SetProcessPriority(ProcessModel process, ProcessPriorityClass priority); - - Task SaveProcessProfile(string profileName, ProcessModel process); - - Task LoadProcessProfile(string profileName, ProcessModel process); - - Task RefreshProcessInfo(ProcessModel process); - - /// - /// Gets a process by its ID. - /// - Task GetProcessByIdAsync(int processId); - - /// - /// Gets processes by executable name. - /// - Task> GetProcessesByNameAsync(string executableName); - - /// - /// Checks if a process with the given name is currently running. - /// - Task IsProcessRunningAsync(string executableName); - - /// - /// Gets all running processes with their executable paths. - /// - Task> GetProcessesWithPathsAsync(); - - /// - /// Gets only active applications with visible windows (user-facing applications). - /// - Task> GetActiveApplicationsAsync(); - - /// - /// Creates a ProcessModel from a System.Diagnostics.Process. - /// - ProcessModel CreateProcessModel(Process process); - - /// - /// Checks if a specific process is still running. - /// - Task IsProcessStillRunning(ProcessModel process); - - /// - /// Sets the idle server state for a process (disables/enables idle functionality). - /// - Task SetIdleServerStateAsync(ProcessModel process, bool enableIdleServer); - - /// - /// Sets registry-based priority enforcement for a process. - /// - Task SetRegistryPriorityAsync(ProcessModel process, bool enable, ProcessPriorityClass priority); - - /// - /// Enables or disables the use of Windows CPU Sets for affinity management. - /// - void SetUseCpuSets(bool useCpuSets); - - /// - /// Gets whether CPU Sets are currently enabled for affinity management. - /// - bool GetUseCpuSets(); - - /// - /// Clears the CPU Set for a process (allows it to run on all cores). - /// - Task ClearProcessCpuSetAsync(ProcessModel process); - - /// - /// Clears all applied CPU masks/affinities from all tracked processes - /// Processes return to using all cores (used on application exit). - /// - Task ClearAllAppliedMasksAsync(); - - /// - /// Resets all modified process priorities to Normal - /// (used on application exit). - /// - Task ResetAllProcessPrioritiesAsync(); - - /// - /// Registers that a mask has been applied to a process (for tracking). - /// - void TrackAppliedMask(int processId, string maskId); - - /// - /// Registers that a priority has been changed for a process (for tracking). - /// - void TrackPriorityChange(int processId, ProcessPriorityClass originalPriority); - - /// - /// Unregisters tracking when a process exits. - /// - void UntrackProcess(int processId); - } -} +namespace ThreadPilot.Services +{ + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Diagnostics; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface IProcessService + { + Task> GetProcessesAsync(); + + Task SetProcessorAffinity(ProcessModel process, long affinityMask); + + Task SetProcessorAffinity(ProcessModel process, CpuSelection selection); + + Task SetProcessPriority(ProcessModel process, ProcessPriorityClass priority); + + Task SaveProcessProfile(string profileName, ProcessModel process); + + Task LoadProcessProfile(string profileName, ProcessModel process); + + Task RefreshProcessInfo(ProcessModel process); + + Task GetProcessByIdAsync(int processId); + + Task> GetProcessesByNameAsync(string executableName); + + Task IsProcessRunningAsync(string executableName); + + Task> GetProcessesWithPathsAsync(); + + Task> GetActiveApplicationsAsync(); + + ProcessModel CreateProcessModel(Process process); + + Task IsProcessStillRunning(ProcessModel process); + + Task SetIdleServerStateAsync(ProcessModel process, bool enableIdleServer); + + Task SetRegistryPriorityAsync(ProcessModel process, bool enable, ProcessPriorityClass priority); + + void SetUseCpuSets(bool useCpuSets); + + bool GetUseCpuSets(); + + Task ClearProcessCpuSetAsync(ProcessModel process); + + Task ClearAllAppliedMasksAsync(); + + Task ResetAllProcessPrioritiesAsync(); + + void TrackAppliedMask(int processId, string maskId); + + void TrackPriorityChange(int processId, ProcessPriorityClass originalPriority); + + void UntrackProcess(int processId); + } +} diff --git a/Services/IRetryPolicyService.cs b/Services/IRetryPolicyService.cs deleted file mode 100644 index c7feca4..0000000 --- a/Services/IRetryPolicyService.cs +++ /dev/null @@ -1,69 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - - /// - /// Retry policy configuration. - /// - public class RetryPolicy - { - public int MaxAttempts { get; set; } = 3; - - public TimeSpan InitialDelay { get; set; } = TimeSpan.FromMilliseconds(100); - - public TimeSpan MaxDelay { get; set; } = TimeSpan.FromSeconds(5); - - public double BackoffMultiplier { get; set; } = 2.0; - - public Func? ShouldRetry { get; set; } - } - - /// - /// Service for implementing retry policies with exponential backoff. - /// - public interface IRetryPolicyService - { - /// - /// Execute an operation with retry policy. - /// - Task ExecuteAsync(Func> operation, RetryPolicy? policy = null); - - /// - /// Execute an operation with retry policy (no return value). - /// - Task ExecuteAsync(Func operation, RetryPolicy? policy = null); - - /// - /// Create a default retry policy for process operations. - /// - RetryPolicy CreateProcessOperationPolicy(); - - /// - /// Create a default retry policy for WMI operations. - /// - RetryPolicy CreateWmiOperationPolicy(); - - /// - /// Create a default retry policy for file operations. - /// - RetryPolicy CreateFileOperationPolicy(); - } -} - diff --git a/Services/ISecurityService.cs b/Services/ISecurityService.cs index abd66c7..9118e1a 100644 --- a/Services/ISecurityService.cs +++ b/Services/ISecurityService.cs @@ -1,71 +1,20 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Diagnostics; - - /// - /// Service for security validation and auditing of elevated operations. - /// - public interface ISecurityService - { - /// - /// Validates that the specified operation is allowed to be performed with elevated privileges. - /// - /// The operation to validate. - /// True if the operation is allowed, false otherwise. - bool ValidateElevatedOperation(string operation); - - /// - /// Audits an elevated action for security logging. - /// - /// The action that was performed. - /// The target of the action (process name, power plan, etc.) - /// Whether the action was successful. - Task AuditElevatedAction(string action, string target, bool success); - - /// - /// Validates that a process operation is safe to perform. - /// - /// The name of the process. - /// The operation to perform. - /// True if the operation is safe, false otherwise. - bool ValidateProcessOperation(string processName, string operation); - - /// - /// Validates that a power plan operation is safe to perform. - /// - /// The power plan GUID. - /// The operation to perform. - /// True if the operation is safe, false otherwise. - bool ValidatePowerPlanOperation(string powerPlanId, string operation); - - /// - /// Gets the list of allowed elevated operations. - /// - /// Array of allowed operation names. - string[] GetAllowedElevatedOperations(); - - /// - /// Determines whether a process is protected and should be excluded from optimization operations. - /// - /// Target process. - /// True if process is protected; otherwise false. - bool IsProtected(Process process); - } -} - +namespace ThreadPilot.Services +{ + using System.Diagnostics; + + public interface ISecurityService + { + bool ValidateElevatedOperation(string operation); + + Task AuditElevatedAction(string action, string target, bool success); + + bool ValidateProcessOperation(string processName, string operation); + + bool ValidatePowerPlanOperation(string powerPlanId, string operation); + + string[] GetAllowedElevatedOperations(); + + bool IsProtected(Process process); + } +} + diff --git a/Services/ISelfResourceManagementService.cs b/Services/ISelfResourceManagementService.cs index dc7e7f6..81ed518 100644 --- a/Services/ISelfResourceManagementService.cs +++ b/Services/ISelfResourceManagementService.cs @@ -1,25 +1,9 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - public interface ISelfResourceManagementService - { - void ApplyLowImpactMode(bool limitAffinity); - - void RestoreForegroundMode(); - } -} +namespace ThreadPilot.Services +{ + public interface ISelfResourceManagementService + { + void ApplyLowImpactMode(bool limitAffinity); + + void RestoreForegroundMode(); + } +} diff --git a/Services/IServiceDisposalCoordinator.cs b/Services/IServiceDisposalCoordinator.cs deleted file mode 100644 index 0474721..0000000 --- a/Services/IServiceDisposalCoordinator.cs +++ /dev/null @@ -1,53 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - - /// - /// Interface for coordinating proper disposal of services. - /// - public interface IServiceDisposalCoordinator : IDisposable - { - /// - /// Register a service for coordinated disposal. - /// - void RegisterService(string serviceName, IDisposable service, int priority = 0); - - /// - /// Register an async disposable service. - /// - void RegisterAsyncService(string serviceName, IAsyncDisposable service, int priority = 0); - - /// - /// Register a custom disposal action. - /// - void RegisterDisposalAction(string actionName, Func disposalAction, int priority = 0); - - /// - /// Dispose all registered services in priority order. - /// - Task DisposeAllAsync(); - - /// - /// Gets a value indicating whether get disposal status. - /// - bool IsDisposed { get; } - } -} - diff --git a/Services/IServiceHealthMonitor.cs b/Services/IServiceHealthMonitor.cs deleted file mode 100644 index a3077a9..0000000 --- a/Services/IServiceHealthMonitor.cs +++ /dev/null @@ -1,104 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - - /// - /// Service health status enumeration. - /// - public enum ServiceHealthStatus - { - Healthy, - Degraded, - Unhealthy, - Critical, - } - - /// - /// Service health check result. - /// - public class ServiceHealthResult - { - public string ServiceName { get; set; } = string.Empty; - - public ServiceHealthStatus Status { get; set; } - - public string Description { get; set; } = string.Empty; - - public TimeSpan ResponseTime { get; set; } - - public DateTime CheckTime { get; set; } - - public Exception? Exception { get; set; } - - public Dictionary Data { get; set; } = new(); - } - - /// - /// Interface for monitoring service health and lifecycle. - /// - public interface IServiceHealthMonitor - { - /// - /// Register a service for health monitoring. - /// - void RegisterService(string serviceName, Func> healthCheck); - - /// - /// Unregister a service from health monitoring. - /// - void UnregisterService(string serviceName); - - /// - /// Perform health check on a specific service. - /// - Task CheckServiceHealthAsync(string serviceName); - - /// - /// Perform health check on all registered services. - /// - Task> CheckAllServicesHealthAsync(); - - /// - /// Get the current health status of all services. - /// - Dictionary GetCurrentHealthStatus(); - - /// - /// Event raised when a service health status changes - /// - event EventHandler? ServiceHealthChanged; - } - - /// - /// Event arguments for service health changes. - /// - public class ServiceHealthChangedEventArgs : EventArgs - { - public string ServiceName { get; set; } = string.Empty; - - public ServiceHealthStatus PreviousStatus { get; set; } - - public ServiceHealthStatus CurrentStatus { get; set; } - - public ServiceHealthResult HealthResult { get; set; } = new(); - } -} - diff --git a/Services/ISmartNotificationService.cs b/Services/ISmartNotificationService.cs index cf90272..656565c 100644 --- a/Services/ISmartNotificationService.cs +++ b/Services/ISmartNotificationService.cs @@ -1,225 +1,137 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Notification categories for throttling. - /// - public enum NotificationCategory - { - System, - Process, - Performance, - PowerPlan, - Error, - Warning, - Information, - UserAction, - } - - /// - /// Smart notification with metadata. - /// - public class SmartNotification - { - public string Id { get; set; } = Guid.NewGuid().ToString(); - - public string Title { get; set; } = string.Empty; - - public string Message { get; set; } = string.Empty; - - public NotificationPriority Priority { get; set; } = NotificationPriority.Normal; - - public NotificationCategory Category { get; set; } = NotificationCategory.Information; - - public DateTime CreatedAt { get; set; } = DateTime.UtcNow; - - public DateTime? ScheduledFor { get; set; } - - public TimeSpan? ExpiresAfter { get; set; } - - public Dictionary Metadata { get; set; } = new(); - - public string DeduplicationKey { get; set; } = string.Empty; - - public bool IsPersistent { get; set; } = false; - - public int RetryCount { get; set; } = 0; - - public int MaxRetries { get; set; } = 3; - } - - /// - /// Notification throttling configuration. - /// - public class NotificationThrottleConfig - { - public NotificationCategory Category { get; set; } - - public TimeSpan MinInterval { get; set; } = TimeSpan.FromSeconds(30); - - public int MaxPerHour { get; set; } = 10; - - public int MaxPerDay { get; set; } = 50; - - public bool EnableDeduplication { get; set; } = true; - - public TimeSpan DeduplicationWindow { get; set; } = TimeSpan.FromMinutes(5); - } - - /// - /// User notification preferences. - /// - public class NotificationPreferences - { - public bool IsEnabled { get; set; } = true; - - public bool DoNotDisturbMode { get; set; } = false; - - public TimeSpan DoNotDisturbStart { get; set; } = TimeSpan.FromHours(22); // 10 PM - - public TimeSpan DoNotDisturbEnd { get; set; } = TimeSpan.FromHours(8); // 8 AM - - public NotificationPriority MinimumPriority { get; set; } = NotificationPriority.Normal; - - public Dictionary CategoryEnabled { get; set; } = new(); - - public Dictionary ThrottleConfigs { get; set; } = new(); - - public bool ShowOnlyWhenMinimized { get; set; } = false; - - public bool PlaySounds { get; set; } = true; - - public int DefaultDisplayDuration { get; set; } = 5000; // milliseconds - } - - /// - /// Event arguments for smart notification events. - /// - public class SmartNotificationEventArgs : EventArgs - { - public SmartNotification Notification { get; set; } = new(); - - public string Reason { get; set; } = string.Empty; - - public DateTime Timestamp { get; set; } = DateTime.UtcNow; - } - - /// - /// Smart notification service with throttling and priority queuing. - /// - public interface ISmartNotificationService - { - /// - /// Initialize the smart notification service. - /// - Task InitializeAsync(); - - /// - /// Send a smart notification. - /// - Task SendNotificationAsync(SmartNotification notification); - - /// - /// Send a simple notification. - /// - Task SendNotificationAsync(string title, string message, - NotificationPriority priority = NotificationPriority.Normal, - NotificationCategory category = NotificationCategory.Information); - - /// - /// Schedule a notification for later delivery. - /// - Task ScheduleNotificationAsync(SmartNotification notification, DateTime deliveryTime); - - /// - /// Cancel a scheduled notification. - /// - Task CancelNotificationAsync(string notificationId); - - /// - /// Get pending notifications. - /// - Task> GetPendingNotificationsAsync(); - - /// - /// Get notification history. - /// - Task> GetNotificationHistoryAsync(TimeSpan? period = null); - - /// - /// Clear notification history. - /// - Task ClearHistoryAsync(); - - /// - /// Update user preferences. - /// - Task UpdatePreferencesAsync(NotificationPreferences preferences); - - /// - /// Get current user preferences. - /// - Task GetPreferencesAsync(); - - /// - /// Enable/disable Do Not Disturb mode. - /// - Task SetDoNotDisturbAsync(bool enabled, TimeSpan? duration = null); - - /// - /// Check if Do Not Disturb is currently active. - /// - bool IsDoNotDisturbActive(); - - /// - /// Get notification statistics. - /// - Task> GetStatisticsAsync(); - - /// - /// Test notification delivery. - /// - Task TestNotificationAsync(); - - /// - /// Event raised when a notification is sent - /// - event EventHandler? NotificationSent; - - /// - /// Event raised when a notification is throttled - /// - event EventHandler? NotificationThrottled; - - /// - /// Event raised when a notification is deduplicated - /// - event EventHandler? NotificationDeduplicated; - - /// - /// Event raised when Do Not Disturb mode changes - /// - event EventHandler? DoNotDisturbChanged; - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public enum NotificationCategory + { + System, + Process, + Performance, + PowerPlan, + Error, + Warning, + Information, + UserAction, + } + + public class SmartNotification + { + public string Id { get; set; } = Guid.NewGuid().ToString(); + + public string Title { get; set; } = string.Empty; + + public string Message { get; set; } = string.Empty; + + public NotificationPriority Priority { get; set; } = NotificationPriority.Normal; + + public NotificationCategory Category { get; set; } = NotificationCategory.Information; + + public DateTime CreatedAt { get; set; } = DateTime.UtcNow; + + public DateTime? ScheduledFor { get; set; } + + public TimeSpan? ExpiresAfter { get; set; } + + public Dictionary Metadata { get; set; } = new(); + + public string DeduplicationKey { get; set; } = string.Empty; + + public bool IsPersistent { get; set; } = false; + + public int RetryCount { get; set; } = 0; + + public int MaxRetries { get; set; } = 3; + } + + public class NotificationThrottleConfig + { + public NotificationCategory Category { get; set; } + + public TimeSpan MinInterval { get; set; } = TimeSpan.FromSeconds(30); + + public int MaxPerHour { get; set; } = 10; + + public int MaxPerDay { get; set; } = 50; + + public bool EnableDeduplication { get; set; } = true; + + public TimeSpan DeduplicationWindow { get; set; } = TimeSpan.FromMinutes(5); + } + + public class NotificationPreferences + { + public bool IsEnabled { get; set; } = true; + + public bool DoNotDisturbMode { get; set; } = false; + + public TimeSpan DoNotDisturbStart { get; set; } = TimeSpan.FromHours(22); // 10 PM + + public TimeSpan DoNotDisturbEnd { get; set; } = TimeSpan.FromHours(8); // 8 AM + + public NotificationPriority MinimumPriority { get; set; } = NotificationPriority.Normal; + + public Dictionary CategoryEnabled { get; set; } = new(); + + public Dictionary ThrottleConfigs { get; set; } = new(); + + public bool ShowOnlyWhenMinimized { get; set; } = false; + + public bool PlaySounds { get; set; } = true; + + public int DefaultDisplayDuration { get; set; } = 5000; // milliseconds + } + + public class SmartNotificationEventArgs : EventArgs + { + public SmartNotification Notification { get; set; } = new(); + + public string Reason { get; set; } = string.Empty; + + public DateTime Timestamp { get; set; } = DateTime.UtcNow; + } + + public interface ISmartNotificationService + { + Task InitializeAsync(); + + Task SendNotificationAsync(SmartNotification notification); + + Task SendNotificationAsync(string title, string message, + NotificationPriority priority = NotificationPriority.Normal, + NotificationCategory category = NotificationCategory.Information); + + Task ScheduleNotificationAsync(SmartNotification notification, DateTime deliveryTime); + + Task CancelNotificationAsync(string notificationId); + + Task> GetPendingNotificationsAsync(); + + Task> GetNotificationHistoryAsync(TimeSpan? period = null); + + Task ClearHistoryAsync(); + + Task UpdatePreferencesAsync(NotificationPreferences preferences); + + Task GetPreferencesAsync(); + + Task SetDoNotDisturbAsync(bool enabled, TimeSpan? duration = null); + + bool IsDoNotDisturbActive(); + + Task> GetStatisticsAsync(); + + Task TestNotificationAsync(); + + event EventHandler? NotificationSent; + + event EventHandler? NotificationThrottled; + + event EventHandler? NotificationDeduplicated; + + event EventHandler? DoNotDisturbChanged; + } +} + diff --git a/Services/ISystemTrayService.cs b/Services/ISystemTrayService.cs index aee8195..590e618 100644 --- a/Services/ISystemTrayService.cs +++ b/Services/ISystemTrayService.cs @@ -1,202 +1,99 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for managing system tray functionality. - /// - public interface ISystemTrayService : IDisposable - { - /// - /// Event fired when quick apply is requested from tray - /// - event EventHandler? QuickApplyRequested; - - /// - /// Event fired when show main window is requested from tray - /// - event EventHandler? ShowMainWindowRequested; - - /// - /// Event fired when exit is requested from tray - /// - event EventHandler? ExitRequested; - - /// - /// Event fired when monitoring enable/disable is requested from tray - /// - event EventHandler? MonitoringToggleRequested; - - /// - /// Event fired when settings are requested from tray - /// - event EventHandler? SettingsRequested; - - /// - /// Event fired when power plan change is requested from tray - /// - event EventHandler? PowerPlanChangeRequested; - - /// - /// Event fired when profile application is requested from tray - /// - event EventHandler? ProfileApplicationRequested; - - /// - /// Event fired when performance dashboard is requested from tray - /// - event EventHandler? PerformanceDashboardRequested; - - /// - /// Event fired when process management dashboard is requested from tray - /// - event EventHandler? DashboardRequested; - - /// - /// Initializes the system tray icon. - /// - void Initialize(); - - /// - /// Shows the system tray icon. - /// - void Show(); - - /// - /// Hides the system tray icon. - /// - void Hide(); - - /// - /// Updates the tray icon tooltip. - /// - void UpdateTooltip(string tooltip); - - /// - /// Shows a balloon tip notification. - /// - void ShowBalloonTip(string title, string text, int timeoutMs = 3000); - - /// - /// Updates the context menu with current process information. - /// - void UpdateContextMenu(string? selectedProcessName = null, bool hasSelection = false); - - /// - /// Updates the monitoring status in the context menu. - /// - void UpdateMonitoringStatus(bool isMonitoring, bool isWmiAvailable = true); - - /// - /// Updates the tray icon based on application state. - /// - void UpdateTrayIcon(TrayIconState state); - - /// - /// Shows a notification through the tray icon. - /// - void ShowTrayNotification(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000); - - /// - /// Updates settings for the tray service. - /// - void UpdateSettings(ApplicationSettingsModel settings); - - /// - /// Applies theme to the tray context menu. - /// - void ApplyTheme(bool useDarkTheme); - - /// - /// Updates the available power plans in the context menu. - /// - void UpdatePowerPlans(IEnumerable powerPlans, PowerPlanModel? activePlan); - - /// - /// Updates the available profiles in the context menu. - /// - void UpdateProfiles(IEnumerable profileNames); - - /// - /// Updates the current system status in the tray. - /// - void UpdateSystemStatus(string currentPowerPlan); - - /// - /// Updates the current system status in the tray with diagnostics metrics. - /// - void UpdateSystemStatus(string currentPowerPlan, double cpuUsage, double memoryUsage); - } - - /// - /// Event args for monitoring toggle events. - /// - public class MonitoringToggleEventArgs : EventArgs - { - public bool EnableMonitoring { get; } - - public MonitoringToggleEventArgs(bool enableMonitoring) - { - this.EnableMonitoring = enableMonitoring; - } - } - - /// - /// Event args for power plan change requests. - /// - public class PowerPlanChangeRequestedEventArgs : EventArgs - { - public string PowerPlanGuid { get; } - - public string PowerPlanName { get; } - - public PowerPlanChangeRequestedEventArgs(string powerPlanGuid, string powerPlanName) - { - this.PowerPlanGuid = powerPlanGuid; - this.PowerPlanName = powerPlanName; - } - } - - /// - /// Event args for profile application requests. - /// - public class ProfileApplicationRequestedEventArgs : EventArgs - { - public string ProfileName { get; } - - public ProfileApplicationRequestedEventArgs(string profileName) - { - this.ProfileName = profileName; - } - } - - /// - /// Tray icon states. - /// - public enum TrayIconState - { - Normal, - Monitoring, - Error, - Disabled, - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface ISystemTrayService : IDisposable + { + event EventHandler? QuickApplyRequested; + + event EventHandler? ShowMainWindowRequested; + + event EventHandler? ExitRequested; + + event EventHandler? MonitoringToggleRequested; + + event EventHandler? SettingsRequested; + + event EventHandler? PowerPlanChangeRequested; + + event EventHandler? ProfileApplicationRequested; + + event EventHandler? PerformanceDashboardRequested; + + event EventHandler? DashboardRequested; + + void Initialize(); + + void Show(); + + void Hide(); + + void UpdateTooltip(string tooltip); + + void ShowBalloonTip(string title, string text, int timeoutMs = 3000); + + void UpdateContextMenu(string? selectedProcessName = null, bool hasSelection = false); + + void UpdateMonitoringStatus(bool isMonitoring, bool isWmiAvailable = true); + + void UpdateTrayIcon(TrayIconState state); + + void ShowTrayNotification(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000); + + void UpdateSettings(ApplicationSettingsModel settings); + + void ApplyTheme(bool useDarkTheme); + + void UpdatePowerPlans(IEnumerable powerPlans, PowerPlanModel? activePlan); + + void UpdateProfiles(IEnumerable profileNames); + + void UpdateSystemStatus(string currentPowerPlan); + + void UpdateSystemStatus(string currentPowerPlan, double cpuUsage, double memoryUsage); + } + + public class MonitoringToggleEventArgs : EventArgs + { + public bool EnableMonitoring { get; } + + public MonitoringToggleEventArgs(bool enableMonitoring) + { + this.EnableMonitoring = enableMonitoring; + } + } + + public class PowerPlanChangeRequestedEventArgs : EventArgs + { + public string PowerPlanGuid { get; } + + public string PowerPlanName { get; } + + public PowerPlanChangeRequestedEventArgs(string powerPlanGuid, string powerPlanName) + { + this.PowerPlanGuid = powerPlanGuid; + this.PowerPlanName = powerPlanName; + } + } + + public class ProfileApplicationRequestedEventArgs : EventArgs + { + public string ProfileName { get; } + + public ProfileApplicationRequestedEventArgs(string profileName) + { + this.ProfileName = profileName; + } + } + + public enum TrayIconState + { + Normal, + Monitoring, + Error, + Disabled, + } +} + diff --git a/Services/ISystemTweaksService.cs b/Services/ISystemTweaksService.cs index 9c3c082..2a8c6d3 100644 --- a/Services/ISystemTweaksService.cs +++ b/Services/ISystemTweaksService.cs @@ -1,166 +1,84 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - - /// - /// Service for managing Windows system tweaks and optimizations. - /// - public interface ISystemTweaksService - { - /// - /// Event raised when a tweak status changes - /// - event EventHandler? TweakStatusChanged; - - /// - /// Get the current status of Core Parking. - /// - Task GetCoreParkingStatusAsync(); - - /// - /// Enable or disable Core Parking. - /// - Task SetCoreParkingAsync(bool enabled); - - /// - /// Get the current status of C-States. - /// - Task GetCStatesStatusAsync(); - - /// - /// Enable or disable C-States. - /// - Task SetCStatesAsync(bool enabled); - - /// - /// Get the current status of SysMain service. - /// - Task GetSysMainStatusAsync(); - - /// - /// Enable or disable SysMain service. - /// - Task SetSysMainAsync(bool enabled); - - /// - /// Get the current status of Prefetch feature. - /// - Task GetPrefetchStatusAsync(); - - /// - /// Enable or disable Prefetch feature. - /// - Task SetPrefetchAsync(bool enabled); - - /// - /// Get the current status of Power Throttling. - /// - Task GetPowerThrottlingStatusAsync(); - - /// - /// Enable or disable Power Throttling. - /// - Task SetPowerThrottlingAsync(bool enabled); - - /// - /// Get the current status of HPET (High Precision Event Timer). - /// - Task GetHpetStatusAsync(); - - /// - /// Enable or disable HPET. - /// - Task SetHpetAsync(bool enabled); - - /// - /// Get the current status of High Scheduling Category for gaming. - /// - Task GetHighSchedulingCategoryStatusAsync(); - - /// - /// Enable or disable High Scheduling Category for gaming. - /// - Task SetHighSchedulingCategoryAsync(bool enabled); - - /// - /// Get the current status of Menu Show Delay. - /// - Task GetMenuShowDelayStatusAsync(); - - /// - /// Enable or disable Menu Show Delay. - /// - Task SetMenuShowDelayAsync(bool enabled); - - /// - /// Refresh all tweak statuses. - /// - Task RefreshAllStatusesAsync(); - } - - /// - /// Represents the status of a system tweak. - /// - public class TweakStatus - { - public bool IsEnabled { get; set; } - - public bool IsAvailable { get; set; } - - public string? ErrorMessage { get; set; } - - public string? Description { get; set; } - } - - /// - /// Event args for tweak status changes. - /// - public class TweakStatusChangedEventArgs : EventArgs - { - public string TweakName { get; } - - public TweakStatus Status { get; } - - public DateTime ChangeTime { get; } - - public TweakStatusChangedEventArgs(string tweakName, TweakStatus status) - { - this.TweakName = tweakName; - this.Status = status; - this.ChangeTime = DateTime.UtcNow; - } - } - - /// - /// Enumeration of available system tweaks. - /// - public enum SystemTweak - { - CoreParking, - CStates, - SysMain, - Prefetch, - PowerThrottling, - Hpet, - HighSchedulingCategory, - MenuShowDelay, - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + + public interface ISystemTweaksService + { + event EventHandler? TweakStatusChanged; + + Task GetCoreParkingStatusAsync(); + + Task SetCoreParkingAsync(bool enabled); + + Task GetCStatesStatusAsync(); + + Task SetCStatesAsync(bool enabled); + + Task GetSysMainStatusAsync(); + + Task SetSysMainAsync(bool enabled); + + Task GetPrefetchStatusAsync(); + + Task SetPrefetchAsync(bool enabled); + + Task GetPowerThrottlingStatusAsync(); + + Task SetPowerThrottlingAsync(bool enabled); + + Task GetHpetStatusAsync(); + + Task SetHpetAsync(bool enabled); + + Task GetHighSchedulingCategoryStatusAsync(); + + Task SetHighSchedulingCategoryAsync(bool enabled); + + Task GetMenuShowDelayStatusAsync(); + + Task SetMenuShowDelayAsync(bool enabled); + + Task RefreshAllStatusesAsync(); + } + + public class TweakStatus + { + public bool IsEnabled { get; set; } + + public bool IsAvailable { get; set; } + + public string? ErrorMessage { get; set; } + + public string? Description { get; set; } + } + + public class TweakStatusChangedEventArgs : EventArgs + { + public string TweakName { get; } + + public TweakStatus Status { get; } + + public DateTime ChangeTime { get; } + + public TweakStatusChangedEventArgs(string tweakName, TweakStatus status) + { + this.TweakName = tweakName; + this.Status = status; + this.ChangeTime = DateTime.UtcNow; + } + } + + public enum SystemTweak + { + CoreParking, + CStates, + SysMain, + Prefetch, + PowerThrottling, + Hpet, + HighSchedulingCategory, + MenuShowDelay, + } +} + diff --git a/Services/IThemeService.cs b/Services/IThemeService.cs index 2b1970f..fbbec87 100644 --- a/Services/IThemeService.cs +++ b/Services/IThemeService.cs @@ -1,29 +1,13 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - - public interface IThemeService - { - bool IsDarkTheme { get; } - - void ApplyTheme(bool useDarkTheme); - - bool GetSystemUsesDarkTheme(); - } -} +namespace ThreadPilot.Services +{ + using System; + + public interface IThemeService + { + bool IsDarkTheme { get; } + + void ApplyTheme(bool useDarkTheme); + + bool GetSystemUsesDarkTheme(); + } +} diff --git a/Services/IVirtualizedProcessService.cs b/Services/IVirtualizedProcessService.cs index 0af09fb..583fc3a 100644 --- a/Services/IVirtualizedProcessService.cs +++ b/Services/IVirtualizedProcessService.cs @@ -1,135 +1,74 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Configuration for virtualized process loading. - /// - public class VirtualizedProcessConfig - { - public int BatchSize { get; set; } = 50; - - public int PreloadBatches { get; set; } = 2; - - public bool EnableBackgroundLoading { get; set; } = true; - - public TimeSpan RefreshInterval { get; set; } = TimeSpan.FromSeconds(5); - } - - /// - /// Result of a batch loading operation. - /// - public class ProcessBatchResult - { - public List Processes { get; set; } = new(); - - public int BatchIndex { get; set; } - - public int TotalBatches { get; set; } - - public int TotalProcessCount { get; set; } - - public bool HasMoreBatches { get; set; } - - public TimeSpan LoadTime { get; set; } - } - - /// - /// Event arguments for batch loading progress. - /// - public class BatchLoadProgressEventArgs : EventArgs - { - public int LoadedBatches { get; set; } - - public int TotalBatches { get; set; } - - public int LoadedProcesses { get; set; } - - public int TotalProcesses { get; set; } - - public double ProgressPercentage => this.TotalBatches > 0 ? (double)this.LoadedBatches / this.TotalBatches * 100 : 0; - - public string StatusMessage { get; set; } = string.Empty; - } - - /// - /// Service for virtualized process loading with batch support. - /// - public interface IVirtualizedProcessService - { - /// - /// Gets or sets configuration for virtualized loading. - /// - VirtualizedProcessConfig Configuration { get; set; } - - /// - /// Initialize the virtualized process service. - /// - Task InitializeAsync(); - - /// - /// Get the total number of processes available. - /// - Task GetTotalProcessCountAsync(bool activeApplicationsOnly = false); - - /// - /// Load a specific batch of processes. - /// - Task LoadProcessBatchAsync(int batchIndex, bool activeApplicationsOnly = false); - - /// - /// Load multiple batches starting from a specific index. - /// - Task> LoadProcessBatchesAsync(int startBatchIndex, int batchCount, bool activeApplicationsOnly = false); - - /// - /// Preload the next batch in background. - /// - Task PreloadNextBatchAsync(int currentBatchIndex, bool activeApplicationsOnly = false); - - /// - /// Search processes across all batches. - /// - Task> SearchProcessesAsync(string searchTerm, bool activeApplicationsOnly = false); - - /// - /// Refresh a specific batch. - /// - Task RefreshBatchAsync(int batchIndex, bool activeApplicationsOnly = false); - - /// - /// Clear all cached batches. - /// - void ClearCache(); - - /// - /// Event raised when batch loading progress changes - /// - event EventHandler? BatchLoadProgress; - - /// - /// Event raised when background preloading completes - /// - event EventHandler? BackgroundBatchLoaded; - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public class VirtualizedProcessConfig + { + public int BatchSize { get; set; } = 50; + + public int PreloadBatches { get; set; } = 2; + + public bool EnableBackgroundLoading { get; set; } = true; + + public TimeSpan RefreshInterval { get; set; } = TimeSpan.FromSeconds(5); + } + + public class ProcessBatchResult + { + public List Processes { get; set; } = new(); + + public int BatchIndex { get; set; } + + public int TotalBatches { get; set; } + + public int TotalProcessCount { get; set; } + + public bool HasMoreBatches { get; set; } + + public TimeSpan LoadTime { get; set; } + } + + public class BatchLoadProgressEventArgs : EventArgs + { + public int LoadedBatches { get; set; } + + public int TotalBatches { get; set; } + + public int LoadedProcesses { get; set; } + + public int TotalProcesses { get; set; } + + public double ProgressPercentage => this.TotalBatches > 0 ? (double)this.LoadedBatches / this.TotalBatches * 100 : 0; + + public string StatusMessage { get; set; } = string.Empty; + } + + public interface IVirtualizedProcessService + { + VirtualizedProcessConfig Configuration { get; set; } + + Task InitializeAsync(); + + Task GetTotalProcessCountAsync(bool activeApplicationsOnly = false); + + Task LoadProcessBatchAsync(int batchIndex, bool activeApplicationsOnly = false); + + Task> LoadProcessBatchesAsync(int startBatchIndex, int batchCount, bool activeApplicationsOnly = false); + + Task PreloadNextBatchAsync(int currentBatchIndex, bool activeApplicationsOnly = false); + + Task> SearchProcessesAsync(string searchTerm, bool activeApplicationsOnly = false); + + Task RefreshBatchAsync(int batchIndex, bool activeApplicationsOnly = false); + + void ClearCache(); + + event EventHandler? BatchLoadProgress; + + event EventHandler? BackgroundBatchLoaded; + } +} + diff --git a/Services/KeyboardShortcutService.cs b/Services/KeyboardShortcutService.cs index 15134d8..44f0dd5 100644 --- a/Services/KeyboardShortcutService.cs +++ b/Services/KeyboardShortcutService.cs @@ -1,387 +1,368 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.InteropServices; - using System.Threading.Tasks; - using System.Windows.Input; - using System.Windows.Interop; - using Microsoft.Extensions.Logging; - - /// - /// Service for managing global keyboard shortcuts using Windows API. - /// - public class KeyboardShortcutService : IKeyboardShortcutService, IDisposable - { - private readonly ILogger logger; - private readonly IApplicationSettingsService settingsService; - private readonly Dictionary registeredShortcuts = new(); - private readonly Dictionary hotkeyIdToAction = new(); - private int nextHotkeyId = 1; - private IntPtr windowHandle = IntPtr.Zero; - private HwndSource? hwndSource; - private bool disposed; - - // Windows API constants - private const int WMHOTKEY = 0x0312; - private const int MODALT = 0x0001; - private const int MODCONTROL = 0x0002; - private const int MODSHIFT = 0x0004; - private const int MODWIN = 0x0008; - - // Windows API functions - [DllImport("user32.dll")] - private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); - - [DllImport("user32.dll")] - private static extern bool UnregisterHotKey(IntPtr hWnd, int id); - - public event EventHandler? ShortcutActivated; - - public KeyboardShortcutService( - ILogger logger, - IApplicationSettingsService settingsService) - { - this.logger = logger; - this.settingsService = settingsService; - } - - public async Task RegisterShortcutAsync(string actionName, Key key, ModifierKeys modifiers) - { - try - { - if (string.IsNullOrEmpty(actionName)) - { - return false; - } - - // Check if shortcut is already registered - if (await this.IsShortcutRegisteredAsync(key, modifiers)) - { - this.logger.LogWarning("Shortcut {Key}+{Modifiers} is already registered", key, modifiers); - return false; - } - - // Unregister existing shortcut for this action if it exists - if (this.registeredShortcuts.ContainsKey(actionName)) - { - await this.UnregisterShortcutAsync(actionName); - } - - var shortcut = new KeyboardShortcut - { - ActionName = actionName, - Key = key, - Modifiers = modifiers, - Description = this.GetActionDescription(actionName), - IsEnabled = true, - IsGlobal = true, - }; - - // Register with Windows API - var hotkeyId = this.nextHotkeyId++; - var winModifiers = this.ConvertToWinModifiers(modifiers); - var virtualKey = KeyInterop.VirtualKeyFromKey(key); - - if (RegisterHotKey(this.windowHandle, hotkeyId, winModifiers, (uint)virtualKey)) - { - this.registeredShortcuts[actionName] = shortcut; - this.hotkeyIdToAction[hotkeyId] = actionName; - - this.logger.LogInformation( - "Registered global shortcut {Shortcut} for action {Action}", - shortcut.ToString(), actionName); - return true; - } - else - { - this.logger.LogError( - "Failed to register global shortcut {Shortcut} for action {Action}", - shortcut.ToString(), actionName); - return false; - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error registering shortcut for action {Action}", actionName); - return false; - } - } - - public async Task UnregisterShortcutAsync(string actionName) - { - try - { - if (!this.registeredShortcuts.TryGetValue(actionName, out var shortcut)) - { - return false; - } - - // Find the hotkey ID - var hotkeyId = this.hotkeyIdToAction.FirstOrDefault(kvp => kvp.Value == actionName).Key; - if (hotkeyId == 0) - { - return false; - } - - // Unregister from Windows API - if (UnregisterHotKey(this.windowHandle, hotkeyId)) - { - this.registeredShortcuts.Remove(actionName); - this.hotkeyIdToAction.Remove(hotkeyId); - - this.logger.LogInformation( - "Unregistered shortcut {Shortcut} for action {Action}", - shortcut.ToString(), actionName); - return true; - } - else - { - this.logger.LogError( - "Failed to unregister shortcut {Shortcut} for action {Action}", - shortcut.ToString(), actionName); - return false; - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error unregistering shortcut for action {Action}", actionName); - return false; - } - } - - public async Task UpdateShortcutAsync(string actionName, Key key, ModifierKeys modifiers) - { - // Unregister existing shortcut and register new one - await this.UnregisterShortcutAsync(actionName); - return await this.RegisterShortcutAsync(actionName, key, modifiers); - } - - public async Task> GetRegisteredShortcutsAsync() - { - return new Dictionary(this.registeredShortcuts); - } - - public async Task IsShortcutRegisteredAsync(Key key, ModifierKeys modifiers) - { - return this.registeredShortcuts.Values.Any(s => s.Key == key && s.Modifiers == modifiers); - } - - public async Task LoadShortcutsFromSettingsAsync() - { - try - { - var settings = this.settingsService.Settings; - if (settings.KeyboardShortcuts != null) - { - foreach (var shortcutSetting in settings.KeyboardShortcuts) - { - if (shortcutSetting.IsEnabled) - { - await this.RegisterShortcutAsync(shortcutSetting.ActionName, shortcutSetting.Key, shortcutSetting.Modifiers); - } - } - } - else - { - // Load default shortcuts if none are configured - await this.LoadDefaultShortcutsAsync(); - } - - this.logger.LogInformation("Loaded {Count} keyboard shortcuts from settings", this.registeredShortcuts.Count); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error loading shortcuts from settings"); - } - } - - public async Task SaveShortcutsToSettingsAsync() - { - try - { - var settings = this.settingsService.Settings; - settings.KeyboardShortcuts = this.registeredShortcuts.Values.ToList(); - await this.settingsService.UpdateSettingsAsync(settings); - - this.logger.LogInformation("Saved {Count} keyboard shortcuts to settings", this.registeredShortcuts.Count); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error saving shortcuts to settings"); - } - } - - public async Task ClearAllShortcutsAsync() - { - var actions = this.registeredShortcuts.Keys.ToList(); - foreach (var action in actions) - { - await this.UnregisterShortcutAsync(action); - } - } - - public Dictionary GetDefaultShortcuts() - { - return new Dictionary - { - [ShortcutActions.ShowMainWindow] = new KeyboardShortcut - { - ActionName = ShortcutActions.ShowMainWindow, - Key = Key.T, - Modifiers = ModifierKeys.Control | ModifierKeys.Shift, - Description = "Show/Hide main window", - IsEnabled = true, - IsGlobal = true, - }, - [ShortcutActions.ToggleMonitoring] = new KeyboardShortcut - { - ActionName = ShortcutActions.ToggleMonitoring, - Key = Key.M, - Modifiers = ModifierKeys.Control | ModifierKeys.Shift, - Description = "Toggle process monitoring", - IsEnabled = true, - IsGlobal = true, - }, - [ShortcutActions.PowerPlanHighPerformance] = new KeyboardShortcut - { - ActionName = ShortcutActions.PowerPlanHighPerformance, - Key = Key.H, - Modifiers = ModifierKeys.Control | ModifierKeys.Shift, - Description = "Switch to High Performance power plan", - IsEnabled = true, - IsGlobal = true, - }, - [ShortcutActions.OpenTweaks] = new KeyboardShortcut - { - ActionName = ShortcutActions.OpenTweaks, - Key = Key.W, - Modifiers = ModifierKeys.Control | ModifierKeys.Shift, - Description = "Open System Tweaks tab", - IsEnabled = true, - IsGlobal = true - }, - }; - } - - public void SetWindowHandle(IntPtr windowHandle) - { - this.windowHandle = windowHandle; - - // Set up message hook for hotkey messages - if (this.windowHandle != nint.Zero) - { - this.hwndSource = HwndSource.FromHwnd(this.windowHandle); - if (this.hwndSource != null) - { - this.hwndSource.AddHook(this.WndProc); - } - } - } - - private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) - { - if (msg == WMHOTKEY) - { - var hotkeyId = wParam.ToInt32(); - if (this.hotkeyIdToAction.TryGetValue(hotkeyId, out var actionName) && - this.registeredShortcuts.TryGetValue(actionName, out var shortcut)) - { - this.ShortcutActivated?.Invoke(this, new ShortcutActivatedEventArgs(actionName, shortcut)); - handled = true; - } - } - - return IntPtr.Zero; - } - - private async Task LoadDefaultShortcutsAsync() - { - var defaultShortcuts = this.GetDefaultShortcuts(); - foreach (var shortcut in defaultShortcuts.Values) - { - await this.RegisterShortcutAsync(shortcut.ActionName, shortcut.Key, shortcut.Modifiers); - } - } - - private uint ConvertToWinModifiers(ModifierKeys modifiers) - { - uint winModifiers = 0; - - if (modifiers.HasFlag(ModifierKeys.Alt)) - { - winModifiers |= MODALT; - } - - if (modifiers.HasFlag(ModifierKeys.Control)) - { - winModifiers |= MODCONTROL; - } - - if (modifiers.HasFlag(ModifierKeys.Shift)) - { - winModifiers |= MODSHIFT; - } - - if (modifiers.HasFlag(ModifierKeys.Windows)) - { - winModifiers |= MODWIN; - } - - return winModifiers; - } - - private string GetActionDescription(string actionName) - { - return actionName switch - { - ShortcutActions.QuickApply => "Quick apply current settings", - ShortcutActions.ToggleMonitoring => "Toggle process monitoring", - ShortcutActions.ShowMainWindow => "Show/Hide main window", - ShortcutActions.HideToTray => "Hide to system tray", - ShortcutActions.PowerPlanBalanced => "Switch to Balanced power plan", - ShortcutActions.PowerPlanHighPerformance => "Switch to High Performance power plan", - ShortcutActions.PowerPlanPowerSaver => "Switch to Power Saver power plan", - ShortcutActions.RefreshProcessList => "Refresh process list", - ShortcutActions.OpenSettings => "Open Settings tab", - ShortcutActions.OpenTweaks => "Open System Tweaks tab", - ShortcutActions.ExitApplication => "Exit application", - _ => actionName, - }; - } - - public void Dispose() - { - if (!this.disposed) - { - this.ClearAllShortcutsAsync().Wait(); - - if (this.hwndSource != null) - { - this.hwndSource.RemoveHook(this.WndProc); - this.hwndSource = null; - } - - this.disposed = true; - } - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Runtime.InteropServices; + using System.Threading.Tasks; + using System.Windows.Input; + using System.Windows.Interop; + using Microsoft.Extensions.Logging; + + public class KeyboardShortcutService : IKeyboardShortcutService, IDisposable + { + private readonly ILogger logger; + private readonly IApplicationSettingsService settingsService; + private readonly Dictionary registeredShortcuts = new(); + private readonly Dictionary hotkeyIdToAction = new(); + private int nextHotkeyId = 1; + private IntPtr windowHandle = IntPtr.Zero; + private HwndSource? hwndSource; + private bool disposed; + + // Windows API constants + private const int WMHOTKEY = 0x0312; + private const int MODALT = 0x0001; + private const int MODCONTROL = 0x0002; + private const int MODSHIFT = 0x0004; + private const int MODWIN = 0x0008; + + // Windows API functions + [DllImport("user32.dll")] + private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); + + [DllImport("user32.dll")] + private static extern bool UnregisterHotKey(IntPtr hWnd, int id); + + public event EventHandler? ShortcutActivated; + + public KeyboardShortcutService( + ILogger logger, + IApplicationSettingsService settingsService) + { + this.logger = logger; + this.settingsService = settingsService; + } + + public async Task RegisterShortcutAsync(string actionName, Key key, ModifierKeys modifiers) + { + try + { + if (string.IsNullOrEmpty(actionName)) + { + return false; + } + + // Check if shortcut is already registered + if (await this.IsShortcutRegisteredAsync(key, modifiers)) + { + this.logger.LogWarning("Shortcut {Key}+{Modifiers} is already registered", key, modifiers); + return false; + } + + // Unregister existing shortcut for this action if it exists + if (this.registeredShortcuts.ContainsKey(actionName)) + { + await this.UnregisterShortcutAsync(actionName); + } + + var shortcut = new KeyboardShortcut + { + ActionName = actionName, + Key = key, + Modifiers = modifiers, + Description = this.GetActionDescription(actionName), + IsEnabled = true, + IsGlobal = true, + }; + + // Register with Windows API + var hotkeyId = this.nextHotkeyId++; + var winModifiers = this.ConvertToWinModifiers(modifiers); + var virtualKey = KeyInterop.VirtualKeyFromKey(key); + + if (RegisterHotKey(this.windowHandle, hotkeyId, winModifiers, (uint)virtualKey)) + { + this.registeredShortcuts[actionName] = shortcut; + this.hotkeyIdToAction[hotkeyId] = actionName; + + this.logger.LogInformation( + "Registered global shortcut {Shortcut} for action {Action}", + shortcut.ToString(), actionName); + return true; + } + else + { + this.logger.LogError( + "Failed to register global shortcut {Shortcut} for action {Action}", + shortcut.ToString(), actionName); + return false; + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error registering shortcut for action {Action}", actionName); + return false; + } + } + + public async Task UnregisterShortcutAsync(string actionName) + { + try + { + if (!this.registeredShortcuts.TryGetValue(actionName, out var shortcut)) + { + return false; + } + + // Find the hotkey ID + var hotkeyId = this.hotkeyIdToAction.FirstOrDefault(kvp => kvp.Value == actionName).Key; + if (hotkeyId == 0) + { + return false; + } + + // Unregister from Windows API + if (UnregisterHotKey(this.windowHandle, hotkeyId)) + { + this.registeredShortcuts.Remove(actionName); + this.hotkeyIdToAction.Remove(hotkeyId); + + this.logger.LogInformation( + "Unregistered shortcut {Shortcut} for action {Action}", + shortcut.ToString(), actionName); + return true; + } + else + { + this.logger.LogError( + "Failed to unregister shortcut {Shortcut} for action {Action}", + shortcut.ToString(), actionName); + return false; + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error unregistering shortcut for action {Action}", actionName); + return false; + } + } + + public async Task UpdateShortcutAsync(string actionName, Key key, ModifierKeys modifiers) + { + // Unregister existing shortcut and register new one + await this.UnregisterShortcutAsync(actionName); + return await this.RegisterShortcutAsync(actionName, key, modifiers); + } + + public async Task> GetRegisteredShortcutsAsync() + { + return new Dictionary(this.registeredShortcuts); + } + + public async Task IsShortcutRegisteredAsync(Key key, ModifierKeys modifiers) + { + return this.registeredShortcuts.Values.Any(s => s.Key == key && s.Modifiers == modifiers); + } + + public async Task LoadShortcutsFromSettingsAsync() + { + try + { + var settings = this.settingsService.Settings; + if (settings.KeyboardShortcuts != null) + { + foreach (var shortcutSetting in settings.KeyboardShortcuts) + { + if (shortcutSetting.IsEnabled) + { + await this.RegisterShortcutAsync(shortcutSetting.ActionName, shortcutSetting.Key, shortcutSetting.Modifiers); + } + } + } + else + { + // Load default shortcuts if none are configured + await this.LoadDefaultShortcutsAsync(); + } + + this.logger.LogInformation("Loaded {Count} keyboard shortcuts from settings", this.registeredShortcuts.Count); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error loading shortcuts from settings"); + } + } + + public async Task SaveShortcutsToSettingsAsync() + { + try + { + var settings = this.settingsService.Settings; + settings.KeyboardShortcuts = this.registeredShortcuts.Values.ToList(); + await this.settingsService.UpdateSettingsAsync(settings); + + this.logger.LogInformation("Saved {Count} keyboard shortcuts to settings", this.registeredShortcuts.Count); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error saving shortcuts to settings"); + } + } + + public async Task ClearAllShortcutsAsync() + { + var actions = this.registeredShortcuts.Keys.ToList(); + foreach (var action in actions) + { + await this.UnregisterShortcutAsync(action); + } + } + + public Dictionary GetDefaultShortcuts() + { + return new Dictionary + { + [ShortcutActions.ShowMainWindow] = new KeyboardShortcut + { + ActionName = ShortcutActions.ShowMainWindow, + Key = Key.T, + Modifiers = ModifierKeys.Control | ModifierKeys.Shift, + Description = "Show/Hide main window", + IsEnabled = true, + IsGlobal = true, + }, + [ShortcutActions.ToggleMonitoring] = new KeyboardShortcut + { + ActionName = ShortcutActions.ToggleMonitoring, + Key = Key.M, + Modifiers = ModifierKeys.Control | ModifierKeys.Shift, + Description = "Toggle process monitoring", + IsEnabled = true, + IsGlobal = true, + }, + [ShortcutActions.PowerPlanHighPerformance] = new KeyboardShortcut + { + ActionName = ShortcutActions.PowerPlanHighPerformance, + Key = Key.H, + Modifiers = ModifierKeys.Control | ModifierKeys.Shift, + Description = "Switch to High Performance power plan", + IsEnabled = true, + IsGlobal = true, + }, + [ShortcutActions.OpenTweaks] = new KeyboardShortcut + { + ActionName = ShortcutActions.OpenTweaks, + Key = Key.W, + Modifiers = ModifierKeys.Control | ModifierKeys.Shift, + Description = "Open System Tweaks tab", + IsEnabled = true, + IsGlobal = true + }, + }; + } + + public void SetWindowHandle(IntPtr windowHandle) + { + this.windowHandle = windowHandle; + + // Set up message hook for hotkey messages + if (this.windowHandle != nint.Zero) + { + this.hwndSource = HwndSource.FromHwnd(this.windowHandle); + if (this.hwndSource != null) + { + this.hwndSource.AddHook(this.WndProc); + } + } + } + + private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) + { + if (msg == WMHOTKEY) + { + var hotkeyId = wParam.ToInt32(); + if (this.hotkeyIdToAction.TryGetValue(hotkeyId, out var actionName) && + this.registeredShortcuts.TryGetValue(actionName, out var shortcut)) + { + this.ShortcutActivated?.Invoke(this, new ShortcutActivatedEventArgs(actionName, shortcut)); + handled = true; + } + } + + return IntPtr.Zero; + } + + private async Task LoadDefaultShortcutsAsync() + { + var defaultShortcuts = this.GetDefaultShortcuts(); + foreach (var shortcut in defaultShortcuts.Values) + { + await this.RegisterShortcutAsync(shortcut.ActionName, shortcut.Key, shortcut.Modifiers); + } + } + + private uint ConvertToWinModifiers(ModifierKeys modifiers) + { + uint winModifiers = 0; + + if (modifiers.HasFlag(ModifierKeys.Alt)) + { + winModifiers |= MODALT; + } + + if (modifiers.HasFlag(ModifierKeys.Control)) + { + winModifiers |= MODCONTROL; + } + + if (modifiers.HasFlag(ModifierKeys.Shift)) + { + winModifiers |= MODSHIFT; + } + + if (modifiers.HasFlag(ModifierKeys.Windows)) + { + winModifiers |= MODWIN; + } + + return winModifiers; + } + + private string GetActionDescription(string actionName) + { + return actionName switch + { + ShortcutActions.QuickApply => "Quick apply current settings", + ShortcutActions.ToggleMonitoring => "Toggle process monitoring", + ShortcutActions.ShowMainWindow => "Show/Hide main window", + ShortcutActions.HideToTray => "Hide to system tray", + ShortcutActions.PowerPlanBalanced => "Switch to Balanced power plan", + ShortcutActions.PowerPlanHighPerformance => "Switch to High Performance power plan", + ShortcutActions.PowerPlanPowerSaver => "Switch to Power Saver power plan", + ShortcutActions.RefreshProcessList => "Refresh process list", + ShortcutActions.OpenSettings => "Open Settings tab", + ShortcutActions.OpenTweaks => "Open System Tweaks tab", + ShortcutActions.ExitApplication => "Exit application", + _ => actionName, + }; + } + + public void Dispose() + { + if (!this.disposed) + { + this.ClearAllShortcutsAsync().Wait(); + + if (this.hwndSource != null) + { + this.hwndSource.RemoveHook(this.WndProc); + this.hwndSource = null; + } + + this.disposed = true; + } + } + } +} + diff --git a/Services/LocalizationService.cs b/Services/LocalizationService.cs index 9e3270b..78b4ef3 100644 --- a/Services/LocalizationService.cs +++ b/Services/LocalizationService.cs @@ -1,269 +1,250 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Windows; - using Microsoft.Extensions.Logging; - - /// - /// Service for managing application localization and display language. - /// - public class LocalizationService : ILocalizationService - { - public const string DefaultLanguage = "en-US"; - public const string SimplifiedChineseLanguage = "zh-CN"; - - private const string EnUsDictionaryPath = "Locales/en-US.xaml"; - private const string ZhCnDictionaryPath = "Locales/zh-CN.xaml"; - - private readonly ILogger logger; - private readonly IReadOnlyDictionary? englishStrings; - private readonly IReadOnlyDictionary? chineseStrings; - private ResourceDictionary? activeLocaleDictionary; - private ResourceDictionary? englishFallbackDictionary; - private Uri? activeLocaleUri; - - public string CurrentLanguage { get; private set; } = DefaultLanguage; - - public event EventHandler? LanguageChanged; - - public LocalizationService(ILogger logger) - : this(logger, englishStrings: null, chineseStrings: null) - { - } - - public LocalizationService( - ILogger logger, - IReadOnlyDictionary? englishStrings, - IReadOnlyDictionary? chineseStrings) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.englishStrings = englishStrings; - this.chineseStrings = chineseStrings; - } - - public static string NormalizeLanguage(string? language) - { - if (string.Equals(language, SimplifiedChineseLanguage, StringComparison.OrdinalIgnoreCase)) - { - return SimplifiedChineseLanguage; - } - - return DefaultLanguage; - } - - public void ApplyLanguage(string? language) - { - var normalizedLanguage = NormalizeLanguage(language); - var targetUri = new Uri(GetDictionaryPath(normalizedLanguage), UriKind.Relative); - - this.CurrentLanguage = normalizedLanguage; - - var appResources = System.Windows.Application.Current?.Resources; - if (appResources == null) - { - this.activeLocaleUri = targetUri; - this.LanguageChanged?.Invoke(this, normalizedLanguage); - return; - } - - try - { - this.ApplyLanguageDictionary(appResources, targetUri); - this.activeLocaleUri = targetUri; - this.logger.LogInformation("Applied display language {Language}", normalizedLanguage); - this.LanguageChanged?.Invoke(this, normalizedLanguage); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to apply language {Language}", normalizedLanguage); - } - } - - public string GetString(string key) - { - if (string.IsNullOrWhiteSpace(key)) - { - return string.Empty; - } - - if (this.TryGetStringFromOverrides(this.CurrentLanguage, key, out var localized)) - { - return localized; - } - - if (this.TryGetStringFromApplicationResources(key, out localized)) - { - return localized; - } - - if (this.activeLocaleDictionary != null && TryGetString(this.activeLocaleDictionary, key, out localized)) - { - return localized; - } - - if (this.CurrentLanguage != DefaultLanguage && - this.TryGetStringFromOverrides(DefaultLanguage, key, out localized)) - { - return localized; - } - - if (this.CurrentLanguage != DefaultLanguage && - this.TryGetStringFromEnglishFallbackDictionary(key, out localized)) - { - return localized; - } - - return key; - } - - private void ApplyLanguageDictionary(ResourceDictionary appResources, Uri targetUri) - { - ResourceDictionary? matchingDictionary = null; - for (var i = appResources.MergedDictionaries.Count - 1; i >= 0; i--) - { - var dictionary = appResources.MergedDictionaries[i]; - var source = dictionary.Source?.OriginalString; - if (IsLocaleDictionary(source)) - { - if (matchingDictionary == null && - string.Equals(source, targetUri.OriginalString, StringComparison.OrdinalIgnoreCase)) - { - matchingDictionary = dictionary; - continue; - } - - appResources.MergedDictionaries.RemoveAt(i); - } - } - - if (matchingDictionary != null) - { - appResources.MergedDictionaries.Remove(matchingDictionary); - appResources.MergedDictionaries.Insert(0, matchingDictionary); - this.activeLocaleDictionary = matchingDictionary; - } - else - { - var nextDictionary = new ResourceDictionary { Source = targetUri }; - appResources.MergedDictionaries.Insert(0, nextDictionary); - this.activeLocaleDictionary = nextDictionary; - } - } - - private static string GetDictionaryPath(string language) - { - return language == SimplifiedChineseLanguage ? ZhCnDictionaryPath : EnUsDictionaryPath; - } - - private static bool IsLocaleDictionary(string? source) - { - return !string.IsNullOrWhiteSpace(source) && - (source.EndsWith(EnUsDictionaryPath, StringComparison.OrdinalIgnoreCase) || - source.EndsWith(ZhCnDictionaryPath, StringComparison.OrdinalIgnoreCase)); - } - - private static bool TryGetString(ResourceDictionary dictionary, string key, out string value) - { - if (dictionary.Contains(key) && dictionary[key] is string text && !string.IsNullOrEmpty(text)) - { - value = text; - return true; - } - - value = string.Empty; - return false; - } - - private bool TryGetStringFromOverrides(string language, string key, out string value) - { - var source = language == SimplifiedChineseLanguage ? this.chineseStrings : this.englishStrings; - if (source != null && source.TryGetValue(key, out var text) && !string.IsNullOrEmpty(text)) - { - value = text; - return true; - } - - value = string.Empty; - return false; - } - - private bool TryGetStringFromApplicationResources(string key, out string value) - { - value = string.Empty; - var app = System.Windows.Application.Current; - if (app == null) - { - return false; - } - - try - { - if (app.Dispatcher.CheckAccess()) - { - return TryGetApplicationResourceValue(app, key, out value); - } - - var found = false; - var dispatcherValue = string.Empty; - app.Dispatcher.Invoke(() => - { - found = TryGetApplicationResourceValue(app, key, out dispatcherValue); - }); - value = dispatcherValue; - return found; - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to read localized resource {Key}", key); - return false; - } - } - - private static bool TryGetApplicationResourceValue(System.Windows.Application app, string key, out string value) - { - if (app.Resources.Contains(key) && app.Resources[key] is string text && !string.IsNullOrEmpty(text)) - { - value = text; - return true; - } - - value = string.Empty; - return false; - } - - private bool TryGetStringFromEnglishFallbackDictionary(string key, out string value) - { - value = string.Empty; - try - { - this.englishFallbackDictionary ??= new ResourceDictionary - { - Source = new Uri(EnUsDictionaryPath, UriKind.Relative), - }; - return TryGetString(this.englishFallbackDictionary, key, out value); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to load English fallback localization dictionary"); - return false; - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Windows; + using Microsoft.Extensions.Logging; + + public class LocalizationService : ILocalizationService + { + public const string DefaultLanguage = "en-US"; + public const string SimplifiedChineseLanguage = "zh-CN"; + + private const string EnUsDictionaryPath = "Locales/en-US.xaml"; + private const string ZhCnDictionaryPath = "Locales/zh-CN.xaml"; + + private readonly ILogger logger; + private readonly IReadOnlyDictionary? englishStrings; + private readonly IReadOnlyDictionary? chineseStrings; + private ResourceDictionary? activeLocaleDictionary; + private ResourceDictionary? englishFallbackDictionary; + private Uri? activeLocaleUri; + + public string CurrentLanguage { get; private set; } = DefaultLanguage; + + public event EventHandler? LanguageChanged; + + public LocalizationService(ILogger logger) + : this(logger, englishStrings: null, chineseStrings: null) + { + } + + public LocalizationService( + ILogger logger, + IReadOnlyDictionary? englishStrings, + IReadOnlyDictionary? chineseStrings) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.englishStrings = englishStrings; + this.chineseStrings = chineseStrings; + } + + public static string NormalizeLanguage(string? language) + { + if (string.Equals(language, SimplifiedChineseLanguage, StringComparison.OrdinalIgnoreCase)) + { + return SimplifiedChineseLanguage; + } + + return DefaultLanguage; + } + + public void ApplyLanguage(string? language) + { + var normalizedLanguage = NormalizeLanguage(language); + var targetUri = new Uri(GetDictionaryPath(normalizedLanguage), UriKind.Relative); + + this.CurrentLanguage = normalizedLanguage; + + var appResources = System.Windows.Application.Current?.Resources; + if (appResources == null) + { + this.activeLocaleUri = targetUri; + this.LanguageChanged?.Invoke(this, normalizedLanguage); + return; + } + + try + { + this.ApplyLanguageDictionary(appResources, targetUri); + this.activeLocaleUri = targetUri; + this.logger.LogInformation("Applied display language {Language}", normalizedLanguage); + this.LanguageChanged?.Invoke(this, normalizedLanguage); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to apply language {Language}", normalizedLanguage); + } + } + + public string GetString(string key) + { + if (string.IsNullOrWhiteSpace(key)) + { + return string.Empty; + } + + if (this.TryGetStringFromOverrides(this.CurrentLanguage, key, out var localized)) + { + return localized; + } + + if (this.TryGetStringFromApplicationResources(key, out localized)) + { + return localized; + } + + if (this.activeLocaleDictionary != null && TryGetString(this.activeLocaleDictionary, key, out localized)) + { + return localized; + } + + if (this.CurrentLanguage != DefaultLanguage && + this.TryGetStringFromOverrides(DefaultLanguage, key, out localized)) + { + return localized; + } + + if (this.CurrentLanguage != DefaultLanguage && + this.TryGetStringFromEnglishFallbackDictionary(key, out localized)) + { + return localized; + } + + return key; + } + + private void ApplyLanguageDictionary(ResourceDictionary appResources, Uri targetUri) + { + ResourceDictionary? matchingDictionary = null; + for (var i = appResources.MergedDictionaries.Count - 1; i >= 0; i--) + { + var dictionary = appResources.MergedDictionaries[i]; + var source = dictionary.Source?.OriginalString; + if (IsLocaleDictionary(source)) + { + if (matchingDictionary == null && + string.Equals(source, targetUri.OriginalString, StringComparison.OrdinalIgnoreCase)) + { + matchingDictionary = dictionary; + continue; + } + + appResources.MergedDictionaries.RemoveAt(i); + } + } + + if (matchingDictionary != null) + { + appResources.MergedDictionaries.Remove(matchingDictionary); + appResources.MergedDictionaries.Insert(0, matchingDictionary); + this.activeLocaleDictionary = matchingDictionary; + } + else + { + var nextDictionary = new ResourceDictionary { Source = targetUri }; + appResources.MergedDictionaries.Insert(0, nextDictionary); + this.activeLocaleDictionary = nextDictionary; + } + } + + private static string GetDictionaryPath(string language) + { + return language == SimplifiedChineseLanguage ? ZhCnDictionaryPath : EnUsDictionaryPath; + } + + private static bool IsLocaleDictionary(string? source) + { + return !string.IsNullOrWhiteSpace(source) && + (source.EndsWith(EnUsDictionaryPath, StringComparison.OrdinalIgnoreCase) || + source.EndsWith(ZhCnDictionaryPath, StringComparison.OrdinalIgnoreCase)); + } + + private static bool TryGetString(ResourceDictionary dictionary, string key, out string value) + { + if (dictionary.Contains(key) && dictionary[key] is string text && !string.IsNullOrEmpty(text)) + { + value = text; + return true; + } + + value = string.Empty; + return false; + } + + private bool TryGetStringFromOverrides(string language, string key, out string value) + { + var source = language == SimplifiedChineseLanguage ? this.chineseStrings : this.englishStrings; + if (source != null && source.TryGetValue(key, out var text) && !string.IsNullOrEmpty(text)) + { + value = text; + return true; + } + + value = string.Empty; + return false; + } + + private bool TryGetStringFromApplicationResources(string key, out string value) + { + value = string.Empty; + var app = System.Windows.Application.Current; + if (app == null) + { + return false; + } + + try + { + if (app.Dispatcher.CheckAccess()) + { + return TryGetApplicationResourceValue(app, key, out value); + } + + var found = false; + var dispatcherValue = string.Empty; + app.Dispatcher.Invoke(() => + { + found = TryGetApplicationResourceValue(app, key, out dispatcherValue); + }); + value = dispatcherValue; + return found; + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to read localized resource {Key}", key); + return false; + } + } + + private static bool TryGetApplicationResourceValue(System.Windows.Application app, string key, out string value) + { + if (app.Resources.Contains(key) && app.Resources[key] is string text && !string.IsNullOrEmpty(text)) + { + value = text; + return true; + } + + value = string.Empty; + return false; + } + + private bool TryGetStringFromEnglishFallbackDictionary(string key, out string value) + { + value = string.Empty; + try + { + this.englishFallbackDictionary ??= new ResourceDictionary + { + Source = new Uri(EnUsDictionaryPath, UriKind.Relative), + }; + return TryGetString(this.englishFallbackDictionary, key, out value); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to load English fallback localization dictionary"); + return false; + } + } + } +} diff --git a/Services/LogFileManager.cs b/Services/LogFileManager.cs index a9d3fef..8e6116a 100644 --- a/Services/LogFileManager.cs +++ b/Services/LogFileManager.cs @@ -1,458 +1,415 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Manages log file operations including rotation, cleanup, and concurrent access. - /// - public class LogFileManager : IDisposable - { - private readonly ILogger logger; - private readonly string logDirectory; - private readonly SemaphoreSlim fileLock = new(1, 1); - private readonly ReaderWriterLockSlim configLock = new(); - private bool disposed; - - // Configuration - private int maxFileSizeMb = 10; - private int retentionDays = 7; - private int maxLogFiles = 50; - - public string LogDirectory => this.logDirectory; - - public string CurrentLogFilePath { get; private set; } - - public LogFileManager(ILogger logger, string? logDirectory = null) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - - this.logDirectory = logDirectory ?? Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "ThreadPilot", - "Logs"); - - this.CurrentLogFilePath = Path.Combine(this.logDirectory, "ThreadPilot.log"); - } - - /// - /// Initialize the log file manager. - /// - public async Task InitializeAsync() - { - await this.fileLock.WaitAsync(); - try - { - // Ensure log directory exists - Directory.CreateDirectory(this.logDirectory); - - // Create current log file if it doesn't exist - if (!File.Exists(this.CurrentLogFilePath)) - { - await this.CreateNewLogFileAsync(); - } - - this.logger.LogInformation("Log file manager initialized. Directory: {LogDirectory}", this.logDirectory); - } - finally - { - this.fileLock.Release(); - } - } - - /// - /// Write log entries to the current log file with automatic rotation. - /// - public async Task WriteLogEntriesAsync(IEnumerable logLines) - { - await this.fileLock.WaitAsync(); - try - { - // Check if rotation is needed - await this.CheckAndRotateLogFileAsync(); - - // Write entries - await File.AppendAllLinesAsync(this.CurrentLogFilePath, logLines); - } - finally - { - this.fileLock.Release(); - } - } - - /// - /// Write a single log entry. - /// - public async Task WriteLogEntryAsync(string logLine) - { - await this.WriteLogEntriesAsync(new[] { logLine }); - } - - /// - /// Read log entries from all log files within date range. - /// - public async Task> ReadLogEntriesAsync(DateTime fromDate, DateTime toDate, int maxEntries = 1000) - { - await this.fileLock.WaitAsync(); - try - { - var allEntries = new List<(DateTime timestamp, string line)>(); - var logFiles = this.GetLogFiles(); - - foreach (var logFile in logFiles) - { - var entries = await this.ReadLogEntriesFromFileAsync(logFile, fromDate, toDate); - allEntries.AddRange(entries); - } - - return allEntries - .OrderByDescending(e => e.timestamp) - .Take(maxEntries) - .Select(e => e.line) - .ToList(); - } - finally - { - this.fileLock.Release(); - } - } - - /// - /// Get log file statistics. - /// - public async Task GetStatisticsAsync() - { - await this.fileLock.WaitAsync(); - try - { - var stats = new LogFileStatistics(); - var logFiles = this.GetLogFiles(); - - stats.TotalLogFiles = logFiles.Count; - - foreach (var logFile in logFiles) - { - var fileInfo = new FileInfo(logFile); - stats.TotalLogSizeBytes += fileInfo.Length; - - if (Path.GetFileName(logFile) == "ThreadPilot.log") - { - stats.CurrentFileSizeBytes = fileInfo.Length; - } - - if (stats.OldestLogDate == default || fileInfo.CreationTime < stats.OldestLogDate) - { - stats.OldestLogDate = fileInfo.CreationTime; - } - - if (fileInfo.CreationTime > stats.NewestLogDate) - { - stats.NewestLogDate = fileInfo.CreationTime; - } - } - - // Count log levels by reading recent entries - await this.CountLogLevelsAsync(stats); - - return stats; - } - finally - { - this.fileLock.Release(); - } - } - - /// - /// Clean up old log files based on retention policy. - /// - public async Task CleanupOldLogsAsync() - { - await this.fileLock.WaitAsync(); - try - { - this.configLock.EnterReadLock(); - var retentionDate = DateTime.UtcNow.AddDays(-this.retentionDays); - var maxFiles = this.maxLogFiles; - this.configLock.ExitReadLock(); - - var logFiles = this.GetLogFiles() - .Where(f => Path.GetFileName(f) != "ThreadPilot.log") // Don't delete current log - .OrderBy(f => new FileInfo(f).CreationTime) - .ToList(); - - var deletedCount = 0; - - // Delete files older than retention period - foreach (var logFile in logFiles.ToList()) - { - var fileInfo = new FileInfo(logFile); - if (fileInfo.CreationTime < retentionDate) - { - try - { - File.Delete(logFile); - logFiles.Remove(logFile); - deletedCount++; - this.logger.LogDebug("Deleted old log file: {LogFile}", logFile); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to delete old log file: {LogFile}", logFile); - } - } - } - - // Delete excess files if we have too many - if (logFiles.Count > maxFiles) - { - var excessFiles = logFiles.Take(logFiles.Count - maxFiles); - foreach (var logFile in excessFiles) - { - try - { - File.Delete(logFile); - deletedCount++; - this.logger.LogDebug("Deleted excess log file: {LogFile}", logFile); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to delete excess log file: {LogFile}", logFile); - } - } - } - - if (deletedCount > 0) - { - this.logger.LogInformation("Cleaned up {DeletedCount} old log files", deletedCount); - } - } - finally - { - this.fileLock.Release(); - } - } - - /// - /// Export logs to a specified file. - /// - public async Task ExportLogsAsync(DateTime fromDate, DateTime toDate, string? exportPath = null) - { - exportPath ??= Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.Desktop), - $"ThreadPilot_Logs_{DateTime.Now:yyyyMMdd_HHmmss}.txt"); - - var logEntries = await this.ReadLogEntriesAsync(fromDate, toDate, int.MaxValue); - - var exportContent = new List - { - $"# ThreadPilot Log Export", - $"# Export Date: {DateTime.Now:yyyy-MM-dd HH:mm:ss}", - $"# Date Range: {fromDate:yyyy-MM-dd} to {toDate:yyyy-MM-dd}", - $"# Total Entries: {logEntries.Count}", - string.Empty, - }; - - exportContent.AddRange(logEntries); - - await File.WriteAllLinesAsync(exportPath, exportContent); - return exportPath; - } - - /// - /// Update configuration. - /// - public void UpdateConfiguration(int maxFileSizeMb, int retentionDays, int maxLogFiles = 50) - { - this.configLock.EnterWriteLock(); - try - { - this.maxFileSizeMb = maxFileSizeMb; - this.retentionDays = retentionDays; - this.maxLogFiles = maxLogFiles; - } - finally - { - this.configLock.ExitWriteLock(); - } - } - - private async Task CheckAndRotateLogFileAsync() - { - var fileInfo = new FileInfo(this.CurrentLogFilePath); - - this.configLock.EnterReadLock(); - var maxSizeBytes = this.maxFileSizeMb * 1024 * 1024; - this.configLock.ExitReadLock(); - - if (fileInfo.Exists && fileInfo.Length > maxSizeBytes) - { - await this.RotateLogFileAsync(); - } - } - - private async Task RotateLogFileAsync() - { - var timestamp = DateTime.UtcNow.ToString("yyyyMMdd_HHmmss"); - var rotatedPath = Path.Combine(this.logDirectory, $"ThreadPilot_{timestamp}.log"); - - try - { - // Move current log to rotated name - File.Move(this.CurrentLogFilePath, rotatedPath); - - // Create new current log file - await this.CreateNewLogFileAsync(); - - this.logger.LogInformation("Log file rotated: {RotatedPath}", rotatedPath); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to rotate log file"); - throw; - } - } - - private async Task CreateNewLogFileAsync() - { - var header = new[] - { - $"# ThreadPilot Log File", - $"# Created: {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC", - $"# Version: {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}", - $"# Machine: {Environment.MachineName}", - string.Empty, - }; - - await File.WriteAllLinesAsync(this.CurrentLogFilePath, header); - } - - private List GetLogFiles() - { - return Directory.GetFiles(this.logDirectory, "*.log") - .OrderByDescending(f => new FileInfo(f).CreationTime) - .ToList(); - } - - private async Task> ReadLogEntriesFromFileAsync(string filePath, DateTime fromDate, DateTime toDate) - { - var entries = new List<(DateTime timestamp, string line)>(); - - try - { - var lines = await File.ReadAllLinesAsync(filePath); - foreach (var line in lines) - { - if (line.StartsWith("#") || string.IsNullOrWhiteSpace(line)) - { - continue; - } - - // Try to extract timestamp from JSON log entry - if (this.TryExtractTimestamp(line, out var timestamp)) - { - if (timestamp >= fromDate && timestamp <= toDate) - { - entries.Add((timestamp, line)); - } - } - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to read log entries from file: {FilePath}", filePath); - } - - return entries; - } - - private bool TryExtractTimestamp(string logLine, out DateTime timestamp) - { - timestamp = default; - - try - { - // Look for timestamp in JSON format: "timestamp":"2024-01-01 12:00:00.000" - var timestampStart = logLine.IndexOf("\"timestamp\":\""); - if (timestampStart >= 0) - { - timestampStart += 13; // Length of "timestamp":"" - var timestampEnd = logLine.IndexOf("\"", timestampStart); - if (timestampEnd > timestampStart) - { - var timestampStr = logLine.Substring(timestampStart, timestampEnd - timestampStart); - return DateTime.TryParse(timestampStr, out timestamp); - } - } - } - catch - { - // Ignore parsing errors - } - - return false; - } - - private async Task CountLogLevelsAsync(LogFileStatistics stats) - { - try - { - // Read recent entries to count log levels - var recentEntries = await this.ReadLogEntriesAsync(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow, 1000); - - foreach (var entry in recentEntries) - { - if (entry.Contains("\"level\":\"Error\"")) - { - stats.ErrorCount++; - } - else if (entry.Contains("\"level\":\"Warning\"")) - { - stats.WarningCount++; - } - else if (entry.Contains("\"level\":\"Information\"")) - { - stats.InfoCount++; - } - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to count log levels"); - } - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - this.fileLock?.Dispose(); - this.configLock?.Dispose(); - this.disposed = true; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + + public class LogFileManager : IDisposable + { + private readonly ILogger logger; + private readonly string logDirectory; + private readonly SemaphoreSlim fileLock = new(1, 1); + private readonly ReaderWriterLockSlim configLock = new(); + private bool disposed; + + // Configuration + private int maxFileSizeMb = 10; + private int retentionDays = 7; + private int maxLogFiles = 50; + + public string LogDirectory => this.logDirectory; + + public string CurrentLogFilePath { get; private set; } + + public LogFileManager(ILogger logger, string? logDirectory = null) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + + this.logDirectory = logDirectory ?? Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), + "ThreadPilot", + "Logs"); + + this.CurrentLogFilePath = Path.Combine(this.logDirectory, "ThreadPilot.log"); + } + + public async Task InitializeAsync() + { + await this.fileLock.WaitAsync(); + try + { + // Ensure log directory exists + Directory.CreateDirectory(this.logDirectory); + + // Create current log file if it doesn't exist + if (!File.Exists(this.CurrentLogFilePath)) + { + await this.CreateNewLogFileAsync(); + } + + this.logger.LogInformation("Log file manager initialized. Directory: {LogDirectory}", this.logDirectory); + } + finally + { + this.fileLock.Release(); + } + } + + public async Task WriteLogEntriesAsync(IEnumerable logLines) + { + await this.fileLock.WaitAsync(); + try + { + // Check if rotation is needed + await this.CheckAndRotateLogFileAsync(); + + // Write entries + await File.AppendAllLinesAsync(this.CurrentLogFilePath, logLines); + } + finally + { + this.fileLock.Release(); + } + } + + public async Task WriteLogEntryAsync(string logLine) + { + await this.WriteLogEntriesAsync(new[] { logLine }); + } + + public async Task> ReadLogEntriesAsync(DateTime fromDate, DateTime toDate, int maxEntries = 1000) + { + await this.fileLock.WaitAsync(); + try + { + var allEntries = new List<(DateTime timestamp, string line)>(); + var logFiles = this.GetLogFiles(); + + foreach (var logFile in logFiles) + { + var entries = await this.ReadLogEntriesFromFileAsync(logFile, fromDate, toDate); + allEntries.AddRange(entries); + } + + return allEntries + .OrderByDescending(e => e.timestamp) + .Take(maxEntries) + .Select(e => e.line) + .ToList(); + } + finally + { + this.fileLock.Release(); + } + } + + public async Task GetStatisticsAsync() + { + await this.fileLock.WaitAsync(); + try + { + var stats = new LogFileStatistics(); + var logFiles = this.GetLogFiles(); + + stats.TotalLogFiles = logFiles.Count; + + foreach (var logFile in logFiles) + { + var fileInfo = new FileInfo(logFile); + stats.TotalLogSizeBytes += fileInfo.Length; + + if (Path.GetFileName(logFile) == "ThreadPilot.log") + { + stats.CurrentFileSizeBytes = fileInfo.Length; + } + + if (stats.OldestLogDate == default || fileInfo.CreationTime < stats.OldestLogDate) + { + stats.OldestLogDate = fileInfo.CreationTime; + } + + if (fileInfo.CreationTime > stats.NewestLogDate) + { + stats.NewestLogDate = fileInfo.CreationTime; + } + } + + // Count log levels by reading recent entries + await this.CountLogLevelsAsync(stats); + + return stats; + } + finally + { + this.fileLock.Release(); + } + } + + public async Task CleanupOldLogsAsync() + { + await this.fileLock.WaitAsync(); + try + { + this.configLock.EnterReadLock(); + var retentionDate = DateTime.UtcNow.AddDays(-this.retentionDays); + var maxFiles = this.maxLogFiles; + this.configLock.ExitReadLock(); + + var logFiles = this.GetLogFiles() + .Where(f => Path.GetFileName(f) != "ThreadPilot.log") // Don't delete current log + .OrderBy(f => new FileInfo(f).CreationTime) + .ToList(); + + var deletedCount = 0; + + // Delete files older than retention period + foreach (var logFile in logFiles.ToList()) + { + var fileInfo = new FileInfo(logFile); + if (fileInfo.CreationTime < retentionDate) + { + try + { + File.Delete(logFile); + logFiles.Remove(logFile); + deletedCount++; + this.logger.LogDebug("Deleted old log file: {LogFile}", logFile); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to delete old log file: {LogFile}", logFile); + } + } + } + + // Delete excess files if we have too many + if (logFiles.Count > maxFiles) + { + var excessFiles = logFiles.Take(logFiles.Count - maxFiles); + foreach (var logFile in excessFiles) + { + try + { + File.Delete(logFile); + deletedCount++; + this.logger.LogDebug("Deleted excess log file: {LogFile}", logFile); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to delete excess log file: {LogFile}", logFile); + } + } + } + + if (deletedCount > 0) + { + this.logger.LogInformation("Cleaned up {DeletedCount} old log files", deletedCount); + } + } + finally + { + this.fileLock.Release(); + } + } + + public async Task ExportLogsAsync(DateTime fromDate, DateTime toDate, string? exportPath = null) + { + exportPath ??= Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + $"ThreadPilot_Logs_{DateTime.Now:yyyyMMdd_HHmmss}.txt"); + + var logEntries = await this.ReadLogEntriesAsync(fromDate, toDate, int.MaxValue); + + var exportContent = new List + { + $"# ThreadPilot Log Export", + $"# Export Date: {DateTime.Now:yyyy-MM-dd HH:mm:ss}", + $"# Date Range: {fromDate:yyyy-MM-dd} to {toDate:yyyy-MM-dd}", + $"# Total Entries: {logEntries.Count}", + string.Empty, + }; + + exportContent.AddRange(logEntries); + + await File.WriteAllLinesAsync(exportPath, exportContent); + return exportPath; + } + + public void UpdateConfiguration(int maxFileSizeMb, int retentionDays, int maxLogFiles = 50) + { + this.configLock.EnterWriteLock(); + try + { + this.maxFileSizeMb = maxFileSizeMb; + this.retentionDays = retentionDays; + this.maxLogFiles = maxLogFiles; + } + finally + { + this.configLock.ExitWriteLock(); + } + } + + private async Task CheckAndRotateLogFileAsync() + { + var fileInfo = new FileInfo(this.CurrentLogFilePath); + + this.configLock.EnterReadLock(); + var maxSizeBytes = this.maxFileSizeMb * 1024 * 1024; + this.configLock.ExitReadLock(); + + if (fileInfo.Exists && fileInfo.Length > maxSizeBytes) + { + await this.RotateLogFileAsync(); + } + } + + private async Task RotateLogFileAsync() + { + var timestamp = DateTime.UtcNow.ToString("yyyyMMdd_HHmmss"); + var rotatedPath = Path.Combine(this.logDirectory, $"ThreadPilot_{timestamp}.log"); + + try + { + // Move current log to rotated name + File.Move(this.CurrentLogFilePath, rotatedPath); + + // Create new current log file + await this.CreateNewLogFileAsync(); + + this.logger.LogInformation("Log file rotated: {RotatedPath}", rotatedPath); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to rotate log file"); + throw; + } + } + + private async Task CreateNewLogFileAsync() + { + var header = new[] + { + $"# ThreadPilot Log File", + $"# Created: {DateTime.UtcNow:yyyy-MM-dd HH:mm:ss} UTC", + $"# Version: {System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}", + $"# Machine: {Environment.MachineName}", + string.Empty, + }; + + await File.WriteAllLinesAsync(this.CurrentLogFilePath, header); + } + + private List GetLogFiles() + { + return Directory.GetFiles(this.logDirectory, "*.log") + .OrderByDescending(f => new FileInfo(f).CreationTime) + .ToList(); + } + + private async Task> ReadLogEntriesFromFileAsync(string filePath, DateTime fromDate, DateTime toDate) + { + var entries = new List<(DateTime timestamp, string line)>(); + + try + { + var lines = await File.ReadAllLinesAsync(filePath); + foreach (var line in lines) + { + if (line.StartsWith("#") || string.IsNullOrWhiteSpace(line)) + { + continue; + } + + // Try to extract timestamp from JSON log entry + if (this.TryExtractTimestamp(line, out var timestamp)) + { + if (timestamp >= fromDate && timestamp <= toDate) + { + entries.Add((timestamp, line)); + } + } + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to read log entries from file: {FilePath}", filePath); + } + + return entries; + } + + private bool TryExtractTimestamp(string logLine, out DateTime timestamp) + { + timestamp = default; + + try + { + // Look for timestamp in JSON format: "timestamp":"2024-01-01 12:00:00.000" + var timestampStart = logLine.IndexOf("\"timestamp\":\""); + if (timestampStart >= 0) + { + timestampStart += 13; // Length of "timestamp":"" + var timestampEnd = logLine.IndexOf("\"", timestampStart); + if (timestampEnd > timestampStart) + { + var timestampStr = logLine.Substring(timestampStart, timestampEnd - timestampStart); + return DateTime.TryParse(timestampStr, out timestamp); + } + } + } + catch + { + // Ignore parsing errors + } + + return false; + } + + private async Task CountLogLevelsAsync(LogFileStatistics stats) + { + try + { + // Read recent entries to count log levels + var recentEntries = await this.ReadLogEntriesAsync(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow, 1000); + + foreach (var entry in recentEntries) + { + if (entry.Contains("\"level\":\"Error\"")) + { + stats.ErrorCount++; + } + else if (entry.Contains("\"level\":\"Warning\"")) + { + stats.WarningCount++; + } + else if (entry.Contains("\"level\":\"Information\"")) + { + stats.InfoCount++; + } + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to count log levels"); + } + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + this.fileLock?.Dispose(); + this.configLock?.Dispose(); + this.disposed = true; + } + } +} + diff --git a/Services/NotificationService.cs b/Services/NotificationService.cs index e6e7081..4bfc5e2 100644 --- a/Services/NotificationService.cs +++ b/Services/NotificationService.cs @@ -1,534 +1,515 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Linq; - using System.Threading.Tasks; - using System.Windows.Forms; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Service for managing notifications with balloon tips and toast support. - /// - public class NotificationService : INotificationService, IDisposable - { - private const int NotificationDisplayDurationMs = 2000; - - private readonly ILogger logger; - private readonly IApplicationSettingsService settingsService; - private readonly ISystemTrayService systemTrayService; - private readonly ILocalizationService localizationService; - private readonly List notificationHistory; - private ApplicationSettingsModel settings; - private bool disposed = false; - - public event EventHandler? NotificationShown; - - public event EventHandler? NotificationDismissed; - - public event EventHandler? NotificationActionClicked; - - public IReadOnlyList NotificationHistory => this.notificationHistory.AsReadOnly(); - - public NotificationService( - ILogger logger, - IApplicationSettingsService settingsService, - ISystemTrayService systemTrayService, - ILocalizationService localizationService) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.systemTrayService = systemTrayService ?? throw new ArgumentNullException(nameof(systemTrayService)); - this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); - - this.notificationHistory = new List(); - this.settings = this.settingsService.Settings; - - // Subscribe to settings changes - this.settingsService.SettingsChanged += this.OnSettingsChanged; - } - - public async Task InitializeAsync() - { - try - { - this.logger.LogInformation("Initializing notification service"); - - // Load settings - this.settings = this.settingsService.Settings; - - this.logger.LogInformation("Notification service initialized successfully"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to initialize notification service"); - throw; - } - } - - public async Task ShowNotificationAsync(string title, string message, NotificationType type = NotificationType.Information) - { - var notification = new NotificationModel(title, message, type) - { - DurationMs = NotificationDisplayDurationMs, - Category = "General", - SourceService = "NotificationService", - }; - - await this.ShowNotificationAsync(notification); - } - - public async Task ShowNotificationAsync(NotificationModel notification) - { - if (notification == null) - { - return; - } - - try - { - notification.Title = this.TryGetLocalizedNotificationString(notification.Title); - notification.Message = this.TryGetLocalizedNotificationString(notification.Message); - - // Check if notifications are enabled - if (!this.AreNotificationsEnabled(notification.Type)) - { - this.logger.LogDebug("Notifications disabled for type {Type}", notification.Type); - return; - } - - // Add to history - notification.DurationMs = NotificationDisplayDurationMs; - this.AddToHistory(notification); - - // Show balloon tip if enabled - if (this.settings.EnableBalloonNotifications) - { - await this.ShowBalloonTipInternalAsync(notification); - } - - // Show toast notification if enabled and available - if (this.settings.EnableToastNotifications) - { - await this.ShowToastNotificationInternalAsync(notification); - } - - // Fire event - this.NotificationShown?.Invoke(this, new NotificationEventArgs(notification)); - - this.logger.LogDebug("Notification shown: {Title}", notification.Title); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error showing notification: {Title}", notification.Title); - } - } - - public async Task ShowBalloonTipAsync(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000) - { - var notification = new NotificationModel(title, message, type) - { - DurationMs = NotificationDisplayDurationMs, - Category = "BalloonTip", - SourceService = "NotificationService", - }; - - if (this.settings.EnableBalloonNotifications && this.AreNotificationsEnabled(type)) - { - this.AddToHistory(notification); - await this.ShowBalloonTipInternalAsync(notification); - this.NotificationShown?.Invoke(this, new NotificationEventArgs(notification)); - } - } - - public async Task ShowToastNotificationAsync(string title, string message, NotificationType type = NotificationType.Information) - { - var notification = new NotificationModel(title, message, type) - { - Category = "Toast", - SourceService = "NotificationService", - }; - - if (this.settings.EnableToastNotifications && this.AreNotificationsEnabled(type)) - { - this.AddToHistory(notification); - await this.ShowToastNotificationInternalAsync(notification); - this.NotificationShown?.Invoke(this, new NotificationEventArgs(notification)); - } - } - - public async Task ShowPowerPlanChangeNotificationAsync(string oldPlan, string newPlan, string processName = "") - { - if (!this.settings.EnablePowerPlanChangeNotifications) - { - return; - } - - var title = this.GetLocalizedString("Notification_PowerPlanChangedTitle"); - var message = string.IsNullOrEmpty(processName) - ? string.Format( - this.GetLocalizedString("Notification_PowerPlanChangedFormat"), - oldPlan, - newPlan) - : string.Format( - this.GetLocalizedString("Notification_PowerPlanChangedProcessFormat"), - newPlan, - processName); - - var notification = new NotificationModel(title, message, NotificationType.PowerPlanChange) - { - Category = "PowerPlan", - SourceService = "PowerPlanService", - Priority = NotificationPriority.Normal, - }; - - await this.ShowNotificationAsync(notification); - } - - public async Task ShowProcessMonitoringNotificationAsync(string message, bool isEnabled) - { - if (!this.settings.EnableProcessMonitoringNotifications) - { - return; - } - - var title = isEnabled - ? this.GetLocalizedString("Notification_ProcessMonitoringEnabled") - : this.GetLocalizedString("Notification_ProcessMonitoringDisabled"); - var type = isEnabled ? NotificationType.Success : NotificationType.Warning; - - var notification = new NotificationModel(title, message, type) - { - Category = "ProcessMonitoring", - SourceService = "ProcessMonitorService", - Priority = NotificationPriority.Normal, - }; - - await this.ShowNotificationAsync(notification); - } - - public async Task ShowCpuAffinityNotificationAsync(string processName, string affinityInfo) - { - var title = this.GetLocalizedString("Notification_CpuAffinityAppliedTitle"); - var message = string.Format( - this.GetLocalizedString("Notification_CpuAffinityAppliedFormat"), - processName, - affinityInfo); - - var notification = new NotificationModel( - title, - message, - NotificationType.CpuAffinity) - { - Category = "CpuAffinity", - SourceService = "ProcessService", - Priority = NotificationPriority.Normal, - }; - - await this.ShowNotificationAsync(notification); - } - - public async Task ShowErrorNotificationAsync(string title, string message, Exception? exception = null) - { - if (!this.settings.EnableErrorNotifications) - { - return; - } - - var fullMessage = exception != null ? $"{message}\n\nError: {exception.Message}" : message; - - var notification = new NotificationModel(title, fullMessage, NotificationType.Error) - { - Category = "Error", - SourceService = "System", - Priority = NotificationPriority.High, - IsPersistent = true, - }; - - await this.ShowNotificationAsync(notification); - } - - public async Task ShowSuccessNotificationAsync(string title, string message) - { - if (!this.settings.EnableSuccessNotifications) - { - return; - } - - var notification = new NotificationModel(title, message, NotificationType.Success) - { - Category = "Success", - SourceService = "System", - Priority = NotificationPriority.Normal, - }; - - await this.ShowNotificationAsync(notification); - } - - public async Task DismissNotificationAsync(string notificationId) - { - var notification = this.notificationHistory.FirstOrDefault(n => n.Id == notificationId); - if (notification != null) - { - this.NotificationDismissed?.Invoke(this, new NotificationEventArgs(notification)); - this.logger.LogDebug("Notification dismissed: {Id}", notificationId); - } - await Task.CompletedTask; - } - - public async Task DismissAllNotificationsAsync() - { - foreach (var notification in this.notificationHistory.ToList()) - { - this.NotificationDismissed?.Invoke(this, new NotificationEventArgs(notification)); - } - this.logger.LogDebug("All notifications dismissed"); - await Task.CompletedTask; - } - - public async Task ClearNotificationHistoryAsync() - { - this.notificationHistory.Clear(); - this.logger.LogInformation("Notification history cleared"); - await Task.CompletedTask; - } - - public int GetUnreadNotificationCount() - { - return this.notificationHistory.Count(n => !n.IsRead); - } - - public async Task MarkAllNotificationsAsReadAsync() - { - foreach (var notification in this.notificationHistory) - { - notification.MarkAsRead(); - } - this.logger.LogDebug("All notifications marked as read"); - await Task.CompletedTask; - } - - public bool AreNotificationsEnabled(NotificationType type) - { - if (!this.settings.EnableNotifications) - { - return false; - } - - if (this.settings.NotificationLevel == NotificationLevelProfile.Silent) - { - return false; - } - - if (this.settings.NotificationLevel == NotificationLevelProfile.WarningsAndErrorsOnly && - type != NotificationType.Warning && - type != NotificationType.Error) - { - return false; - } - - return type switch - { - NotificationType.PowerPlanChange => this.settings.EnablePowerPlanChangeNotifications, - NotificationType.ProcessMonitoring => this.settings.EnableProcessMonitoringNotifications, - NotificationType.Error => this.settings.EnableErrorNotifications, - NotificationType.Success => this.settings.EnableSuccessNotifications, - _ => true, - }; - } - - public void UpdateSettings(ApplicationSettingsModel settings) - { - this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); - this.logger.LogDebug("Notification settings updated"); - } - - private void AddToHistory(NotificationModel notification) - { - if (!this.settings.EnableNotificationHistory) - { - return; - } - - this.notificationHistory.Insert(0, notification); - - // Trim history if it exceeds max items - while (this.notificationHistory.Count > this.settings.MaxNotificationHistoryItems) - { - this.notificationHistory.RemoveAt(this.notificationHistory.Count - 1); - } - } - - private async Task ShowBalloonTipInternalAsync(NotificationModel notification) - { - try - { - // Use the system tray service to show the actual balloon tip - this.systemTrayService.ShowTrayNotification( - notification.Title, - notification.Message, - notification.Type, - notification.DurationMs); - - this.logger.LogDebug("Balloon tip shown via system tray: {Title} - {Message}", notification.Title, notification.Message); - await Task.CompletedTask; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error showing balloon tip"); - } - } - - private async Task ShowToastNotificationInternalAsync(NotificationModel notification) - { - try - { - // Toast notifications would require Windows 10+ and additional setup - // For now, we'll just log it - this.logger.LogDebug("Toast notification: {Title} - {Message}", notification.Title, notification.Message); - await Task.CompletedTask; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error showing toast notification"); - } - } - - private void OnSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) - { - this.UpdateSettings(e.NewSettings); - } - - private string GetLocalizedString(string key) - { - var localized = this.localizationService.GetString(key); - return string.IsNullOrEmpty(localized) ? key : localized; - } - - private string TryGetLocalizedNotificationString(string input) - { - if (string.IsNullOrEmpty(input)) - { - return input; - } - - var key = input switch - { - "Game Boost Activated" => "Notification_GameBoostActivatedTitle", - "Game Boost Deactivated" => "Notification_GameBoostDeactivatedTitle", - "Process Monitor Error" => "Notification_ProcessMonitorErrorTitle", - "Affinity blocked" => "Notification_AffinityBlockedTitle", - "Affinity applied" => "Notification_AffinityAppliedTitle", - "Affinity adjusted" => "Notification_AffinityAdjustedTitle", - "Affinity failed" => "Notification_AffinityFailedTitle", - "Affinity error" => "Notification_AffinityErrorTitle", - "Priority blocked" => "Notification_PriorityBlockedTitle", - "Priority warning" => "Notification_PriorityWarningTitle", - "Priority applied" => "Notification_PriorityAppliedTitle", - "Priority adjusted" => "Notification_PriorityAdjustedTitle", - "Priority error" => "Notification_PriorityErrorTitle", - "Keyboard Shortcut" => "Notification_KeyboardShortcutTitle", - "ThreadPilot Started" => "Notification_ThreadPilotStartedTitle", - "Startup Error" => "Notification_StartupErrorTitle", - "Automation Monitoring Error" => "Notification_AutomationMonitoringErrorTitle", - "Settings Saved" => "Notification_SettingsSavedTitle", - "Settings Saved with Warnings" => "Notification_SettingsSavedWarningsTitle", - "Settings Error" => "Notification_SettingsErrorTitle", - "Test Notification" => "SettingsView_TestNotification", - _ => null, - }; - - if (key != null) - { - var localized = this.GetLocalizedString(key); - if (!string.Equals(localized, key, StringComparison.Ordinal)) - { - return localized; - } - } - - const string GameBoostActivatedPrefix = "Game Boost mode activated for "; - if (input.StartsWith(GameBoostActivatedPrefix, StringComparison.OrdinalIgnoreCase)) - { - var processName = input[GameBoostActivatedPrefix.Length..]; - var format = this.GetLocalizedString("Notification_GameBoostActivatedFormat"); - if (!string.Equals(format, "Notification_GameBoostActivatedFormat", StringComparison.Ordinal)) - { - return string.Format(format, processName); - } - } - - const string GameBoostDeactivatedPrefix = "Game Boost mode deactivated after "; - if (input.StartsWith(GameBoostDeactivatedPrefix, StringComparison.OrdinalIgnoreCase)) - { - var duration = input[GameBoostDeactivatedPrefix.Length..]; - var format = this.GetLocalizedString("Notification_GameBoostDeactivatedFormat"); - if (!string.Equals(format, "Notification_GameBoostDeactivatedFormat", StringComparison.Ordinal)) - { - return string.Format(format, duration); - } - } - - key = input switch - { - "Toggle monitoring shortcut activated" => "Notification_ToggleMonitoringShortcut", - "High Performance power plan shortcut activated" => "Notification_HighPerformanceShortcut", - "Refresh process list shortcut activated" => "Notification_RefreshProcessListShortcut", - "Process monitoring and power plan management is now active" => "Notification_ThreadPilotStartedMessage", - "Failed to start process monitoring manager" => "Notification_ProcessMonitoringStartFailed", - "Application settings have been saved successfully" => "Notification_SettingsSavedMessage", - "Failed to save settings" => "Notification_SettingsSaveFailed", - "This is a test notification to verify your settings are working correctly." => "Notification_TestNotificationMessage", - _ => null, - }; - - if (key != null) - { - var localized = this.GetLocalizedString(key); - if (!string.Equals(localized, key, StringComparison.Ordinal)) - { - return localized; - } - } - - return input; - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - try - { - this.settingsService.SettingsChanged -= this.OnSettingsChanged; - this.disposed = true; - this.logger.LogInformation("Notification service disposed"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error disposing notification service"); - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Linq; + using System.Threading.Tasks; + using System.Windows.Forms; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class NotificationService : INotificationService, IDisposable + { + private const int NotificationDisplayDurationMs = 2000; + + private readonly ILogger logger; + private readonly IApplicationSettingsService settingsService; + private readonly ISystemTrayService systemTrayService; + private readonly ILocalizationService localizationService; + private readonly List notificationHistory; + private ApplicationSettingsModel settings; + private bool disposed = false; + + public event EventHandler? NotificationShown; + + public event EventHandler? NotificationDismissed; + + public event EventHandler? NotificationActionClicked; + + public IReadOnlyList NotificationHistory => this.notificationHistory.AsReadOnly(); + + public NotificationService( + ILogger logger, + IApplicationSettingsService settingsService, + ISystemTrayService systemTrayService, + ILocalizationService localizationService) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.systemTrayService = systemTrayService ?? throw new ArgumentNullException(nameof(systemTrayService)); + this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); + + this.notificationHistory = new List(); + this.settings = this.settingsService.Settings; + + // Subscribe to settings changes + this.settingsService.SettingsChanged += this.OnSettingsChanged; + } + + public async Task InitializeAsync() + { + try + { + this.logger.LogInformation("Initializing notification service"); + + // Load settings + this.settings = this.settingsService.Settings; + + this.logger.LogInformation("Notification service initialized successfully"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to initialize notification service"); + throw; + } + } + + public async Task ShowNotificationAsync(string title, string message, NotificationType type = NotificationType.Information) + { + var notification = new NotificationModel(title, message, type) + { + DurationMs = NotificationDisplayDurationMs, + Category = "General", + SourceService = "NotificationService", + }; + + await this.ShowNotificationAsync(notification); + } + + public async Task ShowNotificationAsync(NotificationModel notification) + { + if (notification == null) + { + return; + } + + try + { + notification.Title = this.TryGetLocalizedNotificationString(notification.Title); + notification.Message = this.TryGetLocalizedNotificationString(notification.Message); + + // Check if notifications are enabled + if (!this.AreNotificationsEnabled(notification.Type)) + { + this.logger.LogDebug("Notifications disabled for type {Type}", notification.Type); + return; + } + + // Add to history + notification.DurationMs = NotificationDisplayDurationMs; + this.AddToHistory(notification); + + // Show balloon tip if enabled + if (this.settings.EnableBalloonNotifications) + { + await this.ShowBalloonTipInternalAsync(notification); + } + + // Show toast notification if enabled and available + if (this.settings.EnableToastNotifications) + { + await this.ShowToastNotificationInternalAsync(notification); + } + + // Fire event + this.NotificationShown?.Invoke(this, new NotificationEventArgs(notification)); + + this.logger.LogDebug("Notification shown: {Title}", notification.Title); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error showing notification: {Title}", notification.Title); + } + } + + public async Task ShowBalloonTipAsync(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000) + { + var notification = new NotificationModel(title, message, type) + { + DurationMs = NotificationDisplayDurationMs, + Category = "BalloonTip", + SourceService = "NotificationService", + }; + + if (this.settings.EnableBalloonNotifications && this.AreNotificationsEnabled(type)) + { + this.AddToHistory(notification); + await this.ShowBalloonTipInternalAsync(notification); + this.NotificationShown?.Invoke(this, new NotificationEventArgs(notification)); + } + } + + public async Task ShowToastNotificationAsync(string title, string message, NotificationType type = NotificationType.Information) + { + var notification = new NotificationModel(title, message, type) + { + Category = "Toast", + SourceService = "NotificationService", + }; + + if (this.settings.EnableToastNotifications && this.AreNotificationsEnabled(type)) + { + this.AddToHistory(notification); + await this.ShowToastNotificationInternalAsync(notification); + this.NotificationShown?.Invoke(this, new NotificationEventArgs(notification)); + } + } + + public async Task ShowPowerPlanChangeNotificationAsync(string oldPlan, string newPlan, string processName = "") + { + if (!this.settings.EnablePowerPlanChangeNotifications) + { + return; + } + + var title = this.GetLocalizedString("Notification_PowerPlanChangedTitle"); + var message = string.IsNullOrEmpty(processName) + ? string.Format( + this.GetLocalizedString("Notification_PowerPlanChangedFormat"), + oldPlan, + newPlan) + : string.Format( + this.GetLocalizedString("Notification_PowerPlanChangedProcessFormat"), + newPlan, + processName); + + var notification = new NotificationModel(title, message, NotificationType.PowerPlanChange) + { + Category = "PowerPlan", + SourceService = "PowerPlanService", + Priority = NotificationPriority.Normal, + }; + + await this.ShowNotificationAsync(notification); + } + + public async Task ShowProcessMonitoringNotificationAsync(string message, bool isEnabled) + { + if (!this.settings.EnableProcessMonitoringNotifications) + { + return; + } + + var title = isEnabled + ? this.GetLocalizedString("Notification_ProcessMonitoringEnabled") + : this.GetLocalizedString("Notification_ProcessMonitoringDisabled"); + var type = isEnabled ? NotificationType.Success : NotificationType.Warning; + + var notification = new NotificationModel(title, message, type) + { + Category = "ProcessMonitoring", + SourceService = "ProcessMonitorService", + Priority = NotificationPriority.Normal, + }; + + await this.ShowNotificationAsync(notification); + } + + public async Task ShowCpuAffinityNotificationAsync(string processName, string affinityInfo) + { + var title = this.GetLocalizedString("Notification_CpuAffinityAppliedTitle"); + var message = string.Format( + this.GetLocalizedString("Notification_CpuAffinityAppliedFormat"), + processName, + affinityInfo); + + var notification = new NotificationModel( + title, + message, + NotificationType.CpuAffinity) + { + Category = "CpuAffinity", + SourceService = "ProcessService", + Priority = NotificationPriority.Normal, + }; + + await this.ShowNotificationAsync(notification); + } + + public async Task ShowErrorNotificationAsync(string title, string message, Exception? exception = null) + { + if (!this.settings.EnableErrorNotifications) + { + return; + } + + var fullMessage = exception != null ? $"{message}\n\nError: {exception.Message}" : message; + + var notification = new NotificationModel(title, fullMessage, NotificationType.Error) + { + Category = "Error", + SourceService = "System", + Priority = NotificationPriority.High, + IsPersistent = true, + }; + + await this.ShowNotificationAsync(notification); + } + + public async Task ShowSuccessNotificationAsync(string title, string message) + { + if (!this.settings.EnableSuccessNotifications) + { + return; + } + + var notification = new NotificationModel(title, message, NotificationType.Success) + { + Category = "Success", + SourceService = "System", + Priority = NotificationPriority.Normal, + }; + + await this.ShowNotificationAsync(notification); + } + + public async Task DismissNotificationAsync(string notificationId) + { + var notification = this.notificationHistory.FirstOrDefault(n => n.Id == notificationId); + if (notification != null) + { + this.NotificationDismissed?.Invoke(this, new NotificationEventArgs(notification)); + this.logger.LogDebug("Notification dismissed: {Id}", notificationId); + } + await Task.CompletedTask; + } + + public async Task DismissAllNotificationsAsync() + { + foreach (var notification in this.notificationHistory.ToList()) + { + this.NotificationDismissed?.Invoke(this, new NotificationEventArgs(notification)); + } + this.logger.LogDebug("All notifications dismissed"); + await Task.CompletedTask; + } + + public async Task ClearNotificationHistoryAsync() + { + this.notificationHistory.Clear(); + this.logger.LogInformation("Notification history cleared"); + await Task.CompletedTask; + } + + public int GetUnreadNotificationCount() + { + return this.notificationHistory.Count(n => !n.IsRead); + } + + public async Task MarkAllNotificationsAsReadAsync() + { + foreach (var notification in this.notificationHistory) + { + notification.MarkAsRead(); + } + this.logger.LogDebug("All notifications marked as read"); + await Task.CompletedTask; + } + + public bool AreNotificationsEnabled(NotificationType type) + { + if (!this.settings.EnableNotifications) + { + return false; + } + + if (this.settings.NotificationLevel == NotificationLevelProfile.Silent) + { + return false; + } + + if (this.settings.NotificationLevel == NotificationLevelProfile.WarningsAndErrorsOnly && + type != NotificationType.Warning && + type != NotificationType.Error) + { + return false; + } + + return type switch + { + NotificationType.PowerPlanChange => this.settings.EnablePowerPlanChangeNotifications, + NotificationType.ProcessMonitoring => this.settings.EnableProcessMonitoringNotifications, + NotificationType.Error => this.settings.EnableErrorNotifications, + NotificationType.Success => this.settings.EnableSuccessNotifications, + _ => true, + }; + } + + public void UpdateSettings(ApplicationSettingsModel settings) + { + this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); + this.logger.LogDebug("Notification settings updated"); + } + + private void AddToHistory(NotificationModel notification) + { + if (!this.settings.EnableNotificationHistory) + { + return; + } + + this.notificationHistory.Insert(0, notification); + + // Trim history if it exceeds max items + while (this.notificationHistory.Count > this.settings.MaxNotificationHistoryItems) + { + this.notificationHistory.RemoveAt(this.notificationHistory.Count - 1); + } + } + + private async Task ShowBalloonTipInternalAsync(NotificationModel notification) + { + try + { + // Use the system tray service to show the actual balloon tip + this.systemTrayService.ShowTrayNotification( + notification.Title, + notification.Message, + notification.Type, + notification.DurationMs); + + this.logger.LogDebug("Balloon tip shown via system tray: {Title} - {Message}", notification.Title, notification.Message); + await Task.CompletedTask; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error showing balloon tip"); + } + } + + private async Task ShowToastNotificationInternalAsync(NotificationModel notification) + { + try + { + // Toast notifications would require Windows 10+ and additional setup + // For now, we'll just log it + this.logger.LogDebug("Toast notification: {Title} - {Message}", notification.Title, notification.Message); + await Task.CompletedTask; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error showing toast notification"); + } + } + + private void OnSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) + { + this.UpdateSettings(e.NewSettings); + } + + private string GetLocalizedString(string key) + { + var localized = this.localizationService.GetString(key); + return string.IsNullOrEmpty(localized) ? key : localized; + } + + private string TryGetLocalizedNotificationString(string input) + { + if (string.IsNullOrEmpty(input)) + { + return input; + } + + var key = input switch + { + "Game Boost Activated" => "Notification_GameBoostActivatedTitle", + "Game Boost Deactivated" => "Notification_GameBoostDeactivatedTitle", + "Process Monitor Error" => "Notification_ProcessMonitorErrorTitle", + "Affinity blocked" => "Notification_AffinityBlockedTitle", + "Affinity applied" => "Notification_AffinityAppliedTitle", + "Affinity adjusted" => "Notification_AffinityAdjustedTitle", + "Affinity failed" => "Notification_AffinityFailedTitle", + "Affinity error" => "Notification_AffinityErrorTitle", + "Priority blocked" => "Notification_PriorityBlockedTitle", + "Priority warning" => "Notification_PriorityWarningTitle", + "Priority applied" => "Notification_PriorityAppliedTitle", + "Priority adjusted" => "Notification_PriorityAdjustedTitle", + "Priority error" => "Notification_PriorityErrorTitle", + "Keyboard Shortcut" => "Notification_KeyboardShortcutTitle", + "ThreadPilot Started" => "Notification_ThreadPilotStartedTitle", + "Startup Error" => "Notification_StartupErrorTitle", + "Automation Monitoring Error" => "Notification_AutomationMonitoringErrorTitle", + "Settings Saved" => "Notification_SettingsSavedTitle", + "Settings Saved with Warnings" => "Notification_SettingsSavedWarningsTitle", + "Settings Error" => "Notification_SettingsErrorTitle", + "Test Notification" => "SettingsView_TestNotification", + _ => null, + }; + + if (key != null) + { + var localized = this.GetLocalizedString(key); + if (!string.Equals(localized, key, StringComparison.Ordinal)) + { + return localized; + } + } + + const string GameBoostActivatedPrefix = "Game Boost mode activated for "; + if (input.StartsWith(GameBoostActivatedPrefix, StringComparison.OrdinalIgnoreCase)) + { + var processName = input[GameBoostActivatedPrefix.Length..]; + var format = this.GetLocalizedString("Notification_GameBoostActivatedFormat"); + if (!string.Equals(format, "Notification_GameBoostActivatedFormat", StringComparison.Ordinal)) + { + return string.Format(format, processName); + } + } + + const string GameBoostDeactivatedPrefix = "Game Boost mode deactivated after "; + if (input.StartsWith(GameBoostDeactivatedPrefix, StringComparison.OrdinalIgnoreCase)) + { + var duration = input[GameBoostDeactivatedPrefix.Length..]; + var format = this.GetLocalizedString("Notification_GameBoostDeactivatedFormat"); + if (!string.Equals(format, "Notification_GameBoostDeactivatedFormat", StringComparison.Ordinal)) + { + return string.Format(format, duration); + } + } + + key = input switch + { + "Toggle monitoring shortcut activated" => "Notification_ToggleMonitoringShortcut", + "High Performance power plan shortcut activated" => "Notification_HighPerformanceShortcut", + "Refresh process list shortcut activated" => "Notification_RefreshProcessListShortcut", + "Process monitoring and power plan management is now active" => "Notification_ThreadPilotStartedMessage", + "Failed to start process monitoring manager" => "Notification_ProcessMonitoringStartFailed", + "Application settings have been saved successfully" => "Notification_SettingsSavedMessage", + "Failed to save settings" => "Notification_SettingsSaveFailed", + "This is a test notification to verify your settings are working correctly." => "Notification_TestNotificationMessage", + _ => null, + }; + + if (key != null) + { + var localized = this.GetLocalizedString(key); + if (!string.Equals(localized, key, StringComparison.Ordinal)) + { + return localized; + } + } + + return input; + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + try + { + this.settingsService.SettingsChanged -= this.OnSettingsChanged; + this.disposed = true; + this.logger.LogInformation("Notification service disposed"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error disposing notification service"); + } + } + } +} diff --git a/Services/PassiveProcessErrorThrottle.cs b/Services/PassiveProcessErrorThrottle.cs index 75ab89b..77e6102 100644 --- a/Services/PassiveProcessErrorThrottle.cs +++ b/Services/PassiveProcessErrorThrottle.cs @@ -1,70 +1,54 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - - public enum PassiveProcessErrorKind - { - AccessDenied, - Terminated, - Unknown, - } - - public interface IPassiveProcessErrorThrottle - { - bool ShouldLog(int processId, PassiveProcessErrorKind errorKind); - } - - public sealed class PassiveProcessErrorThrottle : IPassiveProcessErrorThrottle - { - private readonly ConcurrentDictionary<(int ProcessId, PassiveProcessErrorKind ErrorKind), DateTimeOffset> lastLogByError = new(); - private readonly Func nowProvider; - private readonly TimeSpan ttl; - - public PassiveProcessErrorThrottle() - : this(TimeSpan.FromMinutes(5), () => DateTimeOffset.UtcNow) - { - } - - public PassiveProcessErrorThrottle(TimeSpan ttl, Func nowProvider) - { - if (ttl <= TimeSpan.Zero) - { - throw new ArgumentOutOfRangeException(nameof(ttl), "TTL must be greater than zero."); - } - - this.ttl = ttl; - this.nowProvider = nowProvider ?? throw new ArgumentNullException(nameof(nowProvider)); - } - - public bool ShouldLog(int processId, PassiveProcessErrorKind errorKind) - { - var now = this.nowProvider(); - var key = (processId, errorKind); - - if (this.lastLogByError.TryGetValue(key, out var lastLog) && now - lastLog < this.ttl) - { - return false; - } - - this.lastLogByError[key] = now; - return true; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + + public enum PassiveProcessErrorKind + { + AccessDenied, + Terminated, + Unknown, + } + + public interface IPassiveProcessErrorThrottle + { + bool ShouldLog(int processId, PassiveProcessErrorKind errorKind); + } + + public sealed class PassiveProcessErrorThrottle : IPassiveProcessErrorThrottle + { + private readonly ConcurrentDictionary<(int ProcessId, PassiveProcessErrorKind ErrorKind), DateTimeOffset> lastLogByError = new(); + private readonly Func nowProvider; + private readonly TimeSpan ttl; + + public PassiveProcessErrorThrottle() + : this(TimeSpan.FromMinutes(5), () => DateTimeOffset.UtcNow) + { + } + + public PassiveProcessErrorThrottle(TimeSpan ttl, Func nowProvider) + { + if (ttl <= TimeSpan.Zero) + { + throw new ArgumentOutOfRangeException(nameof(ttl), "TTL must be greater than zero."); + } + + this.ttl = ttl; + this.nowProvider = nowProvider ?? throw new ArgumentNullException(nameof(nowProvider)); + } + + public bool ShouldLog(int processId, PassiveProcessErrorKind errorKind) + { + var now = this.nowProvider(); + var key = (processId, errorKind); + + if (this.lastLogByError.TryGetValue(key, out var lastLog) && now - lastLog < this.ttl) + { + return false; + } + + this.lastLogByError[key] = now; + return true; + } + } +} diff --git a/Services/PerformanceMonitoringService.cs b/Services/PerformanceMonitoringService.cs index 1bd2896..7f7d2ef 100644 --- a/Services/PerformanceMonitoringService.cs +++ b/Services/PerformanceMonitoringService.cs @@ -1,741 +1,722 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - using System.Management; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Service for real-time performance monitoring. - /// - public class PerformanceMonitoringService : IPerformanceMonitoringService, IDisposable - { - private readonly ILogger logger; - private readonly IProcessService processService; - private readonly ICpuTopologyService cpuTopologyService; - private readonly IApplicationSettingsService settingsService; - private readonly IEnhancedLoggingService enhancedLoggingService; - private readonly Queue historicalData; - private readonly object counterInitializationLock = new(); - private PerformanceCounter? totalCpuCounter; - private PerformanceCounter? memoryCounter; - private readonly List cpuCoreCounters; - private System.Threading.Timer? monitoringTimer; - private readonly object totalMemoryCacheLock = new(); - private readonly TimeSpan totalPhysicalMemoryCacheDuration = TimeSpan.FromMinutes(5); - private long cachedTotalPhysicalMemory; - private DateTime totalPhysicalMemoryCacheUtc = DateTime.MinValue; - private readonly object processCountCacheLock = new(); - private readonly TimeSpan processCountCacheDuration = TimeSpan.FromSeconds(5); - private int cachedProcessCount; - private DateTime processCountCacheUtc = DateTime.MinValue; - private readonly object runtimeTelemetryLock = new(); - private int isMonitoringTickInProgress; - private bool runtimeTelemetryInitialized; - private int previousGen0Collections; - private int previousGen1Collections; - private int previousGen2Collections; - private long previousTotalAllocatedBytes; - private double maxObservedGcPauseMs; - private DateTime lastGcPauseAlertUtc = DateTime.MinValue; - private bool isMonitoring; - private bool disposed; - - private static readonly TimeSpan GcPauseAlertCooldown = TimeSpan.FromMinutes(1); - private static readonly TimeSpan WmiQueryTimeout = TimeSpan.FromSeconds(5); - private const int HistoricalDataCapacity = 1000; - private const double Gen2PauseAlertThresholdMs = 100; - - public event EventHandler? MetricsUpdated; - - public PerformanceMonitoringService( - ILogger logger, - IProcessService processService, - ICpuTopologyService cpuTopologyService, - IApplicationSettingsService settingsService, - IEnhancedLoggingService enhancedLoggingService) - { - this.logger = logger; - this.processService = processService; - this.cpuTopologyService = cpuTopologyService; - this.settingsService = settingsService; - this.enhancedLoggingService = enhancedLoggingService; - this.historicalData = new Queue(HistoricalDataCapacity); - this.cpuCoreCounters = new List(); - } - - public async Task GetSystemMetricsAsync(bool lightweight = false) - { - try - { - var metrics = new SystemPerformanceMetrics - { - Timestamp = DateTime.UtcNow, - TotalCpuUsage = await this.GetTotalCpuUsageAsync().ConfigureAwait(false), - AvailableMemory = await this.GetAvailableMemoryAsync().ConfigureAwait(false), - }; - - // Calculate memory percentage - metrics.TotalMemory = await this.GetTotalPhysicalMemoryAsync().ConfigureAwait(false); - metrics.TotalMemoryUsage = Math.Max(0, metrics.TotalMemory - metrics.AvailableMemory); - metrics.MemoryUsagePercentage = metrics.TotalMemory > 0 - ? ((double)(metrics.TotalMemory - metrics.AvailableMemory) / metrics.TotalMemory) * 100 - : 0; - - this.PopulateRuntimeTelemetry(metrics); - - if (!lightweight) - { - metrics.CpuCoreUsages = await this.GetCpuCoreUsageAsync().ConfigureAwait(false); - metrics.ActiveProcessCount = await this.GetActiveProcessCountAsync().ConfigureAwait(false); - - // Get top processes - var topCpuProcesses = await this.GetTopCpuProcessesAsync(1).ConfigureAwait(false); - metrics.TopCpuProcess = topCpuProcesses.FirstOrDefault(); - - var topMemoryProcesses = await this.GetTopMemoryProcessesAsync(1).ConfigureAwait(false); - metrics.TopMemoryProcess = topMemoryProcesses.FirstOrDefault(); - - // Store in historical data - if (this.historicalData.Count >= HistoricalDataCapacity) - { - this.historicalData.Dequeue(); - } - - this.historicalData.Enqueue(metrics); - } - - return metrics; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting system metrics"); - return new SystemPerformanceMetrics(); - } - } - - public async Task> GetCpuCoreUsageAsync() - { - var coreUsages = new List(); - - try - { - this.EnsureCpuCoreCountersInitialized(); - var topology = await this.cpuTopologyService.DetectTopologyAsync().ConfigureAwait(false); - - for (int i = 0; i < this.cpuCoreCounters.Count; i++) - { - var counter = this.cpuCoreCounters[i]; - var usage = counter.NextValue(); - - var coreUsage = new CpuCoreUsage - { - CoreId = i, - CoreName = $"Core {i}", - Usage = usage, - CoreType = DetermineCoreType(i, topology), - IsHyperThreaded = IsHyperThreadedCore(i, topology), - PhysicalCoreId = GetPhysicalCoreId(i, topology), - }; - - coreUsages.Add(coreUsage); - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting CPU core usage"); - } - - return coreUsages; - } - - public async Task GetMemoryUsageAsync() - { - try - { - this.EnsureSystemCountersInitialized(); - var memoryInfo = new MemoryUsageInfo(); - - // Get physical memory info - var scope = CreateCimv2ScopeWithTimeout(); - using var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")); - foreach (var obj in searcher.Get()) - { - memoryInfo.TotalPhysicalMemory = Convert.ToInt64(obj["TotalPhysicalMemory"]); - } - - // Get available memory - memoryInfo.AvailablePhysicalMemory = (long)(this.memoryCounter?.NextValue() ?? 0) * 1024 * 1024; // Convert MB to bytes - memoryInfo.UsedPhysicalMemory = memoryInfo.TotalPhysicalMemory - memoryInfo.AvailablePhysicalMemory; - memoryInfo.PhysicalMemoryUsagePercentage = memoryInfo.TotalPhysicalMemory > 0 - ? ((double)memoryInfo.UsedPhysicalMemory / memoryInfo.TotalPhysicalMemory) * 100 - : 0; - - // Get virtual memory info - using var memSearcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT TotalVirtualMemorySize, FreeVirtualMemory FROM Win32_OperatingSystem")); - foreach (var obj in memSearcher.Get()) - { - memoryInfo.TotalVirtualMemory = Convert.ToInt64(obj["TotalVirtualMemorySize"]) * 1024; // Convert KB to bytes - memoryInfo.AvailableVirtualMemory = Convert.ToInt64(obj["FreeVirtualMemory"]) * 1024; - } - - memoryInfo.UsedVirtualMemory = memoryInfo.TotalVirtualMemory - memoryInfo.AvailableVirtualMemory; - memoryInfo.VirtualMemoryUsagePercentage = memoryInfo.TotalVirtualMemory > 0 - ? ((double)memoryInfo.UsedVirtualMemory / memoryInfo.TotalVirtualMemory) * 100 - : 0; - - return memoryInfo; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting memory usage"); - return new MemoryUsageInfo(); - } - } - - public async Task> GetTopCpuProcessesAsync(int count = 10) - { - try - { - var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); - return processes - .OrderByDescending(p => p.CpuUsage) - .Take(count) - .Select(p => new ProcessPerformanceInfo - { - ProcessId = p.ProcessId, - ProcessName = p.Name, - WindowTitle = p.MainWindowTitle, - CpuUsage = p.CpuUsage, - MemoryUsage = p.MemoryUsage, - ThreadCount = GetThreadCountSafe(p.ProcessId), - ExecutablePath = p.ExecutablePath ?? string.Empty, - Priority = p.Priority.ToString(), - }) - .ToList(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting top CPU processes"); - return new List(); - } - } - - public async Task> GetTopMemoryProcessesAsync(int count = 10) - { - try - { - var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); - return processes - .OrderByDescending(p => p.MemoryUsage) - .Take(count) - .Select(p => new ProcessPerformanceInfo - { - ProcessId = p.ProcessId, - ProcessName = p.Name, - WindowTitle = p.MainWindowTitle, - CpuUsage = p.CpuUsage, - MemoryUsage = p.MemoryUsage, - ThreadCount = GetThreadCountSafe(p.ProcessId), - ExecutablePath = p.ExecutablePath ?? string.Empty, - Priority = p.Priority.ToString(), - }) - .ToList(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting top memory processes"); - return new List(); - } - } - - public async Task StartMonitoringAsync() - { - if (this.isMonitoring) - { - return; - } - - this.logger.LogInformation("Starting performance monitoring"); - this.isMonitoring = true; - Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); - - // PERFORMANCE OPTIMIZATION: Increased interval from 1s to 2s for better performance - this.monitoringTimer = new System.Threading.Timer( - async _ => - { - if (Interlocked.Exchange(ref this.isMonitoringTickInProgress, 1) == 1) - { - return; - } - - try - { - var metrics = await this.GetSystemMetricsAsync().ConfigureAwait(false); - await this.EmitGcDiagnosticsIfNeededAsync(metrics).ConfigureAwait(false); - this.MetricsUpdated?.Invoke(this, new PerformanceMetricsUpdatedEventArgs(metrics)); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error during performance monitoring update"); - } - finally - { - Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); - } - }, null, TimeSpan.Zero, TimeSpan.FromSeconds(2)); - } - - public Task StopMonitoringAsync() - { - if (!this.isMonitoring) - { - return Task.CompletedTask; - } - - this.logger.LogInformation("Stopping performance monitoring"); - this.isMonitoring = false; - Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); - - this.monitoringTimer?.Dispose(); - this.monitoringTimer = null; - return Task.CompletedTask; - } - - public Task> GetHistoricalDataAsync(TimeSpan duration) - { - var cutoffTime = DateTime.UtcNow - duration; - var data = this.historicalData.Where(m => m.Timestamp >= cutoffTime).ToList(); - return Task.FromResult(data); - } - - public Task ClearHistoricalDataAsync() - { - this.historicalData.Clear(); - this.logger.LogInformation("Historical performance data cleared"); - return Task.CompletedTask; - } - - private void InitializeCpuCoreCounters() - { - var tempCounters = new List(); - - try - { - var coreCount = Environment.ProcessorCount; - for (int i = 0; i < coreCount; i++) - { - tempCounters.Add(this.CreatePrimedCounter("Processor", "% Processor Time", i.ToString())); - } - - this.cpuCoreCounters.Clear(); - this.cpuCoreCounters.AddRange(tempCounters); - - this.logger.LogInformation("Initialized {CoreCount} CPU core performance counters", coreCount); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error initializing CPU core counters"); - foreach (var counter in tempCounters) - { - try - { - counter.Dispose(); - } - catch - { - // Best effort cleanup for partially initialized counters. - } - } - - throw; - } - } - - private void EnsureSystemCountersInitialized() - { - if (this.totalCpuCounter != null && this.memoryCounter != null) - { - return; - } - - lock (this.counterInitializationLock) - { - if (this.totalCpuCounter != null && this.memoryCounter != null) - { - return; - } - - PerformanceCounter? totalCpu = null; - PerformanceCounter? memory = null; - - try - { - totalCpu = this.CreatePrimedCounter("Processor", "% Processor Time", "_Total"); - memory = this.CreatePrimedCounter("Memory", "Available MBytes"); - - this.totalCpuCounter = totalCpu; - this.memoryCounter = memory; - } - catch - { - totalCpu?.Dispose(); - memory?.Dispose(); - throw; - } - } - } - - private void EnsureCpuCoreCountersInitialized() - { - if (this.cpuCoreCounters.Count > 0) - { - return; - } - - lock (this.counterInitializationLock) - { - if (this.cpuCoreCounters.Count > 0) - { - return; - } - - this.InitializeCpuCoreCounters(); - } - } - - private PerformanceCounter CreatePrimedCounter(string categoryName, string counterName, string? instanceName = null) - { - try - { - var counter = string.IsNullOrWhiteSpace(instanceName) - ? new PerformanceCounter(categoryName, counterName) - : new PerformanceCounter(categoryName, counterName, instanceName); - - _ = counter.NextValue(); - return counter; - } - catch (Exception ex) - { - this.logger.LogError( - ex, - "Failed to initialize PerformanceCounter category '{Category}' counter '{Counter}' instance '{Instance}'", - categoryName, - counterName, - instanceName ?? ""); - throw; - } - } - - private async Task GetTotalCpuUsageAsync() - { - try - { - this.EnsureSystemCountersInitialized(); - return this.totalCpuCounter?.NextValue() ?? 0; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting total CPU usage"); - return 0; - } - } - - private async Task GetAvailableMemoryAsync() - { - try - { - this.EnsureSystemCountersInitialized(); - return (long)(this.memoryCounter?.NextValue() ?? 0) * 1024 * 1024; // Convert MB to bytes - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting available memory"); - return 0; - } - } - - private async Task GetTotalPhysicalMemoryAsync() - { - var now = DateTime.UtcNow; - - lock (this.totalMemoryCacheLock) - { - if (this.cachedTotalPhysicalMemory > 0 && - (now - this.totalPhysicalMemoryCacheUtc) < this.totalPhysicalMemoryCacheDuration) - { - return this.cachedTotalPhysicalMemory; - } - } - - try - { - var scope = CreateCimv2ScopeWithTimeout(); - using var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")); - foreach (var obj in searcher.Get()) - { - var totalMemory = Convert.ToInt64(obj["TotalPhysicalMemory"]); - - lock (this.totalMemoryCacheLock) - { - this.cachedTotalPhysicalMemory = totalMemory; - this.totalPhysicalMemoryCacheUtc = DateTime.UtcNow; - } - - return totalMemory; - } - - return 0; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting total physical memory"); - return 0; - } - } - - private async Task GetActiveProcessCountAsync() - { - var now = DateTime.UtcNow; - lock (this.processCountCacheLock) - { - if ((now - this.processCountCacheUtc) < this.processCountCacheDuration) - { - return this.cachedProcessCount; - } - } - - try - { - var scope = CreateCimv2ScopeWithTimeout(); - using var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT Count(*) AS Count FROM Win32_Process")); - var result = searcher.Get().Cast().FirstOrDefault(); - var countValue = result?["Count"]; - var count = countValue != null ? Convert.ToInt32(countValue) : 0; - - lock (this.processCountCacheLock) - { - this.cachedProcessCount = count; - this.processCountCacheUtc = now; - } - - return count; - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to read process count via WMI, falling back to Process.GetProcesses"); - return Process.GetProcesses().Length; - } - } - - private static ManagementScope CreateCimv2ScopeWithTimeout() - { - var options = new ConnectionOptions { Timeout = WmiQueryTimeout }; - var scope = new ManagementScope(@"\\.\root\cimv2", options); - scope.Connect(); - return scope; - } - - private static int GetThreadCountSafe(int processId) - { - try - { - using var process = Process.GetProcessById(processId); - return process.Threads.Count; - } - catch - { - return 0; - } - } - - private void PopulateRuntimeTelemetry(SystemPerformanceMetrics metrics) - { - try - { - var gen0Collections = GC.CollectionCount(0); - var gen1Collections = GC.CollectionCount(1); - var gen2Collections = GC.CollectionCount(2); - var totalAllocatedBytes = GC.GetTotalAllocatedBytes(); - var gcInfo = GC.GetGCMemoryInfo(); - var lastGcPauseMs = GetLastGcPauseMilliseconds(gcInfo); - - metrics.Gen0Collections = gen0Collections; - metrics.Gen1Collections = gen1Collections; - metrics.Gen2Collections = gen2Collections; - metrics.TotalAllocatedBytes = totalAllocatedBytes; - metrics.ManagedHeapSizeBytes = gcInfo.HeapSizeBytes; - metrics.GcCommittedBytes = gcInfo.TotalCommittedBytes; - metrics.LastGcPauseMs = lastGcPauseMs; - - lock (this.runtimeTelemetryLock) - { - if (this.runtimeTelemetryInitialized) - { - metrics.Gen0CollectionsDelta = Math.Max(0, gen0Collections - this.previousGen0Collections); - metrics.Gen1CollectionsDelta = Math.Max(0, gen1Collections - this.previousGen1Collections); - metrics.Gen2CollectionsDelta = Math.Max(0, gen2Collections - this.previousGen2Collections); - metrics.AllocatedBytesDelta = Math.Max(0, totalAllocatedBytes - this.previousTotalAllocatedBytes); - } - else - { - metrics.Gen0CollectionsDelta = 0; - metrics.Gen1CollectionsDelta = 0; - metrics.Gen2CollectionsDelta = 0; - metrics.AllocatedBytesDelta = 0; - this.runtimeTelemetryInitialized = true; - } - - this.previousGen0Collections = gen0Collections; - this.previousGen1Collections = gen1Collections; - this.previousGen2Collections = gen2Collections; - this.previousTotalAllocatedBytes = totalAllocatedBytes; - - this.maxObservedGcPauseMs = Math.Max(this.maxObservedGcPauseMs, lastGcPauseMs); - metrics.MaxGcPauseMs = this.maxObservedGcPauseMs; - } - - using var currentProcess = Process.GetCurrentProcess(); - metrics.HandleCount = currentProcess.HandleCount; - metrics.ProcessWorkingSetBytes = currentProcess.WorkingSet64; - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to collect runtime GC telemetry sample"); - } - } - - private async Task EmitGcDiagnosticsIfNeededAsync(SystemPerformanceMetrics metrics) - { - try - { - if (!this.settingsService.Settings.EnablePerformanceCounters) - { - return; - } - - if (metrics.Gen2CollectionsDelta <= 0 || metrics.LastGcPauseMs < Gen2PauseAlertThresholdMs) - { - return; - } - - var now = DateTime.UtcNow; - if ((now - this.lastGcPauseAlertUtc) < GcPauseAlertCooldown) - { - return; - } - - this.lastGcPauseAlertUtc = now; - - this.logger.LogWarning( - "Gen2 GC pause alert: LastPauseMs={LastPauseMs}, Gen2Delta={Gen2Delta}, HeapBytes={HeapBytes}, AllocDeltaBytes={AllocDeltaBytes}", - metrics.LastGcPauseMs, - metrics.Gen2CollectionsDelta, - metrics.ManagedHeapSizeBytes, - metrics.AllocatedBytesDelta); - - await this.enhancedLoggingService.LogSystemEventAsync( - LogEventTypes.Performance.SlowOperation, - $"Gen2 GC pause {metrics.LastGcPauseMs:F2}ms (delta={metrics.Gen2CollectionsDelta}, heap={metrics.ManagedHeapSizeBytes} bytes)", - LogLevel.Warning).ConfigureAwait(false); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to emit GC diagnostics alert"); - } - } - - private static double GetLastGcPauseMilliseconds(GCMemoryInfo gcInfo) - { - var pauseDurations = gcInfo.PauseDurations; - if (pauseDurations.Length == 0) - { - return 0; - } - - return pauseDurations[pauseDurations.Length - 1].TotalMilliseconds; - } - - private static string DetermineCoreType(int coreId, CpuTopologyModel? topology) - { - if (topology?.HasIntelHybrid == true) - { - // Intel hybrid architecture - if (coreId < topology.PerformanceCores.Count()) - { - return "P-Core"; - } - else - { - return "E-Core"; - } - } - - return "Standard"; - } - - private static bool IsHyperThreadedCore(int coreId, CpuTopologyModel? topology) - { - if (topology?.HasHyperThreading != true) - { - return false; - } - - // Simplified logic - in reality this would be more complex - return coreId >= topology.TotalPhysicalCores; - } - - private static int GetPhysicalCoreId(int coreId, CpuTopologyModel? topology) - { - if (topology?.HasHyperThreading == true) - { - return coreId / 2; // Simplified - assumes 2 threads per core - } - - return coreId; - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - this.monitoringTimer?.Dispose(); - Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); - this.totalCpuCounter?.Dispose(); - this.memoryCounter?.Dispose(); - - foreach (var counter in this.cpuCoreCounters) - { - counter?.Dispose(); - } - - this.cpuCoreCounters.Clear(); - this.disposed = true; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.Linq; + using System.Management; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class PerformanceMonitoringService : IPerformanceMonitoringService, IDisposable + { + private readonly ILogger logger; + private readonly IProcessService processService; + private readonly ICpuTopologyService cpuTopologyService; + private readonly IApplicationSettingsService settingsService; + private readonly IEnhancedLoggingService enhancedLoggingService; + private readonly Queue historicalData; + private readonly object counterInitializationLock = new(); + private PerformanceCounter? totalCpuCounter; + private PerformanceCounter? memoryCounter; + private readonly List cpuCoreCounters; + private System.Threading.Timer? monitoringTimer; + private readonly object totalMemoryCacheLock = new(); + private readonly TimeSpan totalPhysicalMemoryCacheDuration = TimeSpan.FromMinutes(5); + private long cachedTotalPhysicalMemory; + private DateTime totalPhysicalMemoryCacheUtc = DateTime.MinValue; + private readonly object processCountCacheLock = new(); + private readonly TimeSpan processCountCacheDuration = TimeSpan.FromSeconds(5); + private int cachedProcessCount; + private DateTime processCountCacheUtc = DateTime.MinValue; + private readonly object runtimeTelemetryLock = new(); + private int isMonitoringTickInProgress; + private bool runtimeTelemetryInitialized; + private int previousGen0Collections; + private int previousGen1Collections; + private int previousGen2Collections; + private long previousTotalAllocatedBytes; + private double maxObservedGcPauseMs; + private DateTime lastGcPauseAlertUtc = DateTime.MinValue; + private bool isMonitoring; + private bool disposed; + + private static readonly TimeSpan GcPauseAlertCooldown = TimeSpan.FromMinutes(1); + private static readonly TimeSpan WmiQueryTimeout = TimeSpan.FromSeconds(5); + private const int HistoricalDataCapacity = 1000; + private const double Gen2PauseAlertThresholdMs = 100; + + public event EventHandler? MetricsUpdated; + + public PerformanceMonitoringService( + ILogger logger, + IProcessService processService, + ICpuTopologyService cpuTopologyService, + IApplicationSettingsService settingsService, + IEnhancedLoggingService enhancedLoggingService) + { + this.logger = logger; + this.processService = processService; + this.cpuTopologyService = cpuTopologyService; + this.settingsService = settingsService; + this.enhancedLoggingService = enhancedLoggingService; + this.historicalData = new Queue(HistoricalDataCapacity); + this.cpuCoreCounters = new List(); + } + + public async Task GetSystemMetricsAsync(bool lightweight = false) + { + try + { + var metrics = new SystemPerformanceMetrics + { + Timestamp = DateTime.UtcNow, + TotalCpuUsage = await this.GetTotalCpuUsageAsync().ConfigureAwait(false), + AvailableMemory = await this.GetAvailableMemoryAsync().ConfigureAwait(false), + }; + + // Calculate memory percentage + metrics.TotalMemory = await this.GetTotalPhysicalMemoryAsync().ConfigureAwait(false); + metrics.TotalMemoryUsage = Math.Max(0, metrics.TotalMemory - metrics.AvailableMemory); + metrics.MemoryUsagePercentage = metrics.TotalMemory > 0 + ? ((double)(metrics.TotalMemory - metrics.AvailableMemory) / metrics.TotalMemory) * 100 + : 0; + + this.PopulateRuntimeTelemetry(metrics); + + if (!lightweight) + { + metrics.CpuCoreUsages = await this.GetCpuCoreUsageAsync().ConfigureAwait(false); + metrics.ActiveProcessCount = await this.GetActiveProcessCountAsync().ConfigureAwait(false); + + // Get top processes + var topCpuProcesses = await this.GetTopCpuProcessesAsync(1).ConfigureAwait(false); + metrics.TopCpuProcess = topCpuProcesses.FirstOrDefault(); + + var topMemoryProcesses = await this.GetTopMemoryProcessesAsync(1).ConfigureAwait(false); + metrics.TopMemoryProcess = topMemoryProcesses.FirstOrDefault(); + + // Store in historical data + if (this.historicalData.Count >= HistoricalDataCapacity) + { + this.historicalData.Dequeue(); + } + + this.historicalData.Enqueue(metrics); + } + + return metrics; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting system metrics"); + return new SystemPerformanceMetrics(); + } + } + + public async Task> GetCpuCoreUsageAsync() + { + var coreUsages = new List(); + + try + { + this.EnsureCpuCoreCountersInitialized(); + var topology = await this.cpuTopologyService.DetectTopologyAsync().ConfigureAwait(false); + + for (int i = 0; i < this.cpuCoreCounters.Count; i++) + { + var counter = this.cpuCoreCounters[i]; + var usage = counter.NextValue(); + + var coreUsage = new CpuCoreUsage + { + CoreId = i, + CoreName = $"Core {i}", + Usage = usage, + CoreType = DetermineCoreType(i, topology), + IsHyperThreaded = IsHyperThreadedCore(i, topology), + PhysicalCoreId = GetPhysicalCoreId(i, topology), + }; + + coreUsages.Add(coreUsage); + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting CPU core usage"); + } + + return coreUsages; + } + + public async Task GetMemoryUsageAsync() + { + try + { + this.EnsureSystemCountersInitialized(); + var memoryInfo = new MemoryUsageInfo(); + + // Get physical memory info + var scope = CreateCimv2ScopeWithTimeout(); + using var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")); + foreach (var obj in searcher.Get()) + { + memoryInfo.TotalPhysicalMemory = Convert.ToInt64(obj["TotalPhysicalMemory"]); + } + + // Get available memory + memoryInfo.AvailablePhysicalMemory = (long)(this.memoryCounter?.NextValue() ?? 0) * 1024 * 1024; // Convert MB to bytes + memoryInfo.UsedPhysicalMemory = memoryInfo.TotalPhysicalMemory - memoryInfo.AvailablePhysicalMemory; + memoryInfo.PhysicalMemoryUsagePercentage = memoryInfo.TotalPhysicalMemory > 0 + ? ((double)memoryInfo.UsedPhysicalMemory / memoryInfo.TotalPhysicalMemory) * 100 + : 0; + + // Get virtual memory info + using var memSearcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT TotalVirtualMemorySize, FreeVirtualMemory FROM Win32_OperatingSystem")); + foreach (var obj in memSearcher.Get()) + { + memoryInfo.TotalVirtualMemory = Convert.ToInt64(obj["TotalVirtualMemorySize"]) * 1024; // Convert KB to bytes + memoryInfo.AvailableVirtualMemory = Convert.ToInt64(obj["FreeVirtualMemory"]) * 1024; + } + + memoryInfo.UsedVirtualMemory = memoryInfo.TotalVirtualMemory - memoryInfo.AvailableVirtualMemory; + memoryInfo.VirtualMemoryUsagePercentage = memoryInfo.TotalVirtualMemory > 0 + ? ((double)memoryInfo.UsedVirtualMemory / memoryInfo.TotalVirtualMemory) * 100 + : 0; + + return memoryInfo; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting memory usage"); + return new MemoryUsageInfo(); + } + } + + public async Task> GetTopCpuProcessesAsync(int count = 10) + { + try + { + var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); + return processes + .OrderByDescending(p => p.CpuUsage) + .Take(count) + .Select(p => new ProcessPerformanceInfo + { + ProcessId = p.ProcessId, + ProcessName = p.Name, + WindowTitle = p.MainWindowTitle, + CpuUsage = p.CpuUsage, + MemoryUsage = p.MemoryUsage, + ThreadCount = GetThreadCountSafe(p.ProcessId), + ExecutablePath = p.ExecutablePath ?? string.Empty, + Priority = p.Priority.ToString(), + }) + .ToList(); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting top CPU processes"); + return new List(); + } + } + + public async Task> GetTopMemoryProcessesAsync(int count = 10) + { + try + { + var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); + return processes + .OrderByDescending(p => p.MemoryUsage) + .Take(count) + .Select(p => new ProcessPerformanceInfo + { + ProcessId = p.ProcessId, + ProcessName = p.Name, + WindowTitle = p.MainWindowTitle, + CpuUsage = p.CpuUsage, + MemoryUsage = p.MemoryUsage, + ThreadCount = GetThreadCountSafe(p.ProcessId), + ExecutablePath = p.ExecutablePath ?? string.Empty, + Priority = p.Priority.ToString(), + }) + .ToList(); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting top memory processes"); + return new List(); + } + } + + public async Task StartMonitoringAsync() + { + if (this.isMonitoring) + { + return; + } + + this.logger.LogInformation("Starting performance monitoring"); + this.isMonitoring = true; + Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); + + // PERFORMANCE OPTIMIZATION: Increased interval from 1s to 2s for better performance + this.monitoringTimer = new System.Threading.Timer( + async _ => + { + if (Interlocked.Exchange(ref this.isMonitoringTickInProgress, 1) == 1) + { + return; + } + + try + { + var metrics = await this.GetSystemMetricsAsync().ConfigureAwait(false); + await this.EmitGcDiagnosticsIfNeededAsync(metrics).ConfigureAwait(false); + this.MetricsUpdated?.Invoke(this, new PerformanceMetricsUpdatedEventArgs(metrics)); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error during performance monitoring update"); + } + finally + { + Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); + } + }, null, TimeSpan.Zero, TimeSpan.FromSeconds(2)); + } + + public Task StopMonitoringAsync() + { + if (!this.isMonitoring) + { + return Task.CompletedTask; + } + + this.logger.LogInformation("Stopping performance monitoring"); + this.isMonitoring = false; + Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); + + this.monitoringTimer?.Dispose(); + this.monitoringTimer = null; + return Task.CompletedTask; + } + + public Task> GetHistoricalDataAsync(TimeSpan duration) + { + var cutoffTime = DateTime.UtcNow - duration; + var data = this.historicalData.Where(m => m.Timestamp >= cutoffTime).ToList(); + return Task.FromResult(data); + } + + public Task ClearHistoricalDataAsync() + { + this.historicalData.Clear(); + this.logger.LogInformation("Historical performance data cleared"); + return Task.CompletedTask; + } + + private void InitializeCpuCoreCounters() + { + var tempCounters = new List(); + + try + { + var coreCount = Environment.ProcessorCount; + for (int i = 0; i < coreCount; i++) + { + tempCounters.Add(this.CreatePrimedCounter("Processor", "% Processor Time", i.ToString())); + } + + this.cpuCoreCounters.Clear(); + this.cpuCoreCounters.AddRange(tempCounters); + + this.logger.LogInformation("Initialized {CoreCount} CPU core performance counters", coreCount); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error initializing CPU core counters"); + foreach (var counter in tempCounters) + { + try + { + counter.Dispose(); + } + catch + { + // Best effort cleanup for partially initialized counters. + } + } + + throw; + } + } + + private void EnsureSystemCountersInitialized() + { + if (this.totalCpuCounter != null && this.memoryCounter != null) + { + return; + } + + lock (this.counterInitializationLock) + { + if (this.totalCpuCounter != null && this.memoryCounter != null) + { + return; + } + + PerformanceCounter? totalCpu = null; + PerformanceCounter? memory = null; + + try + { + totalCpu = this.CreatePrimedCounter("Processor", "% Processor Time", "_Total"); + memory = this.CreatePrimedCounter("Memory", "Available MBytes"); + + this.totalCpuCounter = totalCpu; + this.memoryCounter = memory; + } + catch + { + totalCpu?.Dispose(); + memory?.Dispose(); + throw; + } + } + } + + private void EnsureCpuCoreCountersInitialized() + { + if (this.cpuCoreCounters.Count > 0) + { + return; + } + + lock (this.counterInitializationLock) + { + if (this.cpuCoreCounters.Count > 0) + { + return; + } + + this.InitializeCpuCoreCounters(); + } + } + + private PerformanceCounter CreatePrimedCounter(string categoryName, string counterName, string? instanceName = null) + { + try + { + var counter = string.IsNullOrWhiteSpace(instanceName) + ? new PerformanceCounter(categoryName, counterName) + : new PerformanceCounter(categoryName, counterName, instanceName); + + _ = counter.NextValue(); + return counter; + } + catch (Exception ex) + { + this.logger.LogError( + ex, + "Failed to initialize PerformanceCounter category '{Category}' counter '{Counter}' instance '{Instance}'", + categoryName, + counterName, + instanceName ?? ""); + throw; + } + } + + private async Task GetTotalCpuUsageAsync() + { + try + { + this.EnsureSystemCountersInitialized(); + return this.totalCpuCounter?.NextValue() ?? 0; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting total CPU usage"); + return 0; + } + } + + private async Task GetAvailableMemoryAsync() + { + try + { + this.EnsureSystemCountersInitialized(); + return (long)(this.memoryCounter?.NextValue() ?? 0) * 1024 * 1024; // Convert MB to bytes + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting available memory"); + return 0; + } + } + + private async Task GetTotalPhysicalMemoryAsync() + { + var now = DateTime.UtcNow; + + lock (this.totalMemoryCacheLock) + { + if (this.cachedTotalPhysicalMemory > 0 && + (now - this.totalPhysicalMemoryCacheUtc) < this.totalPhysicalMemoryCacheDuration) + { + return this.cachedTotalPhysicalMemory; + } + } + + try + { + var scope = CreateCimv2ScopeWithTimeout(); + using var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT TotalPhysicalMemory FROM Win32_ComputerSystem")); + foreach (var obj in searcher.Get()) + { + var totalMemory = Convert.ToInt64(obj["TotalPhysicalMemory"]); + + lock (this.totalMemoryCacheLock) + { + this.cachedTotalPhysicalMemory = totalMemory; + this.totalPhysicalMemoryCacheUtc = DateTime.UtcNow; + } + + return totalMemory; + } + + return 0; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting total physical memory"); + return 0; + } + } + + private async Task GetActiveProcessCountAsync() + { + var now = DateTime.UtcNow; + lock (this.processCountCacheLock) + { + if ((now - this.processCountCacheUtc) < this.processCountCacheDuration) + { + return this.cachedProcessCount; + } + } + + try + { + var scope = CreateCimv2ScopeWithTimeout(); + using var searcher = new ManagementObjectSearcher(scope, new ObjectQuery("SELECT Count(*) AS Count FROM Win32_Process")); + var result = searcher.Get().Cast().FirstOrDefault(); + var countValue = result?["Count"]; + var count = countValue != null ? Convert.ToInt32(countValue) : 0; + + lock (this.processCountCacheLock) + { + this.cachedProcessCount = count; + this.processCountCacheUtc = now; + } + + return count; + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to read process count via WMI, falling back to Process.GetProcesses"); + return Process.GetProcesses().Length; + } + } + + private static ManagementScope CreateCimv2ScopeWithTimeout() + { + var options = new ConnectionOptions { Timeout = WmiQueryTimeout }; + var scope = new ManagementScope(@"\\.\root\cimv2", options); + scope.Connect(); + return scope; + } + + private static int GetThreadCountSafe(int processId) + { + try + { + using var process = Process.GetProcessById(processId); + return process.Threads.Count; + } + catch + { + return 0; + } + } + + private void PopulateRuntimeTelemetry(SystemPerformanceMetrics metrics) + { + try + { + var gen0Collections = GC.CollectionCount(0); + var gen1Collections = GC.CollectionCount(1); + var gen2Collections = GC.CollectionCount(2); + var totalAllocatedBytes = GC.GetTotalAllocatedBytes(); + var gcInfo = GC.GetGCMemoryInfo(); + var lastGcPauseMs = GetLastGcPauseMilliseconds(gcInfo); + + metrics.Gen0Collections = gen0Collections; + metrics.Gen1Collections = gen1Collections; + metrics.Gen2Collections = gen2Collections; + metrics.TotalAllocatedBytes = totalAllocatedBytes; + metrics.ManagedHeapSizeBytes = gcInfo.HeapSizeBytes; + metrics.GcCommittedBytes = gcInfo.TotalCommittedBytes; + metrics.LastGcPauseMs = lastGcPauseMs; + + lock (this.runtimeTelemetryLock) + { + if (this.runtimeTelemetryInitialized) + { + metrics.Gen0CollectionsDelta = Math.Max(0, gen0Collections - this.previousGen0Collections); + metrics.Gen1CollectionsDelta = Math.Max(0, gen1Collections - this.previousGen1Collections); + metrics.Gen2CollectionsDelta = Math.Max(0, gen2Collections - this.previousGen2Collections); + metrics.AllocatedBytesDelta = Math.Max(0, totalAllocatedBytes - this.previousTotalAllocatedBytes); + } + else + { + metrics.Gen0CollectionsDelta = 0; + metrics.Gen1CollectionsDelta = 0; + metrics.Gen2CollectionsDelta = 0; + metrics.AllocatedBytesDelta = 0; + this.runtimeTelemetryInitialized = true; + } + + this.previousGen0Collections = gen0Collections; + this.previousGen1Collections = gen1Collections; + this.previousGen2Collections = gen2Collections; + this.previousTotalAllocatedBytes = totalAllocatedBytes; + + this.maxObservedGcPauseMs = Math.Max(this.maxObservedGcPauseMs, lastGcPauseMs); + metrics.MaxGcPauseMs = this.maxObservedGcPauseMs; + } + + using var currentProcess = Process.GetCurrentProcess(); + metrics.HandleCount = currentProcess.HandleCount; + metrics.ProcessWorkingSetBytes = currentProcess.WorkingSet64; + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to collect runtime GC telemetry sample"); + } + } + + private async Task EmitGcDiagnosticsIfNeededAsync(SystemPerformanceMetrics metrics) + { + try + { + if (!this.settingsService.Settings.EnablePerformanceCounters) + { + return; + } + + if (metrics.Gen2CollectionsDelta <= 0 || metrics.LastGcPauseMs < Gen2PauseAlertThresholdMs) + { + return; + } + + var now = DateTime.UtcNow; + if ((now - this.lastGcPauseAlertUtc) < GcPauseAlertCooldown) + { + return; + } + + this.lastGcPauseAlertUtc = now; + + this.logger.LogWarning( + "Gen2 GC pause alert: LastPauseMs={LastPauseMs}, Gen2Delta={Gen2Delta}, HeapBytes={HeapBytes}, AllocDeltaBytes={AllocDeltaBytes}", + metrics.LastGcPauseMs, + metrics.Gen2CollectionsDelta, + metrics.ManagedHeapSizeBytes, + metrics.AllocatedBytesDelta); + + await this.enhancedLoggingService.LogSystemEventAsync( + LogEventTypes.Performance.SlowOperation, + $"Gen2 GC pause {metrics.LastGcPauseMs:F2}ms (delta={metrics.Gen2CollectionsDelta}, heap={metrics.ManagedHeapSizeBytes} bytes)", + LogLevel.Warning).ConfigureAwait(false); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to emit GC diagnostics alert"); + } + } + + private static double GetLastGcPauseMilliseconds(GCMemoryInfo gcInfo) + { + var pauseDurations = gcInfo.PauseDurations; + if (pauseDurations.Length == 0) + { + return 0; + } + + return pauseDurations[pauseDurations.Length - 1].TotalMilliseconds; + } + + private static string DetermineCoreType(int coreId, CpuTopologyModel? topology) + { + if (topology?.HasIntelHybrid == true) + { + // Intel hybrid architecture + if (coreId < topology.PerformanceCores.Count()) + { + return "P-Core"; + } + else + { + return "E-Core"; + } + } + + return "Standard"; + } + + private static bool IsHyperThreadedCore(int coreId, CpuTopologyModel? topology) + { + if (topology?.HasHyperThreading != true) + { + return false; + } + + // Simplified logic - in reality this would be more complex + return coreId >= topology.TotalPhysicalCores; + } + + private static int GetPhysicalCoreId(int coreId, CpuTopologyModel? topology) + { + if (topology?.HasHyperThreading == true) + { + return coreId / 2; // Simplified - assumes 2 threads per core + } + + return coreId; + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + this.monitoringTimer?.Dispose(); + Interlocked.Exchange(ref this.isMonitoringTickInProgress, 0); + this.totalCpuCounter?.Dispose(); + this.memoryCounter?.Dispose(); + + foreach (var counter in this.cpuCoreCounters) + { + counter?.Dispose(); + } + + this.cpuCoreCounters.Clear(); + this.disposed = true; + } + } +} + diff --git a/Services/PersistentProcessRuleJsonStore.cs b/Services/PersistentProcessRuleJsonStore.cs index c592ec4..ef88a26 100644 --- a/Services/PersistentProcessRuleJsonStore.cs +++ b/Services/PersistentProcessRuleJsonStore.cs @@ -1,69 +1,69 @@ -/* - * ThreadPilot - JSON-backed persistent process rule store. - */ -namespace ThreadPilot.Services -{ - using System.IO; - using System.Text.Json; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - public sealed class PersistentProcessRuleJsonStore : IPersistentProcessRuleStore - { - private static readonly JsonSerializerOptions JsonOptions = new() - { - WriteIndented = true, - }; - - private readonly Func filePathProvider; - private readonly ILogger? logger; - - public PersistentProcessRuleJsonStore(ILogger? logger = null) - : this(() => StoragePaths.PersistentRulesFilePath, logger) - { - } - - internal PersistentProcessRuleJsonStore( - Func filePathProvider, - ILogger? logger = null) - { - this.filePathProvider = filePathProvider ?? throw new ArgumentNullException(nameof(filePathProvider)); - this.logger = logger; - } - - public async Task> LoadAsync() - { - var filePath = this.filePathProvider(); - if (!File.Exists(filePath)) - { - return []; - } - - try - { - var json = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); - return JsonSerializer.Deserialize>(json, JsonOptions) ?? []; - } - catch (Exception ex) when (ex is JsonException or IOException or UnauthorizedAccessException) - { - this.logger?.LogWarning(ex, "Could not load persistent process rules from {FilePath}", filePath); - return []; - } - } - - public async Task SaveAsync(IReadOnlyList rules) - { - ArgumentNullException.ThrowIfNull(rules); - - var filePath = this.filePathProvider(); - var directory = Path.GetDirectoryName(filePath); - if (!string.IsNullOrWhiteSpace(directory)) - { - Directory.CreateDirectory(directory); - } - - var json = JsonSerializer.Serialize(rules, JsonOptions); - await File.WriteAllTextAsync(filePath, json).ConfigureAwait(false); - } - } -} +/* + * ThreadPilot - JSON-backed persistent process rule store. + */ +namespace ThreadPilot.Services +{ + using System.IO; + using System.Text.Json; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public sealed class PersistentProcessRuleJsonStore : IPersistentProcessRuleStore + { + private static readonly JsonSerializerOptions JsonOptions = new() + { + WriteIndented = true, + }; + + private readonly Func filePathProvider; + private readonly ILogger? logger; + + public PersistentProcessRuleJsonStore(ILogger? logger = null) + : this(() => StoragePaths.PersistentRulesFilePath, logger) + { + } + + internal PersistentProcessRuleJsonStore( + Func filePathProvider, + ILogger? logger = null) + { + this.filePathProvider = filePathProvider ?? throw new ArgumentNullException(nameof(filePathProvider)); + this.logger = logger; + } + + public async Task> LoadAsync() + { + var filePath = this.filePathProvider(); + if (!File.Exists(filePath)) + { + return []; + } + + try + { + var json = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); + return JsonSerializer.Deserialize>(json, JsonOptions) ?? []; + } + catch (Exception ex) when (ex is JsonException or IOException or UnauthorizedAccessException) + { + this.logger?.LogWarning(ex, "Could not load persistent process rules from {FilePath}", filePath); + return []; + } + } + + public async Task SaveAsync(IReadOnlyList rules) + { + ArgumentNullException.ThrowIfNull(rules); + + var filePath = this.filePathProvider(); + var directory = Path.GetDirectoryName(filePath); + if (!string.IsNullOrWhiteSpace(directory)) + { + Directory.CreateDirectory(directory); + } + + var json = JsonSerializer.Serialize(rules, JsonOptions); + await File.WriteAllTextAsync(filePath, json).ConfigureAwait(false); + } + } +} diff --git a/Services/PersistentProcessRuleMatcher.cs b/Services/PersistentProcessRuleMatcher.cs index 69955cd..bf69ecb 100644 --- a/Services/PersistentProcessRuleMatcher.cs +++ b/Services/PersistentProcessRuleMatcher.cs @@ -1,58 +1,58 @@ -/* - * ThreadPilot - persistent process rule matcher. - */ -namespace ThreadPilot.Services -{ - using System.IO; - using ThreadPilot.Models; - - public interface IPersistentProcessRuleMatcher - { - bool IsMatch(PersistentProcessRule rule, ProcessModel process); - } - - public sealed class PersistentProcessRuleMatcher : IPersistentProcessRuleMatcher - { - public bool IsMatch(PersistentProcessRule rule, ProcessModel process) - { - ArgumentNullException.ThrowIfNull(rule); - ArgumentNullException.ThrowIfNull(process); - - if (!rule.IsEnabled) - { - return false; - } - - var rulePath = NormalizePath(rule.ExecutablePath); - if (!string.IsNullOrWhiteSpace(rulePath)) - { - var processPath = NormalizePath(process.ExecutablePath); - return !string.IsNullOrWhiteSpace(processPath) && - string.Equals(rulePath, processPath, StringComparison.OrdinalIgnoreCase); - } - - return !string.IsNullOrWhiteSpace(rule.ProcessName) && - string.Equals(rule.ProcessName.Trim(), process.Name?.Trim(), StringComparison.OrdinalIgnoreCase); - } - - private static string? NormalizePath(string? path) - { - if (string.IsNullOrWhiteSpace(path)) - { - return null; - } - - var trimmed = path.Trim(); - try - { - trimmed = Path.GetFullPath(trimmed); - } - catch (Exception ex) when (ex is ArgumentException or NotSupportedException or PathTooLongException) - { - // Keep matching best-effort for inaccessible or malformed process paths. - } - - return trimmed.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); - } - } -} +/* + * ThreadPilot - persistent process rule matcher. + */ +namespace ThreadPilot.Services +{ + using System.IO; + using ThreadPilot.Models; + + public interface IPersistentProcessRuleMatcher + { + bool IsMatch(PersistentProcessRule rule, ProcessModel process); + } + + public sealed class PersistentProcessRuleMatcher : IPersistentProcessRuleMatcher + { + public bool IsMatch(PersistentProcessRule rule, ProcessModel process) + { + ArgumentNullException.ThrowIfNull(rule); + ArgumentNullException.ThrowIfNull(process); + + if (!rule.IsEnabled) + { + return false; + } + + var rulePath = NormalizePath(rule.ExecutablePath); + if (!string.IsNullOrWhiteSpace(rulePath)) + { + var processPath = NormalizePath(process.ExecutablePath); + return !string.IsNullOrWhiteSpace(processPath) && + string.Equals(rulePath, processPath, StringComparison.OrdinalIgnoreCase); + } + + return !string.IsNullOrWhiteSpace(rule.ProcessName) && + string.Equals(rule.ProcessName.Trim(), process.Name?.Trim(), StringComparison.OrdinalIgnoreCase); + } + + private static string? NormalizePath(string? path) + { + if (string.IsNullOrWhiteSpace(path)) + { + return null; + } + + var trimmed = path.Trim(); + try + { + trimmed = Path.GetFullPath(trimmed); + } + catch (Exception ex) when (ex is ArgumentException or NotSupportedException or PathTooLongException) + { + // Keep matching best-effort for inaccessible or malformed process paths. + } + + return trimmed.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + } + } +} diff --git a/Services/PersistentRuleAutoApplyService.cs b/Services/PersistentRuleAutoApplyService.cs index 11d9161..4e4cc92 100644 --- a/Services/PersistentRuleAutoApplyService.cs +++ b/Services/PersistentRuleAutoApplyService.cs @@ -1,328 +1,328 @@ -/* - * ThreadPilot - persistent rule runtime auto-apply coordinator. - */ -namespace ThreadPilot.Services -{ - using System.Collections.Concurrent; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - public interface IPersistentRuleAutoApplyService - { - Task> ApplyForDiscoveredProcessesAsync( - IEnumerable processes, - CancellationToken cancellationToken = default); - - Task> ApplyForProcessStartAsync( - ProcessModel process, - CancellationToken cancellationToken = default); - - void MarkProcessExited(int processId); - } - - public sealed record PersistentRuleAutoApplyResult - { - public bool Success { get; init; } - - public string RuleId { get; init; } = string.Empty; - - public int ProcessId { get; init; } - - public string ProcessName { get; init; } = string.Empty; - - public string? ErrorCode { get; init; } - - public string UserMessage { get; init; } = string.Empty; - - public string TechnicalMessage { get; init; } = string.Empty; - - public bool IsAccessDenied { get; init; } - - public bool IsAntiCheatLikely { get; init; } - - public bool IsProcessExited { get; init; } - - public static PersistentRuleAutoApplyResult FromApplyResult(PersistentRuleApplyResult result) => - new() - { - Success = result.Success, - RuleId = result.RuleId, - ProcessId = result.ProcessId, - ProcessName = result.ProcessName, - ErrorCode = result.ErrorCode, - UserMessage = result.IsAntiCheatLikely - ? ProcessOperationUserMessages.PersistentRulesProtectedProcessWarning - : result.UserMessage, - TechnicalMessage = result.TechnicalMessage, - IsAccessDenied = result.IsAccessDenied, - IsAntiCheatLikely = result.IsAntiCheatLikely, - IsProcessExited = result.IsProcessExited, - }; - } - - public sealed class PersistentRuleAutoApplyService : IPersistentRuleAutoApplyService - { - private static readonly TimeSpan DefaultCooldown = TimeSpan.FromSeconds(30); - - private readonly IPersistentProcessRuleStore ruleStore; - private readonly IPersistentProcessRuleMatcher matcher; - private readonly IPersistentRulesEngine rulesEngine; - private readonly IApplicationSettingsService settingsService; - private readonly ILogger logger; - private readonly IActivityAuditService? activityAuditService; - private readonly Func nowProvider; - private readonly TimeSpan cooldown; - private readonly ConcurrentDictionary recentAttempts = new(); - - public PersistentRuleAutoApplyService( - IPersistentProcessRuleStore ruleStore, - IPersistentProcessRuleMatcher matcher, - IPersistentRulesEngine rulesEngine, - IApplicationSettingsService settingsService, - ILogger logger, - IActivityAuditService? activityAuditService = null) - : this(ruleStore, matcher, rulesEngine, settingsService, logger, () => DateTimeOffset.UtcNow, DefaultCooldown, activityAuditService) - { - } - - public PersistentRuleAutoApplyService( - IPersistentProcessRuleStore ruleStore, - IPersistentProcessRuleMatcher matcher, - IPersistentRulesEngine rulesEngine, - IApplicationSettingsService settingsService, - ILogger logger, - Func nowProvider, - TimeSpan cooldown, - IActivityAuditService? activityAuditService = null) - { - this.ruleStore = ruleStore ?? throw new ArgumentNullException(nameof(ruleStore)); - this.matcher = matcher ?? throw new ArgumentNullException(nameof(matcher)); - this.rulesEngine = rulesEngine ?? throw new ArgumentNullException(nameof(rulesEngine)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.nowProvider = nowProvider ?? throw new ArgumentNullException(nameof(nowProvider)); - this.cooldown = cooldown <= TimeSpan.Zero ? DefaultCooldown : cooldown; - this.activityAuditService = activityAuditService; - } - - public async Task> ApplyForDiscoveredProcessesAsync( - IEnumerable processes, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(processes); - - var snapshot = processes - .Where(IsProcessEligible) - .GroupBy(process => process.ProcessId) - .Select(group => group.First()) - .ToList(); - this.ClearAttemptsForMissingProcesses(snapshot.Select(process => process.ProcessId).ToHashSet()); - - if (!this.IsEnabled() || snapshot.Count == 0) - { - return Array.Empty(); - } - - var rules = await this.ruleStore.LoadAsync().ConfigureAwait(false); - if (rules.Count == 0) - { - return Array.Empty(); - } - - var results = new List(); - foreach (var process in snapshot) - { - cancellationToken.ThrowIfCancellationRequested(); - results.AddRange(await this.ApplyForProcessAsync(process, rules, cancellationToken).ConfigureAwait(false)); - } - - return results; - } - - public async Task> ApplyForProcessStartAsync( - ProcessModel process, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(process); - - if (!this.IsEnabled() || !IsProcessEligible(process)) - { - return Array.Empty(); - } - - var rules = await this.ruleStore.LoadAsync().ConfigureAwait(false); - return await this.ApplyForProcessAsync(process, rules, cancellationToken).ConfigureAwait(false); - } - - public void MarkProcessExited(int processId) - { - foreach (var key in this.recentAttempts.Keys.Where(key => key.ProcessId == processId)) - { - this.recentAttempts.TryRemove(key, out _); - } - } - - private async Task> ApplyForProcessAsync( - ProcessModel process, - IReadOnlyList rules, - CancellationToken cancellationToken) - { - var now = this.nowProvider(); - var candidates = rules - .Where(rule => rule.IsEnabled && this.matcher.IsMatch(rule, process)) - .ToList(); - - if (candidates.Count == 0) - { - return Array.Empty(); - } - - var selectedRules = candidates - .Where(rule => this.TryRecordAttempt(process.ProcessId, rule, now)) - .ToList(); - - if (selectedRules.Count == 0) - { - this.logger.LogDebug( - "Persistent rule auto-apply suppressed by cooldown for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return Array.Empty(); - } - - var selectedSignatures = selectedRules - .Select(GetRuleSignature) - .ToHashSet(StringComparer.Ordinal); - - try - { - // Runtime auto-apply only runs while ThreadPilot is open; it does not use registry, - // IFEO, services, or protected-process bypass techniques. - var applyResults = await this.rulesEngine - .ApplyMatchingRulesAsync( - process, - rule => selectedSignatures.Contains(GetRuleSignature(rule)), - cancellationToken) - .ConfigureAwait(false); - - var results = applyResults.Select(PersistentRuleAutoApplyResult.FromApplyResult).ToList(); - foreach (var result in results) - { - await this.LogResultAsync(result).ConfigureAwait(false); - } - - return results; - } - catch (Exception ex) when (ex is not OperationCanceledException) - { - this.logger.LogWarning( - ex, - "Persistent rule auto-apply failed for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - - return selectedRules - .Select(rule => new PersistentRuleAutoApplyResult - { - Success = false, - RuleId = rule.Id, - ProcessId = process.ProcessId, - ProcessName = process.Name, - UserMessage = "ThreadPilot could not apply the saved rule.", - TechnicalMessage = ex.Message, - }) - .ToList(); - } - } - - private bool TryRecordAttempt(int processId, PersistentProcessRule rule, DateTimeOffset now) - { - var key = new RuleAttemptKey(processId, GetRuleSignature(rule)); - if (this.recentAttempts.TryGetValue(key, out var lastAttempt) && - now - lastAttempt < this.cooldown) - { - return false; - } - - this.recentAttempts[key] = now; - return true; - } - - private void ClearAttemptsForMissingProcesses(HashSet currentProcessIds) - { - foreach (var key in this.recentAttempts.Keys.Where(key => !currentProcessIds.Contains(key.ProcessId))) - { - this.recentAttempts.TryRemove(key, out _); - } - } - - private async Task LogResultAsync(PersistentRuleAutoApplyResult result) - { - if (result.Success) - { - this.logger.LogInformation( - "Applied saved persistent rule {RuleId} to process {ProcessName} (PID: {ProcessId})", - result.RuleId, - result.ProcessName, - result.ProcessId); - await this.LogActivityResultAsync(result).ConfigureAwait(false); - return; - } - - var logLevel = result.IsAccessDenied || result.IsAntiCheatLikely || result.IsProcessExited - ? LogLevel.Debug - : LogLevel.Warning; - this.logger.Log( - logLevel, - "Persistent rule {RuleId} was not applied to process {ProcessName} (PID: {ProcessId}): {Message}", - result.RuleId, - result.ProcessName, - result.ProcessId, - result.UserMessage); - await this.LogActivityResultAsync(result).ConfigureAwait(false); - } - - private async Task LogActivityResultAsync(PersistentRuleAutoApplyResult result) - { - if (this.activityAuditService == null) - { - return; - } - - var action = result.Success - ? "PersistentRuleAutoApplied" - : "PersistentRuleAutoApplyFailed"; - var message = result.Success - ? $"Auto-applied saved rule for {result.ProcessName}." - : $"Failed to auto-apply saved rule for {result.ProcessName}: {result.UserMessage}"; - - try - { - await this.activityAuditService - .LogUserActionAsync( - action, - message, - $"Rule: {result.RuleId}, PID: {result.ProcessId}") - .ConfigureAwait(false); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to write persistent rule activity audit entry"); - } - } - - private bool IsEnabled() => - this.settingsService.Settings.ApplyPersistentRulesOnProcessStart; - - private static bool IsProcessEligible(ProcessModel process) => - process.ProcessId > 0 && !string.IsNullOrWhiteSpace(process.Name); - - private static string GetRuleSignature(PersistentProcessRule rule) => - string.Join( - "|", - string.IsNullOrWhiteSpace(rule.Id) ? rule.Name : rule.Id, - rule.UpdatedAt.ToUniversalTime().Ticks); - - private readonly record struct RuleAttemptKey(int ProcessId, string RuleSignature); - } -} +/* + * ThreadPilot - persistent rule runtime auto-apply coordinator. + */ +namespace ThreadPilot.Services +{ + using System.Collections.Concurrent; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public interface IPersistentRuleAutoApplyService + { + Task> ApplyForDiscoveredProcessesAsync( + IEnumerable processes, + CancellationToken cancellationToken = default); + + Task> ApplyForProcessStartAsync( + ProcessModel process, + CancellationToken cancellationToken = default); + + void MarkProcessExited(int processId); + } + + public sealed record PersistentRuleAutoApplyResult + { + public bool Success { get; init; } + + public string RuleId { get; init; } = string.Empty; + + public int ProcessId { get; init; } + + public string ProcessName { get; init; } = string.Empty; + + public string? ErrorCode { get; init; } + + public string UserMessage { get; init; } = string.Empty; + + public string TechnicalMessage { get; init; } = string.Empty; + + public bool IsAccessDenied { get; init; } + + public bool IsAntiCheatLikely { get; init; } + + public bool IsProcessExited { get; init; } + + public static PersistentRuleAutoApplyResult FromApplyResult(PersistentRuleApplyResult result) => + new() + { + Success = result.Success, + RuleId = result.RuleId, + ProcessId = result.ProcessId, + ProcessName = result.ProcessName, + ErrorCode = result.ErrorCode, + UserMessage = result.IsAntiCheatLikely + ? ProcessOperationUserMessages.PersistentRulesProtectedProcessWarning + : result.UserMessage, + TechnicalMessage = result.TechnicalMessage, + IsAccessDenied = result.IsAccessDenied, + IsAntiCheatLikely = result.IsAntiCheatLikely, + IsProcessExited = result.IsProcessExited, + }; + } + + public sealed class PersistentRuleAutoApplyService : IPersistentRuleAutoApplyService + { + private static readonly TimeSpan DefaultCooldown = TimeSpan.FromSeconds(30); + + private readonly IPersistentProcessRuleStore ruleStore; + private readonly IPersistentProcessRuleMatcher matcher; + private readonly IPersistentRulesEngine rulesEngine; + private readonly IApplicationSettingsService settingsService; + private readonly ILogger logger; + private readonly IActivityAuditService? activityAuditService; + private readonly Func nowProvider; + private readonly TimeSpan cooldown; + private readonly ConcurrentDictionary recentAttempts = new(); + + public PersistentRuleAutoApplyService( + IPersistentProcessRuleStore ruleStore, + IPersistentProcessRuleMatcher matcher, + IPersistentRulesEngine rulesEngine, + IApplicationSettingsService settingsService, + ILogger logger, + IActivityAuditService? activityAuditService = null) + : this(ruleStore, matcher, rulesEngine, settingsService, logger, () => DateTimeOffset.UtcNow, DefaultCooldown, activityAuditService) + { + } + + public PersistentRuleAutoApplyService( + IPersistentProcessRuleStore ruleStore, + IPersistentProcessRuleMatcher matcher, + IPersistentRulesEngine rulesEngine, + IApplicationSettingsService settingsService, + ILogger logger, + Func nowProvider, + TimeSpan cooldown, + IActivityAuditService? activityAuditService = null) + { + this.ruleStore = ruleStore ?? throw new ArgumentNullException(nameof(ruleStore)); + this.matcher = matcher ?? throw new ArgumentNullException(nameof(matcher)); + this.rulesEngine = rulesEngine ?? throw new ArgumentNullException(nameof(rulesEngine)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.nowProvider = nowProvider ?? throw new ArgumentNullException(nameof(nowProvider)); + this.cooldown = cooldown <= TimeSpan.Zero ? DefaultCooldown : cooldown; + this.activityAuditService = activityAuditService; + } + + public async Task> ApplyForDiscoveredProcessesAsync( + IEnumerable processes, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(processes); + + var snapshot = processes + .Where(IsProcessEligible) + .GroupBy(process => process.ProcessId) + .Select(group => group.First()) + .ToList(); + this.ClearAttemptsForMissingProcesses(snapshot.Select(process => process.ProcessId).ToHashSet()); + + if (!this.IsEnabled() || snapshot.Count == 0) + { + return Array.Empty(); + } + + var rules = await this.ruleStore.LoadAsync().ConfigureAwait(false); + if (rules.Count == 0) + { + return Array.Empty(); + } + + var results = new List(); + foreach (var process in snapshot) + { + cancellationToken.ThrowIfCancellationRequested(); + results.AddRange(await this.ApplyForProcessAsync(process, rules, cancellationToken).ConfigureAwait(false)); + } + + return results; + } + + public async Task> ApplyForProcessStartAsync( + ProcessModel process, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(process); + + if (!this.IsEnabled() || !IsProcessEligible(process)) + { + return Array.Empty(); + } + + var rules = await this.ruleStore.LoadAsync().ConfigureAwait(false); + return await this.ApplyForProcessAsync(process, rules, cancellationToken).ConfigureAwait(false); + } + + public void MarkProcessExited(int processId) + { + foreach (var key in this.recentAttempts.Keys.Where(key => key.ProcessId == processId)) + { + this.recentAttempts.TryRemove(key, out _); + } + } + + private async Task> ApplyForProcessAsync( + ProcessModel process, + IReadOnlyList rules, + CancellationToken cancellationToken) + { + var now = this.nowProvider(); + var candidates = rules + .Where(rule => rule.IsEnabled && this.matcher.IsMatch(rule, process)) + .ToList(); + + if (candidates.Count == 0) + { + return Array.Empty(); + } + + var selectedRules = candidates + .Where(rule => this.TryRecordAttempt(process.ProcessId, rule, now)) + .ToList(); + + if (selectedRules.Count == 0) + { + this.logger.LogDebug( + "Persistent rule auto-apply suppressed by cooldown for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return Array.Empty(); + } + + var selectedSignatures = selectedRules + .Select(GetRuleSignature) + .ToHashSet(StringComparer.Ordinal); + + try + { + // Runtime auto-apply only runs while ThreadPilot is open; it does not use registry, + // IFEO, services, or protected-process bypass techniques. + var applyResults = await this.rulesEngine + .ApplyMatchingRulesAsync( + process, + rule => selectedSignatures.Contains(GetRuleSignature(rule)), + cancellationToken) + .ConfigureAwait(false); + + var results = applyResults.Select(PersistentRuleAutoApplyResult.FromApplyResult).ToList(); + foreach (var result in results) + { + await this.LogResultAsync(result).ConfigureAwait(false); + } + + return results; + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + this.logger.LogWarning( + ex, + "Persistent rule auto-apply failed for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + + return selectedRules + .Select(rule => new PersistentRuleAutoApplyResult + { + Success = false, + RuleId = rule.Id, + ProcessId = process.ProcessId, + ProcessName = process.Name, + UserMessage = "ThreadPilot could not apply the saved rule.", + TechnicalMessage = ex.Message, + }) + .ToList(); + } + } + + private bool TryRecordAttempt(int processId, PersistentProcessRule rule, DateTimeOffset now) + { + var key = new RuleAttemptKey(processId, GetRuleSignature(rule)); + if (this.recentAttempts.TryGetValue(key, out var lastAttempt) && + now - lastAttempt < this.cooldown) + { + return false; + } + + this.recentAttempts[key] = now; + return true; + } + + private void ClearAttemptsForMissingProcesses(HashSet currentProcessIds) + { + foreach (var key in this.recentAttempts.Keys.Where(key => !currentProcessIds.Contains(key.ProcessId))) + { + this.recentAttempts.TryRemove(key, out _); + } + } + + private async Task LogResultAsync(PersistentRuleAutoApplyResult result) + { + if (result.Success) + { + this.logger.LogInformation( + "Applied saved persistent rule {RuleId} to process {ProcessName} (PID: {ProcessId})", + result.RuleId, + result.ProcessName, + result.ProcessId); + await this.LogActivityResultAsync(result).ConfigureAwait(false); + return; + } + + var logLevel = result.IsAccessDenied || result.IsAntiCheatLikely || result.IsProcessExited + ? LogLevel.Debug + : LogLevel.Warning; + this.logger.Log( + logLevel, + "Persistent rule {RuleId} was not applied to process {ProcessName} (PID: {ProcessId}): {Message}", + result.RuleId, + result.ProcessName, + result.ProcessId, + result.UserMessage); + await this.LogActivityResultAsync(result).ConfigureAwait(false); + } + + private async Task LogActivityResultAsync(PersistentRuleAutoApplyResult result) + { + if (this.activityAuditService == null) + { + return; + } + + var action = result.Success + ? "PersistentRuleAutoApplied" + : "PersistentRuleAutoApplyFailed"; + var message = result.Success + ? $"Auto-applied saved rule for {result.ProcessName}." + : $"Failed to auto-apply saved rule for {result.ProcessName}: {result.UserMessage}"; + + try + { + await this.activityAuditService + .LogUserActionAsync( + action, + message, + $"Rule: {result.RuleId}, PID: {result.ProcessId}") + .ConfigureAwait(false); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to write persistent rule activity audit entry"); + } + } + + private bool IsEnabled() => + this.settingsService.Settings.ApplyPersistentRulesOnProcessStart; + + private static bool IsProcessEligible(ProcessModel process) => + process.ProcessId > 0 && !string.IsNullOrWhiteSpace(process.Name); + + private static string GetRuleSignature(PersistentProcessRule rule) => + string.Join( + "|", + string.IsNullOrWhiteSpace(rule.Id) ? rule.Name : rule.Id, + rule.UpdatedAt.ToUniversalTime().Ticks); + + private readonly record struct RuleAttemptKey(int ProcessId, string RuleSignature); + } +} diff --git a/Services/PersistentRulesEngine.cs b/Services/PersistentRulesEngine.cs index d854f98..ddebb51 100644 --- a/Services/PersistentRulesEngine.cs +++ b/Services/PersistentRulesEngine.cs @@ -1,305 +1,305 @@ -/* - * ThreadPilot - persistent rules engine foundation. - */ -namespace ThreadPilot.Services -{ - using System.Diagnostics; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - public interface IPersistentRulesEngine - { - Task> ApplyMatchingRulesAsync( - ProcessModel process, - Predicate? ruleFilter = null, - CancellationToken cancellationToken = default); - } - - public sealed class PersistentRulesEngine : IPersistentRulesEngine - { - private const string MissingAffinityErrorCode = "PersistentRuleMissingAffinity"; - private const string MissingMemoryPriorityErrorCode = "PersistentRuleMissingMemoryPriority"; - private const string MissingPriorityErrorCode = "PersistentRuleMissingPriority"; - private const string MemoryPriorityApplyFailedErrorCode = "MemoryPriorityApplyFailed"; - private const string NoActionsErrorCode = "PersistentRuleNoActions"; - private const string PriorityApplyFailedErrorCode = "PriorityApplyFailed"; - private const string RealtimePriorityBlockedErrorCode = "RealtimePriorityBlocked"; - - private readonly IPersistentProcessRuleStore ruleStore; - private readonly IPersistentProcessRuleMatcher matcher; - private readonly IAffinityApplyService affinityApplyService; - private readonly IProcessService processService; - private readonly IProcessMemoryPriorityService memoryPriorityService; - private readonly ILogger logger; - - public PersistentRulesEngine( - IPersistentProcessRuleStore ruleStore, - IPersistentProcessRuleMatcher matcher, - IAffinityApplyService affinityApplyService, - IProcessService processService, - IProcessMemoryPriorityService memoryPriorityService, - ILogger logger) - { - this.ruleStore = ruleStore ?? throw new ArgumentNullException(nameof(ruleStore)); - this.matcher = matcher ?? throw new ArgumentNullException(nameof(matcher)); - this.affinityApplyService = affinityApplyService ?? throw new ArgumentNullException(nameof(affinityApplyService)); - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.memoryPriorityService = memoryPriorityService ?? throw new ArgumentNullException(nameof(memoryPriorityService)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async Task> ApplyMatchingRulesAsync( - ProcessModel process, - Predicate? ruleFilter = null, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(process); - - var rules = await this.ruleStore.LoadAsync().ConfigureAwait(false); - var results = new List(); - - foreach (var rule in rules.Where(rule => - (ruleFilter == null || ruleFilter(rule)) && - this.matcher.IsMatch(rule, process))) - { - cancellationToken.ThrowIfCancellationRequested(); - results.Add(await this.ApplyRuleAsync(rule, process, cancellationToken).ConfigureAwait(false)); - } - - return results; - } - - private async Task ApplyRuleAsync( - PersistentProcessRule rule, - ProcessModel process, - CancellationToken cancellationToken) - { - var result = CreateSuccessResult(rule, process); - var success = true; - - if (!rule.ApplyAffinityOnStart && !rule.ApplyPriorityOnStart && !rule.ApplyMemoryPriorityOnStart) - { - return MarkRuleConfigurationFailure( - result, - rule, - NoActionsErrorCode, - "This saved rule has no actions to apply."); - } - - if (rule.ApplyAffinityOnStart) - { - if (rule.CpuSelection == null && !rule.LegacyAffinityMask.HasValue) - { - success = false; - result = MarkRuleConfigurationFailure( - result, - rule, - MissingAffinityErrorCode, - "This saved rule has no affinity selection to apply."); - } - else - { - var affinityResult = await this.ApplyAffinityAsync(rule, process).ConfigureAwait(false); - if (affinityResult.Success) - { - result = result with { AffinityApplied = true }; - } - else - { - success = false; - result = MergeAffinityFailure(result, affinityResult); - } - } - } - - if (rule.ApplyPriorityOnStart && !result.IsProcessExited) - { - if (!rule.Priority.HasValue) - { - success = false; - result = MarkRuleConfigurationFailure( - result, - rule, - MissingPriorityErrorCode, - "This saved rule has no priority value to apply."); - } - else - { - cancellationToken.ThrowIfCancellationRequested(); - try - { - await this.processService.SetProcessPriority(process, rule.Priority.Value).ConfigureAwait(false); - result = result with { PriorityApplied = true }; - } - catch (Exception ex) - { - success = false; - result = this.MergePriorityFailure(result, ex); - } - } - } - - if (rule.ApplyMemoryPriorityOnStart && !result.IsProcessExited) - { - if (!rule.MemoryPriority.HasValue) - { - success = false; - result = MarkRuleConfigurationFailure( - result, - rule, - MissingMemoryPriorityErrorCode, - "This saved rule has no memory priority value to apply."); - } - else - { - cancellationToken.ThrowIfCancellationRequested(); - var memoryPriorityResult = await this.memoryPriorityService - .SetMemoryPriorityAsync(process, rule.MemoryPriority.Value) - .ConfigureAwait(false); - if (memoryPriorityResult.Success) - { - result = result with { MemoryPriorityApplied = true }; - } - else - { - success = false; - result = this.MergeMemoryPriorityFailure(result, memoryPriorityResult); - } - } - } - - return result with - { - Success = success, - UserMessage = success ? "Persistent rule applied." : result.UserMessage, - TechnicalMessage = success ? $"Persistent rule '{rule.Name}' applied to process {process.Name}." : result.TechnicalMessage, - }; - } - - private PersistentRuleApplyResult MergeMemoryPriorityFailure( - PersistentRuleApplyResult result, - ProcessOperationResult memoryPriorityResult) - { - this.logger.LogWarning( - "Persistent rule memory priority apply failed for rule {RuleId} on process {ProcessName} (PID: {ProcessId}): {Message}", - result.RuleId, - result.ProcessName, - result.ProcessId, - memoryPriorityResult.TechnicalMessage); - - return result with - { - ErrorCode = string.IsNullOrWhiteSpace(memoryPriorityResult.ErrorCode) - ? MemoryPriorityApplyFailedErrorCode - : memoryPriorityResult.ErrorCode, - UserMessage = string.IsNullOrWhiteSpace(memoryPriorityResult.UserMessage) - ? "ThreadPilot could not apply the saved memory priority rule." - : memoryPriorityResult.UserMessage, - TechnicalMessage = memoryPriorityResult.TechnicalMessage, - IsAccessDenied = result.IsAccessDenied || memoryPriorityResult.IsAccessDenied, - IsAntiCheatLikely = result.IsAntiCheatLikely || memoryPriorityResult.IsAntiCheatLikely, - IsProcessExited = result.IsProcessExited || memoryPriorityResult.IsProcessExited, - }; - } - - private Task ApplyAffinityAsync(PersistentProcessRule rule, ProcessModel process) - { - if (rule.CpuSelection != null) - { - return this.affinityApplyService.ApplyAsync(process, rule.CpuSelection); - } - - if (rule.LegacyAffinityMask.HasValue) - { - return this.affinityApplyService.ApplyAsync(process, rule.LegacyAffinityMask.Value); - } - - return Task.FromResult(AffinityApplyResult.Succeeded(0, process.ProcessorAffinity)); - } - - private static PersistentRuleApplyResult MarkRuleConfigurationFailure( - PersistentRuleApplyResult result, - PersistentProcessRule rule, - string errorCode, - string userMessage) => - result with - { - Success = false, - ErrorCode = errorCode, - UserMessage = userMessage, - TechnicalMessage = $"Persistent rule '{rule.Name}' ({rule.Id}) is incomplete: {userMessage}", - }; - - private PersistentRuleApplyResult MergePriorityFailure(PersistentRuleApplyResult result, Exception ex) - { - this.logger.LogWarning( - ex, - "Persistent rule priority apply failed for rule {RuleId} on process {ProcessName} (PID: {ProcessId})", - result.RuleId, - result.ProcessName, - result.ProcessId); - - var isProcessExited = AffinityApplyExceptionClassifier.IsProcessExited(ex); - var isAccessDenied = AffinityApplyExceptionClassifier.IsAccessDenied(ex); - var isAntiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); - var isRealtimeBlocked = string.Equals( - ex.Message, - ProcessOperationUserMessages.RealtimePriorityBlocked, - StringComparison.Ordinal); - - return result with - { - ErrorCode = isRealtimeBlocked - ? RealtimePriorityBlockedErrorCode - : isProcessExited - ? AffinityApplyErrorCodes.ProcessExited - : isAntiCheatLikely - ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely - : isAccessDenied - ? AffinityApplyErrorCodes.AccessDenied - : PriorityApplyFailedErrorCode, - UserMessage = isRealtimeBlocked - ? ProcessOperationUserMessages.RealtimePriorityBlocked - : isProcessExited - ? ProcessOperationUserMessages.ProcessExited - : isAntiCheatLikely - ? ProcessOperationUserMessages.PersistentRulesProtectedProcessWarning - : isAccessDenied - ? ProcessOperationUserMessages.AccessDenied - : "ThreadPilot could not apply the saved priority rule.", - TechnicalMessage = ex.Message, - IsAccessDenied = result.IsAccessDenied || isAccessDenied, - IsAntiCheatLikely = result.IsAntiCheatLikely || isAntiCheatLikely, - IsProcessExited = result.IsProcessExited || isProcessExited, - }; - } - - private static PersistentRuleApplyResult CreateSuccessResult(PersistentProcessRule rule, ProcessModel process) => - new() - { - Success = true, - RuleId = rule.Id, - ProcessId = process.ProcessId, - ProcessName = process.Name, - UserMessage = "Persistent rule applied.", - TechnicalMessage = $"Persistent rule '{rule.Name}' matched process {process.Name}.", - }; - - private static PersistentRuleApplyResult MergeAffinityFailure( - PersistentRuleApplyResult result, - AffinityApplyResult affinityResult) => - result with - { - ErrorCode = affinityResult.ErrorCode, - UserMessage = affinityResult.IsAntiCheatLikely - ? ProcessOperationUserMessages.PersistentRulesProtectedProcessWarning - : affinityResult.UserMessage, - TechnicalMessage = affinityResult.TechnicalMessage, - IsAccessDenied = result.IsAccessDenied || affinityResult.IsAccessDenied, - IsAntiCheatLikely = result.IsAntiCheatLikely || affinityResult.IsAntiCheatLikely, - IsProcessExited = result.IsProcessExited || - affinityResult.ErrorCode == AffinityApplyErrorCodes.ProcessExited || - affinityResult.FailureReason == AffinityApplyFailureReason.ProcessTerminated, - }; - } -} +/* + * ThreadPilot - persistent rules engine foundation. + */ +namespace ThreadPilot.Services +{ + using System.Diagnostics; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public interface IPersistentRulesEngine + { + Task> ApplyMatchingRulesAsync( + ProcessModel process, + Predicate? ruleFilter = null, + CancellationToken cancellationToken = default); + } + + public sealed class PersistentRulesEngine : IPersistentRulesEngine + { + private const string MissingAffinityErrorCode = "PersistentRuleMissingAffinity"; + private const string MissingMemoryPriorityErrorCode = "PersistentRuleMissingMemoryPriority"; + private const string MissingPriorityErrorCode = "PersistentRuleMissingPriority"; + private const string MemoryPriorityApplyFailedErrorCode = "MemoryPriorityApplyFailed"; + private const string NoActionsErrorCode = "PersistentRuleNoActions"; + private const string PriorityApplyFailedErrorCode = "PriorityApplyFailed"; + private const string RealtimePriorityBlockedErrorCode = "RealtimePriorityBlocked"; + + private readonly IPersistentProcessRuleStore ruleStore; + private readonly IPersistentProcessRuleMatcher matcher; + private readonly IAffinityApplyService affinityApplyService; + private readonly IProcessService processService; + private readonly IProcessMemoryPriorityService memoryPriorityService; + private readonly ILogger logger; + + public PersistentRulesEngine( + IPersistentProcessRuleStore ruleStore, + IPersistentProcessRuleMatcher matcher, + IAffinityApplyService affinityApplyService, + IProcessService processService, + IProcessMemoryPriorityService memoryPriorityService, + ILogger logger) + { + this.ruleStore = ruleStore ?? throw new ArgumentNullException(nameof(ruleStore)); + this.matcher = matcher ?? throw new ArgumentNullException(nameof(matcher)); + this.affinityApplyService = affinityApplyService ?? throw new ArgumentNullException(nameof(affinityApplyService)); + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.memoryPriorityService = memoryPriorityService ?? throw new ArgumentNullException(nameof(memoryPriorityService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public async Task> ApplyMatchingRulesAsync( + ProcessModel process, + Predicate? ruleFilter = null, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(process); + + var rules = await this.ruleStore.LoadAsync().ConfigureAwait(false); + var results = new List(); + + foreach (var rule in rules.Where(rule => + (ruleFilter == null || ruleFilter(rule)) && + this.matcher.IsMatch(rule, process))) + { + cancellationToken.ThrowIfCancellationRequested(); + results.Add(await this.ApplyRuleAsync(rule, process, cancellationToken).ConfigureAwait(false)); + } + + return results; + } + + private async Task ApplyRuleAsync( + PersistentProcessRule rule, + ProcessModel process, + CancellationToken cancellationToken) + { + var result = CreateSuccessResult(rule, process); + var success = true; + + if (!rule.ApplyAffinityOnStart && !rule.ApplyPriorityOnStart && !rule.ApplyMemoryPriorityOnStart) + { + return MarkRuleConfigurationFailure( + result, + rule, + NoActionsErrorCode, + "This saved rule has no actions to apply."); + } + + if (rule.ApplyAffinityOnStart) + { + if (rule.CpuSelection == null && !rule.LegacyAffinityMask.HasValue) + { + success = false; + result = MarkRuleConfigurationFailure( + result, + rule, + MissingAffinityErrorCode, + "This saved rule has no affinity selection to apply."); + } + else + { + var affinityResult = await this.ApplyAffinityAsync(rule, process).ConfigureAwait(false); + if (affinityResult.Success) + { + result = result with { AffinityApplied = true }; + } + else + { + success = false; + result = MergeAffinityFailure(result, affinityResult); + } + } + } + + if (rule.ApplyPriorityOnStart && !result.IsProcessExited) + { + if (!rule.Priority.HasValue) + { + success = false; + result = MarkRuleConfigurationFailure( + result, + rule, + MissingPriorityErrorCode, + "This saved rule has no priority value to apply."); + } + else + { + cancellationToken.ThrowIfCancellationRequested(); + try + { + await this.processService.SetProcessPriority(process, rule.Priority.Value).ConfigureAwait(false); + result = result with { PriorityApplied = true }; + } + catch (Exception ex) + { + success = false; + result = this.MergePriorityFailure(result, ex); + } + } + } + + if (rule.ApplyMemoryPriorityOnStart && !result.IsProcessExited) + { + if (!rule.MemoryPriority.HasValue) + { + success = false; + result = MarkRuleConfigurationFailure( + result, + rule, + MissingMemoryPriorityErrorCode, + "This saved rule has no memory priority value to apply."); + } + else + { + cancellationToken.ThrowIfCancellationRequested(); + var memoryPriorityResult = await this.memoryPriorityService + .SetMemoryPriorityAsync(process, rule.MemoryPriority.Value) + .ConfigureAwait(false); + if (memoryPriorityResult.Success) + { + result = result with { MemoryPriorityApplied = true }; + } + else + { + success = false; + result = this.MergeMemoryPriorityFailure(result, memoryPriorityResult); + } + } + } + + return result with + { + Success = success, + UserMessage = success ? "Persistent rule applied." : result.UserMessage, + TechnicalMessage = success ? $"Persistent rule '{rule.Name}' applied to process {process.Name}." : result.TechnicalMessage, + }; + } + + private PersistentRuleApplyResult MergeMemoryPriorityFailure( + PersistentRuleApplyResult result, + ProcessOperationResult memoryPriorityResult) + { + this.logger.LogWarning( + "Persistent rule memory priority apply failed for rule {RuleId} on process {ProcessName} (PID: {ProcessId}): {Message}", + result.RuleId, + result.ProcessName, + result.ProcessId, + memoryPriorityResult.TechnicalMessage); + + return result with + { + ErrorCode = string.IsNullOrWhiteSpace(memoryPriorityResult.ErrorCode) + ? MemoryPriorityApplyFailedErrorCode + : memoryPriorityResult.ErrorCode, + UserMessage = string.IsNullOrWhiteSpace(memoryPriorityResult.UserMessage) + ? "ThreadPilot could not apply the saved memory priority rule." + : memoryPriorityResult.UserMessage, + TechnicalMessage = memoryPriorityResult.TechnicalMessage, + IsAccessDenied = result.IsAccessDenied || memoryPriorityResult.IsAccessDenied, + IsAntiCheatLikely = result.IsAntiCheatLikely || memoryPriorityResult.IsAntiCheatLikely, + IsProcessExited = result.IsProcessExited || memoryPriorityResult.IsProcessExited, + }; + } + + private Task ApplyAffinityAsync(PersistentProcessRule rule, ProcessModel process) + { + if (rule.CpuSelection != null) + { + return this.affinityApplyService.ApplyAsync(process, rule.CpuSelection); + } + + if (rule.LegacyAffinityMask.HasValue) + { + return this.affinityApplyService.ApplyAsync(process, rule.LegacyAffinityMask.Value); + } + + return Task.FromResult(AffinityApplyResult.Succeeded(0, process.ProcessorAffinity)); + } + + private static PersistentRuleApplyResult MarkRuleConfigurationFailure( + PersistentRuleApplyResult result, + PersistentProcessRule rule, + string errorCode, + string userMessage) => + result with + { + Success = false, + ErrorCode = errorCode, + UserMessage = userMessage, + TechnicalMessage = $"Persistent rule '{rule.Name}' ({rule.Id}) is incomplete: {userMessage}", + }; + + private PersistentRuleApplyResult MergePriorityFailure(PersistentRuleApplyResult result, Exception ex) + { + this.logger.LogWarning( + ex, + "Persistent rule priority apply failed for rule {RuleId} on process {ProcessName} (PID: {ProcessId})", + result.RuleId, + result.ProcessName, + result.ProcessId); + + var isProcessExited = AffinityApplyExceptionClassifier.IsProcessExited(ex); + var isAccessDenied = AffinityApplyExceptionClassifier.IsAccessDenied(ex); + var isAntiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); + var isRealtimeBlocked = string.Equals( + ex.Message, + ProcessOperationUserMessages.RealtimePriorityBlocked, + StringComparison.Ordinal); + + return result with + { + ErrorCode = isRealtimeBlocked + ? RealtimePriorityBlockedErrorCode + : isProcessExited + ? AffinityApplyErrorCodes.ProcessExited + : isAntiCheatLikely + ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely + : isAccessDenied + ? AffinityApplyErrorCodes.AccessDenied + : PriorityApplyFailedErrorCode, + UserMessage = isRealtimeBlocked + ? ProcessOperationUserMessages.RealtimePriorityBlocked + : isProcessExited + ? ProcessOperationUserMessages.ProcessExited + : isAntiCheatLikely + ? ProcessOperationUserMessages.PersistentRulesProtectedProcessWarning + : isAccessDenied + ? ProcessOperationUserMessages.AccessDenied + : "ThreadPilot could not apply the saved priority rule.", + TechnicalMessage = ex.Message, + IsAccessDenied = result.IsAccessDenied || isAccessDenied, + IsAntiCheatLikely = result.IsAntiCheatLikely || isAntiCheatLikely, + IsProcessExited = result.IsProcessExited || isProcessExited, + }; + } + + private static PersistentRuleApplyResult CreateSuccessResult(PersistentProcessRule rule, ProcessModel process) => + new() + { + Success = true, + RuleId = rule.Id, + ProcessId = process.ProcessId, + ProcessName = process.Name, + UserMessage = "Persistent rule applied.", + TechnicalMessage = $"Persistent rule '{rule.Name}' matched process {process.Name}.", + }; + + private static PersistentRuleApplyResult MergeAffinityFailure( + PersistentRuleApplyResult result, + AffinityApplyResult affinityResult) => + result with + { + ErrorCode = affinityResult.ErrorCode, + UserMessage = affinityResult.IsAntiCheatLikely + ? ProcessOperationUserMessages.PersistentRulesProtectedProcessWarning + : affinityResult.UserMessage, + TechnicalMessage = affinityResult.TechnicalMessage, + IsAccessDenied = result.IsAccessDenied || affinityResult.IsAccessDenied, + IsAntiCheatLikely = result.IsAntiCheatLikely || affinityResult.IsAntiCheatLikely, + IsProcessExited = result.IsProcessExited || + affinityResult.ErrorCode == AffinityApplyErrorCodes.ProcessExited || + affinityResult.FailureReason == AffinityApplyFailureReason.ProcessTerminated, + }; + } +} diff --git a/Services/PowerPlanService.cs b/Services/PowerPlanService.cs index af308f3..422f606 100644 --- a/Services/PowerPlanService.cs +++ b/Services/PowerPlanService.cs @@ -1,554 +1,533 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.IO; - using System.Linq; - using System.Text.RegularExpressions; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Services.Abstractions; - - public class PowerPlanService : IPowerPlanService - { - private static readonly Lazy powerPlansPath = new(GetPowerPlansPath); - private static readonly string powerCfgExecutablePath = Path.Combine(Environment.SystemDirectory, "powercfg.exe"); - private static readonly TimeSpan powerCfgTimeout = TimeSpan.FromSeconds(20); - private static readonly Regex powerSchemeRegex = new(@"Power Scheme GUID: (.*?) \((.*?)\)", RegexOptions.Multiline | RegexOptions.Compiled); - private static readonly Regex pathTraversalRegex = new(@"(^|[\\/])\.\.([\\/]|$)", RegexOptions.Compiled); - - private static string PowerPlansPath => powerPlansPath.Value; - - private readonly object lockObject = new(); - private readonly ILogger logger; - private readonly IEnhancedLoggingService enhancedLogger; - private readonly IProcessRunner processRunner; - private readonly Func powerPlansPathProvider; - private string? lastActivePowerPlanGuid; - - public event EventHandler? PowerPlanChanged; - - public PowerPlanService(ILogger logger, IEnhancedLoggingService enhancedLogger) - : this(logger, enhancedLogger, new SystemProcessRunner(), null) - { - } - - public PowerPlanService(ILogger logger, IEnhancedLoggingService enhancedLogger, IProcessRunner processRunner) - : this(logger, enhancedLogger, processRunner, null) - { - } - - public PowerPlanService( - ILogger logger, - IEnhancedLoggingService enhancedLogger, - IProcessRunner processRunner, - Func? powerPlansPathProvider) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.enhancedLogger = enhancedLogger ?? throw new ArgumentNullException(nameof(enhancedLogger)); - this.processRunner = processRunner ?? throw new ArgumentNullException(nameof(processRunner)); - this.powerPlansPathProvider = powerPlansPathProvider ?? (() => PowerPlansPath); - } - - /// - /// Gets the power plans path using smart detection: - /// - Portable mode: Powerplans folder next to EXE - /// - Installed mode: %AppData%\ThreadPilot\Powerplans. - /// - private static string GetPowerPlansPath() - { - StoragePaths.EnsureAppDataDirectories(); - - // Check portable mode first (Powerplans folder next to EXE) - var exeDir = AppContext.BaseDirectory; - var portablePath = Path.Combine(exeDir, "Powerplans"); - if (Directory.Exists(portablePath) && Directory.EnumerateFiles(portablePath, "*.pow", SearchOption.AllDirectories).Any()) - { - return portablePath; - } - - // Installed mode: use AppData - var appDataPath = StoragePaths.PowerPlansDirectory; - - // Ensure directory exists - if (!Directory.Exists(appDataPath)) - { - Directory.CreateDirectory(appDataPath); - - // If portable path exists but was empty, or we have bundled plans to copy - // Copy any .pow files from portable location to AppData - if (Directory.Exists(portablePath)) - { - foreach (var file in Directory.EnumerateFiles(portablePath, "*.pow", SearchOption.AllDirectories)) - { - var relativePath = Path.GetRelativePath(portablePath, file); - var destFile = Path.Combine(appDataPath, relativePath); - if (!File.Exists(destFile)) - { - try - { - Directory.CreateDirectory(Path.GetDirectoryName(destFile) ?? appDataPath); - File.Copy(file, destFile); - } - catch - { - // Ignore copy errors, plans may not be available - } - } - } - } - } - - return appDataPath; - } - - public async Task> GetPowerPlansAsync() - { - var powerPlans = new ObservableCollection(); - var activePlan = await this.GetActivePowerPlan().ConfigureAwait(false); - - var result = await this.RunPowerCfgAsync("/list").ConfigureAwait(false); - var matches = powerSchemeRegex.Matches(result.StandardOutput); - - foreach (Match match in matches) - { - var guid = match.Groups[1].Value.Trim(); - var name = match.Groups[2].Value.Trim(); - - var plan = new PowerPlanModel - { - Guid = guid, - Name = name, - IsActive = guid == activePlan?.Guid, - IsCustomPlan = false, - }; - - powerPlans.Add(plan); - } - - return powerPlans; - } - - public async Task> GetCustomPowerPlansAsync() - { - var customPlans = new ObservableCollection(); - var powerPlansPath = this.powerPlansPathProvider(); - if (!Directory.Exists(powerPlansPath)) - { - return customPlans; - } - - foreach (var file in Directory.EnumerateFiles(powerPlansPath, "*.pow", SearchOption.AllDirectories)) - { - customPlans.Add(new PowerPlanModel - { - Name = Path.GetFileNameWithoutExtension(file), - FilePath = file, - IsCustomPlan = true, - }); - } - - return await Task.FromResult(customPlans).ConfigureAwait(false); - } - - public async Task SetActivePowerPlan(PowerPlanModel powerPlan) - { - return await this.SetActivePowerPlanByGuidAsync(powerPlan.Guid, false).ConfigureAwait(false); - } - - public async Task SetActivePowerPlanByGuidAsync(string powerPlanGuid, bool preventDuplicateChanges = true) - { - if (!Guid.TryParse(powerPlanGuid, out _)) - { - this.logger.LogWarning("Rejected invalid power plan GUID: {PowerPlanGuid}", powerPlanGuid); - return false; - } - - try - { - // Check if change is needed when duplicate prevention is enabled - if (preventDuplicateChanges) - { - var isChangeNeeded = await this.IsPowerPlanChangeNeededAsync(powerPlanGuid).ConfigureAwait(false); - if (!isChangeNeeded) - { - this.logger.LogDebug("Power plan change skipped - already active: {PowerPlanGuid}", powerPlanGuid); - return true; // No change needed, consider it successful - } - } - - var previousPowerPlan = await this.GetActivePowerPlan().ConfigureAwait(false); - var targetPowerPlan = await this.GetPowerPlanByGuidAsync(powerPlanGuid).ConfigureAwait(false); - - this.logger.LogInformation( - "Attempting to change power plan from '{FromPlan}' to '{ToPlan}'", - previousPowerPlan?.Name ?? "Unknown", targetPowerPlan?.Name ?? "Unknown"); - - await this.enhancedLogger.LogPowerPlanChangeAsync( - previousPowerPlan?.Name ?? "Unknown", - targetPowerPlan?.Name ?? "Unknown", - "Manual power plan change requested").ConfigureAwait(false); - - var result = await this.RunPowerCfgAsync("/setactive", powerPlanGuid).ConfigureAwait(false); - var success = result.ExitCode == 0; - - if (success) - { - lock (this.lockObject) - { - this.lastActivePowerPlanGuid = powerPlanGuid; - } - - var newPowerPlan = await this.GetPowerPlanByGuidAsync(powerPlanGuid).ConfigureAwait(false); - - this.logger.LogInformation("Power plan successfully changed to '{PowerPlan}'", newPowerPlan?.Name ?? "Unknown"); - - await this.enhancedLogger.LogPowerPlanChangeAsync( - previousPowerPlan?.Name ?? "Unknown", - newPowerPlan?.Name ?? "Unknown", - "Manual power plan change completed").ConfigureAwait(false); - - this.PowerPlanChanged?.Invoke(this, new PowerPlanChangedEventArgs( - previousPowerPlan, newPowerPlan, "Manual power plan change")); - } - else - { - this.logger.LogWarning( - "Failed to change power plan to '{PowerPlanGuid}' - powercfg exit code: {ExitCode}, stderr: {StdErr}", - powerPlanGuid, - result.ExitCode, - result.StandardError); - - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.PowerPlan.ChangeFailed, - $"Failed to change power plan to '{targetPowerPlan?.Name ?? powerPlanGuid}' - Exit code: {result.ExitCode}", - Microsoft.Extensions.Logging.LogLevel.Warning).ConfigureAwait(false); - } - - return success; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Exception occurred while changing power plan to '{PowerPlanGuid}'", powerPlanGuid); - - await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.SetActivePowerPlanByGuidAsync", - new Dictionary - { - ["PowerPlanGuid"] = powerPlanGuid, - ["PreventDuplicateChanges"] = preventDuplicateChanges, - }).ConfigureAwait(false); - - return false; - } - } - - public async Task GetActivePowerPlan() - { - try - { - var result = await this.RunPowerCfgAsync("/getactivescheme").ConfigureAwait(false); - var match = powerSchemeRegex.Match(result.StandardOutput); - - if (match.Success) - { - return new PowerPlanModel - { - Guid = match.Groups[1].Value.Trim(), - Name = match.Groups[2].Value.Trim(), - IsActive = true, - }; - } - - this.logger.LogWarning("Could not parse active power plan from powercfg output."); - return null; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to read active power plan."); - return null; - } - } - - public async Task ImportCustomPowerPlan(string filePath) - { - if (!this.TryNormalizePowerPlanPath(filePath, out var normalizedPath, out var validationError)) - { - this.logger.LogWarning("Rejected power plan import path '{FilePath}': {ValidationError}", filePath, validationError); - return false; - } - - try - { - var result = await this.RunPowerCfgAsync("/import", normalizedPath).ConfigureAwait(false); - - if (result.ExitCode != 0) - { - this.logger.LogWarning( - "Power plan import failed for '{Path}' with exit code {ExitCode}. stderr: {StdErr}", - normalizedPath, - result.ExitCode, - result.StandardError); - - return false; - } - - this.logger.LogInformation("Imported custom power plan from '{Path}'", normalizedPath); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Exception occurred while importing custom power plan from '{Path}'", normalizedPath); - await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.ImportCustomPowerPlan", - new Dictionary { ["Path"] = normalizedPath }).ConfigureAwait(false); - return false; - } - } - - public async Task AddCustomPowerPlanFileAsync(string filePath) - { - if (!this.TryNormalizePowerPlanPath(filePath, out var normalizedPath, out var validationError)) - { - this.logger.LogWarning("Rejected custom power plan file '{FilePath}': {ValidationError}", filePath, validationError); - return false; - } - - try - { - var powerPlansPath = this.powerPlansPathProvider(); - Directory.CreateDirectory(powerPlansPath); - - var fileName = Path.GetFileName(normalizedPath); - var destinationPath = Path.Combine(powerPlansPath, fileName); - - // If user selects a file already in the managed folder, treat as success. - if (string.Equals(normalizedPath, destinationPath, StringComparison.OrdinalIgnoreCase)) - { - return true; - } - - if (File.Exists(destinationPath)) - { - var baseName = Path.GetFileNameWithoutExtension(fileName); - var extension = Path.GetExtension(fileName); - var suffix = 1; - - do - { - destinationPath = Path.Combine(powerPlansPath, $"{baseName}_{suffix}{extension}"); - suffix++; - } - while (File.Exists(destinationPath)); - } - - File.Copy(normalizedPath, destinationPath, false); - - this.logger.LogInformation( - "Added custom power plan file '{SourcePath}' as '{DestinationPath}'", - normalizedPath, - destinationPath); - - await Task.CompletedTask.ConfigureAwait(false); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to add custom power plan file '{Path}'", normalizedPath); - await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.AddCustomPowerPlanFileAsync", - new Dictionary { ["Path"] = normalizedPath }).ConfigureAwait(false); - return false; - } - } - - public async Task DeletePowerPlanAsync(string powerPlanGuid) - { - if (!Guid.TryParse(powerPlanGuid, out _)) - { - this.logger.LogWarning("Rejected invalid power plan GUID for delete: {PowerPlanGuid}", powerPlanGuid); - return false; - } - - try - { - var activePlan = await this.GetActivePowerPlan().ConfigureAwait(false); - if (string.Equals(activePlan?.Guid, powerPlanGuid, StringComparison.OrdinalIgnoreCase)) - { - this.logger.LogWarning("Blocked deletion of active power plan: {PowerPlanGuid}", powerPlanGuid); - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.PowerPlan.ChangeFailed, - $"Blocked deletion of active power plan '{activePlan?.Name ?? powerPlanGuid}'", - Microsoft.Extensions.Logging.LogLevel.Warning).ConfigureAwait(false); - return false; - } - - var targetPlan = await this.GetPowerPlanByGuidAsync(powerPlanGuid).ConfigureAwait(false); - var result = await this.RunPowerCfgAsync("/delete", powerPlanGuid).ConfigureAwait(false); - var success = result.ExitCode == 0; - - if (success) - { - this.logger.LogInformation("Deleted power plan '{PowerPlan}' ({PowerPlanGuid})", targetPlan?.Name ?? "Unknown", powerPlanGuid); - await this.enhancedLogger.LogUserActionAsync( - "PowerPlanDeleted", - $"Deleted power plan {targetPlan?.Name ?? powerPlanGuid}", - $"Guid: {powerPlanGuid}").ConfigureAwait(false); - } - else - { - this.logger.LogWarning( - "Failed to delete power plan '{PowerPlanGuid}' - powercfg exit code: {ExitCode}, stderr: {StdErr}", - powerPlanGuid, - result.ExitCode, - result.StandardError); - - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.PowerPlan.ChangeFailed, - $"Failed to delete power plan '{targetPlan?.Name ?? powerPlanGuid}' - Exit code: {result.ExitCode}", - Microsoft.Extensions.Logging.LogLevel.Warning).ConfigureAwait(false); - } - - return success; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Exception occurred while deleting power plan '{PowerPlanGuid}'", powerPlanGuid); - await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.DeletePowerPlanAsync", - new Dictionary { ["PowerPlanGuid"] = powerPlanGuid }).ConfigureAwait(false); - return false; - } - } - - public async Task GetActivePowerPlanGuidAsync() - { - var activePlan = await this.GetActivePowerPlan().ConfigureAwait(false); - return activePlan?.Guid; - } - - public async Task PowerPlanExistsAsync(string powerPlanGuid) - { - if (!Guid.TryParse(powerPlanGuid, out _)) - { - return false; - } - - var powerPlans = await this.GetPowerPlansAsync().ConfigureAwait(false); - return powerPlans.Any(p => string.Equals(p.Guid, powerPlanGuid, StringComparison.OrdinalIgnoreCase)); - } - - public async Task GetPowerPlanByGuidAsync(string powerPlanGuid) - { - if (!Guid.TryParse(powerPlanGuid, out _)) - { - return null; - } - - var powerPlans = await this.GetPowerPlansAsync().ConfigureAwait(false); - return powerPlans.FirstOrDefault(p => string.Equals(p.Guid, powerPlanGuid, StringComparison.OrdinalIgnoreCase)); - } - - public async Task IsPowerPlanChangeNeededAsync(string targetPowerPlanGuid) - { - try - { - var currentGuid = await this.GetActivePowerPlanGuidAsync().ConfigureAwait(false); - - // Check if the target power plan is already active - if (string.Equals(currentGuid, targetPowerPlanGuid, StringComparison.OrdinalIgnoreCase)) - { - return false; // No change needed - } - - // Check if we recently set this power plan (to prevent rapid switching) - lock (this.lockObject) - { - if (string.Equals(this.lastActivePowerPlanGuid, targetPowerPlanGuid, StringComparison.OrdinalIgnoreCase)) - { - return false; // We recently set this plan - } - } - - return true; // Change is needed - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Could not determine if power plan change is needed for '{PowerPlanGuid}'", targetPowerPlanGuid); - return true; // If we can't determine, assume change is needed - } - } - - private bool TryNormalizePowerPlanPath(string filePath, out string normalizedPath, out string error) - { - normalizedPath = string.Empty; - - if (string.IsNullOrWhiteSpace(filePath)) - { - error = "Path is empty."; - return false; - } - - if (pathTraversalRegex.IsMatch(filePath)) - { - error = "Path traversal segments are not allowed."; - return false; - } - - if (!Path.IsPathFullyQualified(filePath)) - { - error = "Path must be absolute."; - return false; - } - - try - { - normalizedPath = Path.GetFullPath(filePath); - } - catch (Exception ex) - { - error = $"Invalid file path: {ex.Message}"; - return false; - } - - if (!string.Equals(Path.GetExtension(normalizedPath), ".pow", StringComparison.OrdinalIgnoreCase)) - { - error = "Only .pow files are supported."; - return false; - } - - if (!File.Exists(normalizedPath)) - { - error = "File does not exist."; - return false; - } - - var fileInfo = new FileInfo(normalizedPath); - if (fileInfo.Length > 10 * 1024 * 1024) - { - error = "Power plan file size exceeds 10 MB limit."; - return false; - } - - error = string.Empty; - return true; - } - - private Task RunPowerCfgAsync(params string[] arguments) => - this.processRunner.RunAsync(powerCfgExecutablePath, arguments, powerCfgTimeout); - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.IO; + using System.Linq; + using System.Text.RegularExpressions; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Services.Abstractions; + + public class PowerPlanService : IPowerPlanService + { + private static readonly Lazy powerPlansPath = new(GetPowerPlansPath); + private static readonly string powerCfgExecutablePath = Path.Combine(Environment.SystemDirectory, "powercfg.exe"); + private static readonly TimeSpan powerCfgTimeout = TimeSpan.FromSeconds(20); + private static readonly Regex powerSchemeRegex = new(@"Power Scheme GUID: (.*?) \((.*?)\)", RegexOptions.Multiline | RegexOptions.Compiled); + private static readonly Regex pathTraversalRegex = new(@"(^|[\\/])\.\.([\\/]|$)", RegexOptions.Compiled); + + private static string PowerPlansPath => powerPlansPath.Value; + + private readonly object lockObject = new(); + private readonly ILogger logger; + private readonly IEnhancedLoggingService enhancedLogger; + private readonly IProcessRunner processRunner; + private readonly Func powerPlansPathProvider; + private string? lastActivePowerPlanGuid; + + public event EventHandler? PowerPlanChanged; + + public PowerPlanService(ILogger logger, IEnhancedLoggingService enhancedLogger) + : this(logger, enhancedLogger, new SystemProcessRunner(), null) + { + } + + public PowerPlanService(ILogger logger, IEnhancedLoggingService enhancedLogger, IProcessRunner processRunner) + : this(logger, enhancedLogger, processRunner, null) + { + } + + public PowerPlanService( + ILogger logger, + IEnhancedLoggingService enhancedLogger, + IProcessRunner processRunner, + Func? powerPlansPathProvider) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.enhancedLogger = enhancedLogger ?? throw new ArgumentNullException(nameof(enhancedLogger)); + this.processRunner = processRunner ?? throw new ArgumentNullException(nameof(processRunner)); + this.powerPlansPathProvider = powerPlansPathProvider ?? (() => PowerPlansPath); + } + + private static string GetPowerPlansPath() + { + StoragePaths.EnsureAppDataDirectories(); + + // Check portable mode first (Powerplans folder next to EXE) + var exeDir = AppContext.BaseDirectory; + var portablePath = Path.Combine(exeDir, "Powerplans"); + if (Directory.Exists(portablePath) && Directory.EnumerateFiles(portablePath, "*.pow", SearchOption.AllDirectories).Any()) + { + return portablePath; + } + + // Installed mode: use AppData + var appDataPath = StoragePaths.PowerPlansDirectory; + + // Ensure directory exists + if (!Directory.Exists(appDataPath)) + { + Directory.CreateDirectory(appDataPath); + + // If portable path exists but was empty, or we have bundled plans to copy + // Copy any .pow files from portable location to AppData + if (Directory.Exists(portablePath)) + { + foreach (var file in Directory.EnumerateFiles(portablePath, "*.pow", SearchOption.AllDirectories)) + { + var relativePath = Path.GetRelativePath(portablePath, file); + var destFile = Path.Combine(appDataPath, relativePath); + if (!File.Exists(destFile)) + { + try + { + Directory.CreateDirectory(Path.GetDirectoryName(destFile) ?? appDataPath); + File.Copy(file, destFile); + } + catch + { + // Ignore copy errors, plans may not be available + } + } + } + } + } + + return appDataPath; + } + + public async Task> GetPowerPlansAsync() + { + var powerPlans = new ObservableCollection(); + var activePlan = await this.GetActivePowerPlan().ConfigureAwait(false); + + var result = await this.RunPowerCfgAsync("/list").ConfigureAwait(false); + var matches = powerSchemeRegex.Matches(result.StandardOutput); + + foreach (Match match in matches) + { + var guid = match.Groups[1].Value.Trim(); + var name = match.Groups[2].Value.Trim(); + + var plan = new PowerPlanModel + { + Guid = guid, + Name = name, + IsActive = guid == activePlan?.Guid, + IsCustomPlan = false, + }; + + powerPlans.Add(plan); + } + + return powerPlans; + } + + public async Task> GetCustomPowerPlansAsync() + { + var customPlans = new ObservableCollection(); + var powerPlansPath = this.powerPlansPathProvider(); + if (!Directory.Exists(powerPlansPath)) + { + return customPlans; + } + + foreach (var file in Directory.EnumerateFiles(powerPlansPath, "*.pow", SearchOption.AllDirectories)) + { + customPlans.Add(new PowerPlanModel + { + Name = Path.GetFileNameWithoutExtension(file), + FilePath = file, + IsCustomPlan = true, + }); + } + + return await Task.FromResult(customPlans).ConfigureAwait(false); + } + + public async Task SetActivePowerPlan(PowerPlanModel powerPlan) + { + return await this.SetActivePowerPlanByGuidAsync(powerPlan.Guid, false).ConfigureAwait(false); + } + + public async Task SetActivePowerPlanByGuidAsync(string powerPlanGuid, bool preventDuplicateChanges = true) + { + if (!Guid.TryParse(powerPlanGuid, out _)) + { + this.logger.LogWarning("Rejected invalid power plan GUID: {PowerPlanGuid}", powerPlanGuid); + return false; + } + + try + { + // Check if change is needed when duplicate prevention is enabled + if (preventDuplicateChanges) + { + var isChangeNeeded = await this.IsPowerPlanChangeNeededAsync(powerPlanGuid).ConfigureAwait(false); + if (!isChangeNeeded) + { + this.logger.LogDebug("Power plan change skipped - already active: {PowerPlanGuid}", powerPlanGuid); + return true; // No change needed, consider it successful + } + } + + var previousPowerPlan = await this.GetActivePowerPlan().ConfigureAwait(false); + var targetPowerPlan = await this.GetPowerPlanByGuidAsync(powerPlanGuid).ConfigureAwait(false); + + this.logger.LogInformation( + "Attempting to change power plan from '{FromPlan}' to '{ToPlan}'", + previousPowerPlan?.Name ?? "Unknown", targetPowerPlan?.Name ?? "Unknown"); + + await this.enhancedLogger.LogPowerPlanChangeAsync( + previousPowerPlan?.Name ?? "Unknown", + targetPowerPlan?.Name ?? "Unknown", + "Manual power plan change requested").ConfigureAwait(false); + + var result = await this.RunPowerCfgAsync("/setactive", powerPlanGuid).ConfigureAwait(false); + var success = result.ExitCode == 0; + + if (success) + { + lock (this.lockObject) + { + this.lastActivePowerPlanGuid = powerPlanGuid; + } + + var newPowerPlan = await this.GetPowerPlanByGuidAsync(powerPlanGuid).ConfigureAwait(false); + + this.logger.LogInformation("Power plan successfully changed to '{PowerPlan}'", newPowerPlan?.Name ?? "Unknown"); + + await this.enhancedLogger.LogPowerPlanChangeAsync( + previousPowerPlan?.Name ?? "Unknown", + newPowerPlan?.Name ?? "Unknown", + "Manual power plan change completed").ConfigureAwait(false); + + this.PowerPlanChanged?.Invoke(this, new PowerPlanChangedEventArgs( + previousPowerPlan, newPowerPlan, "Manual power plan change")); + } + else + { + this.logger.LogWarning( + "Failed to change power plan to '{PowerPlanGuid}' - powercfg exit code: {ExitCode}, stderr: {StdErr}", + powerPlanGuid, + result.ExitCode, + result.StandardError); + + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.PowerPlan.ChangeFailed, + $"Failed to change power plan to '{targetPowerPlan?.Name ?? powerPlanGuid}' - Exit code: {result.ExitCode}", + Microsoft.Extensions.Logging.LogLevel.Warning).ConfigureAwait(false); + } + + return success; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Exception occurred while changing power plan to '{PowerPlanGuid}'", powerPlanGuid); + + await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.SetActivePowerPlanByGuidAsync", + new Dictionary + { + ["PowerPlanGuid"] = powerPlanGuid, + ["PreventDuplicateChanges"] = preventDuplicateChanges, + }).ConfigureAwait(false); + + return false; + } + } + + public async Task GetActivePowerPlan() + { + try + { + var result = await this.RunPowerCfgAsync("/getactivescheme").ConfigureAwait(false); + var match = powerSchemeRegex.Match(result.StandardOutput); + + if (match.Success) + { + return new PowerPlanModel + { + Guid = match.Groups[1].Value.Trim(), + Name = match.Groups[2].Value.Trim(), + IsActive = true, + }; + } + + this.logger.LogWarning("Could not parse active power plan from powercfg output."); + return null; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to read active power plan."); + return null; + } + } + + public async Task ImportCustomPowerPlan(string filePath) + { + if (!this.TryNormalizePowerPlanPath(filePath, out var normalizedPath, out var validationError)) + { + this.logger.LogWarning("Rejected power plan import path '{FilePath}': {ValidationError}", filePath, validationError); + return false; + } + + try + { + var result = await this.RunPowerCfgAsync("/import", normalizedPath).ConfigureAwait(false); + + if (result.ExitCode != 0) + { + this.logger.LogWarning( + "Power plan import failed for '{Path}' with exit code {ExitCode}. stderr: {StdErr}", + normalizedPath, + result.ExitCode, + result.StandardError); + + return false; + } + + this.logger.LogInformation("Imported custom power plan from '{Path}'", normalizedPath); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Exception occurred while importing custom power plan from '{Path}'", normalizedPath); + await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.ImportCustomPowerPlan", + new Dictionary { ["Path"] = normalizedPath }).ConfigureAwait(false); + return false; + } + } + + public async Task AddCustomPowerPlanFileAsync(string filePath) + { + if (!this.TryNormalizePowerPlanPath(filePath, out var normalizedPath, out var validationError)) + { + this.logger.LogWarning("Rejected custom power plan file '{FilePath}': {ValidationError}", filePath, validationError); + return false; + } + + try + { + var powerPlansPath = this.powerPlansPathProvider(); + Directory.CreateDirectory(powerPlansPath); + + var fileName = Path.GetFileName(normalizedPath); + var destinationPath = Path.Combine(powerPlansPath, fileName); + + // If user selects a file already in the managed folder, treat as success. + if (string.Equals(normalizedPath, destinationPath, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + + if (File.Exists(destinationPath)) + { + var baseName = Path.GetFileNameWithoutExtension(fileName); + var extension = Path.GetExtension(fileName); + var suffix = 1; + + do + { + destinationPath = Path.Combine(powerPlansPath, $"{baseName}_{suffix}{extension}"); + suffix++; + } + while (File.Exists(destinationPath)); + } + + File.Copy(normalizedPath, destinationPath, false); + + this.logger.LogInformation( + "Added custom power plan file '{SourcePath}' as '{DestinationPath}'", + normalizedPath, + destinationPath); + + await Task.CompletedTask.ConfigureAwait(false); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to add custom power plan file '{Path}'", normalizedPath); + await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.AddCustomPowerPlanFileAsync", + new Dictionary { ["Path"] = normalizedPath }).ConfigureAwait(false); + return false; + } + } + + public async Task DeletePowerPlanAsync(string powerPlanGuid) + { + if (!Guid.TryParse(powerPlanGuid, out _)) + { + this.logger.LogWarning("Rejected invalid power plan GUID for delete: {PowerPlanGuid}", powerPlanGuid); + return false; + } + + try + { + var activePlan = await this.GetActivePowerPlan().ConfigureAwait(false); + if (string.Equals(activePlan?.Guid, powerPlanGuid, StringComparison.OrdinalIgnoreCase)) + { + this.logger.LogWarning("Blocked deletion of active power plan: {PowerPlanGuid}", powerPlanGuid); + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.PowerPlan.ChangeFailed, + $"Blocked deletion of active power plan '{activePlan?.Name ?? powerPlanGuid}'", + Microsoft.Extensions.Logging.LogLevel.Warning).ConfigureAwait(false); + return false; + } + + var targetPlan = await this.GetPowerPlanByGuidAsync(powerPlanGuid).ConfigureAwait(false); + var result = await this.RunPowerCfgAsync("/delete", powerPlanGuid).ConfigureAwait(false); + var success = result.ExitCode == 0; + + if (success) + { + this.logger.LogInformation("Deleted power plan '{PowerPlan}' ({PowerPlanGuid})", targetPlan?.Name ?? "Unknown", powerPlanGuid); + await this.enhancedLogger.LogUserActionAsync( + "PowerPlanDeleted", + $"Deleted power plan {targetPlan?.Name ?? powerPlanGuid}", + $"Guid: {powerPlanGuid}").ConfigureAwait(false); + } + else + { + this.logger.LogWarning( + "Failed to delete power plan '{PowerPlanGuid}' - powercfg exit code: {ExitCode}, stderr: {StdErr}", + powerPlanGuid, + result.ExitCode, + result.StandardError); + + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.PowerPlan.ChangeFailed, + $"Failed to delete power plan '{targetPlan?.Name ?? powerPlanGuid}' - Exit code: {result.ExitCode}", + Microsoft.Extensions.Logging.LogLevel.Warning).ConfigureAwait(false); + } + + return success; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Exception occurred while deleting power plan '{PowerPlanGuid}'", powerPlanGuid); + await this.enhancedLogger.LogErrorAsync(ex, "PowerPlanService.DeletePowerPlanAsync", + new Dictionary { ["PowerPlanGuid"] = powerPlanGuid }).ConfigureAwait(false); + return false; + } + } + + public async Task GetActivePowerPlanGuidAsync() + { + var activePlan = await this.GetActivePowerPlan().ConfigureAwait(false); + return activePlan?.Guid; + } + + public async Task PowerPlanExistsAsync(string powerPlanGuid) + { + if (!Guid.TryParse(powerPlanGuid, out _)) + { + return false; + } + + var powerPlans = await this.GetPowerPlansAsync().ConfigureAwait(false); + return powerPlans.Any(p => string.Equals(p.Guid, powerPlanGuid, StringComparison.OrdinalIgnoreCase)); + } + + public async Task GetPowerPlanByGuidAsync(string powerPlanGuid) + { + if (!Guid.TryParse(powerPlanGuid, out _)) + { + return null; + } + + var powerPlans = await this.GetPowerPlansAsync().ConfigureAwait(false); + return powerPlans.FirstOrDefault(p => string.Equals(p.Guid, powerPlanGuid, StringComparison.OrdinalIgnoreCase)); + } + + public async Task IsPowerPlanChangeNeededAsync(string targetPowerPlanGuid) + { + try + { + var currentGuid = await this.GetActivePowerPlanGuidAsync().ConfigureAwait(false); + + // Check if the target power plan is already active + if (string.Equals(currentGuid, targetPowerPlanGuid, StringComparison.OrdinalIgnoreCase)) + { + return false; // No change needed + } + + // Check if we recently set this power plan (to prevent rapid switching) + lock (this.lockObject) + { + if (string.Equals(this.lastActivePowerPlanGuid, targetPowerPlanGuid, StringComparison.OrdinalIgnoreCase)) + { + return false; // We recently set this plan + } + } + + return true; // Change is needed + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Could not determine if power plan change is needed for '{PowerPlanGuid}'", targetPowerPlanGuid); + return true; // If we can't determine, assume change is needed + } + } + + private bool TryNormalizePowerPlanPath(string filePath, out string normalizedPath, out string error) + { + normalizedPath = string.Empty; + + if (string.IsNullOrWhiteSpace(filePath)) + { + error = "Path is empty."; + return false; + } + + if (pathTraversalRegex.IsMatch(filePath)) + { + error = "Path traversal segments are not allowed."; + return false; + } + + if (!Path.IsPathFullyQualified(filePath)) + { + error = "Path must be absolute."; + return false; + } + + try + { + normalizedPath = Path.GetFullPath(filePath); + } + catch (Exception ex) + { + error = $"Invalid file path: {ex.Message}"; + return false; + } + + if (!string.Equals(Path.GetExtension(normalizedPath), ".pow", StringComparison.OrdinalIgnoreCase)) + { + error = "Only .pow files are supported."; + return false; + } + + if (!File.Exists(normalizedPath)) + { + error = "File does not exist."; + return false; + } + + var fileInfo = new FileInfo(normalizedPath); + if (fileInfo.Length > 10 * 1024 * 1024) + { + error = "Power plan file size exceeds 10 MB limit."; + return false; + } + + error = string.Empty; + return true; + } + + private Task RunPowerCfgAsync(params string[] arguments) => + this.processRunner.RunAsync(powerCfgExecutablePath, arguments, powerCfgTimeout); + } +} diff --git a/Services/PowerPlanTransitionGate.cs b/Services/PowerPlanTransitionGate.cs index 41f8b08..8c91e11 100644 --- a/Services/PowerPlanTransitionGate.cs +++ b/Services/PowerPlanTransitionGate.cs @@ -1,78 +1,62 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - public enum PowerPlanTransitionSuppressionReason - { - None, - AlreadyActive, - RecentDuplicateRequest, - } - - public sealed record PowerPlanTransitionDecision( - bool ShouldApply, - PowerPlanTransitionSuppressionReason SuppressionReason); - - public sealed class PowerPlanTransitionGate - { - private readonly TimeSpan duplicateWindow; - private readonly Func nowProvider; - private readonly object lockObject = new(); - private string? lastRequestedPowerPlanGuid; - private DateTimeOffset lastRequestTime; - - public PowerPlanTransitionGate() - : this(TimeSpan.FromSeconds(2), () => DateTimeOffset.UtcNow) - { - } - - public PowerPlanTransitionGate(TimeSpan duplicateWindow, Func nowProvider) - { - this.duplicateWindow = duplicateWindow < TimeSpan.Zero ? TimeSpan.Zero : duplicateWindow; - this.nowProvider = nowProvider ?? throw new ArgumentNullException(nameof(nowProvider)); - } - - public PowerPlanTransitionDecision ShouldApply(string targetPowerPlanGuid, string? currentPowerPlanGuid) - { - if (string.Equals(targetPowerPlanGuid, currentPowerPlanGuid, StringComparison.OrdinalIgnoreCase)) - { - return new PowerPlanTransitionDecision(false, PowerPlanTransitionSuppressionReason.AlreadyActive); - } - - lock (this.lockObject) - { - var now = this.nowProvider(); - if (string.Equals(this.lastRequestedPowerPlanGuid, targetPowerPlanGuid, StringComparison.OrdinalIgnoreCase) && - now - this.lastRequestTime < this.duplicateWindow) - { - return new PowerPlanTransitionDecision(false, PowerPlanTransitionSuppressionReason.RecentDuplicateRequest); - } - } - - return new PowerPlanTransitionDecision(true, PowerPlanTransitionSuppressionReason.None); - } - - public void RecordAttempt(string targetPowerPlanGuid) - { - lock (this.lockObject) - { - this.lastRequestedPowerPlanGuid = targetPowerPlanGuid; - this.lastRequestTime = this.nowProvider(); - } - } - } -} +namespace ThreadPilot.Services +{ + public enum PowerPlanTransitionSuppressionReason + { + None, + AlreadyActive, + RecentDuplicateRequest, + } + + public sealed record PowerPlanTransitionDecision( + bool ShouldApply, + PowerPlanTransitionSuppressionReason SuppressionReason); + + public sealed class PowerPlanTransitionGate + { + private readonly TimeSpan duplicateWindow; + private readonly Func nowProvider; + private readonly object lockObject = new(); + private string? lastRequestedPowerPlanGuid; + private DateTimeOffset lastRequestTime; + + public PowerPlanTransitionGate() + : this(TimeSpan.FromSeconds(2), () => DateTimeOffset.UtcNow) + { + } + + public PowerPlanTransitionGate(TimeSpan duplicateWindow, Func nowProvider) + { + this.duplicateWindow = duplicateWindow < TimeSpan.Zero ? TimeSpan.Zero : duplicateWindow; + this.nowProvider = nowProvider ?? throw new ArgumentNullException(nameof(nowProvider)); + } + + public PowerPlanTransitionDecision ShouldApply(string targetPowerPlanGuid, string? currentPowerPlanGuid) + { + if (string.Equals(targetPowerPlanGuid, currentPowerPlanGuid, StringComparison.OrdinalIgnoreCase)) + { + return new PowerPlanTransitionDecision(false, PowerPlanTransitionSuppressionReason.AlreadyActive); + } + + lock (this.lockObject) + { + var now = this.nowProvider(); + if (string.Equals(this.lastRequestedPowerPlanGuid, targetPowerPlanGuid, StringComparison.OrdinalIgnoreCase) && + now - this.lastRequestTime < this.duplicateWindow) + { + return new PowerPlanTransitionDecision(false, PowerPlanTransitionSuppressionReason.RecentDuplicateRequest); + } + } + + return new PowerPlanTransitionDecision(true, PowerPlanTransitionSuppressionReason.None); + } + + public void RecordAttempt(string targetPowerPlanGuid) + { + lock (this.lockObject) + { + this.lastRequestedPowerPlanGuid = targetPowerPlanGuid; + this.lastRequestTime = this.nowProvider(); + } + } + } +} diff --git a/Services/ProcessAffinityApplyCoordinator.cs b/Services/ProcessAffinityApplyCoordinator.cs index 66cf0c0..3d58dfd 100644 --- a/Services/ProcessAffinityApplyCoordinator.cs +++ b/Services/ProcessAffinityApplyCoordinator.cs @@ -1,178 +1,178 @@ -/* - * ThreadPilot - process tab affinity apply coordination. - */ -namespace ThreadPilot.Services -{ - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - public interface IProcessAffinityApplyCoordinator - { - Task ApplyCoreMaskAsync( - ProcessModel process, - CoreMask coreMask, - CancellationToken cancellationToken = default); - - Task ApplyCoreSelectionAsync( - ProcessModel process, - IReadOnlyList boolMask, - string selectionReason, - CancellationToken cancellationToken = default); - } - - public sealed class ProcessAffinityApplyCoordinator : IProcessAffinityApplyCoordinator - { - private readonly IAffinityApplyService affinityApplyService; - private readonly ICpuTopologyProvider? cpuTopologyProvider; - private readonly CpuSelectionMigrationService cpuSelectionMigrationService; - private readonly ILogger logger; - - public ProcessAffinityApplyCoordinator( - IAffinityApplyService affinityApplyService, - ICpuTopologyProvider? cpuTopologyProvider, - CpuSelectionMigrationService cpuSelectionMigrationService, - ILogger logger) - { - this.affinityApplyService = affinityApplyService ?? throw new ArgumentNullException(nameof(affinityApplyService)); - this.cpuTopologyProvider = cpuTopologyProvider; - this.cpuSelectionMigrationService = cpuSelectionMigrationService ?? throw new ArgumentNullException(nameof(cpuSelectionMigrationService)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public Task ApplyCoreMaskAsync( - ProcessModel process, - CoreMask coreMask, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(coreMask); - - if (HasSelectionPayload(coreMask.CpuSelection)) - { - return this.affinityApplyService.ApplyAsync(process, coreMask.CpuSelection!); - } - - return this.ApplyCoreSelectionAsync( - process, - coreMask.BoolMask.ToList(), - $"Manual Process tab mask '{coreMask.Name}'", - cancellationToken); - } - - public async Task ApplyCoreSelectionAsync( - ProcessModel process, - IReadOnlyList boolMask, - string selectionReason, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(process); - ArgumentNullException.ThrowIfNull(boolMask); - - if (boolMask.Count == 0 || !boolMask.Any(selected => selected)) - { - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.InvalidSelection, - ProcessOperationUserMessages.InvalidTopology, - "Manual CPU selection is empty.", - isInvalidTopology: true, - failureReason: AffinityApplyFailureReason.InvalidMask); - } - - var migratedSelection = await this.TryMigrateToCpuSelectionAsync( - boolMask, - selectionReason, - cancellationToken).ConfigureAwait(false); - if (migratedSelection != null) - { - return await this.affinityApplyService.ApplyAsync(process, migratedSelection).ConfigureAwait(false); - } - - if (!TryBuildSafeLegacyMask(boolMask, out var legacyMask, out var legacyFailure)) - { - return legacyFailure; - } - - return await this.affinityApplyService.ApplyAsync(process, legacyMask).ConfigureAwait(false); - } - - private async Task TryMigrateToCpuSelectionAsync( - IReadOnlyList boolMask, - string selectionReason, - CancellationToken cancellationToken) - { - if (this.cpuTopologyProvider == null) - { - return null; - } - - try - { - var topology = await this.cpuTopologyProvider.GetTopologySnapshotAsync(cancellationToken).ConfigureAwait(false); - var migrated = this.cpuSelectionMigrationService.MigrateFromLegacyCoreMask(boolMask, topology); - if (!HasSelectionPayload(migrated.Selection)) - { - return null; - } - - return migrated.Selection with - { - Metadata = migrated.Selection.Metadata with - { - SelectionReason = string.IsNullOrWhiteSpace(selectionReason) - ? migrated.Selection.Metadata.SelectionReason - : selectionReason, - }, - }; - } - catch (Exception ex) when (ex is not OperationCanceledException) - { - this.logger.LogDebug(ex, "Could not migrate manual Process tab CPU selection to CpuSelection"); - return null; - } - } - - private static bool HasSelectionPayload(CpuSelection? selection) => - selection != null && - (selection.CpuSetIds.Count > 0 || selection.LogicalProcessors.Count > 0); - - private static bool TryBuildSafeLegacyMask( - IReadOnlyList boolMask, - out long legacyMask, - out AffinityApplyResult failure) - { - legacyMask = 0; - failure = default!; - - if (boolMask.Count > 64) - { - failure = AffinityApplyResult.Failed( - AffinityApplyErrorCodes.LegacyFallbackUnsafe, - ProcessOperationUserMessages.LegacyFallbackBlocked, - "Manual CPU selection exceeds the legacy single-group 64-bit affinity mask.", - isLegacyFallbackBlocked: true, - failureReason: AffinityApplyFailureReason.InvalidMask); - return false; - } - - for (var bit = 0; bit < boolMask.Count; bit++) - { - if (boolMask[bit]) - { - legacyMask |= 1L << bit; - } - } - - if (legacyMask == 0) - { - failure = AffinityApplyResult.Failed( - AffinityApplyErrorCodes.InvalidSelection, - ProcessOperationUserMessages.InvalidTopology, - "Manual CPU selection does not contain any enabled CPUs.", - isInvalidTopology: true, - failureReason: AffinityApplyFailureReason.InvalidMask); - return false; - } - - return true; - } - } -} +/* + * ThreadPilot - process tab affinity apply coordination. + */ +namespace ThreadPilot.Services +{ + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public interface IProcessAffinityApplyCoordinator + { + Task ApplyCoreMaskAsync( + ProcessModel process, + CoreMask coreMask, + CancellationToken cancellationToken = default); + + Task ApplyCoreSelectionAsync( + ProcessModel process, + IReadOnlyList boolMask, + string selectionReason, + CancellationToken cancellationToken = default); + } + + public sealed class ProcessAffinityApplyCoordinator : IProcessAffinityApplyCoordinator + { + private readonly IAffinityApplyService affinityApplyService; + private readonly ICpuTopologyProvider? cpuTopologyProvider; + private readonly CpuSelectionMigrationService cpuSelectionMigrationService; + private readonly ILogger logger; + + public ProcessAffinityApplyCoordinator( + IAffinityApplyService affinityApplyService, + ICpuTopologyProvider? cpuTopologyProvider, + CpuSelectionMigrationService cpuSelectionMigrationService, + ILogger logger) + { + this.affinityApplyService = affinityApplyService ?? throw new ArgumentNullException(nameof(affinityApplyService)); + this.cpuTopologyProvider = cpuTopologyProvider; + this.cpuSelectionMigrationService = cpuSelectionMigrationService ?? throw new ArgumentNullException(nameof(cpuSelectionMigrationService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public Task ApplyCoreMaskAsync( + ProcessModel process, + CoreMask coreMask, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(coreMask); + + if (HasSelectionPayload(coreMask.CpuSelection)) + { + return this.affinityApplyService.ApplyAsync(process, coreMask.CpuSelection!); + } + + return this.ApplyCoreSelectionAsync( + process, + coreMask.BoolMask.ToList(), + $"Manual Process tab mask '{coreMask.Name}'", + cancellationToken); + } + + public async Task ApplyCoreSelectionAsync( + ProcessModel process, + IReadOnlyList boolMask, + string selectionReason, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(process); + ArgumentNullException.ThrowIfNull(boolMask); + + if (boolMask.Count == 0 || !boolMask.Any(selected => selected)) + { + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.InvalidSelection, + ProcessOperationUserMessages.InvalidTopology, + "Manual CPU selection is empty.", + isInvalidTopology: true, + failureReason: AffinityApplyFailureReason.InvalidMask); + } + + var migratedSelection = await this.TryMigrateToCpuSelectionAsync( + boolMask, + selectionReason, + cancellationToken).ConfigureAwait(false); + if (migratedSelection != null) + { + return await this.affinityApplyService.ApplyAsync(process, migratedSelection).ConfigureAwait(false); + } + + if (!TryBuildSafeLegacyMask(boolMask, out var legacyMask, out var legacyFailure)) + { + return legacyFailure; + } + + return await this.affinityApplyService.ApplyAsync(process, legacyMask).ConfigureAwait(false); + } + + private async Task TryMigrateToCpuSelectionAsync( + IReadOnlyList boolMask, + string selectionReason, + CancellationToken cancellationToken) + { + if (this.cpuTopologyProvider == null) + { + return null; + } + + try + { + var topology = await this.cpuTopologyProvider.GetTopologySnapshotAsync(cancellationToken).ConfigureAwait(false); + var migrated = this.cpuSelectionMigrationService.MigrateFromLegacyCoreMask(boolMask, topology); + if (!HasSelectionPayload(migrated.Selection)) + { + return null; + } + + return migrated.Selection with + { + Metadata = migrated.Selection.Metadata with + { + SelectionReason = string.IsNullOrWhiteSpace(selectionReason) + ? migrated.Selection.Metadata.SelectionReason + : selectionReason, + }, + }; + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + this.logger.LogDebug(ex, "Could not migrate manual Process tab CPU selection to CpuSelection"); + return null; + } + } + + private static bool HasSelectionPayload(CpuSelection? selection) => + selection != null && + (selection.CpuSetIds.Count > 0 || selection.LogicalProcessors.Count > 0); + + private static bool TryBuildSafeLegacyMask( + IReadOnlyList boolMask, + out long legacyMask, + out AffinityApplyResult failure) + { + legacyMask = 0; + failure = default!; + + if (boolMask.Count > 64) + { + failure = AffinityApplyResult.Failed( + AffinityApplyErrorCodes.LegacyFallbackUnsafe, + ProcessOperationUserMessages.LegacyFallbackBlocked, + "Manual CPU selection exceeds the legacy single-group 64-bit affinity mask.", + isLegacyFallbackBlocked: true, + failureReason: AffinityApplyFailureReason.InvalidMask); + return false; + } + + for (var bit = 0; bit < boolMask.Count; bit++) + { + if (boolMask[bit]) + { + legacyMask |= 1L << bit; + } + } + + if (legacyMask == 0) + { + failure = AffinityApplyResult.Failed( + AffinityApplyErrorCodes.InvalidSelection, + ProcessOperationUserMessages.InvalidTopology, + "Manual CPU selection does not contain any enabled CPUs.", + isInvalidTopology: true, + failureReason: AffinityApplyFailureReason.InvalidMask); + return false; + } + + return true; + } + } +} diff --git a/Services/ProcessClassifier.cs b/Services/ProcessClassifier.cs index 2d737af..d1e050c 100644 --- a/Services/ProcessClassifier.cs +++ b/Services/ProcessClassifier.cs @@ -1,78 +1,62 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using ThreadPilot.Models; - - public readonly record struct ProcessClassificationContext( - int? ForegroundProcessId, - bool AccessDenied = false, - bool Terminated = false); - - public interface IProcessClassifier - { - ProcessClassification Classify(ProcessModel process, ProcessClassificationContext context); - } - - public sealed class ProcessClassifier : IProcessClassifier - { - private readonly ProcessFilterService processFilterService; - - public ProcessClassifier(ProcessFilterService processFilterService) - { - this.processFilterService = processFilterService ?? throw new ArgumentNullException(nameof(processFilterService)); - } - - public ProcessClassification Classify(ProcessModel process, ProcessClassificationContext context) - { - ArgumentNullException.ThrowIfNull(process); - - if (context.Terminated) - { - return ProcessClassification.Terminated; - } - - if (context.AccessDenied) - { - return ProcessClassification.ProtectedOrAccessDenied; - } - - if (context.ForegroundProcessId == process.ProcessId) - { - return ProcessClassification.ForegroundApp; - } - - if (this.processFilterService.IsSystemProcess(process)) - { - return ProcessClassification.System; - } - - if (process.HasVisibleWindow) - { - return ProcessClassification.VisibleWindowApp; - } - - if (!string.IsNullOrWhiteSpace(process.Name)) - { - return ProcessClassification.BackgroundUser; - } - - return ProcessClassification.Unknown; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using ThreadPilot.Models; + + public readonly record struct ProcessClassificationContext( + int? ForegroundProcessId, + bool AccessDenied = false, + bool Terminated = false); + + public interface IProcessClassifier + { + ProcessClassification Classify(ProcessModel process, ProcessClassificationContext context); + } + + public sealed class ProcessClassifier : IProcessClassifier + { + private readonly ProcessFilterService processFilterService; + + public ProcessClassifier(ProcessFilterService processFilterService) + { + this.processFilterService = processFilterService ?? throw new ArgumentNullException(nameof(processFilterService)); + } + + public ProcessClassification Classify(ProcessModel process, ProcessClassificationContext context) + { + ArgumentNullException.ThrowIfNull(process); + + if (context.Terminated) + { + return ProcessClassification.Terminated; + } + + if (context.AccessDenied) + { + return ProcessClassification.ProtectedOrAccessDenied; + } + + if (context.ForegroundProcessId == process.ProcessId) + { + return ProcessClassification.ForegroundApp; + } + + if (this.processFilterService.IsSystemProcess(process)) + { + return ProcessClassification.System; + } + + if (process.HasVisibleWindow) + { + return ProcessClassification.VisibleWindowApp; + } + + if (!string.IsNullOrWhiteSpace(process.Name)) + { + return ProcessClassification.BackgroundUser; + } + + return ProcessClassification.Unknown; + } + } +} diff --git a/Services/ProcessFilterService.cs b/Services/ProcessFilterService.cs index 3c4871e..73209e5 100644 --- a/Services/ProcessFilterService.cs +++ b/Services/ProcessFilterService.cs @@ -1,109 +1,84 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Linq; - using ThreadPilot.Models; - - /// - /// Filter options used for process-list querying from the ViewModel. - /// - public sealed class ProcessFilterCriteria - { - public string SearchText { get; init; } = string.Empty; - - public bool HideSystemProcesses { get; init; } - - public bool HideIdleProcesses { get; init; } - - public string SortMode { get; init; } = "CpuUsage"; - } - - /// - /// Service for filtering and sorting process collections. - /// - public class ProcessFilterService - { - private static readonly string[] SystemProcessNames = - { - "System", "Registry", "smss.exe", "csrss.exe", "wininit.exe", "winlogon.exe", - "services.exe", "lsass.exe", "svchost.exe", "spoolsv.exe", "explorer.exe", - "dwm.exe", "audiodg.exe", "conhost.exe", "dllhost.exe", "rundll32.exe", - "taskhostw.exe", "SearchIndexer.exe", "WmiPrvSE.exe", "MsMpEng.exe", - "SecurityHealthService.exe", "SecurityHealthSystray.exe", - }; - - /// - /// Applies filter criteria and returns sorted process results. - /// - public IReadOnlyList FilterAndSort(IEnumerable source, ProcessFilterCriteria criteria) - { - ArgumentNullException.ThrowIfNull(source); - ArgumentNullException.ThrowIfNull(criteria); - - var filtered = source; - - if (!string.IsNullOrWhiteSpace(criteria.SearchText)) - { - filtered = filtered.Where(p => p.Name.Contains(criteria.SearchText, StringComparison.OrdinalIgnoreCase)); - } - - if (criteria.HideSystemProcesses) - { - filtered = filtered.Where(p => !this.IsSystemProcess(p)); - } - - if (criteria.HideIdleProcesses) - { - filtered = filtered.Where(p => p.CpuUsage > 0.1); - } - - var sorted = criteria.SortMode switch - { - "CpuUsage" => filtered.OrderByDescending(p => p.CpuUsage), - "MemoryUsage" => filtered.OrderByDescending(p => p.MemoryUsage), - "Name" => filtered.OrderBy(p => p.Name), - "ProcessId" => filtered.OrderBy(p => p.ProcessId), - _ => filtered.OrderByDescending(p => p.CpuUsage), - }; - - return sorted.ToList(); - } - - public bool IsSystemProcess(ProcessModel process) - { - if (process == null) - { - return false; - } - - var processName = NormalizeProcessName(process.Name); - - return SystemProcessNames.Any(sp => processName.Equals(NormalizeProcessName(sp), StringComparison.OrdinalIgnoreCase)) || - processName.StartsWith("system", StringComparison.OrdinalIgnoreCase); - } - - private static string NormalizeProcessName(string processName) - { - return processName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) - ? processName[..^4] - : processName; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Linq; + using ThreadPilot.Models; + + public sealed class ProcessFilterCriteria + { + public string SearchText { get; init; } = string.Empty; + + public bool HideSystemProcesses { get; init; } + + public bool HideIdleProcesses { get; init; } + + public string SortMode { get; init; } = "CpuUsage"; + } + + public class ProcessFilterService + { + private static readonly string[] SystemProcessNames = + { + "System", "Registry", "smss.exe", "csrss.exe", "wininit.exe", "winlogon.exe", + "services.exe", "lsass.exe", "svchost.exe", "spoolsv.exe", "explorer.exe", + "dwm.exe", "audiodg.exe", "conhost.exe", "dllhost.exe", "rundll32.exe", + "taskhostw.exe", "SearchIndexer.exe", "WmiPrvSE.exe", "MsMpEng.exe", + "SecurityHealthService.exe", "SecurityHealthSystray.exe", + }; + + public IReadOnlyList FilterAndSort(IEnumerable source, ProcessFilterCriteria criteria) + { + ArgumentNullException.ThrowIfNull(source); + ArgumentNullException.ThrowIfNull(criteria); + + var filtered = source; + + if (!string.IsNullOrWhiteSpace(criteria.SearchText)) + { + filtered = filtered.Where(p => p.Name.Contains(criteria.SearchText, StringComparison.OrdinalIgnoreCase)); + } + + if (criteria.HideSystemProcesses) + { + filtered = filtered.Where(p => !this.IsSystemProcess(p)); + } + + if (criteria.HideIdleProcesses) + { + filtered = filtered.Where(p => p.CpuUsage > 0.1); + } + + var sorted = criteria.SortMode switch + { + "CpuUsage" => filtered.OrderByDescending(p => p.CpuUsage), + "MemoryUsage" => filtered.OrderByDescending(p => p.MemoryUsage), + "Name" => filtered.OrderBy(p => p.Name), + "ProcessId" => filtered.OrderBy(p => p.ProcessId), + _ => filtered.OrderByDescending(p => p.CpuUsage), + }; + + return sorted.ToList(); + } + + public bool IsSystemProcess(ProcessModel process) + { + if (process == null) + { + return false; + } + + var processName = NormalizeProcessName(process.Name); + + return SystemProcessNames.Any(sp => processName.Equals(NormalizeProcessName(sp), StringComparison.OrdinalIgnoreCase)) || + processName.StartsWith("system", StringComparison.OrdinalIgnoreCase); + } + + private static string NormalizeProcessName(string processName) + { + return processName.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) + ? processName[..^4] + : processName; + } + } +} diff --git a/Services/ProcessListDeltaUpdater.cs b/Services/ProcessListDeltaUpdater.cs index 0ced855..2523b2c 100644 --- a/Services/ProcessListDeltaUpdater.cs +++ b/Services/ProcessListDeltaUpdater.cs @@ -1,103 +1,84 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Linq; - using ThreadPilot.Models; - - public sealed record ProcessListDeltaResult(ProcessModel? SelectedProcess, bool SelectedProcessTerminated); - - /// - /// Applies process snapshots to the UI collection while preserving existing models by PID. - /// - public static class ProcessListDeltaUpdater - { - public static ProcessListDeltaResult ApplyDelta( - ObservableCollection target, - IEnumerable snapshot, - int? selectedProcessId) - { - ArgumentNullException.ThrowIfNull(target); - ArgumentNullException.ThrowIfNull(snapshot); - - var currentByPid = target - .GroupBy(process => process.ProcessId) - .ToDictionary(group => group.Key, group => group.First()); - var snapshotByPid = new Dictionary(); - foreach (var process in snapshot) - { - snapshotByPid[process.ProcessId] = process; - } - - var seenPids = new HashSet(); - ProcessModel? selectedProcess = null; - - foreach (var incoming in snapshotByPid.Values) - { - seenPids.Add(incoming.ProcessId); - - if (currentByPid.TryGetValue(incoming.ProcessId, out var existing)) - { - CopyProcessState(incoming, existing); - if (selectedProcessId == incoming.ProcessId) - { - selectedProcess = existing; - } - - continue; - } - - target.Add(incoming); - if (selectedProcessId == incoming.ProcessId) - { - selectedProcess = incoming; - } - } - - for (int i = target.Count - 1; i >= 0; i--) - { - if (!seenPids.Contains(target[i].ProcessId)) - { - target.RemoveAt(i); - } - } - - var selectedProcessTerminated = selectedProcessId.HasValue && selectedProcess == null; - return new ProcessListDeltaResult(selectedProcess, selectedProcessTerminated); - } - - private static void CopyProcessState(ProcessModel source, ProcessModel target) - { - target.Name = source.Name; - target.ExecutablePath = source.ExecutablePath; - target.CpuUsage = source.CpuUsage; - target.MemoryUsage = source.MemoryUsage; - target.Priority = source.Priority; - target.ProcessorAffinity = source.ProcessorAffinity; - target.MainWindowHandle = source.MainWindowHandle; - target.MainWindowTitle = source.MainWindowTitle; - target.HasVisibleWindow = source.HasVisibleWindow; - target.IsForeground = source.IsForeground; - target.Classification = source.Classification; - target.IsIdleServerDisabled = source.IsIdleServerDisabled; - target.IsRegistryPriorityEnabled = source.IsRegistryPriorityEnabled; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Linq; + using ThreadPilot.Models; + + public sealed record ProcessListDeltaResult(ProcessModel? SelectedProcess, bool SelectedProcessTerminated); + + public static class ProcessListDeltaUpdater + { + public static ProcessListDeltaResult ApplyDelta( + ObservableCollection target, + IEnumerable snapshot, + int? selectedProcessId) + { + ArgumentNullException.ThrowIfNull(target); + ArgumentNullException.ThrowIfNull(snapshot); + + var currentByPid = target + .GroupBy(process => process.ProcessId) + .ToDictionary(group => group.Key, group => group.First()); + var snapshotByPid = new Dictionary(); + foreach (var process in snapshot) + { + snapshotByPid[process.ProcessId] = process; + } + + var seenPids = new HashSet(); + ProcessModel? selectedProcess = null; + + foreach (var incoming in snapshotByPid.Values) + { + seenPids.Add(incoming.ProcessId); + + if (currentByPid.TryGetValue(incoming.ProcessId, out var existing)) + { + CopyProcessState(incoming, existing); + if (selectedProcessId == incoming.ProcessId) + { + selectedProcess = existing; + } + + continue; + } + + target.Add(incoming); + if (selectedProcessId == incoming.ProcessId) + { + selectedProcess = incoming; + } + } + + for (int i = target.Count - 1; i >= 0; i--) + { + if (!seenPids.Contains(target[i].ProcessId)) + { + target.RemoveAt(i); + } + } + + var selectedProcessTerminated = selectedProcessId.HasValue && selectedProcess == null; + return new ProcessListDeltaResult(selectedProcess, selectedProcessTerminated); + } + + private static void CopyProcessState(ProcessModel source, ProcessModel target) + { + target.Name = source.Name; + target.ExecutablePath = source.ExecutablePath; + target.CpuUsage = source.CpuUsage; + target.MemoryUsage = source.MemoryUsage; + target.Priority = source.Priority; + target.ProcessorAffinity = source.ProcessorAffinity; + target.MainWindowHandle = source.MainWindowHandle; + target.MainWindowTitle = source.MainWindowTitle; + target.HasVisibleWindow = source.HasVisibleWindow; + target.IsForeground = source.IsForeground; + target.Classification = source.Classification; + target.IsIdleServerDisabled = source.IsIdleServerDisabled; + target.IsRegistryPriorityEnabled = source.IsRegistryPriorityEnabled; + } + } +} diff --git a/Services/ProcessManagement/IProcessManagementService.cs b/Services/ProcessManagement/IProcessManagementService.cs deleted file mode 100644 index 0246590..0000000 --- a/Services/ProcessManagement/IProcessManagementService.cs +++ /dev/null @@ -1,123 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services.ProcessManagement -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Unified interface for process management operations. - /// - public interface IProcessManagementService - { - /// - /// Event fired when a process starts - /// - event EventHandler? ProcessStarted; - - /// - /// Event fired when a process stops - /// - event EventHandler? ProcessStopped; - - /// - /// Event fired when process monitoring status changes - /// - event EventHandler? MonitoringStatusChanged; - - /// - /// Gets a value indicating whether gets whether process monitoring is currently active. - /// - bool IsMonitoringActive { get; } - - /// - /// Gets all currently running processes. - /// - Task> GetRunningProcessesAsync(); - - /// - /// Gets a specific process by ID. - /// - Task GetProcessByIdAsync(int processId); - - /// - /// Gets processes by executable name. - /// - Task> GetProcessesByNameAsync(string executableName); - - /// - /// Start monitoring for process events. - /// - Task StartMonitoringAsync(); - - /// - /// Stop monitoring for process events. - /// - Task StopMonitoringAsync(); - - /// - /// Set processor affinity for a process. - /// - Task SetProcessorAffinityAsync(ProcessModel process, long affinityMask); - - /// - /// Set priority for a process. - /// - Task SetProcessPriorityAsync(ProcessModel process, ProcessPriorityClass priority); - - /// - /// Refresh process information. - /// - Task RefreshProcessInfoAsync(ProcessModel process); - } - - /// - /// Event args for process events. - /// - public class ProcessEventArgs : EventArgs - { - public ProcessModel Process { get; } - - public DateTime Timestamp { get; } - - public ProcessEventArgs(ProcessModel process) - { - this.Process = process ?? throw new ArgumentNullException(nameof(process)); - this.Timestamp = DateTime.Now; - } - } - - /// - /// Event args for monitoring status changes. - /// - public class MonitoringStatusChangedEventArgs : EventArgs - { - public bool IsActive { get; } - - public string? Reason { get; } - - public MonitoringStatusChangedEventArgs(bool isActive, string? reason = null) - { - this.IsActive = isActive; - this.Reason = reason; - } - } -} - diff --git a/Services/ProcessMemoryPriorityService.cs b/Services/ProcessMemoryPriorityService.cs index 6ea3e7a..33805ec 100644 --- a/Services/ProcessMemoryPriorityService.cs +++ b/Services/ProcessMemoryPriorityService.cs @@ -1,242 +1,242 @@ -/* - * ThreadPilot - process memory priority service. - */ -namespace ThreadPilot.Services -{ - using System.ComponentModel; - using System.Runtime.InteropServices; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Platforms.Windows; - - public sealed class ProcessMemoryPriorityService : IProcessMemoryPriorityService - { - public const string UnsupportedUserMessage = - "Memory priority is not supported on this Windows version or process."; - - private const string InvalidMemoryPriorityUserMessage = - "This memory priority value is not supported."; - - private const string InvalidProcessErrorCode = "InvalidProcess"; - private const string UnsupportedErrorCode = "Unsupported"; - private const string InvalidPriorityErrorCode = "InvalidMemoryPriority"; - - private static readonly uint MemoryPriorityInformationSize = - (uint)Marshal.SizeOf(); - - private readonly IProcessMemoryPriorityNativeApi nativeApi; - private readonly ILogger logger; - - public ProcessMemoryPriorityService( - IProcessMemoryPriorityNativeApi nativeApi, - ILogger logger) - { - this.nativeApi = nativeApi ?? throw new ArgumentNullException(nameof(nativeApi)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public Task GetMemoryPriorityAsync(ProcessModel process) - { - if (!this.nativeApi.IsSupported || !IsValidProcess(process)) - { - return Task.FromResult(null); - } - - try - { - using var handle = this.nativeApi.OpenProcess( - ProcessAccessFlags.PROCESS_QUERY_LIMITED_INFORMATION, - inheritHandle: false, - (uint)process.ProcessId); - - if (handle.IsInvalid) - { - this.logger.LogDebug( - "OpenProcess failed while reading memory priority for process {ProcessName} (PID: {ProcessId}): {Error}", - process.Name, - process.ProcessId, - this.nativeApi.GetLastWin32Error()); - return Task.FromResult(null); - } - - var information = default(MemoryPriorityInformation); - if (!this.nativeApi.GetProcessInformation( - handle, - ProcessInformationClass.ProcessMemoryPriority, - ref information, - MemoryPriorityInformationSize)) - { - this.logger.LogDebug( - "GetProcessInformation(ProcessMemoryPriority) failed for process {ProcessName} (PID: {ProcessId}): {Error}", - process.Name, - process.ProcessId, - this.nativeApi.GetLastWin32Error()); - return Task.FromResult(null); - } - - return Task.FromResult(FromWindowsMemoryPriority(information.MemoryPriority)); - } - catch (Exception ex) when (IsUnsupported(ex) || AffinityApplyExceptionClassifier.IsAccessDenied(ex) || AffinityApplyExceptionClassifier.IsProcessExited(ex)) - { - this.logger.LogDebug( - ex, - "Could not read memory priority for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - return Task.FromResult(null); - } - } - - public Task SetMemoryPriorityAsync(ProcessModel process, ProcessMemoryPriority priority) - { - if (!IsValidProcess(process)) - { - return Task.FromResult(ProcessOperationResult.Failed( - InvalidProcessErrorCode, - ProcessOperationUserMessages.ProcessExited, - "Process is null or has an invalid PID.")); - } - - if (!IsDefinedPriority(priority)) - { - return Task.FromResult(ProcessOperationResult.Failed( - InvalidPriorityErrorCode, - InvalidMemoryPriorityUserMessage, - $"Memory priority value '{priority}' is not supported.")); - } - - if (!this.nativeApi.IsSupported) - { - return Task.FromResult(Unsupported("The Windows process memory priority APIs are unavailable.")); - } - - try - { - using var handle = this.nativeApi.OpenProcess( - ProcessAccessFlags.PROCESS_SET_INFORMATION, - inheritHandle: false, - (uint)process.ProcessId); - - if (handle.IsInvalid) - { - return Task.FromResult(this.FromLastError( - "OpenProcess failed before SetProcessInformation(ProcessMemoryPriority).")); - } - - var information = new MemoryPriorityInformation - { - MemoryPriority = ToWindowsMemoryPriority(priority), - }; - - if (!this.nativeApi.SetProcessInformation( - handle, - ProcessInformationClass.ProcessMemoryPriority, - ref information, - MemoryPriorityInformationSize)) - { - return Task.FromResult(this.FromLastError( - "SetProcessInformation(ProcessMemoryPriority) failed.")); - } - - return Task.FromResult(ProcessOperationResult.Succeeded( - "Memory priority applied.", - $"Process {process.Name} (PID: {process.ProcessId}) memory priority set to {priority}.")); - } - catch (Exception ex) when (IsUnsupported(ex)) - { - return Task.FromResult(Unsupported(ex.Message)); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) - { - return Task.FromResult(ProcessOperationResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - ProcessOperationUserMessages.ProcessExited, - ex.Message, - isProcessExited: true)); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) - { - var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); - return Task.FromResult(ProcessOperationResult.Failed( - antiCheatLikely - ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely - : AffinityApplyErrorCodes.AccessDenied, - antiCheatLikely - ? ProcessOperationUserMessages.AntiCheatProtectedLikely - : ProcessOperationUserMessages.AccessDenied, - ex.Message, - isAccessDenied: true, - isAntiCheatLikely: antiCheatLikely)); - } - catch (Exception ex) - { - this.logger.LogWarning( - ex, - "Memory priority apply failed for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - - return Task.FromResult(ProcessOperationResult.Failed( - AffinityApplyErrorCodes.NativeApplyFailed, - "ThreadPilot could not apply the memory priority change.", - ex.Message)); - } - } - - private static bool IsValidProcess(ProcessModel? process) => - process != null && process.ProcessId > 0; - - private static bool IsDefinedPriority(ProcessMemoryPriority priority) => - priority is ProcessMemoryPriority.VeryLow or - ProcessMemoryPriority.Low or - ProcessMemoryPriority.Medium or - ProcessMemoryPriority.BelowNormal or - ProcessMemoryPriority.Normal; - - private static uint ToWindowsMemoryPriority(ProcessMemoryPriority priority) => - IsDefinedPriority(priority) - ? (uint)priority - : throw new ArgumentOutOfRangeException(nameof(priority), priority, "Unsupported memory priority value."); - - private static ProcessMemoryPriority? FromWindowsMemoryPriority(uint priority) => - priority is >= (uint)ProcessMemoryPriority.VeryLow and <= (uint)ProcessMemoryPriority.Normal - ? (ProcessMemoryPriority)priority - : null; - - private static bool IsUnsupported(Exception ex) => - ex is EntryPointNotFoundException || - ex is DllNotFoundException || - (ex is Win32Exception win32Exception && win32Exception.NativeErrorCode == 50); - - private static ProcessOperationResult Unsupported(string technicalMessage) => - ProcessOperationResult.Failed( - UnsupportedErrorCode, - UnsupportedUserMessage, - technicalMessage); - - private ProcessOperationResult FromLastError(string context) - { - var error = this.nativeApi.GetLastWin32Error(); - var technicalMessage = $"{context} Win32 error {error}."; - - return error switch - { - 5 => ProcessOperationResult.Failed( - AffinityApplyErrorCodes.AccessDenied, - ProcessOperationUserMessages.AccessDenied, - technicalMessage, - isAccessDenied: true), - 50 => Unsupported(technicalMessage), - 87 => ProcessOperationResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - ProcessOperationUserMessages.ProcessExited, - technicalMessage, - isProcessExited: true), - _ => ProcessOperationResult.Failed( - AffinityApplyErrorCodes.NativeApplyFailed, - "ThreadPilot could not apply the memory priority change.", - technicalMessage), - }; - } - } -} +/* + * ThreadPilot - process memory priority service. + */ +namespace ThreadPilot.Services +{ + using System.ComponentModel; + using System.Runtime.InteropServices; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Platforms.Windows; + + public sealed class ProcessMemoryPriorityService : IProcessMemoryPriorityService + { + public const string UnsupportedUserMessage = + "Memory priority is not supported on this Windows version or process."; + + private const string InvalidMemoryPriorityUserMessage = + "This memory priority value is not supported."; + + private const string InvalidProcessErrorCode = "InvalidProcess"; + private const string UnsupportedErrorCode = "Unsupported"; + private const string InvalidPriorityErrorCode = "InvalidMemoryPriority"; + + private static readonly uint MemoryPriorityInformationSize = + (uint)Marshal.SizeOf(); + + private readonly IProcessMemoryPriorityNativeApi nativeApi; + private readonly ILogger logger; + + public ProcessMemoryPriorityService( + IProcessMemoryPriorityNativeApi nativeApi, + ILogger logger) + { + this.nativeApi = nativeApi ?? throw new ArgumentNullException(nameof(nativeApi)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public Task GetMemoryPriorityAsync(ProcessModel process) + { + if (!this.nativeApi.IsSupported || !IsValidProcess(process)) + { + return Task.FromResult(null); + } + + try + { + using var handle = this.nativeApi.OpenProcess( + ProcessAccessFlags.PROCESS_QUERY_LIMITED_INFORMATION, + inheritHandle: false, + (uint)process.ProcessId); + + if (handle.IsInvalid) + { + this.logger.LogDebug( + "OpenProcess failed while reading memory priority for process {ProcessName} (PID: {ProcessId}): {Error}", + process.Name, + process.ProcessId, + this.nativeApi.GetLastWin32Error()); + return Task.FromResult(null); + } + + var information = default(MemoryPriorityInformation); + if (!this.nativeApi.GetProcessInformation( + handle, + ProcessInformationClass.ProcessMemoryPriority, + ref information, + MemoryPriorityInformationSize)) + { + this.logger.LogDebug( + "GetProcessInformation(ProcessMemoryPriority) failed for process {ProcessName} (PID: {ProcessId}): {Error}", + process.Name, + process.ProcessId, + this.nativeApi.GetLastWin32Error()); + return Task.FromResult(null); + } + + return Task.FromResult(FromWindowsMemoryPriority(information.MemoryPriority)); + } + catch (Exception ex) when (IsUnsupported(ex) || AffinityApplyExceptionClassifier.IsAccessDenied(ex) || AffinityApplyExceptionClassifier.IsProcessExited(ex)) + { + this.logger.LogDebug( + ex, + "Could not read memory priority for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + return Task.FromResult(null); + } + } + + public Task SetMemoryPriorityAsync(ProcessModel process, ProcessMemoryPriority priority) + { + if (!IsValidProcess(process)) + { + return Task.FromResult(ProcessOperationResult.Failed( + InvalidProcessErrorCode, + ProcessOperationUserMessages.ProcessExited, + "Process is null or has an invalid PID.")); + } + + if (!IsDefinedPriority(priority)) + { + return Task.FromResult(ProcessOperationResult.Failed( + InvalidPriorityErrorCode, + InvalidMemoryPriorityUserMessage, + $"Memory priority value '{priority}' is not supported.")); + } + + if (!this.nativeApi.IsSupported) + { + return Task.FromResult(Unsupported("The Windows process memory priority APIs are unavailable.")); + } + + try + { + using var handle = this.nativeApi.OpenProcess( + ProcessAccessFlags.PROCESS_SET_INFORMATION, + inheritHandle: false, + (uint)process.ProcessId); + + if (handle.IsInvalid) + { + return Task.FromResult(this.FromLastError( + "OpenProcess failed before SetProcessInformation(ProcessMemoryPriority).")); + } + + var information = new MemoryPriorityInformation + { + MemoryPriority = ToWindowsMemoryPriority(priority), + }; + + if (!this.nativeApi.SetProcessInformation( + handle, + ProcessInformationClass.ProcessMemoryPriority, + ref information, + MemoryPriorityInformationSize)) + { + return Task.FromResult(this.FromLastError( + "SetProcessInformation(ProcessMemoryPriority) failed.")); + } + + return Task.FromResult(ProcessOperationResult.Succeeded( + "Memory priority applied.", + $"Process {process.Name} (PID: {process.ProcessId}) memory priority set to {priority}.")); + } + catch (Exception ex) when (IsUnsupported(ex)) + { + return Task.FromResult(Unsupported(ex.Message)); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) + { + return Task.FromResult(ProcessOperationResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + ProcessOperationUserMessages.ProcessExited, + ex.Message, + isProcessExited: true)); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) + { + var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); + return Task.FromResult(ProcessOperationResult.Failed( + antiCheatLikely + ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely + : AffinityApplyErrorCodes.AccessDenied, + antiCheatLikely + ? ProcessOperationUserMessages.AntiCheatProtectedLikely + : ProcessOperationUserMessages.AccessDenied, + ex.Message, + isAccessDenied: true, + isAntiCheatLikely: antiCheatLikely)); + } + catch (Exception ex) + { + this.logger.LogWarning( + ex, + "Memory priority apply failed for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + + return Task.FromResult(ProcessOperationResult.Failed( + AffinityApplyErrorCodes.NativeApplyFailed, + "ThreadPilot could not apply the memory priority change.", + ex.Message)); + } + } + + private static bool IsValidProcess(ProcessModel? process) => + process != null && process.ProcessId > 0; + + private static bool IsDefinedPriority(ProcessMemoryPriority priority) => + priority is ProcessMemoryPriority.VeryLow or + ProcessMemoryPriority.Low or + ProcessMemoryPriority.Medium or + ProcessMemoryPriority.BelowNormal or + ProcessMemoryPriority.Normal; + + private static uint ToWindowsMemoryPriority(ProcessMemoryPriority priority) => + IsDefinedPriority(priority) + ? (uint)priority + : throw new ArgumentOutOfRangeException(nameof(priority), priority, "Unsupported memory priority value."); + + private static ProcessMemoryPriority? FromWindowsMemoryPriority(uint priority) => + priority is >= (uint)ProcessMemoryPriority.VeryLow and <= (uint)ProcessMemoryPriority.Normal + ? (ProcessMemoryPriority)priority + : null; + + private static bool IsUnsupported(Exception ex) => + ex is EntryPointNotFoundException || + ex is DllNotFoundException || + (ex is Win32Exception win32Exception && win32Exception.NativeErrorCode == 50); + + private static ProcessOperationResult Unsupported(string technicalMessage) => + ProcessOperationResult.Failed( + UnsupportedErrorCode, + UnsupportedUserMessage, + technicalMessage); + + private ProcessOperationResult FromLastError(string context) + { + var error = this.nativeApi.GetLastWin32Error(); + var technicalMessage = $"{context} Win32 error {error}."; + + return error switch + { + 5 => ProcessOperationResult.Failed( + AffinityApplyErrorCodes.AccessDenied, + ProcessOperationUserMessages.AccessDenied, + technicalMessage, + isAccessDenied: true), + 50 => Unsupported(technicalMessage), + 87 => ProcessOperationResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + ProcessOperationUserMessages.ProcessExited, + technicalMessage, + isProcessExited: true), + _ => ProcessOperationResult.Failed( + AffinityApplyErrorCodes.NativeApplyFailed, + "ThreadPilot could not apply the memory priority change.", + technicalMessage), + }; + } + } +} diff --git a/Services/ProcessMonitorManagerService.cs b/Services/ProcessMonitorManagerService.cs index 51ae8b2..1c53cc8 100644 --- a/Services/ProcessMonitorManagerService.cs +++ b/Services/ProcessMonitorManagerService.cs @@ -1,906 +1,883 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Main orchestration service that coordinates process monitoring and power plan management. - /// - public class ProcessMonitorManagerService : IProcessMonitorManagerService - { - private readonly IProcessMonitorService processMonitorService; - private readonly IProcessPowerPlanAssociationService associationService; - private readonly IPowerPlanService powerPlanService; - private readonly INotificationService notificationService; - private readonly IApplicationSettingsService settingsService; - private readonly IProcessService processService; - private readonly ICoreMaskService coreMaskService; - private readonly IAffinityApplyService affinityApplyService; - private readonly IPersistentRuleAutoApplyService persistentRuleAutoApplyService; - private readonly PowerPlanTransitionGate powerPlanTransitionGate; - private readonly ILogger logger; - private readonly IEnhancedLoggingService enhancedLogger; - private readonly object lockObject = new(); - - private readonly ConcurrentDictionary runningAssociatedProcesses = new(); - private readonly System.Threading.Timer delayTimer; - private readonly SemaphoreSlim powerPlanChangeSemaphore = new(1, 1); - private readonly SemaphoreSlim stateMutationSemaphore = new(1, 1); - - private bool isRunning; - private string status = "Stopped"; - private bool disposed; - private ProcessMonitorConfiguration? configuration; - private int pendingPowerPlanReevaluation; - - public event EventHandler? ProcessPowerPlanChanged; - - public event EventHandler? ServiceStatusChanged; - - public bool IsRunning => this.isRunning; - - public string Status => this.status; - - public IEnumerable RunningAssociatedProcesses => this.runningAssociatedProcesses.Values.ToList(); - - public ProcessMonitorManagerService( - IProcessMonitorService processMonitorService, - IProcessPowerPlanAssociationService associationService, - IPowerPlanService powerPlanService, - INotificationService notificationService, - IApplicationSettingsService settingsService, - IProcessService processService, - ICoreMaskService coreMaskService, - IAffinityApplyService affinityApplyService, - IPersistentRuleAutoApplyService persistentRuleAutoApplyService, - PowerPlanTransitionGate powerPlanTransitionGate, - ILogger logger, - IEnhancedLoggingService enhancedLogger) - { - this.processMonitorService = processMonitorService ?? throw new ArgumentNullException(nameof(processMonitorService)); - this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); - this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); - this.notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.coreMaskService = coreMaskService ?? throw new ArgumentNullException(nameof(coreMaskService)); - this.affinityApplyService = affinityApplyService ?? throw new ArgumentNullException(nameof(affinityApplyService)); - this.persistentRuleAutoApplyService = persistentRuleAutoApplyService ?? throw new ArgumentNullException(nameof(persistentRuleAutoApplyService)); - this.powerPlanTransitionGate = powerPlanTransitionGate ?? throw new ArgumentNullException(nameof(powerPlanTransitionGate)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.enhancedLogger = enhancedLogger ?? throw new ArgumentNullException(nameof(enhancedLogger)); - - // Initialize delay timer (used for delayed power plan changes) - this.delayTimer = new System.Threading.Timer(this.DelayedPowerPlanChangeCallback, null, Timeout.Infinite, Timeout.Infinite); - - // Subscribe to events - this.processMonitorService.ProcessStarted += this.OnProcessStarted; - this.processMonitorService.ProcessStopped += this.OnProcessStopped; - this.processMonitorService.MonitoringStatusChanged += this.OnMonitoringStatusChanged; - this.associationService.ConfigurationChanged += this.OnConfigurationChanged; - } - - public async Task StartAsync() - { - if (this.disposed) - { - throw new ObjectDisposedException(nameof(ProcessMonitorManagerService)); - } - - await this.stateMutationSemaphore.WaitAsync(); - try - { - if (this.isRunning) - { - return; - } - - this.logger.LogInformation("Starting Process Monitor Manager Service"); - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.System.ServiceStarted, - "Process Monitor Manager Service starting"); - this.SetStatus(true, "Starting..."); - - // Load configuration - await this.associationService.LoadConfigurationAsync(); - this.configuration = this.associationService.Configuration; - this.logger.LogInformation( - "Configuration loaded with {AssociationCount} associations", - this.configuration.Associations.Count); - - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.System.ConfigurationLoaded, - $"Process monitoring configuration loaded with {this.configuration.Associations.Count} associations"); - - // Start process monitoring - await this.processMonitorService.StartMonitoringAsync(); - this.logger.LogInformation("Process monitoring started"); - - Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 0); - - await this.enhancedLogger.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.MonitoringStarted, - "ProcessMonitorService", 0, "WMI-based process monitoring started"); - - this.isRunning = true; - this.SetStatus(true, "Running"); - - this.logger.LogInformation("Process Monitor Manager Service started successfully"); - - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.System.ServiceStarted, - "Process Monitor Manager Service started successfully"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to start Process Monitor Manager Service"); - await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.StartAsync", - new Dictionary { ["ServiceName"] = "ProcessMonitorManagerService" }); - this.isRunning = false; - this.SetStatus(false, "Failed to start", $"Error: {ex.Message}", ex); - throw; - } - finally - { - this.stateMutationSemaphore.Release(); - } - - // Evaluate current processes after startup lock is released - await this.EvaluateCurrentProcessesAsync(); - } - - public async Task StopAsync() - { - await this.stateMutationSemaphore.WaitAsync(); - try - { - if (!this.isRunning) - { - return; - } - - this.SetStatus(false, "Stopping..."); - - // Mark as stopped early to prevent new event handling while shutting down - this.isRunning = false; - Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 0); - - // Stop process monitoring - await this.processMonitorService.StopMonitoringAsync(); - - // Clear running processes - foreach (var processId in this.runningAssociatedProcesses.Keys) - { - this.coreMaskService.UnregisterMaskApplication(processId); - this.processService.UntrackProcess(processId); - this.persistentRuleAutoApplyService.MarkProcessExited(processId); - } - this.runningAssociatedProcesses.Clear(); - - // Restore default power plan if configured - if (this.configuration?.DefaultPowerPlanGuid != null) - { - await this.ForceDefaultPowerPlanAsync(); - } - - this.SetStatus(false, "Stopped"); - } - catch (Exception ex) - { - this.SetStatus(false, "Error stopping", $"Error: {ex.Message}", ex); - throw; - } - finally - { - this.stateMutationSemaphore.Release(); - } - } - - public async Task EvaluateCurrentProcessesAsync() - { - if (!this.isRunning || this.configuration == null) - { - return; - } - - try - { - var currentProcesses = (await this.processMonitorService.GetRunningProcessesAsync()).ToList(); - await this.ApplyPersistentRulesForDiscoveredProcessesAsync(currentProcesses); - var associatedProcesses = new List(); - var currentProcessIds = new HashSet(currentProcesses.Select(p => p.ProcessId)); - - // Remove stale tracked processes that are no longer running - foreach (var trackedPid in this.runningAssociatedProcesses.Keys) - { - if (!currentProcessIds.Contains(trackedPid) && this.runningAssociatedProcesses.TryRemove(trackedPid, out _)) - { - this.coreMaskService.UnregisterMaskApplication(trackedPid); - this.processService.UntrackProcess(trackedPid); - this.persistentRuleAutoApplyService.MarkProcessExited(trackedPid); - } - } - - // Find all currently running processes that have associations - foreach (var process in currentProcesses) - { - var association = this.configuration.FindMatchingAssociation(process); - if (association != null) - { - associatedProcesses.Add(process); - this.runningAssociatedProcesses[process.ProcessId] = process; - } - } - - // Determine which power plan should be active - await this.DeterminePowerPlanAsync(associatedProcesses); - } - catch (Exception ex) - { - this.SetStatus(this.isRunning, "Error evaluating processes", $"Error: {ex.Message}", ex); - } - } - - public async Task ForceDefaultPowerPlanAsync() - { - if (this.configuration?.DefaultPowerPlanGuid == null) - { - return; - } - - try - { - await this.powerPlanChangeSemaphore.WaitAsync(); - - var currentPowerPlan = await this.powerPlanService.GetActivePowerPlan(); - var decision = this.powerPlanTransitionGate.ShouldApply( - this.configuration.DefaultPowerPlanGuid, - currentPowerPlan?.Guid); - if (!decision.ShouldApply) - { - this.logger.LogDebug( - "Default power plan restore suppressed for {PowerPlanGuid}: {Reason}", - this.configuration.DefaultPowerPlanGuid, - decision.SuppressionReason); - return; - } - - this.powerPlanTransitionGate.RecordAttempt(this.configuration.DefaultPowerPlanGuid); - var success = await this.powerPlanService.SetActivePowerPlanByGuidAsync( - this.configuration.DefaultPowerPlanGuid, - this.configuration.PreventDuplicatePowerPlanChanges); - - if (success) - { - var newPowerPlan = await this.powerPlanService.GetPowerPlanByGuidAsync(this.configuration.DefaultPowerPlanGuid); - // Note: We don't have a specific process for this event, so we'll use a dummy one - var dummyProcess = new ProcessModel { Name = "System", ProcessId = -1 }; - var dummyAssociation = new ProcessPowerPlanAssociation("System", this.configuration.DefaultPowerPlanGuid, this.configuration.DefaultPowerPlanName); - - this.ProcessPowerPlanChanged?.Invoke(this, new ProcessPowerPlanChangeEventArgs( - dummyProcess, dummyAssociation, currentPowerPlan, newPowerPlan, "DefaultRestored")); - - // Show notification for default power plan restoration - await this.notificationService.ShowPowerPlanChangeNotificationAsync( - currentPowerPlan?.Name ?? "Unknown", - newPowerPlan?.Name ?? this.configuration.DefaultPowerPlanName, - string.Empty); - } - else - { - this.logger.LogWarning( - "Failed to restore default power plan {PowerPlanGuid}", - this.configuration.DefaultPowerPlanGuid); - } - } - catch (Exception ex) - { - this.SetStatus(this.isRunning, "Error setting default power plan", $"Error: {ex.Message}", ex); - } - finally - { - this.powerPlanChangeSemaphore.Release(); - } - } - - public async Task GetCurrentActivePowerPlanAsync() - { - return await this.powerPlanService.GetActivePowerPlan(); - } - - public async Task RefreshConfigurationAsync() - { - await this.associationService.LoadConfigurationAsync(); - this.configuration = this.associationService.Configuration; - this.processMonitorService.UpdateSettings(); - - if (this.isRunning) - { - await this.EvaluateCurrentProcessesAsync(); - } - } - - private void OnProcessStarted(object? sender, ProcessEventArgs e) - { - TaskSafety.FireAndForget(this.OnProcessStartedAsync(e), ex => - { - this.SetStatus(this.isRunning, "Error handling process start", $"Error: {ex.Message}", ex); - }); - } - - private async Task OnProcessStartedAsync(ProcessEventArgs e) - { - if (!this.isRunning || this.configuration == null) - { - return; - } - - if (string.IsNullOrWhiteSpace(e.Process.Name) || e.Process.ProcessId <= 0) - { - return; - } - - try - { - await this.enhancedLogger.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.Started, - e.Process.Name, e.Process.ProcessId, "Process started and detected by monitoring"); - - await this.ApplyPersistentRulesForProcessStartAsync(e.Process); - - var association = this.configuration.FindMatchingAssociation(e.Process); - if (association != null) - { - this.runningAssociatedProcesses[e.Process.ProcessId] = e.Process; - - await this.enhancedLogger.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.AssociationTriggered, - e.Process.Name, e.Process.ProcessId, - $"Process matched association for power plan: {association.PowerPlanName}"); - - // Apply CPU affinity mask if configured - await this.ApplyCoreMaskAndPriorityAsync(e.Process, association); - - // Schedule power plan change with delay if configured - if (this.configuration.PowerPlanChangeDelayMs > 0) - { - Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 1); - this.delayTimer.Change(this.configuration.PowerPlanChangeDelayMs, Timeout.Infinite); - - await this.enhancedLogger.LogSystemEventAsync( - LogEventTypes.System.ConfigurationLoaded, - $"Power plan change scheduled with {this.configuration.PowerPlanChangeDelayMs}ms delay for process {e.Process.Name}"); - } - else - { - await this.ChangePowerPlanForProcess(e.Process, association, "ProcessStarted"); - } - } - } - catch (Exception ex) - { - await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.OnProcessStarted", - new Dictionary - { - ["ProcessName"] = e.Process.Name, - ["ProcessId"] = e.Process.ProcessId, - }); - this.SetStatus(this.isRunning, "Error handling process start", $"Error: {ex.Message}", ex); - } - } - - private void OnProcessStopped(object? sender, ProcessEventArgs e) - { - TaskSafety.FireAndForget(this.OnProcessStoppedAsync(e), ex => - { - this.SetStatus(this.isRunning, "Error handling process stop", $"Error: {ex.Message}", ex); - }); - } - - private async Task OnProcessStoppedAsync(ProcessEventArgs e) - { - if (!this.isRunning || this.configuration == null) - { - return; - } - - try - { - this.persistentRuleAutoApplyService.MarkProcessExited(e.Process.ProcessId); - - if (this.runningAssociatedProcesses.TryRemove(e.Process.ProcessId, out _)) - { - this.coreMaskService.UnregisterMaskApplication(e.Process.ProcessId); - this.processService.UntrackProcess(e.Process.ProcessId); - - // Check if there are any other associated processes still running - var remainingProcesses = this.runningAssociatedProcesses.Values.ToList(); - await this.DeterminePowerPlanAsync(remainingProcesses); - } - } - catch (Exception ex) - { - this.SetStatus(this.isRunning, "Error handling process stop", $"Error: {ex.Message}", ex); - } - } - - private void OnMonitoringStatusChanged(object? sender, MonitoringStatusEventArgs e) - { - var details = e.StatusMessage ?? (e.IsMonitoring ? "Monitoring active" : "Monitoring inactive"); - this.SetStatus(this.isRunning, $"Monitor: {details}", e.StatusMessage, e.Error); - } - - private void OnConfigurationChanged(object? sender, ConfigurationChangedEventArgs e) - { - this.configuration = this.associationService.Configuration; - - if (this.isRunning) - { - TaskSafety.FireAndForget(this.EvaluateCurrentProcessesAsync(), ex => - { - this.SetStatus(this.isRunning, "Error evaluating processes", $"Error: {ex.Message}", ex); - }); - } - - // Keep process monitor settings synchronized with configuration edits - this.processMonitorService.UpdateSettings(); - } - - private void DelayedPowerPlanChangeCallback(object? state) - { - TaskSafety.FireAndForget(this.DelayedPowerPlanChangeCallbackAsync(), ex => - { - this.SetStatus(this.isRunning, "Error in delayed power plan callback", $"Error: {ex.Message}", ex); - }); - } - - private async Task DelayedPowerPlanChangeCallbackAsync() - { - if (!this.isRunning) - { - return; - } - - if (Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 0) == 0) - { - return; - } - - var runningProcesses = this.runningAssociatedProcesses.Values.ToList(); - await this.DeterminePowerPlanAsync(runningProcesses); - } - - private async Task DeterminePowerPlanAsync(IList associatedProcesses) - { - if (this.configuration == null) - { - return; - } - - try - { - if (associatedProcesses.Any()) - { - // Find the highest priority association among running processes - var associations = associatedProcesses - .Select(p => this.configuration.FindMatchingAssociation(p)) - .Where(a => a != null) - .OrderByDescending(a => a!.Priority) - .ToList(); - - if (associations.Any()) - { - var topAssociation = associations.First()!; - var matchingProcess = associatedProcesses.First(p => topAssociation.MatchesProcess(p)); - await this.ChangePowerPlanForProcess(matchingProcess, topAssociation, "ProcessStarted"); - } - } - else - { - // No associated processes running, revert to default - if (!string.IsNullOrEmpty(this.configuration.DefaultPowerPlanGuid)) - { - await this.ForceDefaultPowerPlanAsync(); - } - } - } - catch (Exception ex) - { - this.SetStatus(this.isRunning, "Error determining power plan", $"Error: {ex.Message}", ex); - } - } - - private async Task ChangePowerPlanForProcess(ProcessModel process, ProcessPowerPlanAssociation association, string action) - { - try - { - await this.powerPlanChangeSemaphore.WaitAsync(); - - var currentPowerPlan = await this.powerPlanService.GetActivePowerPlan(); - var decision = this.powerPlanTransitionGate.ShouldApply( - association.PowerPlanGuid, - currentPowerPlan?.Guid); - if (!decision.ShouldApply) - { - this.logger.LogDebug( - "Power plan change suppressed for {PowerPlanGuid}: {Reason}", - association.PowerPlanGuid, - decision.SuppressionReason); - return; - } - - this.powerPlanTransitionGate.RecordAttempt(association.PowerPlanGuid); - var success = await this.powerPlanService.SetActivePowerPlanByGuidAsync( - association.PowerPlanGuid, - this.configuration?.PreventDuplicatePowerPlanChanges ?? true); - - if (success) - { - var newPowerPlan = await this.powerPlanService.GetPowerPlanByGuidAsync(association.PowerPlanGuid); - this.ProcessPowerPlanChanged?.Invoke(this, new ProcessPowerPlanChangeEventArgs( - process, association, currentPowerPlan, newPowerPlan, action)); - - // Show notification for power plan change - await this.notificationService.ShowPowerPlanChangeNotificationAsync( - currentPowerPlan?.Name ?? "Unknown", - newPowerPlan?.Name ?? association.PowerPlanName, - process.Name); - } - else - { - this.logger.LogWarning( - "Failed to change power plan to {PowerPlanGuid} for process {ProcessName} (PID: {ProcessId})", - association.PowerPlanGuid, - process.Name, - process.ProcessId); - } - } - catch (Exception ex) - { - this.SetStatus(this.isRunning, "Error changing power plan", $"Error: {ex.Message}", ex); - } - finally - { - this.powerPlanChangeSemaphore.Release(); - } - } - - private void SetStatus(bool isRunning, string status, string? details = null, Exception? error = null) - { - lock (this.lockObject) - { - this.status = status; - } - - this.ServiceStatusChanged?.Invoke(this, new ServiceStatusEventArgs(isRunning, status, details, error)); - - // Show error notification if there's an error - if (error != null) - { - TaskSafety.FireAndForget( - this.notificationService.ShowErrorNotificationAsync( - "Process Monitor Error", - details ?? status, - error), - ex => - { - this.logger.LogError(ex, "Failed to show error notification"); - }); - } - } - - private async Task ApplyPersistentRulesForDiscoveredProcessesAsync(IEnumerable processes) - { - try - { - var results = await this.persistentRuleAutoApplyService.ApplyForDiscoveredProcessesAsync(processes); - await this.LogPersistentRuleResultsAsync(results); - } - catch (OperationCanceledException) - { - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Persistent rule auto-apply failed during process snapshot refresh"); - } - } - - private async Task ApplyPersistentRulesForProcessStartAsync(ProcessModel process) - { - try - { - var results = await this.persistentRuleAutoApplyService.ApplyForProcessStartAsync(process); - await this.LogPersistentRuleResultsAsync(results); - } - catch (OperationCanceledException) - { - } - catch (Exception ex) - { - this.logger.LogWarning( - ex, - "Persistent rule auto-apply failed for process {ProcessName} (PID: {ProcessId})", - process.Name, - process.ProcessId); - } - } - - private async Task LogPersistentRuleResultsAsync(IReadOnlyList results) - { - foreach (var result in results) - { - if (result.Success) - { - await this.enhancedLogger.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.AssociationTriggered, - result.ProcessName, - result.ProcessId, - $"Persistent rule '{result.RuleId}' applied automatically"); - } - else - { - this.logger.LogDebug( - "Persistent rule {RuleId} was not applied to process {ProcessName} (PID: {ProcessId}): {Message}", - result.RuleId, - result.ProcessName, - result.ProcessId, - result.UserMessage); - } - } - } - - public void UpdateSettings() - { - // Update the process monitor service with new settings - this.processMonitorService.UpdateSettings(); - - this.logger.LogDebug("ProcessMonitorManagerService settings updated"); - } - - /// - /// Applies CPU affinity mask and process priority from association when a process starts - /// Based on CPUSetSetter's ProgramRule.SetMask pattern. - /// - private async Task ApplyCoreMaskAndPriorityAsync(ProcessModel process, ProcessPowerPlanAssociation association) - { - try - { - // Apply CPU affinity mask if configured - if (!string.IsNullOrEmpty(association.CoreMaskId)) - { - var coreMask = this.coreMaskService.AvailableMasks.FirstOrDefault(m => m.Id == association.CoreMaskId); - if (coreMask != null) - { - try - { - var affinity = coreMask.ToProcessorAffinity(); - if (affinity > 0) - { - var result = await this.affinityApplyService.ApplyAsync(process, affinity); - if (!result.Success) - { - this.logger.LogWarning( - "Failed to apply CPU mask '{MaskName}' to process {ProcessName} (PID: {ProcessId}): {Message}", - coreMask.Name, - process.Name, - process.ProcessId, - result.Message); - } - else - { - this.processService.TrackAppliedMask(process.ProcessId, coreMask.Id); - this.coreMaskService.RegisterMaskApplication(process.ProcessId, coreMask.Id); - - this.logger.LogInformation( - "Applied CPU mask '{MaskName}' (affinity: 0x{Affinity:X}) to process {ProcessName} (PID: {ProcessId})", - coreMask.Name, affinity, process.Name, process.ProcessId); - - await this.enhancedLogger.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.AssociationTriggered, - process.Name, process.ProcessId, - $"CPU mask '{coreMask.Name}' applied automatically from association"); - } - } - } - catch (Exception ex) - { - var blockedReason = BuildAffinityOrPriorityBlockedMessage(ex, process.Name, "affinity"); - if (!string.IsNullOrEmpty(blockedReason)) - { - await this.notificationService.ShowNotificationAsync( - "Affinity blocked", - blockedReason, - NotificationType.Warning); - } - - this.logger.LogWarning( - ex, - "Failed to apply CPU mask '{MaskName}' to process {ProcessName} (PID: {ProcessId})", - coreMask.Name, process.Name, process.ProcessId); - - await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.ApplyCoreMaskAndPriorityAsync", - new Dictionary - { - ["ProcessName"] = process.Name, - ["ProcessId"] = process.ProcessId, - ["MaskName"] = coreMask.Name, - }); - } - } - else - { - this.logger.LogWarning( - "Core mask ID '{CoreMaskId}' not found for process {ProcessName}, skipping affinity application", - association.CoreMaskId, process.Name); - } - } - - // Apply process priority if configured - if (!string.IsNullOrEmpty(association.ProcessPriority)) - { - if (Enum.TryParse(association.ProcessPriority, out var priority)) - { - try - { - var currentPriority = process.Priority; - - if (!Enum.IsDefined(typeof(ProcessPriorityClass), currentPriority)) - { - try - { - await this.processService.RefreshProcessInfo(process); - currentPriority = process.Priority; - } - catch (Exception refreshEx) - { - this.logger.LogDebug( - refreshEx, - "Could not refresh process priority before tracking for {ProcessName} (PID: {ProcessId})", - process.Name, process.ProcessId); - } - } - - if (Enum.IsDefined(typeof(ProcessPriorityClass), currentPriority)) - { - this.processService.TrackPriorityChange(process.ProcessId, currentPriority); - } - - await this.processService.SetProcessPriority(process, priority); - - this.logger.LogInformation( - "Applied priority '{Priority}' to process {ProcessName} (PID: {ProcessId})", - priority, process.Name, process.ProcessId); - - await this.enhancedLogger.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.AssociationTriggered, - process.Name, process.ProcessId, - $"Priority '{priority}' applied automatically from association"); - } - catch (Exception ex) - { - var blockedReason = BuildAffinityOrPriorityBlockedMessage(ex, process.Name, "priority"); - if (!string.IsNullOrEmpty(blockedReason)) - { - await this.notificationService.ShowNotificationAsync( - "Priority blocked", - blockedReason, - NotificationType.Warning); - } - - this.logger.LogWarning( - ex, - "Failed to apply priority '{Priority}' to process {ProcessName} (PID: {ProcessId})", - priority, process.Name, process.ProcessId); - - await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.ApplyCoreMaskAndPriorityAsync", - new Dictionary - { - ["ProcessName"] = process.Name, - ["ProcessId"] = process.ProcessId, - ["Priority"] = priority.ToString(), - }); - } - } - else - { - this.logger.LogWarning( - "Invalid priority value '{Priority}' for process {ProcessName}, skipping priority application", - association.ProcessPriority, process.Name); - } - } - } - catch (Exception ex) - { - this.logger.LogError( - ex, - "Error applying CPU mask and priority to process {ProcessName} (PID: {ProcessId})", - process.Name, process.ProcessId); - - await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.ApplyCoreMaskAndPriorityAsync", - new Dictionary - { - ["ProcessName"] = process.Name, - ["ProcessId"] = process.ProcessId, - ["AssociationId"] = association.Id, - }); - } - } - - private static string BuildAffinityOrPriorityBlockedMessage(Exception ex, string processName, string operation) - { - var message = ex.Message ?? string.Empty; - var lowered = message.ToLowerInvariant(); - - if (lowered.Contains("access denied") || - lowered.Contains("anti-cheat") || - lowered.Contains("anti cheat") || - lowered.Contains("protected") || - lowered.Contains("insufficient privileges") || - ex is UnauthorizedAccessException) - { - return lowered.Contains("anti-cheat") || lowered.Contains("anti cheat") || lowered.Contains("protected") - ? ProcessOperationUserMessages.AntiCheatProtectedLikely - : ProcessOperationUserMessages.AccessDenied; - } - - if (lowered.Contains("realtime priority is blocked")) - { - return ProcessOperationUserMessages.RealtimePriorityBlocked; - } - - return string.Empty; - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - try - { - // Dispose can be called from the WPF UI thread; stop on the thread pool to avoid - // deadlocking on a captured SynchronizationContext during async shutdown. - Task.Run(this.StopAsync).GetAwaiter().GetResult(); - } - finally - { - this.processMonitorService.ProcessStarted -= this.OnProcessStarted; - this.processMonitorService.ProcessStopped -= this.OnProcessStopped; - this.processMonitorService.MonitoringStatusChanged -= this.OnMonitoringStatusChanged; - this.associationService.ConfigurationChanged -= this.OnConfigurationChanged; - - this.delayTimer?.Dispose(); - this.powerPlanChangeSemaphore?.Dispose(); - this.stateMutationSemaphore?.Dispose(); - this.processMonitorService?.Dispose(); - - this.disposed = true; - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Diagnostics; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class ProcessMonitorManagerService : IProcessMonitorManagerService + { + private readonly IProcessMonitorService processMonitorService; + private readonly IProcessPowerPlanAssociationService associationService; + private readonly IPowerPlanService powerPlanService; + private readonly INotificationService notificationService; + private readonly IApplicationSettingsService settingsService; + private readonly IProcessService processService; + private readonly ICoreMaskService coreMaskService; + private readonly IAffinityApplyService affinityApplyService; + private readonly IPersistentRuleAutoApplyService persistentRuleAutoApplyService; + private readonly PowerPlanTransitionGate powerPlanTransitionGate; + private readonly ILogger logger; + private readonly IEnhancedLoggingService enhancedLogger; + private readonly object lockObject = new(); + + private readonly ConcurrentDictionary runningAssociatedProcesses = new(); + private readonly System.Threading.Timer delayTimer; + private readonly SemaphoreSlim powerPlanChangeSemaphore = new(1, 1); + private readonly SemaphoreSlim stateMutationSemaphore = new(1, 1); + + private bool isRunning; + private string status = "Stopped"; + private bool disposed; + private ProcessMonitorConfiguration? configuration; + private int pendingPowerPlanReevaluation; + + public event EventHandler? ProcessPowerPlanChanged; + + public event EventHandler? ServiceStatusChanged; + + public bool IsRunning => this.isRunning; + + public string Status => this.status; + + public IEnumerable RunningAssociatedProcesses => this.runningAssociatedProcesses.Values.ToList(); + + public ProcessMonitorManagerService( + IProcessMonitorService processMonitorService, + IProcessPowerPlanAssociationService associationService, + IPowerPlanService powerPlanService, + INotificationService notificationService, + IApplicationSettingsService settingsService, + IProcessService processService, + ICoreMaskService coreMaskService, + IAffinityApplyService affinityApplyService, + IPersistentRuleAutoApplyService persistentRuleAutoApplyService, + PowerPlanTransitionGate powerPlanTransitionGate, + ILogger logger, + IEnhancedLoggingService enhancedLogger) + { + this.processMonitorService = processMonitorService ?? throw new ArgumentNullException(nameof(processMonitorService)); + this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); + this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); + this.notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.coreMaskService = coreMaskService ?? throw new ArgumentNullException(nameof(coreMaskService)); + this.affinityApplyService = affinityApplyService ?? throw new ArgumentNullException(nameof(affinityApplyService)); + this.persistentRuleAutoApplyService = persistentRuleAutoApplyService ?? throw new ArgumentNullException(nameof(persistentRuleAutoApplyService)); + this.powerPlanTransitionGate = powerPlanTransitionGate ?? throw new ArgumentNullException(nameof(powerPlanTransitionGate)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.enhancedLogger = enhancedLogger ?? throw new ArgumentNullException(nameof(enhancedLogger)); + + // Initialize delay timer (used for delayed power plan changes) + this.delayTimer = new System.Threading.Timer(this.DelayedPowerPlanChangeCallback, null, Timeout.Infinite, Timeout.Infinite); + + // Subscribe to events + this.processMonitorService.ProcessStarted += this.OnProcessStarted; + this.processMonitorService.ProcessStopped += this.OnProcessStopped; + this.processMonitorService.MonitoringStatusChanged += this.OnMonitoringStatusChanged; + this.associationService.ConfigurationChanged += this.OnConfigurationChanged; + } + + public async Task StartAsync() + { + if (this.disposed) + { + throw new ObjectDisposedException(nameof(ProcessMonitorManagerService)); + } + + await this.stateMutationSemaphore.WaitAsync(); + try + { + if (this.isRunning) + { + return; + } + + this.logger.LogInformation("Starting Process Monitor Manager Service"); + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.System.ServiceStarted, + "Process Monitor Manager Service starting"); + this.SetStatus(true, "Starting..."); + + // Load configuration + await this.associationService.LoadConfigurationAsync(); + this.configuration = this.associationService.Configuration; + this.logger.LogInformation( + "Configuration loaded with {AssociationCount} associations", + this.configuration.Associations.Count); + + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.System.ConfigurationLoaded, + $"Process monitoring configuration loaded with {this.configuration.Associations.Count} associations"); + + // Start process monitoring + await this.processMonitorService.StartMonitoringAsync(); + this.logger.LogInformation("Process monitoring started"); + + Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 0); + + await this.enhancedLogger.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.MonitoringStarted, + "ProcessMonitorService", 0, "WMI-based process monitoring started"); + + this.isRunning = true; + this.SetStatus(true, "Running"); + + this.logger.LogInformation("Process Monitor Manager Service started successfully"); + + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.System.ServiceStarted, + "Process Monitor Manager Service started successfully"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to start Process Monitor Manager Service"); + await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.StartAsync", + new Dictionary { ["ServiceName"] = "ProcessMonitorManagerService" }); + this.isRunning = false; + this.SetStatus(false, "Failed to start", $"Error: {ex.Message}", ex); + throw; + } + finally + { + this.stateMutationSemaphore.Release(); + } + + // Evaluate current processes after startup lock is released + await this.EvaluateCurrentProcessesAsync(); + } + + public async Task StopAsync() + { + await this.stateMutationSemaphore.WaitAsync(); + try + { + if (!this.isRunning) + { + return; + } + + this.SetStatus(false, "Stopping..."); + + // Mark as stopped early to prevent new event handling while shutting down + this.isRunning = false; + Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 0); + + // Stop process monitoring + await this.processMonitorService.StopMonitoringAsync(); + + // Clear running processes + foreach (var processId in this.runningAssociatedProcesses.Keys) + { + this.coreMaskService.UnregisterMaskApplication(processId); + this.processService.UntrackProcess(processId); + this.persistentRuleAutoApplyService.MarkProcessExited(processId); + } + this.runningAssociatedProcesses.Clear(); + + // Restore default power plan if configured + if (this.configuration?.DefaultPowerPlanGuid != null) + { + await this.ForceDefaultPowerPlanAsync(); + } + + this.SetStatus(false, "Stopped"); + } + catch (Exception ex) + { + this.SetStatus(false, "Error stopping", $"Error: {ex.Message}", ex); + throw; + } + finally + { + this.stateMutationSemaphore.Release(); + } + } + + public async Task EvaluateCurrentProcessesAsync() + { + if (!this.isRunning || this.configuration == null) + { + return; + } + + try + { + var currentProcesses = (await this.processMonitorService.GetRunningProcessesAsync()).ToList(); + await this.ApplyPersistentRulesForDiscoveredProcessesAsync(currentProcesses); + var associatedProcesses = new List(); + var currentProcessIds = new HashSet(currentProcesses.Select(p => p.ProcessId)); + + // Remove stale tracked processes that are no longer running + foreach (var trackedPid in this.runningAssociatedProcesses.Keys) + { + if (!currentProcessIds.Contains(trackedPid) && this.runningAssociatedProcesses.TryRemove(trackedPid, out _)) + { + this.coreMaskService.UnregisterMaskApplication(trackedPid); + this.processService.UntrackProcess(trackedPid); + this.persistentRuleAutoApplyService.MarkProcessExited(trackedPid); + } + } + + // Find all currently running processes that have associations + foreach (var process in currentProcesses) + { + var association = this.configuration.FindMatchingAssociation(process); + if (association != null) + { + associatedProcesses.Add(process); + this.runningAssociatedProcesses[process.ProcessId] = process; + } + } + + // Determine which power plan should be active + await this.DeterminePowerPlanAsync(associatedProcesses); + } + catch (Exception ex) + { + this.SetStatus(this.isRunning, "Error evaluating processes", $"Error: {ex.Message}", ex); + } + } + + public async Task ForceDefaultPowerPlanAsync() + { + if (this.configuration?.DefaultPowerPlanGuid == null) + { + return; + } + + try + { + await this.powerPlanChangeSemaphore.WaitAsync(); + + var currentPowerPlan = await this.powerPlanService.GetActivePowerPlan(); + var decision = this.powerPlanTransitionGate.ShouldApply( + this.configuration.DefaultPowerPlanGuid, + currentPowerPlan?.Guid); + if (!decision.ShouldApply) + { + this.logger.LogDebug( + "Default power plan restore suppressed for {PowerPlanGuid}: {Reason}", + this.configuration.DefaultPowerPlanGuid, + decision.SuppressionReason); + return; + } + + this.powerPlanTransitionGate.RecordAttempt(this.configuration.DefaultPowerPlanGuid); + var success = await this.powerPlanService.SetActivePowerPlanByGuidAsync( + this.configuration.DefaultPowerPlanGuid, + this.configuration.PreventDuplicatePowerPlanChanges); + + if (success) + { + var newPowerPlan = await this.powerPlanService.GetPowerPlanByGuidAsync(this.configuration.DefaultPowerPlanGuid); + // Note: We don't have a specific process for this event, so we'll use a dummy one + var dummyProcess = new ProcessModel { Name = "System", ProcessId = -1 }; + var dummyAssociation = new ProcessPowerPlanAssociation("System", this.configuration.DefaultPowerPlanGuid, this.configuration.DefaultPowerPlanName); + + this.ProcessPowerPlanChanged?.Invoke(this, new ProcessPowerPlanChangeEventArgs( + dummyProcess, dummyAssociation, currentPowerPlan, newPowerPlan, "DefaultRestored")); + + // Show notification for default power plan restoration + await this.notificationService.ShowPowerPlanChangeNotificationAsync( + currentPowerPlan?.Name ?? "Unknown", + newPowerPlan?.Name ?? this.configuration.DefaultPowerPlanName, + string.Empty); + } + else + { + this.logger.LogWarning( + "Failed to restore default power plan {PowerPlanGuid}", + this.configuration.DefaultPowerPlanGuid); + } + } + catch (Exception ex) + { + this.SetStatus(this.isRunning, "Error setting default power plan", $"Error: {ex.Message}", ex); + } + finally + { + this.powerPlanChangeSemaphore.Release(); + } + } + + public async Task GetCurrentActivePowerPlanAsync() + { + return await this.powerPlanService.GetActivePowerPlan(); + } + + public async Task RefreshConfigurationAsync() + { + await this.associationService.LoadConfigurationAsync(); + this.configuration = this.associationService.Configuration; + this.processMonitorService.UpdateSettings(); + + if (this.isRunning) + { + await this.EvaluateCurrentProcessesAsync(); + } + } + + private void OnProcessStarted(object? sender, ProcessEventArgs e) + { + TaskSafety.FireAndForget(this.OnProcessStartedAsync(e), ex => + { + this.SetStatus(this.isRunning, "Error handling process start", $"Error: {ex.Message}", ex); + }); + } + + private async Task OnProcessStartedAsync(ProcessEventArgs e) + { + if (!this.isRunning || this.configuration == null) + { + return; + } + + if (string.IsNullOrWhiteSpace(e.Process.Name) || e.Process.ProcessId <= 0) + { + return; + } + + try + { + await this.enhancedLogger.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.Started, + e.Process.Name, e.Process.ProcessId, "Process started and detected by monitoring"); + + await this.ApplyPersistentRulesForProcessStartAsync(e.Process); + + var association = this.configuration.FindMatchingAssociation(e.Process); + if (association != null) + { + this.runningAssociatedProcesses[e.Process.ProcessId] = e.Process; + + await this.enhancedLogger.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.AssociationTriggered, + e.Process.Name, e.Process.ProcessId, + $"Process matched association for power plan: {association.PowerPlanName}"); + + // Apply CPU affinity mask if configured + await this.ApplyCoreMaskAndPriorityAsync(e.Process, association); + + // Schedule power plan change with delay if configured + if (this.configuration.PowerPlanChangeDelayMs > 0) + { + Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 1); + this.delayTimer.Change(this.configuration.PowerPlanChangeDelayMs, Timeout.Infinite); + + await this.enhancedLogger.LogSystemEventAsync( + LogEventTypes.System.ConfigurationLoaded, + $"Power plan change scheduled with {this.configuration.PowerPlanChangeDelayMs}ms delay for process {e.Process.Name}"); + } + else + { + await this.ChangePowerPlanForProcess(e.Process, association, "ProcessStarted"); + } + } + } + catch (Exception ex) + { + await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.OnProcessStarted", + new Dictionary + { + ["ProcessName"] = e.Process.Name, + ["ProcessId"] = e.Process.ProcessId, + }); + this.SetStatus(this.isRunning, "Error handling process start", $"Error: {ex.Message}", ex); + } + } + + private void OnProcessStopped(object? sender, ProcessEventArgs e) + { + TaskSafety.FireAndForget(this.OnProcessStoppedAsync(e), ex => + { + this.SetStatus(this.isRunning, "Error handling process stop", $"Error: {ex.Message}", ex); + }); + } + + private async Task OnProcessStoppedAsync(ProcessEventArgs e) + { + if (!this.isRunning || this.configuration == null) + { + return; + } + + try + { + this.persistentRuleAutoApplyService.MarkProcessExited(e.Process.ProcessId); + + if (this.runningAssociatedProcesses.TryRemove(e.Process.ProcessId, out _)) + { + this.coreMaskService.UnregisterMaskApplication(e.Process.ProcessId); + this.processService.UntrackProcess(e.Process.ProcessId); + + // Check if there are any other associated processes still running + var remainingProcesses = this.runningAssociatedProcesses.Values.ToList(); + await this.DeterminePowerPlanAsync(remainingProcesses); + } + } + catch (Exception ex) + { + this.SetStatus(this.isRunning, "Error handling process stop", $"Error: {ex.Message}", ex); + } + } + + private void OnMonitoringStatusChanged(object? sender, MonitoringStatusEventArgs e) + { + var details = e.StatusMessage ?? (e.IsMonitoring ? "Monitoring active" : "Monitoring inactive"); + this.SetStatus(this.isRunning, $"Monitor: {details}", e.StatusMessage, e.Error); + } + + private void OnConfigurationChanged(object? sender, ConfigurationChangedEventArgs e) + { + this.configuration = this.associationService.Configuration; + + if (this.isRunning) + { + TaskSafety.FireAndForget(this.EvaluateCurrentProcessesAsync(), ex => + { + this.SetStatus(this.isRunning, "Error evaluating processes", $"Error: {ex.Message}", ex); + }); + } + + // Keep process monitor settings synchronized with configuration edits + this.processMonitorService.UpdateSettings(); + } + + private void DelayedPowerPlanChangeCallback(object? state) + { + TaskSafety.FireAndForget(this.DelayedPowerPlanChangeCallbackAsync(), ex => + { + this.SetStatus(this.isRunning, "Error in delayed power plan callback", $"Error: {ex.Message}", ex); + }); + } + + private async Task DelayedPowerPlanChangeCallbackAsync() + { + if (!this.isRunning) + { + return; + } + + if (Interlocked.Exchange(ref this.pendingPowerPlanReevaluation, 0) == 0) + { + return; + } + + var runningProcesses = this.runningAssociatedProcesses.Values.ToList(); + await this.DeterminePowerPlanAsync(runningProcesses); + } + + private async Task DeterminePowerPlanAsync(IList associatedProcesses) + { + if (this.configuration == null) + { + return; + } + + try + { + if (associatedProcesses.Any()) + { + // Find the highest priority association among running processes + var associations = associatedProcesses + .Select(p => this.configuration.FindMatchingAssociation(p)) + .Where(a => a != null) + .OrderByDescending(a => a!.Priority) + .ToList(); + + if (associations.Any()) + { + var topAssociation = associations.First()!; + var matchingProcess = associatedProcesses.First(p => topAssociation.MatchesProcess(p)); + await this.ChangePowerPlanForProcess(matchingProcess, topAssociation, "ProcessStarted"); + } + } + else + { + // No associated processes running, revert to default + if (!string.IsNullOrEmpty(this.configuration.DefaultPowerPlanGuid)) + { + await this.ForceDefaultPowerPlanAsync(); + } + } + } + catch (Exception ex) + { + this.SetStatus(this.isRunning, "Error determining power plan", $"Error: {ex.Message}", ex); + } + } + + private async Task ChangePowerPlanForProcess(ProcessModel process, ProcessPowerPlanAssociation association, string action) + { + try + { + await this.powerPlanChangeSemaphore.WaitAsync(); + + var currentPowerPlan = await this.powerPlanService.GetActivePowerPlan(); + var decision = this.powerPlanTransitionGate.ShouldApply( + association.PowerPlanGuid, + currentPowerPlan?.Guid); + if (!decision.ShouldApply) + { + this.logger.LogDebug( + "Power plan change suppressed for {PowerPlanGuid}: {Reason}", + association.PowerPlanGuid, + decision.SuppressionReason); + return; + } + + this.powerPlanTransitionGate.RecordAttempt(association.PowerPlanGuid); + var success = await this.powerPlanService.SetActivePowerPlanByGuidAsync( + association.PowerPlanGuid, + this.configuration?.PreventDuplicatePowerPlanChanges ?? true); + + if (success) + { + var newPowerPlan = await this.powerPlanService.GetPowerPlanByGuidAsync(association.PowerPlanGuid); + this.ProcessPowerPlanChanged?.Invoke(this, new ProcessPowerPlanChangeEventArgs( + process, association, currentPowerPlan, newPowerPlan, action)); + + // Show notification for power plan change + await this.notificationService.ShowPowerPlanChangeNotificationAsync( + currentPowerPlan?.Name ?? "Unknown", + newPowerPlan?.Name ?? association.PowerPlanName, + process.Name); + } + else + { + this.logger.LogWarning( + "Failed to change power plan to {PowerPlanGuid} for process {ProcessName} (PID: {ProcessId})", + association.PowerPlanGuid, + process.Name, + process.ProcessId); + } + } + catch (Exception ex) + { + this.SetStatus(this.isRunning, "Error changing power plan", $"Error: {ex.Message}", ex); + } + finally + { + this.powerPlanChangeSemaphore.Release(); + } + } + + private void SetStatus(bool isRunning, string status, string? details = null, Exception? error = null) + { + lock (this.lockObject) + { + this.status = status; + } + + this.ServiceStatusChanged?.Invoke(this, new ServiceStatusEventArgs(isRunning, status, details, error)); + + // Show error notification if there's an error + if (error != null) + { + TaskSafety.FireAndForget( + this.notificationService.ShowErrorNotificationAsync( + "Process Monitor Error", + details ?? status, + error), + ex => + { + this.logger.LogError(ex, "Failed to show error notification"); + }); + } + } + + private async Task ApplyPersistentRulesForDiscoveredProcessesAsync(IEnumerable processes) + { + try + { + var results = await this.persistentRuleAutoApplyService.ApplyForDiscoveredProcessesAsync(processes); + await this.LogPersistentRuleResultsAsync(results); + } + catch (OperationCanceledException) + { + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Persistent rule auto-apply failed during process snapshot refresh"); + } + } + + private async Task ApplyPersistentRulesForProcessStartAsync(ProcessModel process) + { + try + { + var results = await this.persistentRuleAutoApplyService.ApplyForProcessStartAsync(process); + await this.LogPersistentRuleResultsAsync(results); + } + catch (OperationCanceledException) + { + } + catch (Exception ex) + { + this.logger.LogWarning( + ex, + "Persistent rule auto-apply failed for process {ProcessName} (PID: {ProcessId})", + process.Name, + process.ProcessId); + } + } + + private async Task LogPersistentRuleResultsAsync(IReadOnlyList results) + { + foreach (var result in results) + { + if (result.Success) + { + await this.enhancedLogger.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.AssociationTriggered, + result.ProcessName, + result.ProcessId, + $"Persistent rule '{result.RuleId}' applied automatically"); + } + else + { + this.logger.LogDebug( + "Persistent rule {RuleId} was not applied to process {ProcessName} (PID: {ProcessId}): {Message}", + result.RuleId, + result.ProcessName, + result.ProcessId, + result.UserMessage); + } + } + } + + public void UpdateSettings() + { + // Update the process monitor service with new settings + this.processMonitorService.UpdateSettings(); + + this.logger.LogDebug("ProcessMonitorManagerService settings updated"); + } + + private async Task ApplyCoreMaskAndPriorityAsync(ProcessModel process, ProcessPowerPlanAssociation association) + { + try + { + // Apply CPU affinity mask if configured + if (!string.IsNullOrEmpty(association.CoreMaskId)) + { + var coreMask = this.coreMaskService.AvailableMasks.FirstOrDefault(m => m.Id == association.CoreMaskId); + if (coreMask != null) + { + try + { + var affinity = coreMask.ToProcessorAffinity(); + if (affinity > 0) + { + var result = await this.affinityApplyService.ApplyAsync(process, affinity); + if (!result.Success) + { + this.logger.LogWarning( + "Failed to apply CPU mask '{MaskName}' to process {ProcessName} (PID: {ProcessId}): {Message}", + coreMask.Name, + process.Name, + process.ProcessId, + result.Message); + } + else + { + this.processService.TrackAppliedMask(process.ProcessId, coreMask.Id); + this.coreMaskService.RegisterMaskApplication(process.ProcessId, coreMask.Id); + + this.logger.LogInformation( + "Applied CPU mask '{MaskName}' (affinity: 0x{Affinity:X}) to process {ProcessName} (PID: {ProcessId})", + coreMask.Name, affinity, process.Name, process.ProcessId); + + await this.enhancedLogger.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.AssociationTriggered, + process.Name, process.ProcessId, + $"CPU mask '{coreMask.Name}' applied automatically from association"); + } + } + } + catch (Exception ex) + { + var blockedReason = BuildAffinityOrPriorityBlockedMessage(ex, process.Name, "affinity"); + if (!string.IsNullOrEmpty(blockedReason)) + { + await this.notificationService.ShowNotificationAsync( + "Affinity blocked", + blockedReason, + NotificationType.Warning); + } + + this.logger.LogWarning( + ex, + "Failed to apply CPU mask '{MaskName}' to process {ProcessName} (PID: {ProcessId})", + coreMask.Name, process.Name, process.ProcessId); + + await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.ApplyCoreMaskAndPriorityAsync", + new Dictionary + { + ["ProcessName"] = process.Name, + ["ProcessId"] = process.ProcessId, + ["MaskName"] = coreMask.Name, + }); + } + } + else + { + this.logger.LogWarning( + "Core mask ID '{CoreMaskId}' not found for process {ProcessName}, skipping affinity application", + association.CoreMaskId, process.Name); + } + } + + // Apply process priority if configured + if (!string.IsNullOrEmpty(association.ProcessPriority)) + { + if (Enum.TryParse(association.ProcessPriority, out var priority)) + { + try + { + var currentPriority = process.Priority; + + if (!Enum.IsDefined(typeof(ProcessPriorityClass), currentPriority)) + { + try + { + await this.processService.RefreshProcessInfo(process); + currentPriority = process.Priority; + } + catch (Exception refreshEx) + { + this.logger.LogDebug( + refreshEx, + "Could not refresh process priority before tracking for {ProcessName} (PID: {ProcessId})", + process.Name, process.ProcessId); + } + } + + if (Enum.IsDefined(typeof(ProcessPriorityClass), currentPriority)) + { + this.processService.TrackPriorityChange(process.ProcessId, currentPriority); + } + + await this.processService.SetProcessPriority(process, priority); + + this.logger.LogInformation( + "Applied priority '{Priority}' to process {ProcessName} (PID: {ProcessId})", + priority, process.Name, process.ProcessId); + + await this.enhancedLogger.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.AssociationTriggered, + process.Name, process.ProcessId, + $"Priority '{priority}' applied automatically from association"); + } + catch (Exception ex) + { + var blockedReason = BuildAffinityOrPriorityBlockedMessage(ex, process.Name, "priority"); + if (!string.IsNullOrEmpty(blockedReason)) + { + await this.notificationService.ShowNotificationAsync( + "Priority blocked", + blockedReason, + NotificationType.Warning); + } + + this.logger.LogWarning( + ex, + "Failed to apply priority '{Priority}' to process {ProcessName} (PID: {ProcessId})", + priority, process.Name, process.ProcessId); + + await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.ApplyCoreMaskAndPriorityAsync", + new Dictionary + { + ["ProcessName"] = process.Name, + ["ProcessId"] = process.ProcessId, + ["Priority"] = priority.ToString(), + }); + } + } + else + { + this.logger.LogWarning( + "Invalid priority value '{Priority}' for process {ProcessName}, skipping priority application", + association.ProcessPriority, process.Name); + } + } + } + catch (Exception ex) + { + this.logger.LogError( + ex, + "Error applying CPU mask and priority to process {ProcessName} (PID: {ProcessId})", + process.Name, process.ProcessId); + + await this.enhancedLogger.LogErrorAsync(ex, "ProcessMonitorManagerService.ApplyCoreMaskAndPriorityAsync", + new Dictionary + { + ["ProcessName"] = process.Name, + ["ProcessId"] = process.ProcessId, + ["AssociationId"] = association.Id, + }); + } + } + + private static string BuildAffinityOrPriorityBlockedMessage(Exception ex, string processName, string operation) + { + var message = ex.Message ?? string.Empty; + var lowered = message.ToLowerInvariant(); + + if (lowered.Contains("access denied") || + lowered.Contains("anti-cheat") || + lowered.Contains("anti cheat") || + lowered.Contains("protected") || + lowered.Contains("insufficient privileges") || + ex is UnauthorizedAccessException) + { + return lowered.Contains("anti-cheat") || lowered.Contains("anti cheat") || lowered.Contains("protected") + ? ProcessOperationUserMessages.AntiCheatProtectedLikely + : ProcessOperationUserMessages.AccessDenied; + } + + if (lowered.Contains("realtime priority is blocked")) + { + return ProcessOperationUserMessages.RealtimePriorityBlocked; + } + + return string.Empty; + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + try + { + // Dispose can be called from the WPF UI thread; stop on the thread pool to avoid + // deadlocking on a captured SynchronizationContext during async shutdown. + Task.Run(this.StopAsync).GetAwaiter().GetResult(); + } + finally + { + this.processMonitorService.ProcessStarted -= this.OnProcessStarted; + this.processMonitorService.ProcessStopped -= this.OnProcessStopped; + this.processMonitorService.MonitoringStatusChanged -= this.OnMonitoringStatusChanged; + this.associationService.ConfigurationChanged -= this.OnConfigurationChanged; + + this.delayTimer?.Dispose(); + this.powerPlanChangeSemaphore?.Dispose(); + this.stateMutationSemaphore?.Dispose(); + this.processMonitorService?.Dispose(); + + this.disposed = true; + } + } + } +} diff --git a/Services/ProcessMonitorService.cs b/Services/ProcessMonitorService.cs index 3b28310..56b2a1d 100644 --- a/Services/ProcessMonitorService.cs +++ b/Services/ProcessMonitorService.cs @@ -1,724 +1,705 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.Diagnostics; - using System.IO; - using System.Linq; - using System.Management; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Process monitoring service using WMI events with fallback polling. - /// - public class ProcessMonitorService : IProcessMonitorService - { - private readonly IProcessService processService; - private readonly IApplicationSettingsService settingsService; - private readonly ILogger? logger; - private readonly object lockObject = new(); - private readonly ConcurrentDictionary runningProcesses = new(); - private readonly SemaphoreSlim wmiStartSemaphore = new(1, 1); - private readonly Dictionary pollBuffer = new(); - - private ManagementEventWatcher? processStartWatcher; - private ManagementEventWatcher? processStopWatcher; - private System.Threading.Timer? fallbackTimer; - private CancellationTokenSource? cancellationTokenSource; - - private bool isMonitoring; - private bool isWmiAvailable; - private bool isFallbackPollingActive; - private int disposedFlag; - - // Configuration - will be updated from settings - private int fallbackPollingIntervalMs = 5000; // Default 5 seconds - private int currentFallbackPollingIntervalMs = 5000; - private int idlePollingMultiplier = 1; - private readonly int wmiRetryDelayMs = 10000; // 10 seconds - private const int MaxIdlePollingMultiplier = 6; - private bool enableWmiMonitoring = true; - private bool enableFallbackPolling = true; - private int isFallbackPollingInProgress; - private int isWmiRecoveryInProgress; - private DateTime lastWmiRetryAttemptUtc = DateTime.MinValue; - - public event EventHandler? ProcessStarted; - - public event EventHandler? ProcessStopped; - - public event EventHandler? MonitoringStatusChanged; - - private bool IsDisposed => Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1; - - public bool IsMonitoring => this.isMonitoring; - - public bool IsWmiAvailable => this.isWmiAvailable; - - public bool IsFallbackPollingActive => this.isFallbackPollingActive; - - public ProcessMonitorService( - IProcessService processService, - IApplicationSettingsService settingsService, - ILogger? logger = null) - { - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.logger = logger; - - // Initialize polling interval from settings - this.UpdateMonitoringSettings(); - } - - public async Task StartMonitoringAsync() - { - if (this.IsDisposed) - { - throw new ObjectDisposedException(nameof(ProcessMonitorService)); - } - - lock (this.lockObject) - { - if (this.isMonitoring) - { - return; - } - - this.isMonitoring = true; - } - - this.cancellationTokenSource = new CancellationTokenSource(); - this.lastWmiRetryAttemptUtc = DateTime.MinValue; - Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); - Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 0); - - this.UpdateMonitoringSettings(); - - // Initialize current process list - await this.InitializeProcessListAsync().ConfigureAwait(false); - - bool wmiStarted = false; - if (this.enableWmiMonitoring) - { - // Try to start WMI monitoring first - wmiStarted = await this.TryStartWmiMonitoringAsync().ConfigureAwait(false); - } - - if (!wmiStarted && this.enableFallbackPolling) - { - // Fall back to polling if WMI is not available - this.StartFallbackPolling(); - } - else if (!wmiStarted && !this.enableFallbackPolling) - { - var reason = this.enableWmiMonitoring - ? "WMI monitoring unavailable and fallback polling is disabled" - : "Both WMI monitoring and fallback polling are disabled"; - - this.OnMonitoringStatusChanged(reason); - } - - this.OnMonitoringStatusChanged(); - } - - public async Task StopMonitoringAsync() - { - if (this.IsDisposed) - { - return; - } - - var semaphoreHeld = false; - await this.wmiStartSemaphore.WaitAsync().ConfigureAwait(false); - semaphoreHeld = true; - - try - { - lock (this.lockObject) - { - if (!this.isMonitoring) - { - return; - } - - this.isMonitoring = false; - } - - // Stop WMI watchers - this.StopWmiWatchers(); - - // Stop fallback polling - this.StopFallbackPolling(); - - // Cancel any ongoing operations - this.cancellationTokenSource?.Cancel(); - this.cancellationTokenSource?.Dispose(); - this.cancellationTokenSource = null; - - this.runningProcesses.Clear(); - this.pollBuffer.Clear(); - Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); - Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 0); - this.OnMonitoringStatusChanged(); - } - finally - { - if (semaphoreHeld) - { - this.wmiStartSemaphore.Release(); - } - } - } - - public async Task> GetRunningProcessesAsync() - { - try - { - var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); - return processes; - } - catch (Exception) - { - return Enumerable.Empty(); - } - } - - public async Task IsProcessRunningAsync(string executableName) - { - try - { - var processes = await this.GetRunningProcessesAsync().ConfigureAwait(false); - return processes.Any(p => string.Equals(p.Name, executableName, StringComparison.OrdinalIgnoreCase)); - } - catch - { - return false; - } - } - - private async Task InitializeProcessListAsync() - { - try - { - var processes = await this.GetRunningProcessesAsync().ConfigureAwait(false); - this.runningProcesses.Clear(); - - foreach (var process in processes) - { - this.runningProcesses.TryAdd(process.ProcessId, process); - } - } - catch (Exception ex) - { - this.OnMonitoringStatusChanged($"Failed to initialize process list: {ex.Message}", ex); - } - } - - private async Task TryStartWmiMonitoringAsync() - { - if (this.IsDisposed || !this.isMonitoring || !this.enableWmiMonitoring) - { - return false; - } - - await this.wmiStartSemaphore.WaitAsync().ConfigureAwait(false); - try - { - if (this.IsDisposed || !this.isMonitoring || !this.enableWmiMonitoring) - { - return false; - } - - if (this.isWmiAvailable && this.processStartWatcher != null && this.processStopWatcher != null) - { - return true; - } - - await Task.Run(() => - { - // Ensure any previous watchers are fully cleaned up before re-creating them - this.StopWmiWatchers(); - - // Create WMI event watchers for process start and stop - var startQuery = new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"); - var stopQuery = new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"); - - this.processStartWatcher = new ManagementEventWatcher(startQuery); - this.processStopWatcher = new ManagementEventWatcher(stopQuery); - - this.processStartWatcher.EventArrived += this.OnProcessStarted; - this.processStopWatcher.EventArrived += this.OnProcessStopped; - this.processStartWatcher.Stopped += this.OnWmiWatcherStopped; - this.processStopWatcher.Stopped += this.OnWmiWatcherStopped; - - this.processStartWatcher.Start(); - this.processStopWatcher.Start(); - }).ConfigureAwait(false); - - this.isWmiAvailable = true; - - // Prefer WMI when available to reduce polling overhead - if (this.isFallbackPollingActive) - { - this.StopFallbackPolling(); - } - - this.OnMonitoringStatusChanged("WMI monitoring started successfully"); - return true; - } - catch (Exception ex) - { - this.isWmiAvailable = false; - this.OnMonitoringStatusChanged($"WMI monitoring failed: {ex.Message}", ex); - - // Clean up any partially created watchers - this.StopWmiWatchers(); - - return false; - } - finally - { - this.wmiStartSemaphore.Release(); - } - } - - private void StartFallbackPolling() - { - if (this.IsDisposed || !this.isMonitoring || !this.enableFallbackPolling) - { - return; - } - - // Update polling interval from current settings - this.UpdateMonitoringSettings(); - - if (this.isFallbackPollingActive) - { - this.currentFallbackPollingIntervalMs = this.fallbackPollingIntervalMs; - this.fallbackTimer?.Change(0, this.currentFallbackPollingIntervalMs); - return; - } - - this.isFallbackPollingActive = true; - this.idlePollingMultiplier = 1; - this.currentFallbackPollingIntervalMs = this.fallbackPollingIntervalMs; - this.fallbackTimer = new System.Threading.Timer(this.FallbackPollingCallback, null, 0, this.currentFallbackPollingIntervalMs); - this.OnMonitoringStatusChanged($"Fallback polling started (interval: {this.fallbackPollingIntervalMs}ms)"); - } - - private void OnWmiWatcherStopped(object sender, StoppedEventArgs e) - { - if (!this.isMonitoring || this.IsDisposed) - { - return; - } - - this.isWmiAvailable = false; - this.OnMonitoringStatusChanged($"WMI watcher stopped ({e.Status})"); - - if (this.enableFallbackPolling && !this.isFallbackPollingActive) - { - this.StartFallbackPolling(); - } - } - - private void StopWmiWatchers() - { - try - { - if (this.processStartWatcher != null) - { - this.processStartWatcher.EventArrived -= this.OnProcessStarted; - this.processStartWatcher.Stopped -= this.OnWmiWatcherStopped; - } - - this.processStartWatcher?.Stop(); - this.processStartWatcher?.Dispose(); - this.processStartWatcher = null; - - if (this.processStopWatcher != null) - { - this.processStopWatcher.EventArrived -= this.OnProcessStopped; - this.processStopWatcher.Stopped -= this.OnWmiWatcherStopped; - } - - this.processStopWatcher?.Stop(); - this.processStopWatcher?.Dispose(); - this.processStopWatcher = null; - - this.isWmiAvailable = false; - } - catch (Exception ex) - { - this.OnMonitoringStatusChanged($"Error stopping WMI watchers: {ex.Message}", ex); - } - } - - private void StopFallbackPolling() - { - this.fallbackTimer?.Dispose(); - this.fallbackTimer = null; - this.isFallbackPollingActive = false; - Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); - } - - private void OnProcessStarted(object sender, EventArrivedEventArgs e) - { - TaskSafety.FireAndForget(this.HandleProcessStartedAsync(e), ex => - { - this.OnMonitoringStatusChanged($"Error handling process start event: {ex.Message}", ex); - }); - } - - private async Task HandleProcessStartedAsync(EventArrivedEventArgs e) - { - if (!this.isMonitoring || this.IsDisposed) - { - return; - } - - try - { - var processId = Convert.ToInt32(e.NewEvent["ProcessID"]); - var processName = e.NewEvent["ProcessName"]?.ToString() ?? string.Empty; - - // Get detailed process information - var process = await this.CreateProcessModelFromId(processId, processName).ConfigureAwait(false) - ?? (!string.IsNullOrWhiteSpace(processName) - ? new ProcessModel { ProcessId = processId, Name = NormalizeProcessName(processName) } - : null); - - if (process != null) - { - this.runningProcesses.TryAdd(processId, process); - this.ProcessStarted?.Invoke(this, new ProcessEventArgs(process)); - } - } - catch (Exception ex) - { - this.OnMonitoringStatusChanged($"Error handling process start event: {ex.Message}", ex); - } - } - - private void OnProcessStopped(object sender, EventArrivedEventArgs e) - { - if (!this.isMonitoring || this.IsDisposed) - { - return; - } - - try - { - var processId = Convert.ToInt32(e.NewEvent["ProcessID"]); - - if (this.runningProcesses.TryRemove(processId, out var process)) - { - this.ProcessStopped?.Invoke(this, new ProcessEventArgs(process)); - } - } - catch (Exception ex) - { - this.OnMonitoringStatusChanged($"Error handling process stop event: {ex.Message}", ex); - } - } - - private void FallbackPollingCallback(object? state) - { - if (!this.isMonitoring || this.IsDisposed || this.cancellationTokenSource?.Token.IsCancellationRequested == true) - { - return; - } - - if (Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1) - { - return; - } - - // Prevent overlapping polling iterations when processing takes longer than interval - if (Interlocked.Exchange(ref this.isFallbackPollingInProgress, 1) == 1) - { - return; - } - - var cancellationToken = this.cancellationTokenSource?.Token ?? CancellationToken.None; - TaskSafety.FireAndForget(this.RunFallbackPollingAsync(cancellationToken), ex => - { - this.OnMonitoringStatusChanged($"Error in fallback polling: {ex.Message}", ex); - }); - } - - private async Task RunFallbackPollingAsync(CancellationToken cancellationToken) - { - try - { - if (cancellationToken.IsCancellationRequested) - { - return; - } - - var currentProcesses = await this.GetRunningProcessesAsync().ConfigureAwait(false); - var detectedChanges = 0; - - this.pollBuffer.Clear(); - foreach (var process in currentProcesses) - { - this.pollBuffer[process.ProcessId] = process; - } - - // Check for new processes - foreach (var process in currentProcesses) - { - if (cancellationToken.IsCancellationRequested) - { - return; - } - - if (!this.runningProcesses.ContainsKey(process.ProcessId)) - { - this.runningProcesses.TryAdd(process.ProcessId, process); - this.ProcessStarted?.Invoke(this, new ProcessEventArgs(process)); - detectedChanges++; - } - } - - // Check for stopped processes - var stoppedProcesses = this.runningProcesses.Keys - .Where(pid => !this.pollBuffer.ContainsKey(pid)) - .ToList(); - - foreach (var pid in stoppedProcesses) - { - if (cancellationToken.IsCancellationRequested) - { - return; - } - - if (this.runningProcesses.TryRemove(pid, out var stoppedProcess)) - { - this.ProcessStopped?.Invoke(this, new ProcessEventArgs(stoppedProcess)); - detectedChanges++; - } - } - - // Periodically retry WMI monitoring recovery while polling is active - await this.TryRecoverWmiMonitoringAsync().ConfigureAwait(false); - - this.UpdateAdaptivePollingInterval(detectedChanges); - } - catch (Exception ex) - { - this.OnMonitoringStatusChanged($"Error in fallback polling: {ex.Message}", ex); - } - finally - { - Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); - } - } - - private void UpdateAdaptivePollingInterval(int detectedChanges) - { - if (!this.isFallbackPollingActive || this.fallbackTimer == null) - { - return; - } - - var previousMultiplier = this.idlePollingMultiplier; - this.idlePollingMultiplier = detectedChanges > 0 - ? 1 - : Math.Min(MaxIdlePollingMultiplier, this.idlePollingMultiplier + 1); - - var nextInterval = Math.Clamp( - this.fallbackPollingIntervalMs * this.idlePollingMultiplier, - this.fallbackPollingIntervalMs, - 60000); - - if (nextInterval == this.currentFallbackPollingIntervalMs) - { - return; - } - - this.currentFallbackPollingIntervalMs = nextInterval; - this.fallbackTimer.Change(this.currentFallbackPollingIntervalMs, this.currentFallbackPollingIntervalMs); - - if (previousMultiplier != this.idlePollingMultiplier) - { - this.OnMonitoringStatusChanged($"Adaptive polling interval changed to {this.currentFallbackPollingIntervalMs}ms"); - } - } - - private async Task TryRecoverWmiMonitoringAsync() - { - if (!this.isMonitoring || this.IsDisposed || this.isWmiAvailable || !this.enableWmiMonitoring) - { - return; - } - - var now = DateTime.UtcNow; - if ((now - this.lastWmiRetryAttemptUtc).TotalMilliseconds < this.wmiRetryDelayMs) - { - return; - } - - if (Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 1) == 1) - { - return; - } - - this.lastWmiRetryAttemptUtc = now; - - try - { - var recovered = await this.TryStartWmiMonitoringAsync().ConfigureAwait(false); - if (recovered) - { - this.OnMonitoringStatusChanged("WMI monitoring recovered successfully"); - } - } - finally - { - Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 0); - } - } - - private async Task CreateProcessModelFromId(int processId, string processName) - { - try - { - using var process = Process.GetProcessById(processId); - var normalizedName = !string.IsNullOrWhiteSpace(processName) - ? NormalizeProcessName(processName) - : NormalizeProcessName(process.ProcessName); - - return new ProcessModel - { - ProcessId = process.Id, - Name = normalizedName, - CpuUsage = 0, - MemoryUsage = process.PrivateMemorySize64, - Priority = process.PriorityClass, - ProcessorAffinity = (long)process.ProcessorAffinity, - MainWindowHandle = process.MainWindowHandle, - MainWindowTitle = process.MainWindowTitle ?? string.Empty, - HasVisibleWindow = process.MainWindowHandle != IntPtr.Zero && !string.IsNullOrWhiteSpace(process.MainWindowTitle), - ExecutablePath = process.MainModule?.FileName ?? string.Empty, - }; - } - catch (Exception ex) - { - this.logger?.LogDebug(ex, "Process {ProcessId} terminated before access", processId); - return null; - } - } - - private void OnMonitoringStatusChanged(string? message = null, Exception? error = null) - { - this.MonitoringStatusChanged?.Invoke(this, new MonitoringStatusEventArgs( - this.isMonitoring, this.isWmiAvailable, this.isFallbackPollingActive, message, error)); - } - - private void UpdateMonitoringSettings() - { - var settings = this.settingsService.Settings; - this.fallbackPollingIntervalMs = Math.Clamp(settings.FallbackPollingIntervalMs, 1000, 60000); - this.enableWmiMonitoring = settings.EnableWmiMonitoring; - this.enableFallbackPolling = settings.EnableFallbackPolling; - } - - public void UpdateSettings() - { - var previousInterval = this.fallbackPollingIntervalMs; - var previousWmiEnabled = this.enableWmiMonitoring; - var previousFallbackEnabled = this.enableFallbackPolling; - - this.UpdateMonitoringSettings(); - - if (!this.isMonitoring) - { - return; - } - - if (!this.enableWmiMonitoring && this.isWmiAvailable) - { - this.StopWmiWatchers(); - this.OnMonitoringStatusChanged("WMI monitoring disabled by settings"); - } - else if (this.enableWmiMonitoring && !previousWmiEnabled && !this.isWmiAvailable) - { - TaskSafety.FireAndForget(this.TryStartWmiMonitoringAsync(), ex => - { - this.OnMonitoringStatusChanged($"Error recovering WMI monitoring: {ex.Message}", ex); - }); - } - - if (!this.enableFallbackPolling && this.isFallbackPollingActive) - { - this.StopFallbackPolling(); - this.OnMonitoringStatusChanged("Fallback polling disabled by settings"); - } - else if (this.enableFallbackPolling && !previousFallbackEnabled && (!this.isWmiAvailable || !this.enableWmiMonitoring)) - { - this.StartFallbackPolling(); - } - - // If fallback polling is active, restart it with new interval - if (this.isFallbackPollingActive && this.fallbackTimer != null && previousInterval != this.fallbackPollingIntervalMs) - { - this.idlePollingMultiplier = 1; - this.currentFallbackPollingIntervalMs = this.fallbackPollingIntervalMs; - this.fallbackTimer.Change(0, this.currentFallbackPollingIntervalMs); - this.OnMonitoringStatusChanged($"Polling interval updated to {this.fallbackPollingIntervalMs}ms"); - } - } - - private static string NormalizeProcessName(string processName) - { - if (string.IsNullOrWhiteSpace(processName)) - { - return string.Empty; - } - - // Keep process naming consistent with Process.ProcessName (no extension) - return Path.GetFileNameWithoutExtension(processName.Trim()); - } - - public void Dispose() - { - if (Interlocked.Exchange(ref this.disposedFlag, 1) == 1) - { - return; - } - - try - { - this.StopMonitoringAsync().GetAwaiter().GetResult(); - } - catch (Exception ex) - { - this.OnMonitoringStatusChanged($"Error during process monitor disposal: {ex.Message}", ex); - } - - this.wmiStartSemaphore.Dispose(); - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Linq; + using System.Management; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class ProcessMonitorService : IProcessMonitorService + { + private readonly IProcessService processService; + private readonly IApplicationSettingsService settingsService; + private readonly ILogger? logger; + private readonly object lockObject = new(); + private readonly ConcurrentDictionary runningProcesses = new(); + private readonly SemaphoreSlim wmiStartSemaphore = new(1, 1); + private readonly Dictionary pollBuffer = new(); + + private ManagementEventWatcher? processStartWatcher; + private ManagementEventWatcher? processStopWatcher; + private System.Threading.Timer? fallbackTimer; + private CancellationTokenSource? cancellationTokenSource; + + private bool isMonitoring; + private bool isWmiAvailable; + private bool isFallbackPollingActive; + private int disposedFlag; + + // Configuration - will be updated from settings + private int fallbackPollingIntervalMs = 5000; // Default 5 seconds + private int currentFallbackPollingIntervalMs = 5000; + private int idlePollingMultiplier = 1; + private readonly int wmiRetryDelayMs = 10000; // 10 seconds + private const int MaxIdlePollingMultiplier = 6; + private bool enableWmiMonitoring = true; + private bool enableFallbackPolling = true; + private int isFallbackPollingInProgress; + private int isWmiRecoveryInProgress; + private DateTime lastWmiRetryAttemptUtc = DateTime.MinValue; + + public event EventHandler? ProcessStarted; + + public event EventHandler? ProcessStopped; + + public event EventHandler? MonitoringStatusChanged; + + private bool IsDisposed => Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1; + + public bool IsMonitoring => this.isMonitoring; + + public bool IsWmiAvailable => this.isWmiAvailable; + + public bool IsFallbackPollingActive => this.isFallbackPollingActive; + + public ProcessMonitorService( + IProcessService processService, + IApplicationSettingsService settingsService, + ILogger? logger = null) + { + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.logger = logger; + + // Initialize polling interval from settings + this.UpdateMonitoringSettings(); + } + + public async Task StartMonitoringAsync() + { + if (this.IsDisposed) + { + throw new ObjectDisposedException(nameof(ProcessMonitorService)); + } + + lock (this.lockObject) + { + if (this.isMonitoring) + { + return; + } + + this.isMonitoring = true; + } + + this.cancellationTokenSource = new CancellationTokenSource(); + this.lastWmiRetryAttemptUtc = DateTime.MinValue; + Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); + Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 0); + + this.UpdateMonitoringSettings(); + + // Initialize current process list + await this.InitializeProcessListAsync().ConfigureAwait(false); + + bool wmiStarted = false; + if (this.enableWmiMonitoring) + { + // Try to start WMI monitoring first + wmiStarted = await this.TryStartWmiMonitoringAsync().ConfigureAwait(false); + } + + if (!wmiStarted && this.enableFallbackPolling) + { + // Fall back to polling if WMI is not available + this.StartFallbackPolling(); + } + else if (!wmiStarted && !this.enableFallbackPolling) + { + var reason = this.enableWmiMonitoring + ? "WMI monitoring unavailable and fallback polling is disabled" + : "Both WMI monitoring and fallback polling are disabled"; + + this.OnMonitoringStatusChanged(reason); + } + + this.OnMonitoringStatusChanged(); + } + + public async Task StopMonitoringAsync() + { + if (this.IsDisposed) + { + return; + } + + var semaphoreHeld = false; + await this.wmiStartSemaphore.WaitAsync().ConfigureAwait(false); + semaphoreHeld = true; + + try + { + lock (this.lockObject) + { + if (!this.isMonitoring) + { + return; + } + + this.isMonitoring = false; + } + + // Stop WMI watchers + this.StopWmiWatchers(); + + // Stop fallback polling + this.StopFallbackPolling(); + + // Cancel any ongoing operations + this.cancellationTokenSource?.Cancel(); + this.cancellationTokenSource?.Dispose(); + this.cancellationTokenSource = null; + + this.runningProcesses.Clear(); + this.pollBuffer.Clear(); + Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); + Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 0); + this.OnMonitoringStatusChanged(); + } + finally + { + if (semaphoreHeld) + { + this.wmiStartSemaphore.Release(); + } + } + } + + public async Task> GetRunningProcessesAsync() + { + try + { + var processes = await this.processService.GetProcessesAsync().ConfigureAwait(false); + return processes; + } + catch (Exception) + { + return Enumerable.Empty(); + } + } + + public async Task IsProcessRunningAsync(string executableName) + { + try + { + var processes = await this.GetRunningProcessesAsync().ConfigureAwait(false); + return processes.Any(p => string.Equals(p.Name, executableName, StringComparison.OrdinalIgnoreCase)); + } + catch + { + return false; + } + } + + private async Task InitializeProcessListAsync() + { + try + { + var processes = await this.GetRunningProcessesAsync().ConfigureAwait(false); + this.runningProcesses.Clear(); + + foreach (var process in processes) + { + this.runningProcesses.TryAdd(process.ProcessId, process); + } + } + catch (Exception ex) + { + this.OnMonitoringStatusChanged($"Failed to initialize process list: {ex.Message}", ex); + } + } + + private async Task TryStartWmiMonitoringAsync() + { + if (this.IsDisposed || !this.isMonitoring || !this.enableWmiMonitoring) + { + return false; + } + + await this.wmiStartSemaphore.WaitAsync().ConfigureAwait(false); + try + { + if (this.IsDisposed || !this.isMonitoring || !this.enableWmiMonitoring) + { + return false; + } + + if (this.isWmiAvailable && this.processStartWatcher != null && this.processStopWatcher != null) + { + return true; + } + + await Task.Run(() => + { + // Ensure any previous watchers are fully cleaned up before re-creating them + this.StopWmiWatchers(); + + // Create WMI event watchers for process start and stop + var startQuery = new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"); + var stopQuery = new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"); + + this.processStartWatcher = new ManagementEventWatcher(startQuery); + this.processStopWatcher = new ManagementEventWatcher(stopQuery); + + this.processStartWatcher.EventArrived += this.OnProcessStarted; + this.processStopWatcher.EventArrived += this.OnProcessStopped; + this.processStartWatcher.Stopped += this.OnWmiWatcherStopped; + this.processStopWatcher.Stopped += this.OnWmiWatcherStopped; + + this.processStartWatcher.Start(); + this.processStopWatcher.Start(); + }).ConfigureAwait(false); + + this.isWmiAvailable = true; + + // Prefer WMI when available to reduce polling overhead + if (this.isFallbackPollingActive) + { + this.StopFallbackPolling(); + } + + this.OnMonitoringStatusChanged("WMI monitoring started successfully"); + return true; + } + catch (Exception ex) + { + this.isWmiAvailable = false; + this.OnMonitoringStatusChanged($"WMI monitoring failed: {ex.Message}", ex); + + // Clean up any partially created watchers + this.StopWmiWatchers(); + + return false; + } + finally + { + this.wmiStartSemaphore.Release(); + } + } + + private void StartFallbackPolling() + { + if (this.IsDisposed || !this.isMonitoring || !this.enableFallbackPolling) + { + return; + } + + // Update polling interval from current settings + this.UpdateMonitoringSettings(); + + if (this.isFallbackPollingActive) + { + this.currentFallbackPollingIntervalMs = this.fallbackPollingIntervalMs; + this.fallbackTimer?.Change(0, this.currentFallbackPollingIntervalMs); + return; + } + + this.isFallbackPollingActive = true; + this.idlePollingMultiplier = 1; + this.currentFallbackPollingIntervalMs = this.fallbackPollingIntervalMs; + this.fallbackTimer = new System.Threading.Timer(this.FallbackPollingCallback, null, 0, this.currentFallbackPollingIntervalMs); + this.OnMonitoringStatusChanged($"Fallback polling started (interval: {this.fallbackPollingIntervalMs}ms)"); + } + + private void OnWmiWatcherStopped(object sender, StoppedEventArgs e) + { + if (!this.isMonitoring || this.IsDisposed) + { + return; + } + + this.isWmiAvailable = false; + this.OnMonitoringStatusChanged($"WMI watcher stopped ({e.Status})"); + + if (this.enableFallbackPolling && !this.isFallbackPollingActive) + { + this.StartFallbackPolling(); + } + } + + private void StopWmiWatchers() + { + try + { + if (this.processStartWatcher != null) + { + this.processStartWatcher.EventArrived -= this.OnProcessStarted; + this.processStartWatcher.Stopped -= this.OnWmiWatcherStopped; + } + + this.processStartWatcher?.Stop(); + this.processStartWatcher?.Dispose(); + this.processStartWatcher = null; + + if (this.processStopWatcher != null) + { + this.processStopWatcher.EventArrived -= this.OnProcessStopped; + this.processStopWatcher.Stopped -= this.OnWmiWatcherStopped; + } + + this.processStopWatcher?.Stop(); + this.processStopWatcher?.Dispose(); + this.processStopWatcher = null; + + this.isWmiAvailable = false; + } + catch (Exception ex) + { + this.OnMonitoringStatusChanged($"Error stopping WMI watchers: {ex.Message}", ex); + } + } + + private void StopFallbackPolling() + { + this.fallbackTimer?.Dispose(); + this.fallbackTimer = null; + this.isFallbackPollingActive = false; + Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); + } + + private void OnProcessStarted(object sender, EventArrivedEventArgs e) + { + TaskSafety.FireAndForget(this.HandleProcessStartedAsync(e), ex => + { + this.OnMonitoringStatusChanged($"Error handling process start event: {ex.Message}", ex); + }); + } + + private async Task HandleProcessStartedAsync(EventArrivedEventArgs e) + { + if (!this.isMonitoring || this.IsDisposed) + { + return; + } + + try + { + var processId = Convert.ToInt32(e.NewEvent["ProcessID"]); + var processName = e.NewEvent["ProcessName"]?.ToString() ?? string.Empty; + + // Get detailed process information + var process = await this.CreateProcessModelFromId(processId, processName).ConfigureAwait(false) + ?? (!string.IsNullOrWhiteSpace(processName) + ? new ProcessModel { ProcessId = processId, Name = NormalizeProcessName(processName) } + : null); + + if (process != null) + { + this.runningProcesses.TryAdd(processId, process); + this.ProcessStarted?.Invoke(this, new ProcessEventArgs(process)); + } + } + catch (Exception ex) + { + this.OnMonitoringStatusChanged($"Error handling process start event: {ex.Message}", ex); + } + } + + private void OnProcessStopped(object sender, EventArrivedEventArgs e) + { + if (!this.isMonitoring || this.IsDisposed) + { + return; + } + + try + { + var processId = Convert.ToInt32(e.NewEvent["ProcessID"]); + + if (this.runningProcesses.TryRemove(processId, out var process)) + { + this.ProcessStopped?.Invoke(this, new ProcessEventArgs(process)); + } + } + catch (Exception ex) + { + this.OnMonitoringStatusChanged($"Error handling process stop event: {ex.Message}", ex); + } + } + + private void FallbackPollingCallback(object? state) + { + if (!this.isMonitoring || this.IsDisposed || this.cancellationTokenSource?.Token.IsCancellationRequested == true) + { + return; + } + + if (Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1) + { + return; + } + + // Prevent overlapping polling iterations when processing takes longer than interval + if (Interlocked.Exchange(ref this.isFallbackPollingInProgress, 1) == 1) + { + return; + } + + var cancellationToken = this.cancellationTokenSource?.Token ?? CancellationToken.None; + TaskSafety.FireAndForget(this.RunFallbackPollingAsync(cancellationToken), ex => + { + this.OnMonitoringStatusChanged($"Error in fallback polling: {ex.Message}", ex); + }); + } + + private async Task RunFallbackPollingAsync(CancellationToken cancellationToken) + { + try + { + if (cancellationToken.IsCancellationRequested) + { + return; + } + + var currentProcesses = await this.GetRunningProcessesAsync().ConfigureAwait(false); + var detectedChanges = 0; + + this.pollBuffer.Clear(); + foreach (var process in currentProcesses) + { + this.pollBuffer[process.ProcessId] = process; + } + + // Check for new processes + foreach (var process in currentProcesses) + { + if (cancellationToken.IsCancellationRequested) + { + return; + } + + if (!this.runningProcesses.ContainsKey(process.ProcessId)) + { + this.runningProcesses.TryAdd(process.ProcessId, process); + this.ProcessStarted?.Invoke(this, new ProcessEventArgs(process)); + detectedChanges++; + } + } + + // Check for stopped processes + var stoppedProcesses = this.runningProcesses.Keys + .Where(pid => !this.pollBuffer.ContainsKey(pid)) + .ToList(); + + foreach (var pid in stoppedProcesses) + { + if (cancellationToken.IsCancellationRequested) + { + return; + } + + if (this.runningProcesses.TryRemove(pid, out var stoppedProcess)) + { + this.ProcessStopped?.Invoke(this, new ProcessEventArgs(stoppedProcess)); + detectedChanges++; + } + } + + // Periodically retry WMI monitoring recovery while polling is active + await this.TryRecoverWmiMonitoringAsync().ConfigureAwait(false); + + this.UpdateAdaptivePollingInterval(detectedChanges); + } + catch (Exception ex) + { + this.OnMonitoringStatusChanged($"Error in fallback polling: {ex.Message}", ex); + } + finally + { + Interlocked.Exchange(ref this.isFallbackPollingInProgress, 0); + } + } + + private void UpdateAdaptivePollingInterval(int detectedChanges) + { + if (!this.isFallbackPollingActive || this.fallbackTimer == null) + { + return; + } + + var previousMultiplier = this.idlePollingMultiplier; + this.idlePollingMultiplier = detectedChanges > 0 + ? 1 + : Math.Min(MaxIdlePollingMultiplier, this.idlePollingMultiplier + 1); + + var nextInterval = Math.Clamp( + this.fallbackPollingIntervalMs * this.idlePollingMultiplier, + this.fallbackPollingIntervalMs, + 60000); + + if (nextInterval == this.currentFallbackPollingIntervalMs) + { + return; + } + + this.currentFallbackPollingIntervalMs = nextInterval; + this.fallbackTimer.Change(this.currentFallbackPollingIntervalMs, this.currentFallbackPollingIntervalMs); + + if (previousMultiplier != this.idlePollingMultiplier) + { + this.OnMonitoringStatusChanged($"Adaptive polling interval changed to {this.currentFallbackPollingIntervalMs}ms"); + } + } + + private async Task TryRecoverWmiMonitoringAsync() + { + if (!this.isMonitoring || this.IsDisposed || this.isWmiAvailable || !this.enableWmiMonitoring) + { + return; + } + + var now = DateTime.UtcNow; + if ((now - this.lastWmiRetryAttemptUtc).TotalMilliseconds < this.wmiRetryDelayMs) + { + return; + } + + if (Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 1) == 1) + { + return; + } + + this.lastWmiRetryAttemptUtc = now; + + try + { + var recovered = await this.TryStartWmiMonitoringAsync().ConfigureAwait(false); + if (recovered) + { + this.OnMonitoringStatusChanged("WMI monitoring recovered successfully"); + } + } + finally + { + Interlocked.Exchange(ref this.isWmiRecoveryInProgress, 0); + } + } + + private async Task CreateProcessModelFromId(int processId, string processName) + { + try + { + using var process = Process.GetProcessById(processId); + var normalizedName = !string.IsNullOrWhiteSpace(processName) + ? NormalizeProcessName(processName) + : NormalizeProcessName(process.ProcessName); + + return new ProcessModel + { + ProcessId = process.Id, + Name = normalizedName, + CpuUsage = 0, + MemoryUsage = process.PrivateMemorySize64, + Priority = process.PriorityClass, + ProcessorAffinity = (long)process.ProcessorAffinity, + MainWindowHandle = process.MainWindowHandle, + MainWindowTitle = process.MainWindowTitle ?? string.Empty, + HasVisibleWindow = process.MainWindowHandle != IntPtr.Zero && !string.IsNullOrWhiteSpace(process.MainWindowTitle), + ExecutablePath = process.MainModule?.FileName ?? string.Empty, + }; + } + catch (Exception ex) + { + this.logger?.LogDebug(ex, "Process {ProcessId} terminated before access", processId); + return null; + } + } + + private void OnMonitoringStatusChanged(string? message = null, Exception? error = null) + { + this.MonitoringStatusChanged?.Invoke(this, new MonitoringStatusEventArgs( + this.isMonitoring, this.isWmiAvailable, this.isFallbackPollingActive, message, error)); + } + + private void UpdateMonitoringSettings() + { + var settings = this.settingsService.Settings; + this.fallbackPollingIntervalMs = Math.Clamp(settings.FallbackPollingIntervalMs, 1000, 60000); + this.enableWmiMonitoring = settings.EnableWmiMonitoring; + this.enableFallbackPolling = settings.EnableFallbackPolling; + } + + public void UpdateSettings() + { + var previousInterval = this.fallbackPollingIntervalMs; + var previousWmiEnabled = this.enableWmiMonitoring; + var previousFallbackEnabled = this.enableFallbackPolling; + + this.UpdateMonitoringSettings(); + + if (!this.isMonitoring) + { + return; + } + + if (!this.enableWmiMonitoring && this.isWmiAvailable) + { + this.StopWmiWatchers(); + this.OnMonitoringStatusChanged("WMI monitoring disabled by settings"); + } + else if (this.enableWmiMonitoring && !previousWmiEnabled && !this.isWmiAvailable) + { + TaskSafety.FireAndForget(this.TryStartWmiMonitoringAsync(), ex => + { + this.OnMonitoringStatusChanged($"Error recovering WMI monitoring: {ex.Message}", ex); + }); + } + + if (!this.enableFallbackPolling && this.isFallbackPollingActive) + { + this.StopFallbackPolling(); + this.OnMonitoringStatusChanged("Fallback polling disabled by settings"); + } + else if (this.enableFallbackPolling && !previousFallbackEnabled && (!this.isWmiAvailable || !this.enableWmiMonitoring)) + { + this.StartFallbackPolling(); + } + + // If fallback polling is active, restart it with new interval + if (this.isFallbackPollingActive && this.fallbackTimer != null && previousInterval != this.fallbackPollingIntervalMs) + { + this.idlePollingMultiplier = 1; + this.currentFallbackPollingIntervalMs = this.fallbackPollingIntervalMs; + this.fallbackTimer.Change(0, this.currentFallbackPollingIntervalMs); + this.OnMonitoringStatusChanged($"Polling interval updated to {this.fallbackPollingIntervalMs}ms"); + } + } + + private static string NormalizeProcessName(string processName) + { + if (string.IsNullOrWhiteSpace(processName)) + { + return string.Empty; + } + + // Keep process naming consistent with Process.ProcessName (no extension) + return Path.GetFileNameWithoutExtension(processName.Trim()); + } + + public void Dispose() + { + if (Interlocked.Exchange(ref this.disposedFlag, 1) == 1) + { + return; + } + + try + { + this.StopMonitoringAsync().GetAwaiter().GetResult(); + } + catch (Exception ex) + { + this.OnMonitoringStatusChanged($"Error during process monitor disposal: {ex.Message}", ex); + } + + this.wmiStartSemaphore.Dispose(); + } + } +} + diff --git a/Services/ProcessOperationResult.cs b/Services/ProcessOperationResult.cs index 329dced..3e85712 100644 --- a/Services/ProcessOperationResult.cs +++ b/Services/ProcessOperationResult.cs @@ -1,48 +1,48 @@ -/* - * ThreadPilot - process operation result model. - */ -namespace ThreadPilot.Services -{ - public sealed record ProcessOperationResult - { - public bool Success { get; init; } - - public string ErrorCode { get; init; } = string.Empty; - - public string UserMessage { get; init; } = string.Empty; - - public string TechnicalMessage { get; init; } = string.Empty; - - public bool IsAccessDenied { get; init; } - - public bool IsAntiCheatLikely { get; init; } - - public bool IsProcessExited { get; init; } - - public static ProcessOperationResult Succeeded(string userMessage, string technicalMessage) => - new() - { - Success = true, - UserMessage = userMessage, - TechnicalMessage = technicalMessage, - }; - - public static ProcessOperationResult Failed( - string errorCode, - string userMessage, - string technicalMessage, - bool isAccessDenied = false, - bool isAntiCheatLikely = false, - bool isProcessExited = false) => - new() - { - Success = false, - ErrorCode = errorCode, - UserMessage = userMessage, - TechnicalMessage = technicalMessage, - IsAccessDenied = isAccessDenied, - IsAntiCheatLikely = isAntiCheatLikely, - IsProcessExited = isProcessExited, - }; - } -} +/* + * ThreadPilot - process operation result model. + */ +namespace ThreadPilot.Services +{ + public sealed record ProcessOperationResult + { + public bool Success { get; init; } + + public string ErrorCode { get; init; } = string.Empty; + + public string UserMessage { get; init; } = string.Empty; + + public string TechnicalMessage { get; init; } = string.Empty; + + public bool IsAccessDenied { get; init; } + + public bool IsAntiCheatLikely { get; init; } + + public bool IsProcessExited { get; init; } + + public static ProcessOperationResult Succeeded(string userMessage, string technicalMessage) => + new() + { + Success = true, + UserMessage = userMessage, + TechnicalMessage = technicalMessage, + }; + + public static ProcessOperationResult Failed( + string errorCode, + string userMessage, + string technicalMessage, + bool isAccessDenied = false, + bool isAntiCheatLikely = false, + bool isProcessExited = false) => + new() + { + Success = false, + ErrorCode = errorCode, + UserMessage = userMessage, + TechnicalMessage = technicalMessage, + IsAccessDenied = isAccessDenied, + IsAntiCheatLikely = isAntiCheatLikely, + IsProcessExited = isProcessExited, + }; + } +} diff --git a/Services/ProcessOperationUserMessages.cs b/Services/ProcessOperationUserMessages.cs index 7e48f78..ad7f73a 100644 --- a/Services/ProcessOperationUserMessages.cs +++ b/Services/ProcessOperationUserMessages.cs @@ -1,62 +1,62 @@ -namespace ThreadPilot.Services -{ - using System.Diagnostics; - - internal static class ProcessOperationUserMessages - { - public const string AccessDenied = - "Windows denied this change. The process may require administrator rights or may be protected."; - - public const string AntiCheatProtectedLikely = - "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to bypass it."; - - public const string AdminClarification = - "Administrator mode may help with normal permission issues, but cannot bypass anti-cheat or protected process restrictions."; - - public const string LegacyFallbackBlocked = - "This CPU selection cannot be safely represented by legacy affinity APIs on this topology. CPU Sets are required for this selection."; - - public const string InvalidTopology = - "This CPU selection does not match the current CPU topology. Review or recreate the preset."; - - public const string ProcessExited = - "The process exited before ThreadPilot could apply the change."; - - public const string CpuSetsUnavailable = - "Windows CPU Sets are unavailable or rejected this selection. ThreadPilot will use a safe fallback only when possible."; - - public const string HighPriorityWarning = - "High priority can improve responsiveness for some workloads but may reduce system responsiveness."; - - public const string RealtimePriorityBlocked = - "Realtime priority is blocked by ThreadPilot because it can make Windows unstable or unresponsive."; - - public const string PersistentLaunchTimePriorityNotice = - "Persistent launch-time priority may be supported for normal processes, but it does not bypass protected process or anti-cheat restrictions."; - - public const string PersistentRulesDescription = - "Applies saved rules when a matching process starts. Some protected or anti-cheat processes may reject changes. Administrator mode can help with normal permission issues but cannot bypass protection."; - - public const string PersistentRulesProtectedProcessWarning = - "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to override it."; - } - - internal static class ProcessPriorityGuardrails - { - public static string? GetWarning(ProcessPriorityClass priority) => - priority == ProcessPriorityClass.High - ? ProcessOperationUserMessages.HighPriorityWarning - : null; - - public static bool IsBlocked(ProcessPriorityClass priority) => - priority == ProcessPriorityClass.RealTime; - - public static void ThrowIfBlocked(ProcessPriorityClass priority) - { - if (IsBlocked(priority)) - { - throw new InvalidOperationException(ProcessOperationUserMessages.RealtimePriorityBlocked); - } - } - } -} +namespace ThreadPilot.Services +{ + using System.Diagnostics; + + internal static class ProcessOperationUserMessages + { + public const string AccessDenied = + "Windows denied this change. The process may require administrator rights or may be protected."; + + public const string AntiCheatProtectedLikely = + "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to bypass it."; + + public const string AdminClarification = + "Administrator mode may help with normal permission issues, but cannot bypass anti-cheat or protected process restrictions."; + + public const string LegacyFallbackBlocked = + "This CPU selection cannot be safely represented by legacy affinity APIs on this topology. CPU Sets are required for this selection."; + + public const string InvalidTopology = + "This CPU selection does not match the current CPU topology. Review or recreate the preset."; + + public const string ProcessExited = + "The process exited before ThreadPilot could apply the change."; + + public const string CpuSetsUnavailable = + "Windows CPU Sets are unavailable or rejected this selection. ThreadPilot will use a safe fallback only when possible."; + + public const string HighPriorityWarning = + "High priority can improve responsiveness for some workloads but may reduce system responsiveness."; + + public const string RealtimePriorityBlocked = + "Realtime priority is blocked by ThreadPilot because it can make Windows unstable or unresponsive."; + + public const string PersistentLaunchTimePriorityNotice = + "Persistent launch-time priority may be supported for normal processes, but it does not bypass protected process or anti-cheat restrictions."; + + public const string PersistentRulesDescription = + "Applies saved rules when a matching process starts. Some protected or anti-cheat processes may reject changes. Administrator mode can help with normal permission issues but cannot bypass protection."; + + public const string PersistentRulesProtectedProcessWarning = + "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to override it."; + } + + internal static class ProcessPriorityGuardrails + { + public static string? GetWarning(ProcessPriorityClass priority) => + priority == ProcessPriorityClass.High + ? ProcessOperationUserMessages.HighPriorityWarning + : null; + + public static bool IsBlocked(ProcessPriorityClass priority) => + priority == ProcessPriorityClass.RealTime; + + public static void ThrowIfBlocked(ProcessPriorityClass priority) + { + if (IsBlocked(priority)) + { + throw new InvalidOperationException(ProcessOperationUserMessages.RealtimePriorityBlocked); + } + } + } +} diff --git a/Services/ProcessPowerPlanAssociationService.cs b/Services/ProcessPowerPlanAssociationService.cs index 11b6547..c827309 100644 --- a/Services/ProcessPowerPlanAssociationService.cs +++ b/Services/ProcessPowerPlanAssociationService.cs @@ -1,458 +1,439 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Text; - using System.Text.Json; - using System.Threading.Tasks; - using ThreadPilot.Models; - - /// - /// Service for managing process-power plan associations with persistence. - /// - public class ProcessPowerPlanAssociationService : IProcessPowerPlanAssociationService - { - private static string LegacyConfigurationDirectory => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configuration"); - - private static string LegacyConfigurationFilePath => Path.Combine(LegacyConfigurationDirectory, "ProcessPowerPlanAssociations.json"); - - private static readonly JsonSerializerOptions JsonOptions = new() - { - WriteIndented = true, - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - PropertyNameCaseInsensitive = true, - ReadCommentHandling = JsonCommentHandling.Skip, - AllowTrailingCommas = true, - }; - - private readonly string configurationDirectory; - private readonly string configurationFilePath; - private readonly object lockObject = new(); - - private ProcessMonitorConfiguration configuration; - - public event EventHandler? ConfigurationChanged; - - public ProcessMonitorConfiguration Configuration => this.configuration; - - public ProcessPowerPlanAssociationService() - { - StoragePaths.EnsureAppDataDirectories(); - - this.configurationDirectory = StoragePaths.ConfigurationDirectory; - this.configurationFilePath = Path.Combine(this.configurationDirectory, "ProcessPowerPlanAssociations.json"); - this.configuration = new ProcessMonitorConfiguration(); - - this.EnsureConfigurationDirectoryExists(); - this.MigrateLegacyConfigurationIfNeeded(); - } - - public async Task LoadConfigurationAsync() - { - try - { - if (!File.Exists(this.configurationFilePath)) - { - // Create default configuration - this.configuration = new ProcessMonitorConfiguration(); - await this.SaveConfigurationAsync().ConfigureAwait(false); - return true; - } - - var json = await File.ReadAllTextAsync(this.configurationFilePath).ConfigureAwait(false); - var loadedConfig = JsonSerializer.Deserialize(json, JsonOptions); - - if (loadedConfig != null) - { - lock (this.lockObject) - { - loadedConfig.Associations ??= new List(); - this.configuration = loadedConfig; - } - - this.OnConfigurationChanged("Loaded", null, "Configuration loaded from file"); - return true; - } - - return false; - } - catch (Exception ex) - { - this.OnConfigurationChanged("LoadError", null, $"Failed to load configuration: {ex.Message}"); - return false; - } - } - - public async Task SaveConfigurationAsync() - { - try - { - ProcessMonitorConfiguration configToSave; - lock (this.lockObject) - { - configToSave = this.configuration; - configToSave.LastSavedDate = DateTime.Now; - } - - var json = JsonSerializer.Serialize(configToSave, JsonOptions); - await AtomicFileWriter.WriteAllTextAsync(this.configurationFilePath, json, Encoding.UTF8).ConfigureAwait(false); - - this.OnConfigurationChanged("Saved", null, "Configuration saved to file"); - return true; - } - catch (Exception ex) - { - this.OnConfigurationChanged("SaveError", null, $"Failed to save configuration: {ex.Message}"); - return false; - } - } - - public async Task> GetAssociationsAsync() - { - await Task.CompletedTask.ConfigureAwait(false); - lock (this.lockObject) - { - return this.configuration.Associations.ToList(); - } - } - - public async Task> GetEnabledAssociationsAsync() - { - await Task.CompletedTask.ConfigureAwait(false); - lock (this.lockObject) - { - return this.configuration.GetEnabledAssociations().ToList(); - } - } - - public async Task AddAssociationAsync(ProcessPowerPlanAssociation association) - { - try - { - if (association == null) - { - return false; - } - - lock (this.lockObject) - { - // Check for duplicates - var existing = this.configuration.Associations - .FirstOrDefault(a => AreAssociationsConflicting(a, association)); - - if (existing != null) - { - return false; // Duplicate found - } - - this.configuration.AddOrUpdateAssociation(association); - } - - await this.SaveConfigurationAsync().ConfigureAwait(false); - this.OnConfigurationChanged("Added", association, $"Association added for {association.ExecutableName}"); - return true; - } - catch (Exception ex) - { - this.OnConfigurationChanged("AddError", association, $"Failed to add association: {ex.Message}"); - return false; - } - } - - public async Task UpdateAssociationAsync(ProcessPowerPlanAssociation association) - { - try - { - if (association == null) - { - return false; - } - - lock (this.lockObject) - { - this.configuration.AddOrUpdateAssociation(association); - } - - await this.SaveConfigurationAsync().ConfigureAwait(false); - this.OnConfigurationChanged("Updated", association, $"Association updated for {association.ExecutableName}"); - return true; - } - catch (Exception ex) - { - this.OnConfigurationChanged("UpdateError", association, $"Failed to update association: {ex.Message}"); - return false; - } - } - - public async Task RemoveAssociationAsync(string associationId) - { - try - { - ProcessPowerPlanAssociation? removedAssociation = null; - bool removed; - - lock (this.lockObject) - { - removedAssociation = this.configuration.Associations.FirstOrDefault(a => a.Id == associationId); - removed = this.configuration.RemoveAssociation(associationId); - } - - if (removed) - { - await this.SaveConfigurationAsync().ConfigureAwait(false); - this.OnConfigurationChanged("Removed", removedAssociation, - $"Association removed for {removedAssociation?.ExecutableName}"); - } - - return removed; - } - catch (Exception ex) - { - this.OnConfigurationChanged("RemoveError", null, $"Failed to remove association: {ex.Message}"); - return false; - } - } - - public async Task FindMatchingAssociationAsync(ProcessModel process) - { - await Task.CompletedTask.ConfigureAwait(false); - lock (this.lockObject) - { - return this.configuration.FindMatchingAssociation(process); - } - } - - public async Task FindAssociationByExecutableAsync(string executableName) - { - await Task.CompletedTask.ConfigureAwait(false); - lock (this.lockObject) - { - return this.configuration.FindAssociationByExecutable(executableName); - } - } - - public async Task SetDefaultPowerPlanAsync(string powerPlanGuid, string powerPlanName) - { - try - { - lock (this.lockObject) - { - this.configuration.DefaultPowerPlanGuid = powerPlanGuid; - this.configuration.DefaultPowerPlanName = powerPlanName; - } - - await this.SaveConfigurationAsync().ConfigureAwait(false); - this.OnConfigurationChanged("DefaultPowerPlanChanged", null, $"Default power plan set to {powerPlanName}"); - return true; - } - catch (Exception ex) - { - this.OnConfigurationChanged("DefaultPowerPlanError", null, $"Failed to set default power plan: {ex.Message}"); - return false; - } - } - - public async Task<(string Guid, string Name)> GetDefaultPowerPlanAsync() - { - await Task.CompletedTask.ConfigureAwait(false); - lock (this.lockObject) - { - return (this.configuration.DefaultPowerPlanGuid, this.configuration.DefaultPowerPlanName); - } - } - - public async Task> ValidateConfigurationAsync() - { - await Task.CompletedTask.ConfigureAwait(false); - lock (this.lockObject) - { - return this.configuration.Validate(); - } - } - - public async Task ResetConfigurationAsync() - { - lock (this.lockObject) - { - this.configuration = new ProcessMonitorConfiguration(); - } - - await this.SaveConfigurationAsync().ConfigureAwait(false); - this.OnConfigurationChanged("Reset", null, "Configuration reset to defaults"); - } - - public async Task ExportConfigurationAsync(string filePath) - { - try - { - ProcessMonitorConfiguration configToExport; - lock (this.lockObject) - { - configToExport = this.configuration; - } - - var json = JsonSerializer.Serialize(configToExport, JsonOptions); - await AtomicFileWriter.WriteAllTextAsync(filePath, json, Encoding.UTF8).ConfigureAwait(false); - - this.OnConfigurationChanged("Exported", null, $"Configuration exported to {filePath}"); - return true; - } - catch (Exception ex) - { - this.OnConfigurationChanged("ExportError", null, $"Failed to export configuration: {ex.Message}"); - return false; - } - } - - public async Task ImportConfigurationAsync(string filePath) - { - try - { - if (!File.Exists(filePath)) - { - return false; - } - - var json = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); - var importedConfig = JsonSerializer.Deserialize(json, JsonOptions); - - if (importedConfig != null) - { - var replaced = await this.ReplaceConfigurationAsync(importedConfig).ConfigureAwait(false); - if (replaced) - { - this.OnConfigurationChanged("Imported", null, $"Configuration imported from {filePath}"); - } - - return replaced; - } - - return false; - } - catch (Exception ex) - { - this.OnConfigurationChanged("ImportError", null, $"Failed to import configuration: {ex.Message}"); - return false; - } - } - - public async Task ReplaceConfigurationAsync(ProcessMonitorConfiguration configuration) - { - if (configuration == null) - { - return false; - } - - try - { - var cloned = CloneConfiguration(configuration); - - lock (this.lockObject) - { - this.configuration = cloned; - } - - await this.SaveConfigurationAsync().ConfigureAwait(false); - this.OnConfigurationChanged("Replaced", null, "Configuration replaced from imported bundle"); - return true; - } - catch (Exception ex) - { - this.OnConfigurationChanged("ReplaceError", null, $"Failed to replace configuration: {ex.Message}"); - return false; - } - } - - private void EnsureConfigurationDirectoryExists() - { - if (!Directory.Exists(this.configurationDirectory)) - { - Directory.CreateDirectory(this.configurationDirectory); - } - } - - private void MigrateLegacyConfigurationIfNeeded() - { - try - { - if (!File.Exists(LegacyConfigurationFilePath) || File.Exists(this.configurationFilePath)) - { - return; - } - - Directory.CreateDirectory(this.configurationDirectory); - File.Copy(LegacyConfigurationFilePath, this.configurationFilePath); - } - catch - { - // Ignore migration failures and continue with current storage path. - } - } - - private void OnConfigurationChanged(string changeType, ProcessPowerPlanAssociation? association = null, string? details = null) - { - this.ConfigurationChanged?.Invoke(this, new ConfigurationChangedEventArgs(changeType, association, details)); - } - - private static bool AreAssociationsConflicting(ProcessPowerPlanAssociation existing, ProcessPowerPlanAssociation candidate) - { - var existingName = NormalizeExecutableName(existing.ExecutableName); - var candidateName = NormalizeExecutableName(candidate.ExecutableName); - - if (!string.Equals(existingName, candidateName, StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - if (existing.MatchByPath || candidate.MatchByPath) - { - var existingPath = existing.ExecutablePath?.Trim() ?? string.Empty; - var candidatePath = candidate.ExecutablePath?.Trim() ?? string.Empty; - - return string.Equals(existingPath, candidatePath, StringComparison.OrdinalIgnoreCase) && - existing.MatchByPath == candidate.MatchByPath; - } - - // Name-only associations conflict by executable name - return true; - } - - private static string NormalizeExecutableName(string? executableName) - { - if (string.IsNullOrWhiteSpace(executableName)) - { - return string.Empty; - } - - return Path.GetFileNameWithoutExtension(executableName.Trim()); - } - - private static ProcessMonitorConfiguration CloneConfiguration(ProcessMonitorConfiguration source) - { - var serialized = JsonSerializer.Serialize(source, JsonOptions); - var cloned = JsonSerializer.Deserialize(serialized, JsonOptions) - ?? new ProcessMonitorConfiguration(); - cloned.Associations ??= new List(); - return cloned; - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Text; + using System.Text.Json; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public class ProcessPowerPlanAssociationService : IProcessPowerPlanAssociationService + { + private static string LegacyConfigurationDirectory => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configuration"); + + private static string LegacyConfigurationFilePath => Path.Combine(LegacyConfigurationDirectory, "ProcessPowerPlanAssociations.json"); + + private static readonly JsonSerializerOptions JsonOptions = new() + { + WriteIndented = true, + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + PropertyNameCaseInsensitive = true, + ReadCommentHandling = JsonCommentHandling.Skip, + AllowTrailingCommas = true, + }; + + private readonly string configurationDirectory; + private readonly string configurationFilePath; + private readonly object lockObject = new(); + + private ProcessMonitorConfiguration configuration; + + public event EventHandler? ConfigurationChanged; + + public ProcessMonitorConfiguration Configuration => this.configuration; + + public ProcessPowerPlanAssociationService() + { + StoragePaths.EnsureAppDataDirectories(); + + this.configurationDirectory = StoragePaths.ConfigurationDirectory; + this.configurationFilePath = Path.Combine(this.configurationDirectory, "ProcessPowerPlanAssociations.json"); + this.configuration = new ProcessMonitorConfiguration(); + + this.EnsureConfigurationDirectoryExists(); + this.MigrateLegacyConfigurationIfNeeded(); + } + + public async Task LoadConfigurationAsync() + { + try + { + if (!File.Exists(this.configurationFilePath)) + { + // Create default configuration + this.configuration = new ProcessMonitorConfiguration(); + await this.SaveConfigurationAsync().ConfigureAwait(false); + return true; + } + + var json = await File.ReadAllTextAsync(this.configurationFilePath).ConfigureAwait(false); + var loadedConfig = JsonSerializer.Deserialize(json, JsonOptions); + + if (loadedConfig != null) + { + lock (this.lockObject) + { + loadedConfig.Associations ??= new List(); + this.configuration = loadedConfig; + } + + this.OnConfigurationChanged("Loaded", null, "Configuration loaded from file"); + return true; + } + + return false; + } + catch (Exception ex) + { + this.OnConfigurationChanged("LoadError", null, $"Failed to load configuration: {ex.Message}"); + return false; + } + } + + public async Task SaveConfigurationAsync() + { + try + { + ProcessMonitorConfiguration configToSave; + lock (this.lockObject) + { + configToSave = this.configuration; + configToSave.LastSavedDate = DateTime.Now; + } + + var json = JsonSerializer.Serialize(configToSave, JsonOptions); + await AtomicFileWriter.WriteAllTextAsync(this.configurationFilePath, json, Encoding.UTF8).ConfigureAwait(false); + + this.OnConfigurationChanged("Saved", null, "Configuration saved to file"); + return true; + } + catch (Exception ex) + { + this.OnConfigurationChanged("SaveError", null, $"Failed to save configuration: {ex.Message}"); + return false; + } + } + + public async Task> GetAssociationsAsync() + { + await Task.CompletedTask.ConfigureAwait(false); + lock (this.lockObject) + { + return this.configuration.Associations.ToList(); + } + } + + public async Task> GetEnabledAssociationsAsync() + { + await Task.CompletedTask.ConfigureAwait(false); + lock (this.lockObject) + { + return this.configuration.GetEnabledAssociations().ToList(); + } + } + + public async Task AddAssociationAsync(ProcessPowerPlanAssociation association) + { + try + { + if (association == null) + { + return false; + } + + lock (this.lockObject) + { + // Check for duplicates + var existing = this.configuration.Associations + .FirstOrDefault(a => AreAssociationsConflicting(a, association)); + + if (existing != null) + { + return false; // Duplicate found + } + + this.configuration.AddOrUpdateAssociation(association); + } + + await this.SaveConfigurationAsync().ConfigureAwait(false); + this.OnConfigurationChanged("Added", association, $"Association added for {association.ExecutableName}"); + return true; + } + catch (Exception ex) + { + this.OnConfigurationChanged("AddError", association, $"Failed to add association: {ex.Message}"); + return false; + } + } + + public async Task UpdateAssociationAsync(ProcessPowerPlanAssociation association) + { + try + { + if (association == null) + { + return false; + } + + lock (this.lockObject) + { + this.configuration.AddOrUpdateAssociation(association); + } + + await this.SaveConfigurationAsync().ConfigureAwait(false); + this.OnConfigurationChanged("Updated", association, $"Association updated for {association.ExecutableName}"); + return true; + } + catch (Exception ex) + { + this.OnConfigurationChanged("UpdateError", association, $"Failed to update association: {ex.Message}"); + return false; + } + } + + public async Task RemoveAssociationAsync(string associationId) + { + try + { + ProcessPowerPlanAssociation? removedAssociation = null; + bool removed; + + lock (this.lockObject) + { + removedAssociation = this.configuration.Associations.FirstOrDefault(a => a.Id == associationId); + removed = this.configuration.RemoveAssociation(associationId); + } + + if (removed) + { + await this.SaveConfigurationAsync().ConfigureAwait(false); + this.OnConfigurationChanged("Removed", removedAssociation, + $"Association removed for {removedAssociation?.ExecutableName}"); + } + + return removed; + } + catch (Exception ex) + { + this.OnConfigurationChanged("RemoveError", null, $"Failed to remove association: {ex.Message}"); + return false; + } + } + + public async Task FindMatchingAssociationAsync(ProcessModel process) + { + await Task.CompletedTask.ConfigureAwait(false); + lock (this.lockObject) + { + return this.configuration.FindMatchingAssociation(process); + } + } + + public async Task FindAssociationByExecutableAsync(string executableName) + { + await Task.CompletedTask.ConfigureAwait(false); + lock (this.lockObject) + { + return this.configuration.FindAssociationByExecutable(executableName); + } + } + + public async Task SetDefaultPowerPlanAsync(string powerPlanGuid, string powerPlanName) + { + try + { + lock (this.lockObject) + { + this.configuration.DefaultPowerPlanGuid = powerPlanGuid; + this.configuration.DefaultPowerPlanName = powerPlanName; + } + + await this.SaveConfigurationAsync().ConfigureAwait(false); + this.OnConfigurationChanged("DefaultPowerPlanChanged", null, $"Default power plan set to {powerPlanName}"); + return true; + } + catch (Exception ex) + { + this.OnConfigurationChanged("DefaultPowerPlanError", null, $"Failed to set default power plan: {ex.Message}"); + return false; + } + } + + public async Task<(string Guid, string Name)> GetDefaultPowerPlanAsync() + { + await Task.CompletedTask.ConfigureAwait(false); + lock (this.lockObject) + { + return (this.configuration.DefaultPowerPlanGuid, this.configuration.DefaultPowerPlanName); + } + } + + public async Task> ValidateConfigurationAsync() + { + await Task.CompletedTask.ConfigureAwait(false); + lock (this.lockObject) + { + return this.configuration.Validate(); + } + } + + public async Task ResetConfigurationAsync() + { + lock (this.lockObject) + { + this.configuration = new ProcessMonitorConfiguration(); + } + + await this.SaveConfigurationAsync().ConfigureAwait(false); + this.OnConfigurationChanged("Reset", null, "Configuration reset to defaults"); + } + + public async Task ExportConfigurationAsync(string filePath) + { + try + { + ProcessMonitorConfiguration configToExport; + lock (this.lockObject) + { + configToExport = this.configuration; + } + + var json = JsonSerializer.Serialize(configToExport, JsonOptions); + await AtomicFileWriter.WriteAllTextAsync(filePath, json, Encoding.UTF8).ConfigureAwait(false); + + this.OnConfigurationChanged("Exported", null, $"Configuration exported to {filePath}"); + return true; + } + catch (Exception ex) + { + this.OnConfigurationChanged("ExportError", null, $"Failed to export configuration: {ex.Message}"); + return false; + } + } + + public async Task ImportConfigurationAsync(string filePath) + { + try + { + if (!File.Exists(filePath)) + { + return false; + } + + var json = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); + var importedConfig = JsonSerializer.Deserialize(json, JsonOptions); + + if (importedConfig != null) + { + var replaced = await this.ReplaceConfigurationAsync(importedConfig).ConfigureAwait(false); + if (replaced) + { + this.OnConfigurationChanged("Imported", null, $"Configuration imported from {filePath}"); + } + + return replaced; + } + + return false; + } + catch (Exception ex) + { + this.OnConfigurationChanged("ImportError", null, $"Failed to import configuration: {ex.Message}"); + return false; + } + } + + public async Task ReplaceConfigurationAsync(ProcessMonitorConfiguration configuration) + { + if (configuration == null) + { + return false; + } + + try + { + var cloned = CloneConfiguration(configuration); + + lock (this.lockObject) + { + this.configuration = cloned; + } + + await this.SaveConfigurationAsync().ConfigureAwait(false); + this.OnConfigurationChanged("Replaced", null, "Configuration replaced from imported bundle"); + return true; + } + catch (Exception ex) + { + this.OnConfigurationChanged("ReplaceError", null, $"Failed to replace configuration: {ex.Message}"); + return false; + } + } + + private void EnsureConfigurationDirectoryExists() + { + if (!Directory.Exists(this.configurationDirectory)) + { + Directory.CreateDirectory(this.configurationDirectory); + } + } + + private void MigrateLegacyConfigurationIfNeeded() + { + try + { + if (!File.Exists(LegacyConfigurationFilePath) || File.Exists(this.configurationFilePath)) + { + return; + } + + Directory.CreateDirectory(this.configurationDirectory); + File.Copy(LegacyConfigurationFilePath, this.configurationFilePath); + } + catch + { + // Ignore migration failures and continue with current storage path. + } + } + + private void OnConfigurationChanged(string changeType, ProcessPowerPlanAssociation? association = null, string? details = null) + { + this.ConfigurationChanged?.Invoke(this, new ConfigurationChangedEventArgs(changeType, association, details)); + } + + private static bool AreAssociationsConflicting(ProcessPowerPlanAssociation existing, ProcessPowerPlanAssociation candidate) + { + var existingName = NormalizeExecutableName(existing.ExecutableName); + var candidateName = NormalizeExecutableName(candidate.ExecutableName); + + if (!string.Equals(existingName, candidateName, StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + if (existing.MatchByPath || candidate.MatchByPath) + { + var existingPath = existing.ExecutablePath?.Trim() ?? string.Empty; + var candidatePath = candidate.ExecutablePath?.Trim() ?? string.Empty; + + return string.Equals(existingPath, candidatePath, StringComparison.OrdinalIgnoreCase) && + existing.MatchByPath == candidate.MatchByPath; + } + + // Name-only associations conflict by executable name + return true; + } + + private static string NormalizeExecutableName(string? executableName) + { + if (string.IsNullOrWhiteSpace(executableName)) + { + return string.Empty; + } + + return Path.GetFileNameWithoutExtension(executableName.Trim()); + } + + private static ProcessMonitorConfiguration CloneConfiguration(ProcessMonitorConfiguration source) + { + var serialized = JsonSerializer.Serialize(source, JsonOptions); + var cloned = JsonSerializer.Deserialize(serialized, JsonOptions) + ?? new ProcessMonitorConfiguration(); + cloned.Associations ??= new List(); + return cloned; + } + } +} + diff --git a/Services/ProcessRuleCreationService.cs b/Services/ProcessRuleCreationService.cs index 2c66802..28a8f4b 100644 --- a/Services/ProcessRuleCreationService.cs +++ b/Services/ProcessRuleCreationService.cs @@ -1,461 +1,461 @@ -/* - * ThreadPilot - persistent process rule creation from explicit Process tab actions. - */ -namespace ThreadPilot.Services -{ - using System.Diagnostics; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - public interface IProcessRuleCreationService - { - Task SaveRuleAsync( - ProcessModel process, - ProcessRuleCreationPayload payload, - CancellationToken cancellationToken = default); - - Task SaveCurrentSettingsAsRuleAsync( - ProcessModel process, - IReadOnlyList? currentCoreSelection, - ProcessMemoryPriority? currentMemoryPriority, - CancellationToken cancellationToken = default); - } - - public sealed record ProcessRuleCreationPayload - { - public CpuSelection? CpuSelection { get; init; } - - public long? LegacyAffinityMask { get; init; } - - public ProcessPriorityClass? Priority { get; init; } - - public ProcessMemoryPriority? MemoryPriority { get; init; } - } - - public sealed record ProcessRuleCreationResult - { - public bool Success { get; init; } - - public bool Created { get; init; } - - public bool Updated { get; init; } - - public PersistentProcessRule? Rule { get; init; } - - public string UserMessage { get; init; } = string.Empty; - - public string ErrorCode { get; init; } = string.Empty; - - public static ProcessRuleCreationResult Failed(string errorCode, string userMessage) => - new() - { - Success = false, - ErrorCode = errorCode, - UserMessage = userMessage, - }; - } - - public sealed class ProcessRuleCreationService : IProcessRuleCreationService - { - public const string NoCurrentSettingsMessage = - "There are no current settings to save as a rule."; - - public const string UnsafeAffinityMessage = - "The current affinity selection cannot be saved safely on this CPU topology."; - - private const string RuleDescription = "Created from Process tab action."; - - private readonly IPersistentProcessRuleStore ruleStore; - private readonly ICpuTopologyProvider? topologyProvider; - private readonly CpuSelectionMigrationService migrationService; - private readonly ILogger logger; - - public ProcessRuleCreationService( - IPersistentProcessRuleStore ruleStore, - ICpuTopologyProvider? topologyProvider, - CpuSelectionMigrationService migrationService, - ILogger logger) - { - this.ruleStore = ruleStore ?? throw new ArgumentNullException(nameof(ruleStore)); - this.topologyProvider = topologyProvider; - this.migrationService = migrationService ?? throw new ArgumentNullException(nameof(migrationService)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async Task SaveCurrentSettingsAsRuleAsync( - ProcessModel process, - IReadOnlyList? currentCoreSelection, - ProcessMemoryPriority? currentMemoryPriority, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(process); - - var payload = new ProcessRuleCreationPayload - { - Priority = ShouldCaptureCurrentCpuPriority(process.Priority) - ? process.Priority - : null, - MemoryPriority = currentMemoryPriority, - }; - - var affinityPayload = currentCoreSelection == null - ? await this.BuildAffinityPayloadFromLegacyMaskAsync( - process.ProcessorAffinity, - "Saved current Process tab affinity", - cancellationToken).ConfigureAwait(false) - : await this.BuildAffinityPayloadFromCoreSelectionAsync( - currentCoreSelection, - "Saved current Process tab affinity", - cancellationToken).ConfigureAwait(false); - - if (!affinityPayload.Success) - { - return affinityPayload; - } - - if (affinityPayload.Payload != null) - { - payload = payload with - { - CpuSelection = affinityPayload.Payload.CpuSelection, - LegacyAffinityMask = affinityPayload.Payload.LegacyAffinityMask, - }; - } - - return await this.SaveRuleAsync(process, payload, cancellationToken).ConfigureAwait(false); - } - - public async Task SaveRuleAsync( - ProcessModel process, - ProcessRuleCreationPayload payload, - CancellationToken cancellationToken = default) - { - ArgumentNullException.ThrowIfNull(process); - ArgumentNullException.ThrowIfNull(payload); - - var sanitizedPayload = SanitizePayload(payload); - if (!sanitizedPayload.Success) - { - return sanitizedPayload; - } - - payload = sanitizedPayload.Payload!; - if (!HasActionablePayload(payload)) - { - return ProcessRuleCreationResult.Failed("NoActionableRulePayload", NoCurrentSettingsMessage); - } - - var rules = (await this.ruleStore.LoadAsync().ConfigureAwait(false)).ToList(); - var existingIndex = FindExistingRuleIndex(rules, process); - var created = existingIndex < 0; - var now = DateTime.UtcNow; - var processName = string.IsNullOrWhiteSpace(process.Name) - ? "process" - : process.Name.Trim(); - var executablePath = string.IsNullOrWhiteSpace(process.ExecutablePath) - ? null - : process.ExecutablePath.Trim(); - var existing = created ? null : rules[existingIndex]; - var rule = new PersistentProcessRule - { - Id = existing?.Id ?? Guid.NewGuid().ToString("N"), - Name = $"{processName} rule", - IsEnabled = true, - ProcessName = processName, - ExecutablePath = executablePath, - CpuSelection = payload.CpuSelection, - LegacyAffinityMask = HasSelectionPayload(payload.CpuSelection) ? null : payload.LegacyAffinityMask, - Priority = payload.Priority, - MemoryPriority = payload.MemoryPriority, - ApplyAffinityOnStart = HasSelectionPayload(payload.CpuSelection) || payload.LegacyAffinityMask.HasValue, - ApplyPriorityOnStart = payload.Priority.HasValue, - ApplyMemoryPriorityOnStart = payload.MemoryPriority.HasValue, - CreatedAt = existing?.CreatedAt ?? now, - UpdatedAt = now, - Description = RuleDescription, - }; - - if (created) - { - rules.Add(rule); - } - else - { - rules[existingIndex] = rule; - } - - cancellationToken.ThrowIfCancellationRequested(); - await this.ruleStore.SaveAsync(rules).ConfigureAwait(false); - - return new ProcessRuleCreationResult - { - Success = true, - Created = created, - Updated = !created, - Rule = rule, - UserMessage = created - ? $"Saved rule for {processName}." - : $"Updated saved rule for {processName}.", - }; - } - - private static PayloadBuildResult BuildLegacyAffinityPayload(IReadOnlyList currentCoreSelection) - { - if (currentCoreSelection.Count == 0 || !currentCoreSelection.Any(selected => selected)) - { - return PayloadBuildResult.Empty(); - } - - if (currentCoreSelection.Count > 64) - { - return PayloadBuildResult.Failed("UnsafeLegacyAffinity", UnsafeAffinityMessage); - } - - long legacyMask = 0; - for (var bit = 0; bit < currentCoreSelection.Count; bit++) - { - if (currentCoreSelection[bit]) - { - legacyMask |= 1L << bit; - } - } - - return legacyMask == 0 - ? PayloadBuildResult.Empty() - : PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { LegacyAffinityMask = legacyMask }); - } - - private static PayloadSanitizationResult SanitizePayload(ProcessRuleCreationPayload payload) - { - if (payload.Priority.HasValue && ProcessPriorityGuardrails.IsBlocked(payload.Priority.Value)) - { - return PayloadSanitizationResult.Failed( - "RealtimePriorityBlocked", - ProcessOperationUserMessages.RealtimePriorityBlocked); - } - - var hasCpuSelection = HasSelectionPayload(payload.CpuSelection); - var legacyMask = hasCpuSelection ? null : payload.LegacyAffinityMask; - if (legacyMask.HasValue && legacyMask.Value == 0) - { - legacyMask = null; - } - - return PayloadSanitizationResult.Succeeded(payload with - { - CpuSelection = hasCpuSelection ? payload.CpuSelection : null, - LegacyAffinityMask = legacyMask, - }); - } - - private static bool ShouldCaptureCurrentCpuPriority(ProcessPriorityClass priority) => - priority is ProcessPriorityClass.Idle - or ProcessPriorityClass.BelowNormal - or ProcessPriorityClass.AboveNormal - or ProcessPriorityClass.High; - - private static bool HasActionablePayload(ProcessRuleCreationPayload payload) => - HasSelectionPayload(payload.CpuSelection) || - payload.LegacyAffinityMask.HasValue || - payload.Priority.HasValue || - payload.MemoryPriority.HasValue; - - private static bool HasSelectionPayload(CpuSelection? selection) => - selection != null && - (selection.CpuSetIds.Count > 0 || selection.LogicalProcessors.Count > 0); - - private static int FindExistingRuleIndex(IReadOnlyList rules, ProcessModel process) - { - var executablePath = string.IsNullOrWhiteSpace(process.ExecutablePath) - ? null - : process.ExecutablePath.Trim(); - if (!string.IsNullOrWhiteSpace(executablePath)) - { - for (var index = 0; index < rules.Count; index++) - { - if (string.Equals( - rules[index].ExecutablePath, - executablePath, - StringComparison.OrdinalIgnoreCase)) - { - return index; - } - } - - var pathlessNameMatch = FindProcessNameMatchIndex(rules, process, requirePathUnavailable: true); - return pathlessNameMatch; - } - - return FindProcessNameMatchIndex(rules, process, requirePathUnavailable: false); - } - - private static int FindProcessNameMatchIndex( - IReadOnlyList rules, - ProcessModel process, - bool requirePathUnavailable) - { - var processName = string.IsNullOrWhiteSpace(process.Name) - ? null - : process.Name.Trim(); - if (string.IsNullOrWhiteSpace(processName)) - { - return -1; - } - - for (var index = 0; index < rules.Count; index++) - { - if (requirePathUnavailable && !string.IsNullOrWhiteSpace(rules[index].ExecutablePath)) - { - continue; - } - - if (string.Equals(rules[index].ProcessName, processName, StringComparison.OrdinalIgnoreCase)) - { - return index; - } - } - - return -1; - } - - private async Task BuildAffinityPayloadFromCoreSelectionAsync( - IReadOnlyList currentCoreSelection, - string selectionReason, - CancellationToken cancellationToken) - { - if (currentCoreSelection.Count == 0 || !currentCoreSelection.Any(selected => selected)) - { - return PayloadBuildResult.Empty(); - } - - var selection = await this.TryMigrateCoreSelectionAsync( - currentCoreSelection, - selectionReason, - cancellationToken).ConfigureAwait(false); - if (selection != null) - { - return PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { CpuSelection = selection }); - } - - return BuildLegacyAffinityPayload(currentCoreSelection); - } - - private async Task BuildAffinityPayloadFromLegacyMaskAsync( - long legacyMask, - string selectionReason, - CancellationToken cancellationToken) - { - if (legacyMask == 0) - { - return PayloadBuildResult.Empty(); - } - - var selection = await this.TryMigrateLegacyMaskAsync( - legacyMask, - selectionReason, - cancellationToken).ConfigureAwait(false); - if (selection != null) - { - return PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { CpuSelection = selection }); - } - - return PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { LegacyAffinityMask = legacyMask }); - } - - private async Task TryMigrateCoreSelectionAsync( - IReadOnlyList currentCoreSelection, - string selectionReason, - CancellationToken cancellationToken) - { - if (this.topologyProvider == null) - { - return null; - } - - try - { - var topology = await this.topologyProvider.GetTopologySnapshotAsync(cancellationToken).ConfigureAwait(false); - var migrated = this.migrationService.MigrateFromLegacyCoreMask(currentCoreSelection, topology); - return WithSelectionReason(migrated.Selection, selectionReason); - } - catch (Exception ex) when (ex is not OperationCanceledException) - { - this.logger.LogDebug(ex, "Could not migrate current core selection to CpuSelection for saved rule"); - return null; - } - } - - private async Task TryMigrateLegacyMaskAsync( - long legacyMask, - string selectionReason, - CancellationToken cancellationToken) - { - if (this.topologyProvider == null) - { - return null; - } - - try - { - var topology = await this.topologyProvider.GetTopologySnapshotAsync(cancellationToken).ConfigureAwait(false); - var migrated = this.migrationService.MigrateFromLegacyAffinityMask(legacyMask, topology); - return WithSelectionReason(migrated.Selection, selectionReason); - } - catch (Exception ex) when (ex is not OperationCanceledException) - { - this.logger.LogDebug(ex, "Could not migrate current legacy affinity mask to CpuSelection for saved rule"); - return null; - } - } - - private static CpuSelection? WithSelectionReason(CpuSelection? selection, string selectionReason) - { - if (!HasSelectionPayload(selection)) - { - return null; - } - - return selection! with - { - Metadata = selection.Metadata with - { - SelectionReason = selectionReason, - }, - }; - } - - private sealed record PayloadBuildResult( - bool Success, - ProcessRuleCreationPayload? Payload, - string ErrorCode, - string UserMessage) - { - public static PayloadBuildResult Empty() => new(true, null, string.Empty, string.Empty); - - public static PayloadBuildResult Succeeded(ProcessRuleCreationPayload payload) => - new(true, payload, string.Empty, string.Empty); - - public static PayloadBuildResult Failed(string errorCode, string userMessage) => - new(false, null, errorCode, userMessage); - - public static implicit operator ProcessRuleCreationResult(PayloadBuildResult result) => - ProcessRuleCreationResult.Failed(result.ErrorCode, result.UserMessage); - } - - private sealed record PayloadSanitizationResult( - bool Success, - ProcessRuleCreationPayload? Payload, - string ErrorCode, - string UserMessage) - { - public static PayloadSanitizationResult Succeeded(ProcessRuleCreationPayload payload) => - new(true, payload, string.Empty, string.Empty); - - public static PayloadSanitizationResult Failed(string errorCode, string userMessage) => - new(false, null, errorCode, userMessage); - - public static implicit operator ProcessRuleCreationResult(PayloadSanitizationResult result) => - ProcessRuleCreationResult.Failed(result.ErrorCode, result.UserMessage); - } - } -} +/* + * ThreadPilot - persistent process rule creation from explicit Process tab actions. + */ +namespace ThreadPilot.Services +{ + using System.Diagnostics; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public interface IProcessRuleCreationService + { + Task SaveRuleAsync( + ProcessModel process, + ProcessRuleCreationPayload payload, + CancellationToken cancellationToken = default); + + Task SaveCurrentSettingsAsRuleAsync( + ProcessModel process, + IReadOnlyList? currentCoreSelection, + ProcessMemoryPriority? currentMemoryPriority, + CancellationToken cancellationToken = default); + } + + public sealed record ProcessRuleCreationPayload + { + public CpuSelection? CpuSelection { get; init; } + + public long? LegacyAffinityMask { get; init; } + + public ProcessPriorityClass? Priority { get; init; } + + public ProcessMemoryPriority? MemoryPriority { get; init; } + } + + public sealed record ProcessRuleCreationResult + { + public bool Success { get; init; } + + public bool Created { get; init; } + + public bool Updated { get; init; } + + public PersistentProcessRule? Rule { get; init; } + + public string UserMessage { get; init; } = string.Empty; + + public string ErrorCode { get; init; } = string.Empty; + + public static ProcessRuleCreationResult Failed(string errorCode, string userMessage) => + new() + { + Success = false, + ErrorCode = errorCode, + UserMessage = userMessage, + }; + } + + public sealed class ProcessRuleCreationService : IProcessRuleCreationService + { + public const string NoCurrentSettingsMessage = + "There are no current settings to save as a rule."; + + public const string UnsafeAffinityMessage = + "The current affinity selection cannot be saved safely on this CPU topology."; + + private const string RuleDescription = "Created from Process tab action."; + + private readonly IPersistentProcessRuleStore ruleStore; + private readonly ICpuTopologyProvider? topologyProvider; + private readonly CpuSelectionMigrationService migrationService; + private readonly ILogger logger; + + public ProcessRuleCreationService( + IPersistentProcessRuleStore ruleStore, + ICpuTopologyProvider? topologyProvider, + CpuSelectionMigrationService migrationService, + ILogger logger) + { + this.ruleStore = ruleStore ?? throw new ArgumentNullException(nameof(ruleStore)); + this.topologyProvider = topologyProvider; + this.migrationService = migrationService ?? throw new ArgumentNullException(nameof(migrationService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public async Task SaveCurrentSettingsAsRuleAsync( + ProcessModel process, + IReadOnlyList? currentCoreSelection, + ProcessMemoryPriority? currentMemoryPriority, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(process); + + var payload = new ProcessRuleCreationPayload + { + Priority = ShouldCaptureCurrentCpuPriority(process.Priority) + ? process.Priority + : null, + MemoryPriority = currentMemoryPriority, + }; + + var affinityPayload = currentCoreSelection == null + ? await this.BuildAffinityPayloadFromLegacyMaskAsync( + process.ProcessorAffinity, + "Saved current Process tab affinity", + cancellationToken).ConfigureAwait(false) + : await this.BuildAffinityPayloadFromCoreSelectionAsync( + currentCoreSelection, + "Saved current Process tab affinity", + cancellationToken).ConfigureAwait(false); + + if (!affinityPayload.Success) + { + return affinityPayload; + } + + if (affinityPayload.Payload != null) + { + payload = payload with + { + CpuSelection = affinityPayload.Payload.CpuSelection, + LegacyAffinityMask = affinityPayload.Payload.LegacyAffinityMask, + }; + } + + return await this.SaveRuleAsync(process, payload, cancellationToken).ConfigureAwait(false); + } + + public async Task SaveRuleAsync( + ProcessModel process, + ProcessRuleCreationPayload payload, + CancellationToken cancellationToken = default) + { + ArgumentNullException.ThrowIfNull(process); + ArgumentNullException.ThrowIfNull(payload); + + var sanitizedPayload = SanitizePayload(payload); + if (!sanitizedPayload.Success) + { + return sanitizedPayload; + } + + payload = sanitizedPayload.Payload!; + if (!HasActionablePayload(payload)) + { + return ProcessRuleCreationResult.Failed("NoActionableRulePayload", NoCurrentSettingsMessage); + } + + var rules = (await this.ruleStore.LoadAsync().ConfigureAwait(false)).ToList(); + var existingIndex = FindExistingRuleIndex(rules, process); + var created = existingIndex < 0; + var now = DateTime.UtcNow; + var processName = string.IsNullOrWhiteSpace(process.Name) + ? "process" + : process.Name.Trim(); + var executablePath = string.IsNullOrWhiteSpace(process.ExecutablePath) + ? null + : process.ExecutablePath.Trim(); + var existing = created ? null : rules[existingIndex]; + var rule = new PersistentProcessRule + { + Id = existing?.Id ?? Guid.NewGuid().ToString("N"), + Name = $"{processName} rule", + IsEnabled = true, + ProcessName = processName, + ExecutablePath = executablePath, + CpuSelection = payload.CpuSelection, + LegacyAffinityMask = HasSelectionPayload(payload.CpuSelection) ? null : payload.LegacyAffinityMask, + Priority = payload.Priority, + MemoryPriority = payload.MemoryPriority, + ApplyAffinityOnStart = HasSelectionPayload(payload.CpuSelection) || payload.LegacyAffinityMask.HasValue, + ApplyPriorityOnStart = payload.Priority.HasValue, + ApplyMemoryPriorityOnStart = payload.MemoryPriority.HasValue, + CreatedAt = existing?.CreatedAt ?? now, + UpdatedAt = now, + Description = RuleDescription, + }; + + if (created) + { + rules.Add(rule); + } + else + { + rules[existingIndex] = rule; + } + + cancellationToken.ThrowIfCancellationRequested(); + await this.ruleStore.SaveAsync(rules).ConfigureAwait(false); + + return new ProcessRuleCreationResult + { + Success = true, + Created = created, + Updated = !created, + Rule = rule, + UserMessage = created + ? $"Saved rule for {processName}." + : $"Updated saved rule for {processName}.", + }; + } + + private static PayloadBuildResult BuildLegacyAffinityPayload(IReadOnlyList currentCoreSelection) + { + if (currentCoreSelection.Count == 0 || !currentCoreSelection.Any(selected => selected)) + { + return PayloadBuildResult.Empty(); + } + + if (currentCoreSelection.Count > 64) + { + return PayloadBuildResult.Failed("UnsafeLegacyAffinity", UnsafeAffinityMessage); + } + + long legacyMask = 0; + for (var bit = 0; bit < currentCoreSelection.Count; bit++) + { + if (currentCoreSelection[bit]) + { + legacyMask |= 1L << bit; + } + } + + return legacyMask == 0 + ? PayloadBuildResult.Empty() + : PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { LegacyAffinityMask = legacyMask }); + } + + private static PayloadSanitizationResult SanitizePayload(ProcessRuleCreationPayload payload) + { + if (payload.Priority.HasValue && ProcessPriorityGuardrails.IsBlocked(payload.Priority.Value)) + { + return PayloadSanitizationResult.Failed( + "RealtimePriorityBlocked", + ProcessOperationUserMessages.RealtimePriorityBlocked); + } + + var hasCpuSelection = HasSelectionPayload(payload.CpuSelection); + var legacyMask = hasCpuSelection ? null : payload.LegacyAffinityMask; + if (legacyMask.HasValue && legacyMask.Value == 0) + { + legacyMask = null; + } + + return PayloadSanitizationResult.Succeeded(payload with + { + CpuSelection = hasCpuSelection ? payload.CpuSelection : null, + LegacyAffinityMask = legacyMask, + }); + } + + private static bool ShouldCaptureCurrentCpuPriority(ProcessPriorityClass priority) => + priority is ProcessPriorityClass.Idle + or ProcessPriorityClass.BelowNormal + or ProcessPriorityClass.AboveNormal + or ProcessPriorityClass.High; + + private static bool HasActionablePayload(ProcessRuleCreationPayload payload) => + HasSelectionPayload(payload.CpuSelection) || + payload.LegacyAffinityMask.HasValue || + payload.Priority.HasValue || + payload.MemoryPriority.HasValue; + + private static bool HasSelectionPayload(CpuSelection? selection) => + selection != null && + (selection.CpuSetIds.Count > 0 || selection.LogicalProcessors.Count > 0); + + private static int FindExistingRuleIndex(IReadOnlyList rules, ProcessModel process) + { + var executablePath = string.IsNullOrWhiteSpace(process.ExecutablePath) + ? null + : process.ExecutablePath.Trim(); + if (!string.IsNullOrWhiteSpace(executablePath)) + { + for (var index = 0; index < rules.Count; index++) + { + if (string.Equals( + rules[index].ExecutablePath, + executablePath, + StringComparison.OrdinalIgnoreCase)) + { + return index; + } + } + + var pathlessNameMatch = FindProcessNameMatchIndex(rules, process, requirePathUnavailable: true); + return pathlessNameMatch; + } + + return FindProcessNameMatchIndex(rules, process, requirePathUnavailable: false); + } + + private static int FindProcessNameMatchIndex( + IReadOnlyList rules, + ProcessModel process, + bool requirePathUnavailable) + { + var processName = string.IsNullOrWhiteSpace(process.Name) + ? null + : process.Name.Trim(); + if (string.IsNullOrWhiteSpace(processName)) + { + return -1; + } + + for (var index = 0; index < rules.Count; index++) + { + if (requirePathUnavailable && !string.IsNullOrWhiteSpace(rules[index].ExecutablePath)) + { + continue; + } + + if (string.Equals(rules[index].ProcessName, processName, StringComparison.OrdinalIgnoreCase)) + { + return index; + } + } + + return -1; + } + + private async Task BuildAffinityPayloadFromCoreSelectionAsync( + IReadOnlyList currentCoreSelection, + string selectionReason, + CancellationToken cancellationToken) + { + if (currentCoreSelection.Count == 0 || !currentCoreSelection.Any(selected => selected)) + { + return PayloadBuildResult.Empty(); + } + + var selection = await this.TryMigrateCoreSelectionAsync( + currentCoreSelection, + selectionReason, + cancellationToken).ConfigureAwait(false); + if (selection != null) + { + return PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { CpuSelection = selection }); + } + + return BuildLegacyAffinityPayload(currentCoreSelection); + } + + private async Task BuildAffinityPayloadFromLegacyMaskAsync( + long legacyMask, + string selectionReason, + CancellationToken cancellationToken) + { + if (legacyMask == 0) + { + return PayloadBuildResult.Empty(); + } + + var selection = await this.TryMigrateLegacyMaskAsync( + legacyMask, + selectionReason, + cancellationToken).ConfigureAwait(false); + if (selection != null) + { + return PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { CpuSelection = selection }); + } + + return PayloadBuildResult.Succeeded(new ProcessRuleCreationPayload { LegacyAffinityMask = legacyMask }); + } + + private async Task TryMigrateCoreSelectionAsync( + IReadOnlyList currentCoreSelection, + string selectionReason, + CancellationToken cancellationToken) + { + if (this.topologyProvider == null) + { + return null; + } + + try + { + var topology = await this.topologyProvider.GetTopologySnapshotAsync(cancellationToken).ConfigureAwait(false); + var migrated = this.migrationService.MigrateFromLegacyCoreMask(currentCoreSelection, topology); + return WithSelectionReason(migrated.Selection, selectionReason); + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + this.logger.LogDebug(ex, "Could not migrate current core selection to CpuSelection for saved rule"); + return null; + } + } + + private async Task TryMigrateLegacyMaskAsync( + long legacyMask, + string selectionReason, + CancellationToken cancellationToken) + { + if (this.topologyProvider == null) + { + return null; + } + + try + { + var topology = await this.topologyProvider.GetTopologySnapshotAsync(cancellationToken).ConfigureAwait(false); + var migrated = this.migrationService.MigrateFromLegacyAffinityMask(legacyMask, topology); + return WithSelectionReason(migrated.Selection, selectionReason); + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + this.logger.LogDebug(ex, "Could not migrate current legacy affinity mask to CpuSelection for saved rule"); + return null; + } + } + + private static CpuSelection? WithSelectionReason(CpuSelection? selection, string selectionReason) + { + if (!HasSelectionPayload(selection)) + { + return null; + } + + return selection! with + { + Metadata = selection.Metadata with + { + SelectionReason = selectionReason, + }, + }; + } + + private sealed record PayloadBuildResult( + bool Success, + ProcessRuleCreationPayload? Payload, + string ErrorCode, + string UserMessage) + { + public static PayloadBuildResult Empty() => new(true, null, string.Empty, string.Empty); + + public static PayloadBuildResult Succeeded(ProcessRuleCreationPayload payload) => + new(true, payload, string.Empty, string.Empty); + + public static PayloadBuildResult Failed(string errorCode, string userMessage) => + new(false, null, errorCode, userMessage); + + public static implicit operator ProcessRuleCreationResult(PayloadBuildResult result) => + ProcessRuleCreationResult.Failed(result.ErrorCode, result.UserMessage); + } + + private sealed record PayloadSanitizationResult( + bool Success, + ProcessRuleCreationPayload? Payload, + string ErrorCode, + string UserMessage) + { + public static PayloadSanitizationResult Succeeded(ProcessRuleCreationPayload payload) => + new(true, payload, string.Empty, string.Empty); + + public static PayloadSanitizationResult Failed(string errorCode, string userMessage) => + new(false, null, errorCode, userMessage); + + public static implicit operator ProcessRuleCreationResult(PayloadSanitizationResult result) => + ProcessRuleCreationResult.Failed(result.ErrorCode, result.UserMessage); + } + } +} diff --git a/Services/ProcessService.cs b/Services/ProcessService.cs index 47ee701..fd661b7 100644 --- a/Services/ProcessService.cs +++ b/Services/ProcessService.cs @@ -1,1463 +1,1410 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.ObjectModel; - using System.ComponentModel; - using System.Diagnostics; - using System.IO; - using System.Linq; - using System.Text; - using System.Text.Json; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Platforms.Windows; - - public class ProcessService : IProcessService - { - private static string LegacyProfilesDirectory => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Profiles"); - - private readonly ConcurrentDictionary cpuSamples = new(); - private readonly ConcurrentDictionary cpuSetHandlers = new(); - private readonly ILogger? logger; - private readonly ISecurityService? securityService; - private readonly IForegroundProcessService? foregroundProcessService; - private readonly IProcessClassifier processClassifier; - private readonly IPassiveProcessErrorThrottle passiveProcessErrorThrottle; - private readonly Func profilesDirectoryProvider; - private readonly CpuSelectionAffinityApplier cpuSelectionAffinityApplier; - private readonly ICpuTopologyProvider? cpuTopologyProvider; - private readonly CpuSelectionMigrationService cpuSelectionMigrationService; - private readonly Func? loadProcessProfilePrioritySetter; - private readonly Func>? loadProcessProfileCpuSelectionSetter; - private readonly Func? loadProcessProfileLegacyAffinitySetter; - - private string ProfilesDirectory => this.profilesDirectoryProvider(); - - private bool useCpuSets = true; // Enable CPU Sets by default - - // Tracking for cleanup on exit - private readonly ConcurrentDictionary appliedMasks = new(); // ProcessId -> MaskId - private readonly ConcurrentDictionary originalPriorities = new(); // ProcessId -> OriginalPriority - - public ProcessService( - ILogger? logger = null, - ISecurityService? securityService = null, - Func? profilesDirectoryProvider = null, - IForegroundProcessService? foregroundProcessService = null, - IProcessClassifier? processClassifier = null, - IPassiveProcessErrorThrottle? passiveProcessErrorThrottle = null, - ICpuTopologyProvider? cpuTopologyProvider = null, - CpuSelectionMigrationService? cpuSelectionMigrationService = null) - : this( - logger, - securityService, - profilesDirectoryProvider, - foregroundProcessService, - processClassifier, - passiveProcessErrorThrottle, - cpuTopologyProvider, - cpuSelectionMigrationService, - loadProcessProfilePrioritySetter: null, - loadProcessProfileCpuSelectionSetter: null, - loadProcessProfileLegacyAffinitySetter: null) - { - } - - internal ProcessService( - ILogger? logger, - ISecurityService? securityService, - Func? profilesDirectoryProvider, - IForegroundProcessService? foregroundProcessService, - IProcessClassifier? processClassifier, - IPassiveProcessErrorThrottle? passiveProcessErrorThrottle, - ICpuTopologyProvider? cpuTopologyProvider, - CpuSelectionMigrationService? cpuSelectionMigrationService, - Func? loadProcessProfilePrioritySetter, - Func>? loadProcessProfileCpuSelectionSetter, - Func? loadProcessProfileLegacyAffinitySetter) - { - this.logger = logger; - this.securityService = securityService; - this.foregroundProcessService = foregroundProcessService; - this.processClassifier = processClassifier ?? new ProcessClassifier(new ProcessFilterService()); - this.passiveProcessErrorThrottle = passiveProcessErrorThrottle ?? new PassiveProcessErrorThrottle(); - this.profilesDirectoryProvider = profilesDirectoryProvider ?? (() => StoragePaths.ProfilesDirectory); - this.cpuTopologyProvider = cpuTopologyProvider; - this.cpuSelectionMigrationService = cpuSelectionMigrationService ?? new CpuSelectionMigrationService(); - this.loadProcessProfilePrioritySetter = loadProcessProfilePrioritySetter; - this.loadProcessProfileCpuSelectionSetter = loadProcessProfileCpuSelectionSetter; - this.loadProcessProfileLegacyAffinitySetter = loadProcessProfileLegacyAffinitySetter; - this.cpuSelectionAffinityApplier = new CpuSelectionAffinityApplier( - this.GetOrCreateCpuSetHandler, - this.ApplyLegacyProcessorAffinityDirectAsync, - logger ?? (ILogger)Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance, - process => this.cpuSetHandlers.TryRemove(process.ProcessId, out _), - (process, success) => this.AuditProcessOperation("SetProcessAffinity", process.Name, success)); - - StoragePaths.EnsureAppDataDirectories(); - this.MigrateLegacyProfilesIfNeeded(); - - if (!Directory.Exists(this.ProfilesDirectory)) - { - Directory.CreateDirectory(this.ProfilesDirectory); - } - - this.logger?.LogInformation("ProcessService initialized with CPU Sets support enabled"); - } - - public async Task> GetProcessesAsync() - { - return await Task.Run(() => - { - var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); - var processes = Process.GetProcesses() - .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) - .OfType() - .OrderBy(p => p.Name); - - return new ObservableCollection(processes); - }).ConfigureAwait(false); - } - - private sealed class CpuSample - { - public CpuSample(TimeSpan totalProcessorTime, DateTime timestamp) - { - this.TotalProcessorTime = totalProcessorTime; - this.Timestamp = timestamp; - } - - public TimeSpan TotalProcessorTime { get; set; } - - public DateTime Timestamp { get; set; } - } - - private double CalculateCpuUsage(Process process) - { - try - { - var now = DateTime.UtcNow; - var totalProcessorTime = process.TotalProcessorTime; - - if (this.cpuSamples.TryGetValue(process.Id, out var previous)) - { - var cpuDeltaMs = (totalProcessorTime - previous.TotalProcessorTime).TotalMilliseconds; - var timeDeltaMs = (now - previous.Timestamp).TotalMilliseconds; - - // Ignore extremely small deltas to avoid noisy values - if (timeDeltaMs <= 0 || cpuDeltaMs < 0) - { - this.cpuSamples[process.Id] = new CpuSample(totalProcessorTime, now); - return 0; - } - - var usage = (cpuDeltaMs / (timeDeltaMs * Environment.ProcessorCount)) * 100.0; - usage = Math.Clamp(usage, 0, 100); - - this.cpuSamples[process.Id] = new CpuSample(totalProcessorTime, now); - return usage; - } - - this.cpuSamples[process.Id] = new CpuSample(totalProcessorTime, now); - return 0; // First sample cannot produce a rate - } - catch - { - return 0; - } - } - - public ProcessModel CreateProcessModel(Process process) - { - return this.CreateProcessModel(process, this.foregroundProcessService?.TryGetForegroundProcessId()); - } - - private ProcessModel? TryCreateProcessModel(Process process, int? foregroundProcessId) - { - try - { - return this.CreateProcessModel(process, foregroundProcessId); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - var processId = TryGetProcessId(process); - if (processId.HasValue) - { - this.CleanupProcessResources(processId.Value); - this.LogPassiveProcessReadFailure(processId.Value, PassiveProcessErrorKind.Terminated, ex); - } - - return CreateMinimalProcessModel(process, processId, ProcessClassification.Terminated); - } - catch (Exception ex) when (IsPassiveProcessAccessException(ex)) - { - var processId = TryGetProcessId(process); - if (processId.HasValue) - { - this.LogPassiveProcessReadFailure(processId.Value, PassiveProcessErrorKind.AccessDenied, ex); - } - - return CreateMinimalProcessModel(process, processId, ProcessClassification.ProtectedOrAccessDenied); - } - catch (Exception ex) - { - var processId = TryGetProcessId(process); - if (processId.HasValue) - { - this.LogPassiveProcessReadFailure(processId.Value, PassiveProcessErrorKind.Unknown, ex); - } - - return CreateMinimalProcessModel(process, processId, ProcessClassification.Unknown); - } - } - - private ProcessModel CreateProcessModel(Process process, int? foregroundProcessId) - { - var model = new ProcessModel(); - var accessDenied = false; - var terminated = false; - - try - { - model.ProcessId = process.Id; - } - catch - { - model.Classification = ProcessClassification.Unknown; - return model; - } - - try - { - model.Name = process.ProcessName; - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - accessDenied = true; - model.Name = $"PID_{model.ProcessId}"; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - model.Name = $"PID_{model.ProcessId}"; - } - - if (!terminated) - { - try - { - if (process.HasExited) - { - terminated = true; - } - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - accessDenied = true; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - } - - if (!terminated) - { - try - { - model.MemoryUsage = process.PrivateMemorySize64; - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - accessDenied = true; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - } - - if (!terminated) - { - try - { - model.Priority = process.PriorityClass; - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - accessDenied = true; - model.MainWindowHandle = IntPtr.Zero; - model.MainWindowTitle = string.Empty; - model.HasVisibleWindow = false; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsPassiveProcessAccessException(ex)) - { - accessDenied = true; - model.MainWindowHandle = IntPtr.Zero; - model.MainWindowTitle = string.Empty; - model.HasVisibleWindow = false; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - } - } - - if (!terminated) - { - try - { - model.ProcessorAffinity = (long)process.ProcessorAffinity; - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - accessDenied = true; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - } - } - - if (!terminated) - { - model.CpuUsage = this.CalculateCpuUsage(process); - } - - if (!terminated) - { - try - { - model.MainWindowHandle = process.MainWindowHandle; - model.MainWindowTitle = process.MainWindowTitle ?? string.Empty; - model.HasVisibleWindow = model.MainWindowHandle != IntPtr.Zero && !string.IsNullOrWhiteSpace(model.MainWindowTitle); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - } - } - - if (!terminated) - { - try - { - model.ExecutablePath = process.MainModule?.FileName ?? string.Empty; - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - accessDenied = true; - model.ExecutablePath = string.Empty; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsPassiveProcessAccessException(ex)) - { - accessDenied = true; - model.ExecutablePath = string.Empty; - this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); - } - catch (Exception ex) when (IsTerminatedProcessException(ex)) - { - terminated = true; - } - } - } - - if (terminated) - { - this.CleanupProcessResources(model.ProcessId); - } - - this.ApplyProcessClassification(model, foregroundProcessId, accessDenied, terminated); - return model; - } - - public async Task SetProcessorAffinity(ProcessModel process, long affinityMask) - { - this.EnsureProcessOperationAllowed(process, "SetProcessAffinity"); - - await Task.Run(() => - { - try - { - if (affinityMask == 0) - { - throw new InvalidOperationException("Affinity mask cannot be zero."); - } - - // Try using CPU Sets first (Windows 10+) - if (this.useCpuSets) - { - bool cpuSetSuccess = this.TrySetAffinityViaCpuSets(process, affinityMask); - if (cpuSetSuccess) - { - this.logger?.LogInformation( - "Successfully applied CPU Sets affinity 0x{AffinityMask:X} to process {ProcessName} (PID: {ProcessId})", - affinityMask, process.Name, process.ProcessId); - - // Update the model with the new affinity - process.ProcessorAffinity = affinityMask; - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: true); - return; - } - else - { - this.logger?.LogDebug( - "CPU Sets failed for process {ProcessName} (PID: {ProcessId}), falling back to classic ProcessorAffinity", - process.Name, process.ProcessId); - } - } - - // Fallback to classic ProcessorAffinity method - using var targetProcess = Process.GetProcessById(process.ProcessId); - - targetProcess.ProcessorAffinity = new IntPtr(affinityMask); - process.ProcessorAffinity = (long)targetProcess.ProcessorAffinity; - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: true); - - this.logger?.LogInformation( - "Successfully applied classic ProcessorAffinity 0x{AffinityMask:X} to process {ProcessName} (PID: {ProcessId})", - affinityMask, process.Name, process.ProcessId); - } - catch (Win32Exception ex) when (ex.NativeErrorCode == 87) - { - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); - throw new InvalidOperationException("Invalid affinity mask for this system.", ex); - } - catch (Win32Exception ex) when (ex.NativeErrorCode == 5) - { - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); - throw new InvalidOperationException("Access denied while setting processor affinity. The process may be protected (e.g., anti-cheat).", ex); - } - catch (Exception ex) - { - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); - throw new InvalidOperationException($"Failed to set processor affinity: {ex.Message}"); - } - }).ConfigureAwait(false); - } - - public async Task SetProcessorAffinity(ProcessModel process, CpuSelection selection) - { - if (process == null) - { - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - "Process is no longer running.", - "ProcessModel is null.", - failureReason: AffinityApplyFailureReason.ProcessTerminated); - } - - try - { - this.EnsureProcessOperationAllowed(process, "SetProcessAffinity"); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) - { - this.AuditProcessOperation("SetProcessAffinity", process?.Name ?? string.Empty, success: false); - var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); - return AffinityApplyResult.Failed( - antiCheatLikely - ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely - : AffinityApplyErrorCodes.AccessDenied, - antiCheatLikely - ? CpuSelectionAffinityApplier.AntiCheatUserMessage - : CpuSelectionAffinityApplier.AccessDeniedUserMessage, - ex.Message, - isAccessDenied: true, - isAntiCheatLikely: antiCheatLikely, - verifiedMask: process?.ProcessorAffinity ?? 0, - failureReason: AffinityApplyFailureReason.AccessDenied); - } - catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) - { - this.AuditProcessOperation("SetProcessAffinity", process?.Name ?? string.Empty, success: false); - return AffinityApplyResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - "Process is no longer running.", - ex.Message, - verifiedMask: process?.ProcessorAffinity ?? 0, - failureReason: AffinityApplyFailureReason.ProcessTerminated); - } - - return await this.cpuSelectionAffinityApplier.ApplyAsync(process, selection).ConfigureAwait(false); - } - - /// - /// Attempts to set process affinity using CPU Sets (Windows 10+ feature). - /// - private bool TrySetAffinityViaCpuSets(ProcessModel process, long affinityMask) - { - try - { - // Get or create CPU Set handler for this process - var handler = this.GetOrCreateCpuSetHandler(process); - - // Check if handler is valid - if (!handler.IsValid) - { - this.logger?.LogDebug( - "CPU Set handler for process {ProcessName} (PID: {ProcessId}) is invalid", - process.Name, process.ProcessId); - - // Remove invalid handler - this.cpuSetHandlers.TryRemove(process.ProcessId, out _); - return false; - } - - // Apply the CPU Set mask - bool success = handler.ApplyCpuSetMask(affinityMask, clearMask: false); - - if (!success) - { - // Remove failed handler so we can try again later if needed - this.cpuSetHandlers.TryRemove(process.ProcessId, out _); - } - - return success; - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Exception while applying CPU Sets to process {ProcessName} (PID: {ProcessId})", - process.Name, process.ProcessId); - - // Remove handler on exception - this.cpuSetHandlers.TryRemove(process.ProcessId, out _); - return false; - } - } - - private IProcessCpuSetHandler GetOrCreateCpuSetHandler(ProcessModel process) => - this.cpuSetHandlers.GetOrAdd(process.ProcessId, pid => - { - return new ProcessCpuSetHandler((uint)pid, process.Name, this.logger); - }); - - private async Task ApplyLegacyProcessorAffinityDirectAsync(ProcessModel process, long affinityMask) - { - return await Task.Run(() => - { - try - { - using var targetProcess = Process.GetProcessById(process.ProcessId); - targetProcess.ProcessorAffinity = new IntPtr(affinityMask); - var verifiedMask = (long)targetProcess.ProcessorAffinity; - process.ProcessorAffinity = verifiedMask; - - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: true); - this.logger?.LogInformation( - "Successfully applied classic ProcessorAffinity 0x{AffinityMask:X} to process {ProcessName} (PID: {ProcessId})", - affinityMask, - process.Name, - process.ProcessId); - - return verifiedMask; - } - catch - { - this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); - throw; - } - }).ConfigureAwait(false); - } - - public async Task SetProcessPriority(ProcessModel process, ProcessPriorityClass priority) - { - ArgumentNullException.ThrowIfNull(process); - if (ProcessPriorityGuardrails.IsBlocked(priority)) - { - this.logger?.LogWarning( - "Blocked priority change for process {ProcessName} (PID: {ProcessId}): {Message}", - process.Name, - process.ProcessId, - ProcessOperationUserMessages.RealtimePriorityBlocked); - this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); - throw new InvalidOperationException(ProcessOperationUserMessages.RealtimePriorityBlocked); - } - - this.EnsureProcessOperationAllowed(process, "SetProcessPriority"); - - var warning = ProcessPriorityGuardrails.GetWarning(priority); - if (!string.IsNullOrWhiteSpace(warning)) - { - this.logger?.LogWarning( - "Applying High priority to process {ProcessName} (PID: {ProcessId}): {Message}", - process.Name, - process.ProcessId, - warning); - } - - await Task.Run(() => - { - try - { - using var targetProcess = Process.GetProcessById(process.ProcessId); - - targetProcess.PriorityClass = priority; - process.Priority = targetProcess.PriorityClass; - this.AuditProcessOperation("SetProcessPriority", process.Name, success: true); - } - catch (Win32Exception ex) when (ex.NativeErrorCode == 5) - { - this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); - throw new InvalidOperationException(ProcessOperationUserMessages.AccessDenied, ex); - } - catch (UnauthorizedAccessException ex) - { - this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); - throw new InvalidOperationException(ProcessOperationUserMessages.AccessDenied, ex); - } - catch (Exception ex) - { - this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); - throw new InvalidOperationException($"Failed to set process priority: {ex.Message}"); - } - }).ConfigureAwait(false); - } - - public async Task SaveProcessProfile(string profileName, ProcessModel process) - { - var profile = new ProcessProfileSnapshot - { - ProcessName = process.Name, - Priority = process.Priority, - ProcessorAffinity = process.ProcessorAffinity, - }; - - var topology = await this.TryGetTopologySnapshotAsync().ConfigureAwait(false); - if (topology != null) - { - this.cpuSelectionMigrationService.PrepareProcessProfileForSave(profile, topology); - } - - var filePath = Path.Combine(this.ProfilesDirectory, $"{profileName}.json"); - var json = JsonSerializer.Serialize(profile, new JsonSerializerOptions { WriteIndented = true }); - await AtomicFileWriter.WriteAllTextAsync(filePath, json, Encoding.UTF8).ConfigureAwait(false); - return true; - } - - public async Task LoadProcessProfile(string profileName, ProcessModel process) - { - var filePath = Path.Combine(this.ProfilesDirectory, $"{profileName}.json"); - if (!File.Exists(filePath)) - { - return false; - } - - var content = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); - var profile = JsonSerializer.Deserialize(content, new JsonSerializerOptions - { - PropertyNameCaseInsensitive = true, - ReadCommentHandling = JsonCommentHandling.Skip, - AllowTrailingCommas = true, - }); - - if (profile == null) - { - return false; - } - - if (ProcessPriorityGuardrails.IsBlocked(profile.Priority)) - { - this.logger?.LogWarning( - "Profile {ProfileName} requested blocked priority {Priority} for process {ProcessName} (PID: {ProcessId}). {Message}", - profileName, - profile.Priority, - process.Name, - process.ProcessId, - ProcessOperationUserMessages.RealtimePriorityBlocked); - return false; - } - - await this.SetLoadProcessProfilePriorityAsync(process, profile.Priority).ConfigureAwait(false); - var topology = await this.TryGetTopologySnapshotAsync().ConfigureAwait(false); - if (topology != null) - { - this.cpuSelectionMigrationService.MigrateProcessProfile(profile, topology); - } - - if (profile.CpuSelection != null) - { - var result = await this.SetLoadProcessProfileCpuSelectionAsync(process, profile.CpuSelection).ConfigureAwait(false); - if (!result.Success) - { - this.logger?.LogWarning( - "Failed to apply CpuSelection profile {ProfileName} to process {ProcessName} (PID: {ProcessId}). ErrorCode: {ErrorCode}. Message: {Message}", - profileName, - process.Name, - process.ProcessId, - result.ErrorCode, - result.Message); - - return false; - } - } - else - { - await this.SetLoadProcessProfileLegacyAffinityAsync(process, profile.ProcessorAffinity).ConfigureAwait(false); - } - - return true; - } - - private Task SetLoadProcessProfilePriorityAsync(ProcessModel process, ProcessPriorityClass priority) => - this.loadProcessProfilePrioritySetter != null - ? this.loadProcessProfilePrioritySetter(process, priority) - : this.SetProcessPriority(process, priority); - - private Task SetLoadProcessProfileCpuSelectionAsync(ProcessModel process, CpuSelection selection) => - this.loadProcessProfileCpuSelectionSetter != null - ? this.loadProcessProfileCpuSelectionSetter(process, selection) - : this.SetProcessorAffinity(process, selection); - - private Task SetLoadProcessProfileLegacyAffinityAsync(ProcessModel process, long affinityMask) => - this.loadProcessProfileLegacyAffinitySetter != null - ? this.loadProcessProfileLegacyAffinitySetter(process, affinityMask) - : this.SetProcessorAffinity(process, affinityMask); - - private async Task TryGetTopologySnapshotAsync() - { - if (this.cpuTopologyProvider == null) - { - return null; - } - - try - { - return await this.cpuTopologyProvider.GetTopologySnapshotAsync().ConfigureAwait(false); - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Failed to get CPU topology snapshot for profile CpuSelection migration"); - return null; - } - } - - public async Task RefreshProcessInfo(ProcessModel process) - { - await Task.Run(() => - { - try - { - using var p = Process.GetProcessById(process.ProcessId); - - // Check if process has exited - if (p.HasExited) - { - throw new InvalidOperationException("Process has exited"); - } - - process.MemoryUsage = p.PrivateMemorySize64; - process.Priority = p.PriorityClass; - process.ProcessorAffinity = (long)p.ProcessorAffinity; - process.CpuUsage = this.CalculateCpuUsage(p); - - // Update window information - process.MainWindowHandle = p.MainWindowHandle; - process.MainWindowTitle = p.MainWindowTitle ?? string.Empty; - process.HasVisibleWindow = process.MainWindowHandle != IntPtr.Zero && !string.IsNullOrWhiteSpace(process.MainWindowTitle); - this.ApplyProcessClassification( - process, - this.foregroundProcessService?.TryGetForegroundProcessId(), - accessDenied: false, - terminated: false); - } - catch (ArgumentException) - { - // Process with the specified ID does not exist - this.CleanupProcessResources(process.ProcessId); - this.ApplyProcessClassification(process, null, accessDenied: false, terminated: true); - throw new InvalidOperationException("Process no longer exists"); - } - catch (Exception ex) when (IsAccessDeniedException(ex)) - { - this.ApplyProcessClassification(process, null, accessDenied: true, terminated: false); - throw new InvalidOperationException("Access denied while refreshing process information.", ex); - } - catch (Exception ex) when (ex.Message.Contains("exited") || ex.Message.Contains("terminated")) - { - // Process has terminated - this.CleanupProcessResources(process.ProcessId); - this.ApplyProcessClassification(process, null, accessDenied: false, terminated: true); - throw new InvalidOperationException("Process has terminated"); - } - }).ConfigureAwait(false); - } - - private void ApplyProcessClassification( - ProcessModel process, - int? foregroundProcessId, - bool accessDenied, - bool terminated) - { - process.IsForeground = foregroundProcessId == process.ProcessId && !accessDenied && !terminated; - process.Classification = this.processClassifier.Classify( - process, - new ProcessClassificationContext(foregroundProcessId, accessDenied, terminated)); - } - - private void LogPassiveProcessReadFailure(int processId, PassiveProcessErrorKind errorKind, Exception exception) - { - if (this.passiveProcessErrorThrottle.ShouldLog(processId, errorKind)) - { - this.logger?.LogDebug( - exception, - "Passive process read returned {ErrorKind} for PID {ProcessId}", - errorKind, - processId); - } - } - - internal static bool IsPassiveProcessAccessException(Exception exception) - { - return IsAccessDeniedException(exception) || - exception is Win32Exception { NativeErrorCode: 299 } || - exception.Message.Contains("enumerate the process modules", StringComparison.OrdinalIgnoreCase) || - exception.Message.Contains("access modules", StringComparison.OrdinalIgnoreCase) || - exception.Message.Contains("ReadProcessMemory", StringComparison.OrdinalIgnoreCase); - } - - private static bool IsAccessDeniedException(Exception exception) - { - return exception is UnauthorizedAccessException || - exception is Win32Exception { NativeErrorCode: 5 }; - } - - private static bool IsTerminatedProcessException(Exception exception) - { - return exception is ArgumentException || - (exception is InvalidOperationException invalidOperationException && - (invalidOperationException.Message.Contains("exited", StringComparison.OrdinalIgnoreCase) || - invalidOperationException.Message.Contains("terminated", StringComparison.OrdinalIgnoreCase) || - invalidOperationException.Message.Contains("no longer exists", StringComparison.OrdinalIgnoreCase))); - } - - private static int? TryGetProcessId(Process process) - { - try - { - return process.Id; - } - catch - { - return null; - } - } - - private static ProcessModel? CreateMinimalProcessModel( - Process process, - int? processId, - ProcessClassification classification) - { - if (!processId.HasValue) - { - return null; - } - - return new ProcessModel - { - ProcessId = processId.Value, - Name = TryGetProcessName(process, processId.Value), - ExecutablePath = string.Empty, - MainWindowHandle = IntPtr.Zero, - MainWindowTitle = string.Empty, - HasVisibleWindow = false, - Classification = classification, - }; - } - - private static string TryGetProcessName(Process process, int processId) - { - try - { - return process.ProcessName; - } - catch - { - return $"PID_{processId}"; - } - } - - /// - /// Cleanup resources associated with a process. - /// - private void CleanupProcessResources(int processId) - { - // Remove CPU samples - this.cpuSamples.TryRemove(processId, out _); - - // Dispose and remove CPU Set handler - if (this.cpuSetHandlers.TryRemove(processId, out var handler)) - { - try - { - handler.Dispose(); - this.logger?.LogDebug("Cleaned up CPU Set handler for process ID {ProcessId}", processId); - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Error disposing CPU Set handler for process ID {ProcessId}", processId); - } - } - } - - /// - /// Enables or disables the use of Windows CPU Sets for affinity management. - /// - public void SetUseCpuSets(bool useCpuSets) - { - this.useCpuSets = useCpuSets; - this.logger?.LogInformation("CPU Sets usage {Status}", useCpuSets ? "enabled" : "disabled"); - } - - /// - /// Gets whether CPU Sets are currently enabled for affinity management. - /// - public bool GetUseCpuSets() - { - return this.useCpuSets; - } - - /// - /// Clears the CPU Set for a process (allows it to run on all cores). - /// - public async Task ClearProcessCpuSetAsync(ProcessModel process) - { - return await Task.Run(() => - { - try - { - if (!this.useCpuSets) - { - this.logger?.LogDebug("CPU Sets are disabled, cannot clear CPU Set for process {ProcessName}", process.Name); - return false; - } - - // Get or create CPU Set handler for this process - var handler = this.cpuSetHandlers.GetOrAdd(process.ProcessId, pid => - { - return new ProcessCpuSetHandler((uint)pid, process.Name, this.logger); - }); - - if (!handler.IsValid) - { - this.logger?.LogDebug( - "CPU Set handler for process {ProcessName} (PID: {ProcessId}) is invalid", - process.Name, process.ProcessId); - this.cpuSetHandlers.TryRemove(process.ProcessId, out _); - return false; - } - - // Clear the mask (set clearMask = true) - bool success = handler.ApplyCpuSetMask(0, clearMask: true); - - if (success) - { - this.logger?.LogInformation( - "Successfully cleared CPU Set for process {ProcessName} (PID: {ProcessId})", - process.Name, process.ProcessId); - } - else - { - this.cpuSetHandlers.TryRemove(process.ProcessId, out _); - } - - return success; - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Exception while clearing CPU Set for process {ProcessName} (PID: {ProcessId})", - process.Name, process.ProcessId); - this.cpuSetHandlers.TryRemove(process.ProcessId, out _); - return false; - } - }).ConfigureAwait(false); - } - - public async Task GetProcessByIdAsync(int processId) - { - return await Task.Run(() => - { - try - { - var process = Process.GetProcessById(processId); - return this.CreateProcessModel(process); - } - catch - { - return null; - } - }).ConfigureAwait(false); - } - - public async Task> GetProcessesByNameAsync(string executableName) - { - return await Task.Run(() => - { - try - { - var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); - var processes = Process.GetProcessesByName(executableName) - .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) - .OfType(); - - return processes; - } - catch - { - return Enumerable.Empty(); - } - }).ConfigureAwait(false); - } - - public async Task IsProcessRunningAsync(string executableName) - { - var processes = await this.GetProcessesByNameAsync(executableName).ConfigureAwait(false); - return processes.Any(); - } - - public async Task> GetProcessesWithPathsAsync() - { - return await Task.Run(() => - { - var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); - var processes = Process.GetProcesses() - .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) - .OfType() - .Where(p => !string.IsNullOrEmpty(p.ExecutablePath)) - .OrderBy(p => p.Name); - - return processes; - }).ConfigureAwait(false); - } - - public async Task> GetActiveApplicationsAsync() - { - return await Task.Run(() => - { - var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); - var processes = Process.GetProcesses() - .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) - .OfType() - .Where(p => p.HasVisibleWindow) - .OrderBy(p => p.Name); - - return new ObservableCollection(processes); - }).ConfigureAwait(false); - } - - public async Task IsProcessStillRunning(ProcessModel process) - { - return await Task.Run(() => - { - try - { - var p = Process.GetProcessById(process.ProcessId); - return !p.HasExited; - } - catch (ArgumentException) - { - // Process with the specified ID does not exist - return false; - } - catch - { - // Any other exception means process is not accessible/running - return false; - } - }).ConfigureAwait(false); - } - - public async Task SetIdleServerStateAsync(ProcessModel process, bool enableIdleServer) - { - return await Task.Run(() => - { - try - { - // Get the actual process - var actualProcess = Process.GetProcessById(process.ProcessId); - - // Use Windows API to set execution state for the process - // This prevents the system from entering idle state while the process is running - if (!enableIdleServer) - { - // Disable idle server by setting ES_CONTINUOUS | ES_SYSTEM_REQUIRED - // This keeps the system awake while the process is running - var result = NativeMethods.SetThreadExecutionState( - NativeMethods.EXECUTION_STATE.ES_CONTINUOUS | - NativeMethods.EXECUTION_STATE.ES_SYSTEM_REQUIRED); - - return result != 0; - } - else - { - // Re-enable idle server by clearing the execution state - var result = NativeMethods.SetThreadExecutionState( - NativeMethods.EXECUTION_STATE.ES_CONTINUOUS); - - return result != 0; - } - } - catch (Exception) - { - return false; - } - }).ConfigureAwait(false); - } - - public async Task SetRegistryPriorityAsync(ProcessModel process, bool enable, ProcessPriorityClass priority) - { - ArgumentNullException.ThrowIfNull(process); - - if (enable && ProcessPriorityGuardrails.IsBlocked(priority)) - { - this.logger?.LogWarning( - "Registry priority request blocked for process {ProcessName} (PID: {ProcessId}). {Message}", - process.Name, - process.ProcessId, - ProcessOperationUserMessages.RealtimePriorityBlocked); - this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); - return false; - } - - this.EnsureProcessOperationAllowed(process, "SetProcessPriority"); - - return await Task.Run(() => - { - try - { - using var key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey( - @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\" + - Path.GetFileName(process.ExecutablePath)); - - if (enable) - { - // Convert ProcessPriorityClass to registry priority value - int priorityValue = priority switch - { - ProcessPriorityClass.Idle => 4, - ProcessPriorityClass.BelowNormal => 6, - ProcessPriorityClass.Normal => 8, - ProcessPriorityClass.AboveNormal => 10, - ProcessPriorityClass.High => 13, - ProcessPriorityClass.RealTime => 24, - _ => 8, // Default to Normal - }; - - key.SetValue("PriorityClass", priorityValue, Microsoft.Win32.RegistryValueKind.DWord); - } - else - { - // Remove the registry entry to disable enforcement - key.DeleteValue("PriorityClass", false); - } - - this.AuditProcessOperation("SetProcessPriority", process.Name, success: true); - - return true; - } - catch (Exception) - { - this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); - return false; - } - }).ConfigureAwait(false); - } - - private void EnsureProcessOperationAllowed(ProcessModel process, string operation) - { - ArgumentNullException.ThrowIfNull(process); - - if (this.securityService == null) - { - return; - } - - var processName = this.GetProcessDisplayName(process); - if (!this.securityService.ValidateProcessOperation(processName, operation)) - { - this.AuditProcessOperation(operation, processName, success: false); - throw new UnauthorizedAccessException( - $"Operation '{operation}' is not permitted for process '{processName}'."); - } - - try - { - using var liveProcess = Process.GetProcessById(process.ProcessId); - if (this.securityService.IsProtected(liveProcess)) - { - this.AuditProcessOperation(operation, processName, success: false); - throw new UnauthorizedAccessException( - $"Operation '{operation}' is blocked for protected process '{processName}'."); - } - } - catch (ArgumentException) - { - // Process already exited; defer to operation code-paths for termination handling. - } - } - - private string GetProcessDisplayName(ProcessModel process) - { - if (!string.IsNullOrWhiteSpace(process.Name)) - { - return process.Name; - } - - return $"PID_{process.ProcessId}"; - } - - private void AuditProcessOperation(string operation, string processName, bool success) - { - if (this.securityService == null) - { - return; - } - - TaskSafety.FireAndForget( - this.securityService.AuditElevatedAction(operation, processName, success), - ex => this.logger?.LogDebug(ex, "Security audit logging failed for {Operation} on {ProcessName}", operation, processName)); - } - - /// - /// Registers that a mask has been applied to a process (for tracking cleanup on exit). - /// - public void TrackAppliedMask(int processId, string maskId) - { - this.appliedMasks[processId] = maskId; - this.logger?.LogDebug("Tracking mask {MaskId} applied to process {ProcessId}", maskId, processId); - } - - /// - /// Registers that a priority has been changed for a process (for tracking cleanup on exit). - /// - public void TrackPriorityChange(int processId, ProcessPriorityClass originalPriority) - { - // Only track if not already tracked (keep the original priority) - if (!this.originalPriorities.ContainsKey(processId)) - { - this.originalPriorities[processId] = originalPriority; - this.logger?.LogDebug("Tracking original priority {Priority} for process {ProcessId}", originalPriority, processId); - } - } - - /// - /// Unregisters tracking when a process exits. - /// - public void UntrackProcess(int processId) - { - this.appliedMasks.TryRemove(processId, out _); - this.originalPriorities.TryRemove(processId, out _); - this.CleanupProcessResources(processId); - this.logger?.LogDebug("Untracked process {ProcessId}", processId); - } - - /// - /// Clears all applied CPU masks/affinities from all tracked processes - /// Processes return to using all cores (used on application exit). - /// - public Task ClearAllAppliedMasksAsync() - { - this.logger?.LogInformation("Clearing all applied CPU masks from {Count} tracked processes", this.appliedMasks.Count); - - var processIds = this.appliedMasks.Keys.ToList(); - var clearedCount = 0; - var failedCount = 0; - - foreach (var processId in processIds) - { - try - { - // Check if process is still running - Process process; - try - { - process = Process.GetProcessById(processId); - if (process.HasExited) - { - this.appliedMasks.TryRemove(processId, out _); - continue; - } - } - catch (ArgumentException) - { - // Process no longer exists - this.appliedMasks.TryRemove(processId, out _); - continue; - } - - // Clear CPU Set if we have a handler - if (this.cpuSetHandlers.TryGetValue(processId, out var handler) && handler.IsValid) - { - handler.ApplyCpuSetMask(0, clearMask: true); - this.logger?.LogDebug( - "Cleared CPU Set for process {ProcessName} (PID: {ProcessId})", - process.ProcessName, processId); - } - - // Reset processor affinity to all cores - try - { - long allCoresMask = this.GetAllCoresAffinityMask(); - process.ProcessorAffinity = new IntPtr(allCoresMask); - this.logger?.LogDebug( - "Reset ProcessorAffinity for process {ProcessName} (PID: {ProcessId})", - process.ProcessName, processId); - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Failed to reset ProcessorAffinity for process PID {ProcessId}", processId); - } - - this.appliedMasks.TryRemove(processId, out _); - clearedCount++; - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Failed to clear mask for process PID {ProcessId}", processId); - failedCount++; - } - } - - this.logger?.LogInformation("Cleared CPU masks: {Cleared} succeeded, {Failed} failed", clearedCount, failedCount); - return Task.CompletedTask; - } - - /// - /// Resets all modified process priorities to Normal (or their original priority). - /// - public Task ResetAllProcessPrioritiesAsync() - { - this.logger?.LogInformation("Resetting priorities for {Count} tracked processes", this.originalPriorities.Count); - - var processIds = this.originalPriorities.Keys.ToList(); - var resetCount = 0; - var failedCount = 0; - - foreach (var processId in processIds) - { - try - { - // Check if process is still running - Process process; - try - { - process = Process.GetProcessById(processId); - if (process.HasExited) - { - this.originalPriorities.TryRemove(processId, out _); - continue; - } - } - catch (ArgumentException) - { - // Process no longer exists - this.originalPriorities.TryRemove(processId, out _); - continue; - } - - // Get original priority - if (this.originalPriorities.TryGetValue(processId, out var originalPriority)) - { - process.PriorityClass = originalPriority; - this.logger?.LogDebug( - "Reset priority for process {ProcessName} (PID: {ProcessId}) to {Priority}", - process.ProcessName, processId, originalPriority); - } - - this.originalPriorities.TryRemove(processId, out _); - resetCount++; - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Failed to reset priority for process PID {ProcessId}", processId); - failedCount++; - } - } - - this.logger?.LogInformation("Reset priorities: {Reset} succeeded, {Failed} failed", resetCount, failedCount); - return Task.CompletedTask; - } - - /// - /// Gets an affinity mask with all cores enabled. - /// - private long GetAllCoresAffinityMask() - { - int coreCount = Environment.ProcessorCount; - return coreCount >= 64 ? -1L : (1L << coreCount) - 1; - } - - private void MigrateLegacyProfilesIfNeeded() - { - try - { - if (!Directory.Exists(LegacyProfilesDirectory)) - { - return; - } - - Directory.CreateDirectory(this.ProfilesDirectory); - var legacyFiles = Directory.GetFiles(LegacyProfilesDirectory, "*.json"); - foreach (var legacyFile in legacyFiles) - { - var destinationFile = Path.Combine(this.ProfilesDirectory, Path.GetFileName(legacyFile)); - if (!File.Exists(destinationFile)) - { - File.Copy(legacyFile, destinationFile); - } - } - - if (legacyFiles.Length > 0) - { - this.logger?.LogInformation("Migrated {Count} legacy profile files to AppData storage", legacyFiles.Length); - } - } - catch (Exception ex) - { - this.logger?.LogWarning(ex, "Failed to migrate legacy profile files"); - } - } - } - - /// - /// Native methods for Windows API calls. - /// - internal static class NativeMethods - { - [System.Runtime.InteropServices.DllImport("kernel32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] - public static extern uint SetThreadExecutionState(EXECUTION_STATE esFlags); - - [System.Flags] - public enum EXECUTION_STATE : uint - { - ES_AWAYMODE_REQUIRED = 0x00000040, - ES_CONTINUOUS = 0x80000000, - ES_DISPLAY_REQUIRED = 0x00000002, - ES_SYSTEM_REQUIRED = 0x00000001, - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + using System.Collections.ObjectModel; + using System.ComponentModel; + using System.Diagnostics; + using System.IO; + using System.Linq; + using System.Text; + using System.Text.Json; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Platforms.Windows; + + public class ProcessService : IProcessService + { + private static string LegacyProfilesDirectory => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Profiles"); + + private readonly ConcurrentDictionary cpuSamples = new(); + private readonly ConcurrentDictionary cpuSetHandlers = new(); + private readonly ILogger? logger; + private readonly ISecurityService? securityService; + private readonly IForegroundProcessService? foregroundProcessService; + private readonly IProcessClassifier processClassifier; + private readonly IPassiveProcessErrorThrottle passiveProcessErrorThrottle; + private readonly Func profilesDirectoryProvider; + private readonly CpuSelectionAffinityApplier cpuSelectionAffinityApplier; + private readonly ICpuTopologyProvider? cpuTopologyProvider; + private readonly CpuSelectionMigrationService cpuSelectionMigrationService; + private readonly Func? loadProcessProfilePrioritySetter; + private readonly Func>? loadProcessProfileCpuSelectionSetter; + private readonly Func? loadProcessProfileLegacyAffinitySetter; + + private string ProfilesDirectory => this.profilesDirectoryProvider(); + + private bool useCpuSets = true; // Enable CPU Sets by default + + // Tracking for cleanup on exit + private readonly ConcurrentDictionary appliedMasks = new(); // ProcessId -> MaskId + private readonly ConcurrentDictionary originalPriorities = new(); // ProcessId -> OriginalPriority + + public ProcessService( + ILogger? logger = null, + ISecurityService? securityService = null, + Func? profilesDirectoryProvider = null, + IForegroundProcessService? foregroundProcessService = null, + IProcessClassifier? processClassifier = null, + IPassiveProcessErrorThrottle? passiveProcessErrorThrottle = null, + ICpuTopologyProvider? cpuTopologyProvider = null, + CpuSelectionMigrationService? cpuSelectionMigrationService = null) + : this( + logger, + securityService, + profilesDirectoryProvider, + foregroundProcessService, + processClassifier, + passiveProcessErrorThrottle, + cpuTopologyProvider, + cpuSelectionMigrationService, + loadProcessProfilePrioritySetter: null, + loadProcessProfileCpuSelectionSetter: null, + loadProcessProfileLegacyAffinitySetter: null) + { + } + + internal ProcessService( + ILogger? logger, + ISecurityService? securityService, + Func? profilesDirectoryProvider, + IForegroundProcessService? foregroundProcessService, + IProcessClassifier? processClassifier, + IPassiveProcessErrorThrottle? passiveProcessErrorThrottle, + ICpuTopologyProvider? cpuTopologyProvider, + CpuSelectionMigrationService? cpuSelectionMigrationService, + Func? loadProcessProfilePrioritySetter, + Func>? loadProcessProfileCpuSelectionSetter, + Func? loadProcessProfileLegacyAffinitySetter) + { + this.logger = logger; + this.securityService = securityService; + this.foregroundProcessService = foregroundProcessService; + this.processClassifier = processClassifier ?? new ProcessClassifier(new ProcessFilterService()); + this.passiveProcessErrorThrottle = passiveProcessErrorThrottle ?? new PassiveProcessErrorThrottle(); + this.profilesDirectoryProvider = profilesDirectoryProvider ?? (() => StoragePaths.ProfilesDirectory); + this.cpuTopologyProvider = cpuTopologyProvider; + this.cpuSelectionMigrationService = cpuSelectionMigrationService ?? new CpuSelectionMigrationService(); + this.loadProcessProfilePrioritySetter = loadProcessProfilePrioritySetter; + this.loadProcessProfileCpuSelectionSetter = loadProcessProfileCpuSelectionSetter; + this.loadProcessProfileLegacyAffinitySetter = loadProcessProfileLegacyAffinitySetter; + this.cpuSelectionAffinityApplier = new CpuSelectionAffinityApplier( + this.GetOrCreateCpuSetHandler, + this.ApplyLegacyProcessorAffinityDirectAsync, + logger ?? (ILogger)Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance, + process => this.cpuSetHandlers.TryRemove(process.ProcessId, out _), + (process, success) => this.AuditProcessOperation("SetProcessAffinity", process.Name, success)); + + StoragePaths.EnsureAppDataDirectories(); + this.MigrateLegacyProfilesIfNeeded(); + + if (!Directory.Exists(this.ProfilesDirectory)) + { + Directory.CreateDirectory(this.ProfilesDirectory); + } + + this.logger?.LogInformation("ProcessService initialized with CPU Sets support enabled"); + } + + public async Task> GetProcessesAsync() + { + return await Task.Run(() => + { + var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); + var processes = Process.GetProcesses() + .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) + .OfType() + .OrderBy(p => p.Name); + + return new ObservableCollection(processes); + }).ConfigureAwait(false); + } + + private sealed class CpuSample + { + public CpuSample(TimeSpan totalProcessorTime, DateTime timestamp) + { + this.TotalProcessorTime = totalProcessorTime; + this.Timestamp = timestamp; + } + + public TimeSpan TotalProcessorTime { get; set; } + + public DateTime Timestamp { get; set; } + } + + private double CalculateCpuUsage(Process process) + { + try + { + var now = DateTime.UtcNow; + var totalProcessorTime = process.TotalProcessorTime; + + if (this.cpuSamples.TryGetValue(process.Id, out var previous)) + { + var cpuDeltaMs = (totalProcessorTime - previous.TotalProcessorTime).TotalMilliseconds; + var timeDeltaMs = (now - previous.Timestamp).TotalMilliseconds; + + // Ignore extremely small deltas to avoid noisy values + if (timeDeltaMs <= 0 || cpuDeltaMs < 0) + { + this.cpuSamples[process.Id] = new CpuSample(totalProcessorTime, now); + return 0; + } + + var usage = (cpuDeltaMs / (timeDeltaMs * Environment.ProcessorCount)) * 100.0; + usage = Math.Clamp(usage, 0, 100); + + this.cpuSamples[process.Id] = new CpuSample(totalProcessorTime, now); + return usage; + } + + this.cpuSamples[process.Id] = new CpuSample(totalProcessorTime, now); + return 0; // First sample cannot produce a rate + } + catch + { + return 0; + } + } + + public ProcessModel CreateProcessModel(Process process) + { + return this.CreateProcessModel(process, this.foregroundProcessService?.TryGetForegroundProcessId()); + } + + private ProcessModel? TryCreateProcessModel(Process process, int? foregroundProcessId) + { + try + { + return this.CreateProcessModel(process, foregroundProcessId); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + var processId = TryGetProcessId(process); + if (processId.HasValue) + { + this.CleanupProcessResources(processId.Value); + this.LogPassiveProcessReadFailure(processId.Value, PassiveProcessErrorKind.Terminated, ex); + } + + return CreateMinimalProcessModel(process, processId, ProcessClassification.Terminated); + } + catch (Exception ex) when (IsPassiveProcessAccessException(ex)) + { + var processId = TryGetProcessId(process); + if (processId.HasValue) + { + this.LogPassiveProcessReadFailure(processId.Value, PassiveProcessErrorKind.AccessDenied, ex); + } + + return CreateMinimalProcessModel(process, processId, ProcessClassification.ProtectedOrAccessDenied); + } + catch (Exception ex) + { + var processId = TryGetProcessId(process); + if (processId.HasValue) + { + this.LogPassiveProcessReadFailure(processId.Value, PassiveProcessErrorKind.Unknown, ex); + } + + return CreateMinimalProcessModel(process, processId, ProcessClassification.Unknown); + } + } + + private ProcessModel CreateProcessModel(Process process, int? foregroundProcessId) + { + var model = new ProcessModel(); + var accessDenied = false; + var terminated = false; + + try + { + model.ProcessId = process.Id; + } + catch + { + model.Classification = ProcessClassification.Unknown; + return model; + } + + try + { + model.Name = process.ProcessName; + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + accessDenied = true; + model.Name = $"PID_{model.ProcessId}"; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + model.Name = $"PID_{model.ProcessId}"; + } + + if (!terminated) + { + try + { + if (process.HasExited) + { + terminated = true; + } + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + accessDenied = true; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + } + + if (!terminated) + { + try + { + model.MemoryUsage = process.PrivateMemorySize64; + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + accessDenied = true; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + } + + if (!terminated) + { + try + { + model.Priority = process.PriorityClass; + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + accessDenied = true; + model.MainWindowHandle = IntPtr.Zero; + model.MainWindowTitle = string.Empty; + model.HasVisibleWindow = false; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsPassiveProcessAccessException(ex)) + { + accessDenied = true; + model.MainWindowHandle = IntPtr.Zero; + model.MainWindowTitle = string.Empty; + model.HasVisibleWindow = false; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + } + } + + if (!terminated) + { + try + { + model.ProcessorAffinity = (long)process.ProcessorAffinity; + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + accessDenied = true; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + } + } + + if (!terminated) + { + model.CpuUsage = this.CalculateCpuUsage(process); + } + + if (!terminated) + { + try + { + model.MainWindowHandle = process.MainWindowHandle; + model.MainWindowTitle = process.MainWindowTitle ?? string.Empty; + model.HasVisibleWindow = model.MainWindowHandle != IntPtr.Zero && !string.IsNullOrWhiteSpace(model.MainWindowTitle); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + } + } + + if (!terminated) + { + try + { + model.ExecutablePath = process.MainModule?.FileName ?? string.Empty; + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + accessDenied = true; + model.ExecutablePath = string.Empty; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsPassiveProcessAccessException(ex)) + { + accessDenied = true; + model.ExecutablePath = string.Empty; + this.LogPassiveProcessReadFailure(model.ProcessId, PassiveProcessErrorKind.AccessDenied, ex); + } + catch (Exception ex) when (IsTerminatedProcessException(ex)) + { + terminated = true; + } + } + } + + if (terminated) + { + this.CleanupProcessResources(model.ProcessId); + } + + this.ApplyProcessClassification(model, foregroundProcessId, accessDenied, terminated); + return model; + } + + public async Task SetProcessorAffinity(ProcessModel process, long affinityMask) + { + this.EnsureProcessOperationAllowed(process, "SetProcessAffinity"); + + await Task.Run(() => + { + try + { + if (affinityMask == 0) + { + throw new InvalidOperationException("Affinity mask cannot be zero."); + } + + // Try using CPU Sets first (Windows 10+) + if (this.useCpuSets) + { + bool cpuSetSuccess = this.TrySetAffinityViaCpuSets(process, affinityMask); + if (cpuSetSuccess) + { + this.logger?.LogInformation( + "Successfully applied CPU Sets affinity 0x{AffinityMask:X} to process {ProcessName} (PID: {ProcessId})", + affinityMask, process.Name, process.ProcessId); + + // Update the model with the new affinity + process.ProcessorAffinity = affinityMask; + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: true); + return; + } + else + { + this.logger?.LogDebug( + "CPU Sets failed for process {ProcessName} (PID: {ProcessId}), falling back to classic ProcessorAffinity", + process.Name, process.ProcessId); + } + } + + // Fallback to classic ProcessorAffinity method + using var targetProcess = Process.GetProcessById(process.ProcessId); + + targetProcess.ProcessorAffinity = new IntPtr(affinityMask); + process.ProcessorAffinity = (long)targetProcess.ProcessorAffinity; + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: true); + + this.logger?.LogInformation( + "Successfully applied classic ProcessorAffinity 0x{AffinityMask:X} to process {ProcessName} (PID: {ProcessId})", + affinityMask, process.Name, process.ProcessId); + } + catch (Win32Exception ex) when (ex.NativeErrorCode == 87) + { + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); + throw new InvalidOperationException("Invalid affinity mask for this system.", ex); + } + catch (Win32Exception ex) when (ex.NativeErrorCode == 5) + { + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); + throw new InvalidOperationException("Access denied while setting processor affinity. The process may be protected (e.g., anti-cheat).", ex); + } + catch (Exception ex) + { + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); + throw new InvalidOperationException($"Failed to set processor affinity: {ex.Message}"); + } + }).ConfigureAwait(false); + } + + public async Task SetProcessorAffinity(ProcessModel process, CpuSelection selection) + { + if (process == null) + { + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + "Process is no longer running.", + "ProcessModel is null.", + failureReason: AffinityApplyFailureReason.ProcessTerminated); + } + + try + { + this.EnsureProcessOperationAllowed(process, "SetProcessAffinity"); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsAccessDenied(ex)) + { + this.AuditProcessOperation("SetProcessAffinity", process?.Name ?? string.Empty, success: false); + var antiCheatLikely = AffinityApplyExceptionClassifier.IsAntiCheatLikely(ex); + return AffinityApplyResult.Failed( + antiCheatLikely + ? AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely + : AffinityApplyErrorCodes.AccessDenied, + antiCheatLikely + ? CpuSelectionAffinityApplier.AntiCheatUserMessage + : CpuSelectionAffinityApplier.AccessDeniedUserMessage, + ex.Message, + isAccessDenied: true, + isAntiCheatLikely: antiCheatLikely, + verifiedMask: process?.ProcessorAffinity ?? 0, + failureReason: AffinityApplyFailureReason.AccessDenied); + } + catch (Exception ex) when (AffinityApplyExceptionClassifier.IsProcessExited(ex)) + { + this.AuditProcessOperation("SetProcessAffinity", process?.Name ?? string.Empty, success: false); + return AffinityApplyResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + "Process is no longer running.", + ex.Message, + verifiedMask: process?.ProcessorAffinity ?? 0, + failureReason: AffinityApplyFailureReason.ProcessTerminated); + } + + return await this.cpuSelectionAffinityApplier.ApplyAsync(process, selection).ConfigureAwait(false); + } + + private bool TrySetAffinityViaCpuSets(ProcessModel process, long affinityMask) + { + try + { + // Get or create CPU Set handler for this process + var handler = this.GetOrCreateCpuSetHandler(process); + + // Check if handler is valid + if (!handler.IsValid) + { + this.logger?.LogDebug( + "CPU Set handler for process {ProcessName} (PID: {ProcessId}) is invalid", + process.Name, process.ProcessId); + + // Remove invalid handler + this.cpuSetHandlers.TryRemove(process.ProcessId, out _); + return false; + } + + // Apply the CPU Set mask + bool success = handler.ApplyCpuSetMask(affinityMask, clearMask: false); + + if (!success) + { + // Remove failed handler so we can try again later if needed + this.cpuSetHandlers.TryRemove(process.ProcessId, out _); + } + + return success; + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Exception while applying CPU Sets to process {ProcessName} (PID: {ProcessId})", + process.Name, process.ProcessId); + + // Remove handler on exception + this.cpuSetHandlers.TryRemove(process.ProcessId, out _); + return false; + } + } + + private IProcessCpuSetHandler GetOrCreateCpuSetHandler(ProcessModel process) => + this.cpuSetHandlers.GetOrAdd(process.ProcessId, pid => + { + return new ProcessCpuSetHandler((uint)pid, process.Name, this.logger); + }); + + private async Task ApplyLegacyProcessorAffinityDirectAsync(ProcessModel process, long affinityMask) + { + return await Task.Run(() => + { + try + { + using var targetProcess = Process.GetProcessById(process.ProcessId); + targetProcess.ProcessorAffinity = new IntPtr(affinityMask); + var verifiedMask = (long)targetProcess.ProcessorAffinity; + process.ProcessorAffinity = verifiedMask; + + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: true); + this.logger?.LogInformation( + "Successfully applied classic ProcessorAffinity 0x{AffinityMask:X} to process {ProcessName} (PID: {ProcessId})", + affinityMask, + process.Name, + process.ProcessId); + + return verifiedMask; + } + catch + { + this.AuditProcessOperation("SetProcessAffinity", process.Name, success: false); + throw; + } + }).ConfigureAwait(false); + } + + public async Task SetProcessPriority(ProcessModel process, ProcessPriorityClass priority) + { + ArgumentNullException.ThrowIfNull(process); + if (ProcessPriorityGuardrails.IsBlocked(priority)) + { + this.logger?.LogWarning( + "Blocked priority change for process {ProcessName} (PID: {ProcessId}): {Message}", + process.Name, + process.ProcessId, + ProcessOperationUserMessages.RealtimePriorityBlocked); + this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); + throw new InvalidOperationException(ProcessOperationUserMessages.RealtimePriorityBlocked); + } + + this.EnsureProcessOperationAllowed(process, "SetProcessPriority"); + + var warning = ProcessPriorityGuardrails.GetWarning(priority); + if (!string.IsNullOrWhiteSpace(warning)) + { + this.logger?.LogWarning( + "Applying High priority to process {ProcessName} (PID: {ProcessId}): {Message}", + process.Name, + process.ProcessId, + warning); + } + + await Task.Run(() => + { + try + { + using var targetProcess = Process.GetProcessById(process.ProcessId); + + targetProcess.PriorityClass = priority; + process.Priority = targetProcess.PriorityClass; + this.AuditProcessOperation("SetProcessPriority", process.Name, success: true); + } + catch (Win32Exception ex) when (ex.NativeErrorCode == 5) + { + this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); + throw new InvalidOperationException(ProcessOperationUserMessages.AccessDenied, ex); + } + catch (UnauthorizedAccessException ex) + { + this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); + throw new InvalidOperationException(ProcessOperationUserMessages.AccessDenied, ex); + } + catch (Exception ex) + { + this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); + throw new InvalidOperationException($"Failed to set process priority: {ex.Message}"); + } + }).ConfigureAwait(false); + } + + public async Task SaveProcessProfile(string profileName, ProcessModel process) + { + var profile = new ProcessProfileSnapshot + { + ProcessName = process.Name, + Priority = process.Priority, + ProcessorAffinity = process.ProcessorAffinity, + }; + + var topology = await this.TryGetTopologySnapshotAsync().ConfigureAwait(false); + if (topology != null) + { + this.cpuSelectionMigrationService.PrepareProcessProfileForSave(profile, topology); + } + + var filePath = Path.Combine(this.ProfilesDirectory, $"{profileName}.json"); + var json = JsonSerializer.Serialize(profile, new JsonSerializerOptions { WriteIndented = true }); + await AtomicFileWriter.WriteAllTextAsync(filePath, json, Encoding.UTF8).ConfigureAwait(false); + return true; + } + + public async Task LoadProcessProfile(string profileName, ProcessModel process) + { + var filePath = Path.Combine(this.ProfilesDirectory, $"{profileName}.json"); + if (!File.Exists(filePath)) + { + return false; + } + + var content = await File.ReadAllTextAsync(filePath).ConfigureAwait(false); + var profile = JsonSerializer.Deserialize(content, new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true, + ReadCommentHandling = JsonCommentHandling.Skip, + AllowTrailingCommas = true, + }); + + if (profile == null) + { + return false; + } + + if (ProcessPriorityGuardrails.IsBlocked(profile.Priority)) + { + this.logger?.LogWarning( + "Profile {ProfileName} requested blocked priority {Priority} for process {ProcessName} (PID: {ProcessId}). {Message}", + profileName, + profile.Priority, + process.Name, + process.ProcessId, + ProcessOperationUserMessages.RealtimePriorityBlocked); + return false; + } + + await this.SetLoadProcessProfilePriorityAsync(process, profile.Priority).ConfigureAwait(false); + var topology = await this.TryGetTopologySnapshotAsync().ConfigureAwait(false); + if (topology != null) + { + this.cpuSelectionMigrationService.MigrateProcessProfile(profile, topology); + } + + if (profile.CpuSelection != null) + { + var result = await this.SetLoadProcessProfileCpuSelectionAsync(process, profile.CpuSelection).ConfigureAwait(false); + if (!result.Success) + { + this.logger?.LogWarning( + "Failed to apply CpuSelection profile {ProfileName} to process {ProcessName} (PID: {ProcessId}). ErrorCode: {ErrorCode}. Message: {Message}", + profileName, + process.Name, + process.ProcessId, + result.ErrorCode, + result.Message); + + return false; + } + } + else + { + await this.SetLoadProcessProfileLegacyAffinityAsync(process, profile.ProcessorAffinity).ConfigureAwait(false); + } + + return true; + } + + private Task SetLoadProcessProfilePriorityAsync(ProcessModel process, ProcessPriorityClass priority) => + this.loadProcessProfilePrioritySetter != null + ? this.loadProcessProfilePrioritySetter(process, priority) + : this.SetProcessPriority(process, priority); + + private Task SetLoadProcessProfileCpuSelectionAsync(ProcessModel process, CpuSelection selection) => + this.loadProcessProfileCpuSelectionSetter != null + ? this.loadProcessProfileCpuSelectionSetter(process, selection) + : this.SetProcessorAffinity(process, selection); + + private Task SetLoadProcessProfileLegacyAffinityAsync(ProcessModel process, long affinityMask) => + this.loadProcessProfileLegacyAffinitySetter != null + ? this.loadProcessProfileLegacyAffinitySetter(process, affinityMask) + : this.SetProcessorAffinity(process, affinityMask); + + private async Task TryGetTopologySnapshotAsync() + { + if (this.cpuTopologyProvider == null) + { + return null; + } + + try + { + return await this.cpuTopologyProvider.GetTopologySnapshotAsync().ConfigureAwait(false); + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Failed to get CPU topology snapshot for profile CpuSelection migration"); + return null; + } + } + + public async Task RefreshProcessInfo(ProcessModel process) + { + await Task.Run(() => + { + try + { + using var p = Process.GetProcessById(process.ProcessId); + + // Check if process has exited + if (p.HasExited) + { + throw new InvalidOperationException("Process has exited"); + } + + process.MemoryUsage = p.PrivateMemorySize64; + process.Priority = p.PriorityClass; + process.ProcessorAffinity = (long)p.ProcessorAffinity; + process.CpuUsage = this.CalculateCpuUsage(p); + + // Update window information + process.MainWindowHandle = p.MainWindowHandle; + process.MainWindowTitle = p.MainWindowTitle ?? string.Empty; + process.HasVisibleWindow = process.MainWindowHandle != IntPtr.Zero && !string.IsNullOrWhiteSpace(process.MainWindowTitle); + this.ApplyProcessClassification( + process, + this.foregroundProcessService?.TryGetForegroundProcessId(), + accessDenied: false, + terminated: false); + } + catch (ArgumentException) + { + // Process with the specified ID does not exist + this.CleanupProcessResources(process.ProcessId); + this.ApplyProcessClassification(process, null, accessDenied: false, terminated: true); + throw new InvalidOperationException("Process no longer exists"); + } + catch (Exception ex) when (IsAccessDeniedException(ex)) + { + this.ApplyProcessClassification(process, null, accessDenied: true, terminated: false); + throw new InvalidOperationException("Access denied while refreshing process information.", ex); + } + catch (Exception ex) when (ex.Message.Contains("exited") || ex.Message.Contains("terminated")) + { + // Process has terminated + this.CleanupProcessResources(process.ProcessId); + this.ApplyProcessClassification(process, null, accessDenied: false, terminated: true); + throw new InvalidOperationException("Process has terminated"); + } + }).ConfigureAwait(false); + } + + private void ApplyProcessClassification( + ProcessModel process, + int? foregroundProcessId, + bool accessDenied, + bool terminated) + { + process.IsForeground = foregroundProcessId == process.ProcessId && !accessDenied && !terminated; + process.Classification = this.processClassifier.Classify( + process, + new ProcessClassificationContext(foregroundProcessId, accessDenied, terminated)); + } + + private void LogPassiveProcessReadFailure(int processId, PassiveProcessErrorKind errorKind, Exception exception) + { + if (this.passiveProcessErrorThrottle.ShouldLog(processId, errorKind)) + { + this.logger?.LogDebug( + exception, + "Passive process read returned {ErrorKind} for PID {ProcessId}", + errorKind, + processId); + } + } + + internal static bool IsPassiveProcessAccessException(Exception exception) + { + return IsAccessDeniedException(exception) || + exception is Win32Exception { NativeErrorCode: 299 } || + exception.Message.Contains("enumerate the process modules", StringComparison.OrdinalIgnoreCase) || + exception.Message.Contains("access modules", StringComparison.OrdinalIgnoreCase) || + exception.Message.Contains("ReadProcessMemory", StringComparison.OrdinalIgnoreCase); + } + + private static bool IsAccessDeniedException(Exception exception) + { + return exception is UnauthorizedAccessException || + exception is Win32Exception { NativeErrorCode: 5 }; + } + + private static bool IsTerminatedProcessException(Exception exception) + { + return exception is ArgumentException || + (exception is InvalidOperationException invalidOperationException && + (invalidOperationException.Message.Contains("exited", StringComparison.OrdinalIgnoreCase) || + invalidOperationException.Message.Contains("terminated", StringComparison.OrdinalIgnoreCase) || + invalidOperationException.Message.Contains("no longer exists", StringComparison.OrdinalIgnoreCase))); + } + + private static int? TryGetProcessId(Process process) + { + try + { + return process.Id; + } + catch + { + return null; + } + } + + private static ProcessModel? CreateMinimalProcessModel( + Process process, + int? processId, + ProcessClassification classification) + { + if (!processId.HasValue) + { + return null; + } + + return new ProcessModel + { + ProcessId = processId.Value, + Name = TryGetProcessName(process, processId.Value), + ExecutablePath = string.Empty, + MainWindowHandle = IntPtr.Zero, + MainWindowTitle = string.Empty, + HasVisibleWindow = false, + Classification = classification, + }; + } + + private static string TryGetProcessName(Process process, int processId) + { + try + { + return process.ProcessName; + } + catch + { + return $"PID_{processId}"; + } + } + + private void CleanupProcessResources(int processId) + { + // Remove CPU samples + this.cpuSamples.TryRemove(processId, out _); + + // Dispose and remove CPU Set handler + if (this.cpuSetHandlers.TryRemove(processId, out var handler)) + { + try + { + handler.Dispose(); + this.logger?.LogDebug("Cleaned up CPU Set handler for process ID {ProcessId}", processId); + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Error disposing CPU Set handler for process ID {ProcessId}", processId); + } + } + } + + public void SetUseCpuSets(bool useCpuSets) + { + this.useCpuSets = useCpuSets; + this.logger?.LogInformation("CPU Sets usage {Status}", useCpuSets ? "enabled" : "disabled"); + } + + public bool GetUseCpuSets() + { + return this.useCpuSets; + } + + public async Task ClearProcessCpuSetAsync(ProcessModel process) + { + return await Task.Run(() => + { + try + { + if (!this.useCpuSets) + { + this.logger?.LogDebug("CPU Sets are disabled, cannot clear CPU Set for process {ProcessName}", process.Name); + return false; + } + + // Get or create CPU Set handler for this process + var handler = this.cpuSetHandlers.GetOrAdd(process.ProcessId, pid => + { + return new ProcessCpuSetHandler((uint)pid, process.Name, this.logger); + }); + + if (!handler.IsValid) + { + this.logger?.LogDebug( + "CPU Set handler for process {ProcessName} (PID: {ProcessId}) is invalid", + process.Name, process.ProcessId); + this.cpuSetHandlers.TryRemove(process.ProcessId, out _); + return false; + } + + // Clear the mask (set clearMask = true) + bool success = handler.ApplyCpuSetMask(0, clearMask: true); + + if (success) + { + this.logger?.LogInformation( + "Successfully cleared CPU Set for process {ProcessName} (PID: {ProcessId})", + process.Name, process.ProcessId); + } + else + { + this.cpuSetHandlers.TryRemove(process.ProcessId, out _); + } + + return success; + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Exception while clearing CPU Set for process {ProcessName} (PID: {ProcessId})", + process.Name, process.ProcessId); + this.cpuSetHandlers.TryRemove(process.ProcessId, out _); + return false; + } + }).ConfigureAwait(false); + } + + public async Task GetProcessByIdAsync(int processId) + { + return await Task.Run(() => + { + try + { + var process = Process.GetProcessById(processId); + return this.CreateProcessModel(process); + } + catch + { + return null; + } + }).ConfigureAwait(false); + } + + public async Task> GetProcessesByNameAsync(string executableName) + { + return await Task.Run(() => + { + try + { + var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); + var processes = Process.GetProcessesByName(executableName) + .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) + .OfType(); + + return processes; + } + catch + { + return Enumerable.Empty(); + } + }).ConfigureAwait(false); + } + + public async Task IsProcessRunningAsync(string executableName) + { + var processes = await this.GetProcessesByNameAsync(executableName).ConfigureAwait(false); + return processes.Any(); + } + + public async Task> GetProcessesWithPathsAsync() + { + return await Task.Run(() => + { + var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); + var processes = Process.GetProcesses() + .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) + .OfType() + .Where(p => !string.IsNullOrEmpty(p.ExecutablePath)) + .OrderBy(p => p.Name); + + return processes; + }).ConfigureAwait(false); + } + + public async Task> GetActiveApplicationsAsync() + { + return await Task.Run(() => + { + var foregroundProcessId = this.foregroundProcessService?.TryGetForegroundProcessId(); + var processes = Process.GetProcesses() + .Select(process => this.TryCreateProcessModel(process, foregroundProcessId)) + .OfType() + .Where(p => p.HasVisibleWindow) + .OrderBy(p => p.Name); + + return new ObservableCollection(processes); + }).ConfigureAwait(false); + } + + public async Task IsProcessStillRunning(ProcessModel process) + { + return await Task.Run(() => + { + try + { + var p = Process.GetProcessById(process.ProcessId); + return !p.HasExited; + } + catch (ArgumentException) + { + // Process with the specified ID does not exist + return false; + } + catch + { + // Any other exception means process is not accessible/running + return false; + } + }).ConfigureAwait(false); + } + + public async Task SetIdleServerStateAsync(ProcessModel process, bool enableIdleServer) + { + return await Task.Run(() => + { + try + { + // Get the actual process + var actualProcess = Process.GetProcessById(process.ProcessId); + + // Use Windows API to set execution state for the process + // This prevents the system from entering idle state while the process is running + if (!enableIdleServer) + { + // Disable idle server by setting ES_CONTINUOUS | ES_SYSTEM_REQUIRED + // This keeps the system awake while the process is running + var result = NativeMethods.SetThreadExecutionState( + NativeMethods.EXECUTION_STATE.ES_CONTINUOUS | + NativeMethods.EXECUTION_STATE.ES_SYSTEM_REQUIRED); + + return result != 0; + } + else + { + // Re-enable idle server by clearing the execution state + var result = NativeMethods.SetThreadExecutionState( + NativeMethods.EXECUTION_STATE.ES_CONTINUOUS); + + return result != 0; + } + } + catch (Exception) + { + return false; + } + }).ConfigureAwait(false); + } + + public async Task SetRegistryPriorityAsync(ProcessModel process, bool enable, ProcessPriorityClass priority) + { + ArgumentNullException.ThrowIfNull(process); + + if (enable && ProcessPriorityGuardrails.IsBlocked(priority)) + { + this.logger?.LogWarning( + "Registry priority request blocked for process {ProcessName} (PID: {ProcessId}). {Message}", + process.Name, + process.ProcessId, + ProcessOperationUserMessages.RealtimePriorityBlocked); + this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); + return false; + } + + this.EnsureProcessOperationAllowed(process, "SetProcessPriority"); + + return await Task.Run(() => + { + try + { + using var key = Microsoft.Win32.Registry.LocalMachine.CreateSubKey( + @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\" + + Path.GetFileName(process.ExecutablePath)); + + if (enable) + { + // Convert ProcessPriorityClass to registry priority value + int priorityValue = priority switch + { + ProcessPriorityClass.Idle => 4, + ProcessPriorityClass.BelowNormal => 6, + ProcessPriorityClass.Normal => 8, + ProcessPriorityClass.AboveNormal => 10, + ProcessPriorityClass.High => 13, + ProcessPriorityClass.RealTime => 24, + _ => 8, // Default to Normal + }; + + key.SetValue("PriorityClass", priorityValue, Microsoft.Win32.RegistryValueKind.DWord); + } + else + { + // Remove the registry entry to disable enforcement + key.DeleteValue("PriorityClass", false); + } + + this.AuditProcessOperation("SetProcessPriority", process.Name, success: true); + + return true; + } + catch (Exception) + { + this.AuditProcessOperation("SetProcessPriority", process.Name, success: false); + return false; + } + }).ConfigureAwait(false); + } + + private void EnsureProcessOperationAllowed(ProcessModel process, string operation) + { + ArgumentNullException.ThrowIfNull(process); + + if (this.securityService == null) + { + return; + } + + var processName = this.GetProcessDisplayName(process); + if (!this.securityService.ValidateProcessOperation(processName, operation)) + { + this.AuditProcessOperation(operation, processName, success: false); + throw new UnauthorizedAccessException( + $"Operation '{operation}' is not permitted for process '{processName}'."); + } + + try + { + using var liveProcess = Process.GetProcessById(process.ProcessId); + if (this.securityService.IsProtected(liveProcess)) + { + this.AuditProcessOperation(operation, processName, success: false); + throw new UnauthorizedAccessException( + $"Operation '{operation}' is blocked for protected process '{processName}'."); + } + } + catch (ArgumentException) + { + // Process already exited; defer to operation code-paths for termination handling. + } + } + + private string GetProcessDisplayName(ProcessModel process) + { + if (!string.IsNullOrWhiteSpace(process.Name)) + { + return process.Name; + } + + return $"PID_{process.ProcessId}"; + } + + private void AuditProcessOperation(string operation, string processName, bool success) + { + if (this.securityService == null) + { + return; + } + + TaskSafety.FireAndForget( + this.securityService.AuditElevatedAction(operation, processName, success), + ex => this.logger?.LogDebug(ex, "Security audit logging failed for {Operation} on {ProcessName}", operation, processName)); + } + + public void TrackAppliedMask(int processId, string maskId) + { + this.appliedMasks[processId] = maskId; + this.logger?.LogDebug("Tracking mask {MaskId} applied to process {ProcessId}", maskId, processId); + } + + public void TrackPriorityChange(int processId, ProcessPriorityClass originalPriority) + { + // Only track if not already tracked (keep the original priority) + if (!this.originalPriorities.ContainsKey(processId)) + { + this.originalPriorities[processId] = originalPriority; + this.logger?.LogDebug("Tracking original priority {Priority} for process {ProcessId}", originalPriority, processId); + } + } + + public void UntrackProcess(int processId) + { + this.appliedMasks.TryRemove(processId, out _); + this.originalPriorities.TryRemove(processId, out _); + this.CleanupProcessResources(processId); + this.logger?.LogDebug("Untracked process {ProcessId}", processId); + } + + public Task ClearAllAppliedMasksAsync() + { + this.logger?.LogInformation("Clearing all applied CPU masks from {Count} tracked processes", this.appliedMasks.Count); + + var processIds = this.appliedMasks.Keys.ToList(); + var clearedCount = 0; + var failedCount = 0; + + foreach (var processId in processIds) + { + try + { + // Check if process is still running + Process process; + try + { + process = Process.GetProcessById(processId); + if (process.HasExited) + { + this.appliedMasks.TryRemove(processId, out _); + continue; + } + } + catch (ArgumentException) + { + // Process no longer exists + this.appliedMasks.TryRemove(processId, out _); + continue; + } + + // Clear CPU Set if we have a handler + if (this.cpuSetHandlers.TryGetValue(processId, out var handler) && handler.IsValid) + { + handler.ApplyCpuSetMask(0, clearMask: true); + this.logger?.LogDebug( + "Cleared CPU Set for process {ProcessName} (PID: {ProcessId})", + process.ProcessName, processId); + } + + // Reset processor affinity to all cores + try + { + long allCoresMask = this.GetAllCoresAffinityMask(); + process.ProcessorAffinity = new IntPtr(allCoresMask); + this.logger?.LogDebug( + "Reset ProcessorAffinity for process {ProcessName} (PID: {ProcessId})", + process.ProcessName, processId); + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Failed to reset ProcessorAffinity for process PID {ProcessId}", processId); + } + + this.appliedMasks.TryRemove(processId, out _); + clearedCount++; + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Failed to clear mask for process PID {ProcessId}", processId); + failedCount++; + } + } + + this.logger?.LogInformation("Cleared CPU masks: {Cleared} succeeded, {Failed} failed", clearedCount, failedCount); + return Task.CompletedTask; + } + + public Task ResetAllProcessPrioritiesAsync() + { + this.logger?.LogInformation("Resetting priorities for {Count} tracked processes", this.originalPriorities.Count); + + var processIds = this.originalPriorities.Keys.ToList(); + var resetCount = 0; + var failedCount = 0; + + foreach (var processId in processIds) + { + try + { + // Check if process is still running + Process process; + try + { + process = Process.GetProcessById(processId); + if (process.HasExited) + { + this.originalPriorities.TryRemove(processId, out _); + continue; + } + } + catch (ArgumentException) + { + // Process no longer exists + this.originalPriorities.TryRemove(processId, out _); + continue; + } + + // Get original priority + if (this.originalPriorities.TryGetValue(processId, out var originalPriority)) + { + process.PriorityClass = originalPriority; + this.logger?.LogDebug( + "Reset priority for process {ProcessName} (PID: {ProcessId}) to {Priority}", + process.ProcessName, processId, originalPriority); + } + + this.originalPriorities.TryRemove(processId, out _); + resetCount++; + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Failed to reset priority for process PID {ProcessId}", processId); + failedCount++; + } + } + + this.logger?.LogInformation("Reset priorities: {Reset} succeeded, {Failed} failed", resetCount, failedCount); + return Task.CompletedTask; + } + + private long GetAllCoresAffinityMask() + { + int coreCount = Environment.ProcessorCount; + return coreCount >= 64 ? -1L : (1L << coreCount) - 1; + } + + private void MigrateLegacyProfilesIfNeeded() + { + try + { + if (!Directory.Exists(LegacyProfilesDirectory)) + { + return; + } + + Directory.CreateDirectory(this.ProfilesDirectory); + var legacyFiles = Directory.GetFiles(LegacyProfilesDirectory, "*.json"); + foreach (var legacyFile in legacyFiles) + { + var destinationFile = Path.Combine(this.ProfilesDirectory, Path.GetFileName(legacyFile)); + if (!File.Exists(destinationFile)) + { + File.Copy(legacyFile, destinationFile); + } + } + + if (legacyFiles.Length > 0) + { + this.logger?.LogInformation("Migrated {Count} legacy profile files to AppData storage", legacyFiles.Length); + } + } + catch (Exception ex) + { + this.logger?.LogWarning(ex, "Failed to migrate legacy profile files"); + } + } + } + + internal static class NativeMethods + { + [System.Runtime.InteropServices.DllImport("kernel32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + public static extern uint SetThreadExecutionState(EXECUTION_STATE esFlags); + + [System.Flags] + public enum EXECUTION_STATE : uint + { + ES_AWAYMODE_REQUIRED = 0x00000040, + ES_CONTINUOUS = 0x80000000, + ES_DISPLAY_REQUIRED = 0x00000002, + ES_SYSTEM_REQUIRED = 0x00000001, + } + } +} diff --git a/Services/RetryPolicyService.cs b/Services/RetryPolicyService.cs deleted file mode 100644 index 4e4204b..0000000 --- a/Services/RetryPolicyService.cs +++ /dev/null @@ -1,155 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.ComponentModel; - using System.IO; - using System.Management; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Implementation of retry policy service with exponential backoff. - /// - public class RetryPolicyService : IRetryPolicyService - { - private readonly ILogger logger; - - public RetryPolicyService(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async Task ExecuteAsync(Func> operation, RetryPolicy? policy = null) - { - policy ??= CreateDefaultPolicy(); - - Exception? lastException = null; - var delay = policy.InitialDelay; - - for (int attempt = 1; attempt <= policy.MaxAttempts; attempt++) - { - try - { - var result = await operation(); - if (attempt > 1) - { - this.logger.LogInformation("Operation succeeded on attempt {Attempt}", attempt); - } - return result; - } - catch (Exception ex) - { - lastException = ex; - - if (attempt == policy.MaxAttempts || (policy.ShouldRetry != null && !policy.ShouldRetry(ex))) - { - this.logger.LogError(ex, "Operation failed after {Attempts} attempts", attempt); - throw; - } - - this.logger.LogWarning(ex, "Operation failed on attempt {Attempt}, retrying in {Delay}ms", - attempt, delay.TotalMilliseconds); - - await Task.Delay(delay); - delay = TimeSpan.FromMilliseconds(Math.Min( - delay.TotalMilliseconds * policy.BackoffMultiplier, - policy.MaxDelay.TotalMilliseconds)); - } - } - - throw lastException ?? new InvalidOperationException("Retry loop completed without result"); - } - - public async Task ExecuteAsync(Func operation, RetryPolicy? policy = null) - { - await this.ExecuteAsync( - async () => - { - await operation(); - return true; // Dummy return value - }, policy); - } - - public RetryPolicy CreateProcessOperationPolicy() - { - return new RetryPolicy - { - MaxAttempts = 3, - InitialDelay = TimeSpan.FromMilliseconds(200), - MaxDelay = TimeSpan.FromSeconds(2), - BackoffMultiplier = 1.5, - ShouldRetry = ex => ex switch - { - Win32Exception win32Ex when win32Ex.NativeErrorCode == 5 => false, // Access denied - don't retry - InvalidOperationException invalidOp when invalidOp.Message.Contains("terminated") => false, // Process terminated - UnauthorizedAccessException => false, // Permission issue - don't retry - _ => true // Retry other exceptions - }, - }; - } - - public RetryPolicy CreateWmiOperationPolicy() - { - return new RetryPolicy - { - MaxAttempts = 4, - InitialDelay = TimeSpan.FromMilliseconds(500), - MaxDelay = TimeSpan.FromSeconds(5), - BackoffMultiplier = 2.0, - ShouldRetry = ex => ex switch - { - ManagementException mgmtEx when mgmtEx.ErrorCode == ManagementStatus.AccessDenied => false, - ManagementException mgmtEx when mgmtEx.ErrorCode == ManagementStatus.NotFound => false, - _ => true - }, - }; - } - - public RetryPolicy CreateFileOperationPolicy() - { - return new RetryPolicy - { - MaxAttempts = 3, - InitialDelay = TimeSpan.FromMilliseconds(100), - MaxDelay = TimeSpan.FromSeconds(1), - BackoffMultiplier = 2.0, - ShouldRetry = ex => ex switch - { - FileNotFoundException => false, // File doesn't exist - don't retry - DirectoryNotFoundException => false, // Directory doesn't exist - don't retry - UnauthorizedAccessException => false, // Permission issue - don't retry - IOException ioEx when ioEx.Message.Contains("being used by another process") => true, // File in use - retry - _ => true - }, - }; - } - - private static RetryPolicy CreateDefaultPolicy() - { - return new RetryPolicy - { - MaxAttempts = 3, - InitialDelay = TimeSpan.FromMilliseconds(100), - MaxDelay = TimeSpan.FromSeconds(2), - BackoffMultiplier = 2.0, - }; - } - } -} - diff --git a/Services/SecurityService.cs b/Services/SecurityService.cs index be8dcba..cd4f777 100644 --- a/Services/SecurityService.cs +++ b/Services/SecurityService.cs @@ -1,19 +1,3 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ namespace ThreadPilot.Services { using System; @@ -25,9 +9,6 @@ namespace ThreadPilot.Services using Microsoft.Extensions.Logging; using Microsoft.Win32.SafeHandles; - /// - /// Service for security validation and auditing of elevated operations. - /// public class SecurityService : ISecurityService { private readonly ILogger logger; diff --git a/Services/SelfResourceManagementService.cs b/Services/SelfResourceManagementService.cs index 6350e5b..f345753 100644 --- a/Services/SelfResourceManagementService.cs +++ b/Services/SelfResourceManagementService.cs @@ -1,221 +1,205 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.ComponentModel; - using System.Diagnostics; - using Microsoft.Extensions.Logging; - - public static class SelfResourcePolicy - { - public static bool ShouldApplyLowImpactMode(bool isHidden, bool enableSelfLowImpactMode) - { - return isHidden && enableSelfLowImpactMode; - } - - public static bool ShouldLimitAffinity( - bool isHidden, - bool enableSelfLowImpactMode, - bool enableSelfAffinityLimit) - { - return ShouldApplyLowImpactMode(isHidden, enableSelfLowImpactMode) && enableSelfAffinityLimit; - } - - public static bool TryCreateLowImpactAffinityMask(int logicalProcessorCount, out long affinityMask) - { - affinityMask = 0; - - if (logicalProcessorCount <= 2 || logicalProcessorCount >= 64) - { - return false; - } - - var selectedProcessorCount = logicalProcessorCount >= 4 ? 2 : 1; - for (var index = logicalProcessorCount - selectedProcessorCount; index < logicalProcessorCount; index++) - { - affinityMask |= 1L << index; - } - - return affinityMask != 0; - } - } - - public sealed class SelfResourceManagementService : ISelfResourceManagementService - { - private readonly ILogger logger; - private readonly object syncRoot = new(); - private ProcessPriorityClass? originalPriority; - private IntPtr? originalAffinity; - private bool priorityLowered; - private bool affinityConstrained; - - public SelfResourceManagementService(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public void ApplyLowImpactMode(bool limitAffinity) - { - lock (this.syncRoot) - { - this.TryLowerPriority(); - - if (limitAffinity) - { - this.TryConstrainAffinity(); - return; - } - - this.TryRestoreAffinity(); - } - } - - public void RestoreForegroundMode() - { - lock (this.syncRoot) - { - this.TryRestoreAffinity(); - this.TryRestorePriority(); - } - } - - private void TryLowerPriority() - { - if (this.priorityLowered) - { - return; - } - - try - { - using var process = Process.GetCurrentProcess(); - var currentPriority = process.PriorityClass; - if (!ShouldLowerPriority(currentPriority)) - { - return; - } - - this.originalPriority = currentPriority; - process.PriorityClass = ProcessPriorityClass.BelowNormal; - this.priorityLowered = true; - this.logger.LogDebug("Lowered ThreadPilot priority from {OriginalPriority} to BelowNormal", currentPriority); - } - catch (Win32Exception ex) - { - this.logger.LogDebug(ex, "Windows blocked ThreadPilot self-priority lowering"); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to lower ThreadPilot priority"); - } - } - - private void TryConstrainAffinity() - { - if (this.affinityConstrained) - { - return; - } - - try - { - if (!SelfResourcePolicy.TryCreateLowImpactAffinityMask(Environment.ProcessorCount, out var candidateMask)) - { - return; - } - - using var process = Process.GetCurrentProcess(); - var currentAffinity = process.ProcessorAffinity; - var effectiveMask = candidateMask & currentAffinity.ToInt64(); - if (effectiveMask == 0 || effectiveMask == currentAffinity.ToInt64()) - { - return; - } - - this.originalAffinity = currentAffinity; - process.ProcessorAffinity = new IntPtr(effectiveMask); - this.affinityConstrained = true; - this.logger.LogDebug("Constrained ThreadPilot affinity from 0x{OriginalAffinity:X} to 0x{LowImpactAffinity:X}", currentAffinity.ToInt64(), effectiveMask); - } - catch (Win32Exception ex) - { - this.logger.LogDebug(ex, "Windows blocked ThreadPilot self-affinity limiting"); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to constrain ThreadPilot affinity"); - } - } - - private void TryRestoreAffinity() - { - if (!this.affinityConstrained || this.originalAffinity == null) - { - return; - } - - try - { - using var process = Process.GetCurrentProcess(); - process.ProcessorAffinity = this.originalAffinity.Value; - this.logger.LogDebug("Restored ThreadPilot affinity to 0x{OriginalAffinity:X}", this.originalAffinity.Value.ToInt64()); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to restore ThreadPilot affinity"); - } - finally - { - this.affinityConstrained = false; - this.originalAffinity = null; - } - } - - private void TryRestorePriority() - { - if (!this.priorityLowered || this.originalPriority == null) - { - return; - } - - try - { - using var process = Process.GetCurrentProcess(); - process.PriorityClass = this.originalPriority.Value; - this.logger.LogDebug("Restored ThreadPilot priority to {OriginalPriority}", this.originalPriority.Value); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to restore ThreadPilot priority"); - } - finally - { - this.priorityLowered = false; - this.originalPriority = null; - } - } - - private static bool ShouldLowerPriority(ProcessPriorityClass priority) - { - return priority is ProcessPriorityClass.Normal - or ProcessPriorityClass.AboveNormal - or ProcessPriorityClass.High - or ProcessPriorityClass.RealTime; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.ComponentModel; + using System.Diagnostics; + using Microsoft.Extensions.Logging; + + public static class SelfResourcePolicy + { + public static bool ShouldApplyLowImpactMode(bool isHidden, bool enableSelfLowImpactMode) + { + return isHidden && enableSelfLowImpactMode; + } + + public static bool ShouldLimitAffinity( + bool isHidden, + bool enableSelfLowImpactMode, + bool enableSelfAffinityLimit) + { + return ShouldApplyLowImpactMode(isHidden, enableSelfLowImpactMode) && enableSelfAffinityLimit; + } + + public static bool TryCreateLowImpactAffinityMask(int logicalProcessorCount, out long affinityMask) + { + affinityMask = 0; + + if (logicalProcessorCount <= 2 || logicalProcessorCount >= 64) + { + return false; + } + + var selectedProcessorCount = logicalProcessorCount >= 4 ? 2 : 1; + for (var index = logicalProcessorCount - selectedProcessorCount; index < logicalProcessorCount; index++) + { + affinityMask |= 1L << index; + } + + return affinityMask != 0; + } + } + + public sealed class SelfResourceManagementService : ISelfResourceManagementService + { + private readonly ILogger logger; + private readonly object syncRoot = new(); + private ProcessPriorityClass? originalPriority; + private IntPtr? originalAffinity; + private bool priorityLowered; + private bool affinityConstrained; + + public SelfResourceManagementService(ILogger logger) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public void ApplyLowImpactMode(bool limitAffinity) + { + lock (this.syncRoot) + { + this.TryLowerPriority(); + + if (limitAffinity) + { + this.TryConstrainAffinity(); + return; + } + + this.TryRestoreAffinity(); + } + } + + public void RestoreForegroundMode() + { + lock (this.syncRoot) + { + this.TryRestoreAffinity(); + this.TryRestorePriority(); + } + } + + private void TryLowerPriority() + { + if (this.priorityLowered) + { + return; + } + + try + { + using var process = Process.GetCurrentProcess(); + var currentPriority = process.PriorityClass; + if (!ShouldLowerPriority(currentPriority)) + { + return; + } + + this.originalPriority = currentPriority; + process.PriorityClass = ProcessPriorityClass.BelowNormal; + this.priorityLowered = true; + this.logger.LogDebug("Lowered ThreadPilot priority from {OriginalPriority} to BelowNormal", currentPriority); + } + catch (Win32Exception ex) + { + this.logger.LogDebug(ex, "Windows blocked ThreadPilot self-priority lowering"); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to lower ThreadPilot priority"); + } + } + + private void TryConstrainAffinity() + { + if (this.affinityConstrained) + { + return; + } + + try + { + if (!SelfResourcePolicy.TryCreateLowImpactAffinityMask(Environment.ProcessorCount, out var candidateMask)) + { + return; + } + + using var process = Process.GetCurrentProcess(); + var currentAffinity = process.ProcessorAffinity; + var effectiveMask = candidateMask & currentAffinity.ToInt64(); + if (effectiveMask == 0 || effectiveMask == currentAffinity.ToInt64()) + { + return; + } + + this.originalAffinity = currentAffinity; + process.ProcessorAffinity = new IntPtr(effectiveMask); + this.affinityConstrained = true; + this.logger.LogDebug("Constrained ThreadPilot affinity from 0x{OriginalAffinity:X} to 0x{LowImpactAffinity:X}", currentAffinity.ToInt64(), effectiveMask); + } + catch (Win32Exception ex) + { + this.logger.LogDebug(ex, "Windows blocked ThreadPilot self-affinity limiting"); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to constrain ThreadPilot affinity"); + } + } + + private void TryRestoreAffinity() + { + if (!this.affinityConstrained || this.originalAffinity == null) + { + return; + } + + try + { + using var process = Process.GetCurrentProcess(); + process.ProcessorAffinity = this.originalAffinity.Value; + this.logger.LogDebug("Restored ThreadPilot affinity to 0x{OriginalAffinity:X}", this.originalAffinity.Value.ToInt64()); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to restore ThreadPilot affinity"); + } + finally + { + this.affinityConstrained = false; + this.originalAffinity = null; + } + } + + private void TryRestorePriority() + { + if (!this.priorityLowered || this.originalPriority == null) + { + return; + } + + try + { + using var process = Process.GetCurrentProcess(); + process.PriorityClass = this.originalPriority.Value; + this.logger.LogDebug("Restored ThreadPilot priority to {OriginalPriority}", this.originalPriority.Value); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to restore ThreadPilot priority"); + } + finally + { + this.priorityLowered = false; + this.originalPriority = null; + } + } + + private static bool ShouldLowerPriority(ProcessPriorityClass priority) + { + return priority is ProcessPriorityClass.Normal + or ProcessPriorityClass.AboveNormal + or ProcessPriorityClass.High + or ProcessPriorityClass.RealTime; + } + } +} diff --git a/Services/SemanticVersion.cs b/Services/SemanticVersion.cs index cf8dd64..d006f2a 100644 --- a/Services/SemanticVersion.cs +++ b/Services/SemanticVersion.cs @@ -1,104 +1,104 @@ -/* - * ThreadPilot - semantic version parsing for updater decisions. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Globalization; - - public readonly record struct SemanticVersion(int Major, int Minor, int Patch, string? Prerelease = null) - : IComparable - { - public bool IsPrerelease => !string.IsNullOrWhiteSpace(this.Prerelease); - - public static bool TryParse(string? value, out SemanticVersion version) - { - version = default; - if (string.IsNullOrWhiteSpace(value)) - { - return false; - } - - var sanitized = value.Trim(); - if (sanitized.StartsWith("v", StringComparison.OrdinalIgnoreCase)) - { - sanitized = sanitized[1..]; - } - - sanitized = sanitized.Split('+')[0]; - var versionAndPrerelease = sanitized.Split('-', 2); - var parts = versionAndPrerelease[0].Split('.'); - if (parts.Length < 2 || parts.Length > 3) - { - return false; - } - - if (!int.TryParse(parts[0], NumberStyles.None, CultureInfo.InvariantCulture, out var major) || - !int.TryParse(parts[1], NumberStyles.None, CultureInfo.InvariantCulture, out var minor)) - { - return false; - } - - var patch = 0; - if (parts.Length == 3 && - !int.TryParse(parts[2], NumberStyles.None, CultureInfo.InvariantCulture, out patch)) - { - return false; - } - - version = new SemanticVersion( - major, - minor, - patch, - versionAndPrerelease.Length == 2 ? versionAndPrerelease[1] : null); - return true; - } - - public int CompareTo(SemanticVersion other) - { - var major = this.Major.CompareTo(other.Major); - if (major != 0) - { - return major; - } - - var minor = this.Minor.CompareTo(other.Minor); - if (minor != 0) - { - return minor; - } - - var patch = this.Patch.CompareTo(other.Patch); - if (patch != 0) - { - return patch; - } - - if (!this.IsPrerelease && other.IsPrerelease) - { - return 1; - } - - if (this.IsPrerelease && !other.IsPrerelease) - { - return -1; - } - - return string.Compare(this.Prerelease, other.Prerelease, StringComparison.OrdinalIgnoreCase); - } - - public override string ToString() - { - var version = $"{this.Major}.{this.Minor}.{this.Patch}"; - return this.IsPrerelease ? $"{version}-{this.Prerelease}" : version; - } - - public static bool operator >(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) > 0; - - public static bool operator <(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) < 0; - - public static bool operator >=(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) >= 0; - - public static bool operator <=(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) <= 0; - } -} +/* + * ThreadPilot - semantic version parsing for updater decisions. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Globalization; + + public readonly record struct SemanticVersion(int Major, int Minor, int Patch, string? Prerelease = null) + : IComparable + { + public bool IsPrerelease => !string.IsNullOrWhiteSpace(this.Prerelease); + + public static bool TryParse(string? value, out SemanticVersion version) + { + version = default; + if (string.IsNullOrWhiteSpace(value)) + { + return false; + } + + var sanitized = value.Trim(); + if (sanitized.StartsWith("v", StringComparison.OrdinalIgnoreCase)) + { + sanitized = sanitized[1..]; + } + + sanitized = sanitized.Split('+')[0]; + var versionAndPrerelease = sanitized.Split('-', 2); + var parts = versionAndPrerelease[0].Split('.'); + if (parts.Length < 2 || parts.Length > 3) + { + return false; + } + + if (!int.TryParse(parts[0], NumberStyles.None, CultureInfo.InvariantCulture, out var major) || + !int.TryParse(parts[1], NumberStyles.None, CultureInfo.InvariantCulture, out var minor)) + { + return false; + } + + var patch = 0; + if (parts.Length == 3 && + !int.TryParse(parts[2], NumberStyles.None, CultureInfo.InvariantCulture, out patch)) + { + return false; + } + + version = new SemanticVersion( + major, + minor, + patch, + versionAndPrerelease.Length == 2 ? versionAndPrerelease[1] : null); + return true; + } + + public int CompareTo(SemanticVersion other) + { + var major = this.Major.CompareTo(other.Major); + if (major != 0) + { + return major; + } + + var minor = this.Minor.CompareTo(other.Minor); + if (minor != 0) + { + return minor; + } + + var patch = this.Patch.CompareTo(other.Patch); + if (patch != 0) + { + return patch; + } + + if (!this.IsPrerelease && other.IsPrerelease) + { + return 1; + } + + if (this.IsPrerelease && !other.IsPrerelease) + { + return -1; + } + + return string.Compare(this.Prerelease, other.Prerelease, StringComparison.OrdinalIgnoreCase); + } + + public override string ToString() + { + var version = $"{this.Major}.{this.Minor}.{this.Patch}"; + return this.IsPrerelease ? $"{version}-{this.Prerelease}" : version; + } + + public static bool operator >(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) > 0; + + public static bool operator <(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) < 0; + + public static bool operator >=(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) >= 0; + + public static bool operator <=(SemanticVersion left, SemanticVersion right) => left.CompareTo(right) <= 0; + } +} diff --git a/Services/ServiceConfiguration.cs b/Services/ServiceConfiguration.cs index 45a0a46..5fb5c07 100644 --- a/Services/ServiceConfiguration.cs +++ b/Services/ServiceConfiguration.cs @@ -1,273 +1,212 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System.Net.Http; - using System.Net.Http.Headers; - using Microsoft.Extensions.DependencyInjection; - using Microsoft.Extensions.Logging; - using ThreadPilot.Platforms.Windows; - using ThreadPilot.Services.Abstractions; - using ThreadPilot.ViewModels; - - /// - /// Centralized service configuration for dependency injection. - /// - public static class ServiceConfiguration - { - /// - /// Configure all application services. - /// - public static IServiceCollection ConfigureApplicationServices(this IServiceCollection services) - { - // Configure service infrastructure - services.ConfigureServiceInfrastructure(); - - // Configure core system services - services.ConfigureCoreSystemServices(); - - // Configure process management services - services.ConfigureProcessManagementServices(); - - // Configure application services - services.ConfigureApplicationLevelServices(); - - // Configure presentation layer - services.ConfigurePresentationLayer(); - - return services; - } - - /// - /// Configure service infrastructure (logging, factories, etc.) - /// - private static IServiceCollection ConfigureServiceInfrastructure(this IServiceCollection services) - { - // Logging infrastructure - services.AddLogging(builder => - { - builder.AddConsole(); - builder.SetMinimumLevel(LogLevel.Information); - }); - - // Enhanced logging service - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(sp => - { - var httpClient = new HttpClient(); - httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("ThreadPilot", "1.0")); - httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/vnd.github+json")); - return httpClient; - }); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - // Memory caching for performance - PERFORMANCE IMPROVEMENT - services.AddMemoryCache(); - - // Service lifecycle management - PERFORMANCE IMPROVEMENT - services.AddSingleton(); - services.AddSingleton(); - - // Error recovery and retry policies - RELIABILITY IMPROVEMENT - services.AddSingleton(); - - // Service factory for advanced service management - services.AddSingleton(); - - return services; - } - - /// - /// Configure core system services that interact directly with the OS. - /// - private static IServiceCollection ConfigureCoreSystemServices(this IServiceCollection services) - { - // Core system interaction services - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(ProcessMemoryPriorityNativeApi.Instance); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - // CoreMaskService needs IServiceProvider for checking profile references - services.AddSingleton(sp => - { - var logger = sp.GetRequiredService>(); - var cpuTopologyService = sp.GetRequiredService(); - var cpuTopologyProvider = sp.GetRequiredService(); - var migrationService = sp.GetRequiredService(); - return new CoreMaskService(logger, cpuTopologyService, sp, cpuTopologyProvider, migrationService); - }); - - return services; - } - - /// - /// Configure process monitoring and management services. - /// - private static IServiceCollection ConfigureProcessManagementServices(this IServiceCollection services) - { - // Process monitoring services - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - // Performance monitoring services - services.AddSingleton(); - services.AddSingleton(sp => new Lazy( - () => sp.GetRequiredService())); - services.AddSingleton(); - - return services; - } - - /// - /// Configure application-level services (settings, notifications, etc.) - /// - private static IServiceCollection ConfigureApplicationLevelServices(this IServiceCollection services) - { - // Application configuration and settings - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - // User interface services - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - // System integration services - services.AddSingleton(); - - // System optimization services - services.AddSingleton(); - - // Security and elevation services - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - - // System tweaks service - services.AddSingleton(); - - // Keyboard shortcut service - services.AddSingleton(); - - return services; - } - - /// - /// Configure presentation layer (ViewModels and Views). - /// - private static IServiceCollection ConfigurePresentationLayer(this IServiceCollection services) - { - // ViewModel factory for centralized ViewModel management - services.AddViewModelFactory(); - - // ViewModels - ProcessViewModel as Singleton to share state across views, others as Transient - services.AddSingleton(); - services.AddSingleton(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(sp => new Lazy( - () => sp.GetRequiredService())); - services.AddTransient(); - services.AddTransient(); - services.AddTransient(); - - // Views - Transient for proper lifecycle management - services.AddTransient(); - - return services; - } - - /// - /// Validate service configuration. - /// - public static void ValidateServiceConfiguration(IServiceProvider serviceProvider) - { - var loggerFactory = serviceProvider.GetRequiredService(); - var logger = loggerFactory.CreateLogger("ServiceConfiguration"); - - try - { - // Validate core services can be resolved - var coreServices = new[] - { - typeof(IProcessService), - typeof(IPowerPlanService), - typeof(ICpuTopologyService), - typeof(IEnhancedLoggingService), - typeof(IActivityAuditService), - typeof(IApplicationSettingsService), - }; - - foreach (var serviceType in coreServices) - { - var service = serviceProvider.GetRequiredService(serviceType); - if (service == null) - { - throw new InvalidOperationException($"Failed to resolve required service: {serviceType.Name}"); - } - } - - logger.LogInformation("Service configuration validation completed successfully"); - } - catch (Exception ex) - { - logger.LogError(ex, "Service configuration validation failed"); - throw; - } - } - } -} +namespace ThreadPilot.Services +{ + using System.Net.Http; + using System.Net.Http.Headers; + using Microsoft.Extensions.DependencyInjection; + using Microsoft.Extensions.Logging; + using ThreadPilot.Platforms.Windows; + using ThreadPilot.Services.Abstractions; + using ThreadPilot.ViewModels; + + public static class ServiceConfiguration + { + public static IServiceCollection ConfigureApplicationServices(this IServiceCollection services) + { + // Configure service infrastructure + services.ConfigureServiceInfrastructure(); + + // Configure core system services + services.ConfigureCoreSystemServices(); + + // Configure process management services + services.ConfigureProcessManagementServices(); + + // Configure application services + services.ConfigureApplicationLevelServices(); + + // Configure presentation layer + services.ConfigurePresentationLayer(); + + return services; + } + + private static IServiceCollection ConfigureServiceInfrastructure(this IServiceCollection services) + { + // Logging infrastructure + services.AddLogging(builder => builder.SetMinimumLevel(LogLevel.Information)); + + // Enhanced logging service + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(sp => + { + var httpClient = new HttpClient(); + httpClient.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue("ThreadPilot", "1.0")); + httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/vnd.github+json")); + return httpClient; + }); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + return services; + } + + private static IServiceCollection ConfigureCoreSystemServices(this IServiceCollection services) + { + // Core system interaction services + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(ProcessMemoryPriorityNativeApi.Instance); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + // CoreMaskService needs IServiceProvider for checking profile references + services.AddSingleton(sp => + { + var logger = sp.GetRequiredService>(); + var cpuTopologyService = sp.GetRequiredService(); + var cpuTopologyProvider = sp.GetRequiredService(); + var migrationService = sp.GetRequiredService(); + return new CoreMaskService(logger, cpuTopologyService, sp, cpuTopologyProvider, migrationService); + }); + + return services; + } + + private static IServiceCollection ConfigureProcessManagementServices(this IServiceCollection services) + { + // Process monitoring services + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + // Performance monitoring services + services.AddSingleton(); + services.AddSingleton(sp => new Lazy( + () => sp.GetRequiredService())); + services.AddSingleton(); + + return services; + } + + private static IServiceCollection ConfigureApplicationLevelServices(this IServiceCollection services) + { + // Application configuration and settings + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + // User interface services + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + // System integration services + services.AddSingleton(); + + // System optimization services + services.AddSingleton(); + + // Security and elevation services + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + + // System tweaks service + services.AddSingleton(); + + // Keyboard shortcut service + services.AddSingleton(); + + return services; + } + + private static IServiceCollection ConfigurePresentationLayer(this IServiceCollection services) + { + // ViewModels - ProcessViewModel as Singleton to share state across views, others as Transient + services.AddSingleton(); + services.AddSingleton(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(); + services.AddTransient(sp => new Lazy( + () => sp.GetRequiredService())); + services.AddTransient(); + services.AddTransient(); + + // Views - Transient for proper lifecycle management + services.AddTransient(); + + return services; + } + + public static void ValidateServiceConfiguration(IServiceProvider serviceProvider) + { + var loggerFactory = serviceProvider.GetRequiredService(); + var logger = loggerFactory.CreateLogger("ServiceConfiguration"); + + try + { + // Validate core services can be resolved + var coreServices = new[] + { + typeof(IProcessService), + typeof(IPowerPlanService), + typeof(ICpuTopologyService), + typeof(IEnhancedLoggingService), + typeof(IActivityAuditService), + typeof(IApplicationSettingsService), + }; + + foreach (var serviceType in coreServices) + { + var service = serviceProvider.GetRequiredService(serviceType); + if (service == null) + { + throw new InvalidOperationException($"Failed to resolve required service: {serviceType.Name}"); + } + } + + logger.LogInformation("Service configuration validation completed successfully"); + } + catch (Exception ex) + { + logger.LogError(ex, "Service configuration validation failed"); + throw; + } + } + } +} diff --git a/Services/ServiceDisposalCoordinator.cs b/Services/ServiceDisposalCoordinator.cs deleted file mode 100644 index e4de580..0000000 --- a/Services/ServiceDisposalCoordinator.cs +++ /dev/null @@ -1,197 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Coordinates proper disposal of services in priority order. - /// - public class ServiceDisposalCoordinator : IServiceDisposalCoordinator - { - private readonly ILogger logger; - private readonly List disposalItems = new(); - private readonly object lockObject = new(); - private bool disposed; - - public bool IsDisposed => this.disposed; - - public ServiceDisposalCoordinator(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public void RegisterService(string serviceName, IDisposable service, int priority = 0) - { - if (string.IsNullOrWhiteSpace(serviceName)) - { - throw new ArgumentException("Service name cannot be null or empty", nameof(serviceName)); - } - - if (service == null) - { - throw new ArgumentNullException(nameof(service)); - } - - lock (this.lockObject) - { - if (this.disposed) - { - throw new ObjectDisposedException(nameof(ServiceDisposalCoordinator)); - } - - this.disposalItems.Add(new DisposalItem - { - Name = serviceName, - Priority = priority, - DisposalAction = () => - { - service.Dispose(); - return Task.CompletedTask; - }, - }); - - this.logger.LogDebug( - "Registered service for disposal: {ServiceName} (Priority: {Priority})", - serviceName, priority); - } - } - - public void RegisterAsyncService(string serviceName, IAsyncDisposable service, int priority = 0) - { - if (string.IsNullOrWhiteSpace(serviceName)) - { - throw new ArgumentException("Service name cannot be null or empty", nameof(serviceName)); - } - - if (service == null) - { - throw new ArgumentNullException(nameof(service)); - } - - lock (this.lockObject) - { - if (this.disposed) - { - throw new ObjectDisposedException(nameof(ServiceDisposalCoordinator)); - } - - this.disposalItems.Add(new DisposalItem - { - Name = serviceName, - Priority = priority, - DisposalAction = async () => await service.DisposeAsync(), - }); - - this.logger.LogDebug( - "Registered async service for disposal: {ServiceName} (Priority: {Priority})", - serviceName, priority); - } - } - - public void RegisterDisposalAction(string actionName, Func disposalAction, int priority = 0) - { - if (string.IsNullOrWhiteSpace(actionName)) - { - throw new ArgumentException("Action name cannot be null or empty", nameof(actionName)); - } - - if (disposalAction == null) - { - throw new ArgumentNullException(nameof(disposalAction)); - } - - lock (this.lockObject) - { - if (this.disposed) - { - throw new ObjectDisposedException(nameof(ServiceDisposalCoordinator)); - } - - this.disposalItems.Add(new DisposalItem - { - Name = actionName, - Priority = priority, - DisposalAction = disposalAction, - }); - - this.logger.LogDebug( - "Registered disposal action: {ActionName} (Priority: {Priority})", - actionName, priority); - } - } - - public async Task DisposeAllAsync() - { - if (this.disposed) - { - return; - } - - List itemsToDispose; - lock (this.lockObject) - { - if (this.disposed) - { - return; - } - - // Sort by priority (higher priority disposed first) - itemsToDispose = this.disposalItems.OrderByDescending(x => x.Priority).ToList(); - this.disposed = true; - } - - this.logger.LogInformation("Starting coordinated disposal of {Count} services/actions", itemsToDispose.Count); - - foreach (var item in itemsToDispose) - { - try - { - this.logger.LogDebug("Disposing: {Name} (Priority: {Priority})", item.Name, item.Priority); - await item.DisposalAction(); - this.logger.LogDebug("Successfully disposed: {Name}", item.Name); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error disposing {Name}: {Error}", item.Name, ex.Message); - // Continue with other disposals even if one fails - } - } - - this.logger.LogInformation("Coordinated disposal completed"); - } - - public void Dispose() - { - this.DisposeAllAsync().GetAwaiter().GetResult(); - } - - private class DisposalItem - { - public string Name { get; set; } = string.Empty; - - public int Priority { get; set; } - - public Func DisposalAction { get; set; } = () => Task.CompletedTask; - } - } -} - diff --git a/Services/ServiceFactory.cs b/Services/ServiceFactory.cs deleted file mode 100644 index de20b20..0000000 --- a/Services/ServiceFactory.cs +++ /dev/null @@ -1,189 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using Microsoft.Extensions.DependencyInjection; - using Microsoft.Extensions.Logging; - using ThreadPilot.Services.Core; - - /// - /// Factory for creating and managing service instances with proper dependency resolution. - /// - public interface IServiceFactory - { - /// - /// Create a service instance of the specified type. - /// - T CreateService() - where T : class; - - /// - /// Create a service instance with additional parameters. - /// - T CreateService(params object[] parameters) - where T : class; - - /// - /// Get or create a singleton service instance. - /// - T GetSingletonService() - where T : class; - - /// - /// Initialize all core services. - /// - Task InitializeAllServicesAsync(); - - /// - /// Dispose all managed services. - /// - Task DisposeAllServicesAsync(); - } - - /// - /// Implementation of service factory with dependency injection support. - /// - public class ServiceFactory : IServiceFactory, IDisposable - { - private readonly IServiceProvider serviceProvider; - private readonly ILogger logger; - private readonly Dictionary singletonInstances = new(); - private readonly List managedServices = new(); - private bool disposed; - - public ServiceFactory(IServiceProvider serviceProvider, ILogger logger) - { - this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public T CreateService() - where T : class - { - try - { - var service = this.serviceProvider.GetRequiredService(); - - // Track system services for lifecycle management - if (service is ISystemService systemService) - { - this.managedServices.Add(systemService); - } - - return service; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to create service of type {ServiceType}", typeof(T).Name); - throw; - } - } - - public T CreateService(params object[] parameters) - where T : class - { - try - { - // For services with additional parameters, use ActivatorUtilities - var service = ActivatorUtilities.CreateInstance(this.serviceProvider, parameters); - - if (service is ISystemService systemService) - { - this.managedServices.Add(systemService); - } - - return service; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to create service of type {ServiceType} with parameters", typeof(T).Name); - throw; - } - } - - public T GetSingletonService() - where T : class - { - var serviceType = typeof(T); - - if (this.singletonInstances.TryGetValue(serviceType, out var existingInstance)) - { - return (T)existingInstance; - } - - var newInstance = this.CreateService(); - this.singletonInstances[serviceType] = newInstance; - - return newInstance; - } - - public async Task InitializeAllServicesAsync() - { - this.logger.LogInformation("Initializing all managed services"); - - var initializationTasks = this.managedServices.Select(async service => - { - try - { - await service.InitializeAsync(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to initialize service {ServiceType}", service.GetType().Name); - throw; - } - }); - - await Task.WhenAll(initializationTasks); - this.logger.LogInformation("All managed services initialized successfully"); - } - - public async Task DisposeAllServicesAsync() - { - this.logger.LogInformation("Disposing all managed services"); - - var disposalTasks = this.managedServices.Select(async service => - { - try - { - await service.DisposeAsync(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error disposing service {ServiceType}", service.GetType().Name); - } - }); - - await Task.WhenAll(disposalTasks); - this.managedServices.Clear(); - this.singletonInstances.Clear(); - - this.logger.LogInformation("All managed services disposed"); - } - - public void Dispose() - { - if (!this.disposed) - { - _ = Task.Run(async () => await this.DisposeAllServicesAsync()); - this.disposed = true; - } - } - } -} - diff --git a/Services/ServiceHealthMonitor.cs b/Services/ServiceHealthMonitor.cs deleted file mode 100644 index 731be6b..0000000 --- a/Services/ServiceHealthMonitor.cs +++ /dev/null @@ -1,170 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - /// - /// Implementation of service health monitoring. - /// - public class ServiceHealthMonitor : IServiceHealthMonitor, IDisposable - { - private readonly ILogger logger; - private readonly ConcurrentDictionary>> healthChecks = new(); - private readonly ConcurrentDictionary lastResults = new(); - private readonly object lockObject = new(); - private bool disposed; - - public event EventHandler? ServiceHealthChanged; - - public ServiceHealthMonitor(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public void RegisterService(string serviceName, Func> healthCheck) - { - if (string.IsNullOrWhiteSpace(serviceName)) - { - throw new ArgumentException("Service name cannot be null or empty", nameof(serviceName)); - } - - if (healthCheck == null) - { - throw new ArgumentNullException(nameof(healthCheck)); - } - - this.healthChecks.AddOrUpdate(serviceName, healthCheck, (key, oldValue) => healthCheck); - this.logger.LogInformation("Registered health check for service: {ServiceName}", serviceName); - } - - public void UnregisterService(string serviceName) - { - if (string.IsNullOrWhiteSpace(serviceName)) - { - return; - } - - this.healthChecks.TryRemove(serviceName, out _); - this.lastResults.TryRemove(serviceName, out _); - this.logger.LogInformation("Unregistered health check for service: {ServiceName}", serviceName); - } - - public async Task CheckServiceHealthAsync(string serviceName) - { - if (!this.healthChecks.TryGetValue(serviceName, out var healthCheck)) - { - return new ServiceHealthResult - { - ServiceName = serviceName, - Status = ServiceHealthStatus.Critical, - Description = "Service not registered for health monitoring", - CheckTime = DateTime.UtcNow, - }; - } - - var stopwatch = Stopwatch.StartNew(); - ServiceHealthResult result; - - try - { - result = await healthCheck(); - result.ResponseTime = stopwatch.Elapsed; - result.CheckTime = DateTime.UtcNow; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Health check failed for service: {ServiceName}", serviceName); - result = new ServiceHealthResult - { - ServiceName = serviceName, - Status = ServiceHealthStatus.Critical, - Description = $"Health check threw exception: {ex.Message}", - ResponseTime = stopwatch.Elapsed, - CheckTime = DateTime.UtcNow, - Exception = ex, - }; - } - - // Check if status changed and raise event - if (this.lastResults.TryGetValue(serviceName, out var lastResult)) - { - if (lastResult.Status != result.Status) - { - this.ServiceHealthChanged?.Invoke(this, new ServiceHealthChangedEventArgs - { - ServiceName = serviceName, - PreviousStatus = lastResult.Status, - CurrentStatus = result.Status, - HealthResult = result, - }); - } - } - - this.lastResults.AddOrUpdate(serviceName, result, (key, oldValue) => result); - return result; - } - - public async Task> CheckAllServicesHealthAsync() - { - var results = new Dictionary(); - var tasks = this.healthChecks.Keys.Select(async serviceName => - { - var result = await this.CheckServiceHealthAsync(serviceName); - lock (this.lockObject) - { - results[serviceName] = result; - } - }); - - await Task.WhenAll(tasks); - return results; - } - - public Dictionary GetCurrentHealthStatus() - { - return this.lastResults.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); - } - - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - this.healthChecks.Clear(); - this.lastResults.Clear(); - this.logger.LogInformation("ServiceHealthMonitor disposed"); - } - this.disposed = true; - } - } - - public void Dispose() - { - this.Dispose(disposing: true); - GC.SuppressFinalize(this); - } - } -} - diff --git a/Services/SmartNotificationService.cs b/Services/SmartNotificationService.cs index 7bc1745..4484357 100644 --- a/Services/SmartNotificationService.cs +++ b/Services/SmartNotificationService.cs @@ -1,639 +1,620 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Implementation of smart notification service with throttling and priority queuing. - /// - public class SmartNotificationService : ISmartNotificationService, IDisposable - { - private readonly ILogger logger; - private readonly INotificationService baseNotificationService; - private readonly ConcurrentQueue notificationQueue = new(); - private readonly ConcurrentDictionary scheduledNotifications = new(); - private readonly ConcurrentDictionary lastNotificationTimes = new(); - private readonly ConcurrentDictionary> notificationHistory = new(); - private readonly List sentNotifications = new(); - private readonly System.Threading.Timer processingTimer; - private readonly System.Threading.Timer cleanupTimer; - private readonly SemaphoreSlim processingLock = new(1, 1); - - private NotificationPreferences preferences = new(); - private DateTime? doNotDisturbUntil; - private bool disposed; - - public event EventHandler? NotificationSent; - - public event EventHandler? NotificationThrottled; - - public event EventHandler? NotificationDeduplicated; - - public event EventHandler? DoNotDisturbChanged; - - public SmartNotificationService( - ILogger logger, - INotificationService baseNotificationService) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.baseNotificationService = baseNotificationService ?? throw new ArgumentNullException(nameof(baseNotificationService)); - - // Set up processing timer (process queue every 2 seconds) - this.processingTimer = new System.Threading.Timer(this.ProcessQueueCallback, null, - TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(2)); - - // Set up cleanup timer (clean history every hour) - this.cleanupTimer = new System.Threading.Timer(this.CleanupCallback, null, - TimeSpan.FromHours(1), TimeSpan.FromHours(1)); - } - - public async Task InitializeAsync() - { - this.logger.LogInformation("Initializing SmartNotificationService"); - - // Initialize default preferences - this.preferences = this.CreateDefaultPreferences(); - - // Load preferences from storage (simplified) - await this.LoadPreferencesAsync(); - } - - public async Task SendNotificationAsync(SmartNotification notification) - { - try - { - // Validate notification - if (string.IsNullOrWhiteSpace(notification.Title) && string.IsNullOrWhiteSpace(notification.Message)) - { - this.logger.LogWarning("Attempted to send notification with empty title and message"); - return false; - } - - // Check if notifications are enabled - if (!this.preferences.IsEnabled) - { - this.logger.LogDebug("Notifications are disabled, skipping notification: {Title}", notification.Title); - return false; - } - - // Check category preferences - if (this.preferences.CategoryEnabled.TryGetValue(notification.Category, out var categoryEnabled) && !categoryEnabled) - { - this.logger.LogDebug( - "Category {Category} is disabled, skipping notification: {Title}", - notification.Category, notification.Title); - return false; - } - - // Check minimum priority - if (notification.Priority < this.preferences.MinimumPriority) - { - this.logger.LogDebug( - "Notification priority {Priority} below minimum {MinPriority}, skipping: {Title}", - notification.Priority, this.preferences.MinimumPriority, notification.Title); - return false; - } - - // Check Do Not Disturb mode - if (this.IsDoNotDisturbActive() && notification.Priority < NotificationPriority.Critical) - { - this.logger.LogDebug("Do Not Disturb is active, skipping non-critical notification: {Title}", notification.Title); - return false; - } - - // Check throttling - if (this.IsThrottled(notification)) - { - this.NotificationThrottled?.Invoke(this, new SmartNotificationEventArgs - { - Notification = notification, - Reason = "Throttled due to rate limiting", - }); - return false; - } - - // Check deduplication - if (this.IsDuplicate(notification)) - { - this.NotificationDeduplicated?.Invoke(this, new SmartNotificationEventArgs - { - Notification = notification, - Reason = "Deduplicated - similar notification recently sent", - }); - return false; - } - - // Add to queue for processing - this.notificationQueue.Enqueue(notification); - this.logger.LogDebug( - "Queued notification: {Title} (Priority: {Priority}, Category: {Category})", - notification.Title, notification.Priority, notification.Category); - - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error sending notification: {Title}", notification.Title); - return false; - } - } - - public async Task SendNotificationAsync(string title, string message, - NotificationPriority priority = NotificationPriority.Normal, - NotificationCategory category = NotificationCategory.Information) - { - var notification = new SmartNotification - { - Title = title, - Message = message, - Priority = priority, - Category = category, - DeduplicationKey = $"{category}:{title}:{message}".GetHashCode().ToString(), - }; - - return await this.SendNotificationAsync(notification); - } - - public async Task ScheduleNotificationAsync(SmartNotification notification, DateTime deliveryTime) - { - notification.ScheduledFor = deliveryTime; - this.scheduledNotifications.TryAdd(notification.Id, notification); - - this.logger.LogDebug( - "Scheduled notification {Id} for delivery at {DeliveryTime}", - notification.Id, deliveryTime); - - return true; - } - - public async Task CancelNotificationAsync(string notificationId) - { - var removed = this.scheduledNotifications.TryRemove(notificationId, out var notification); - if (removed) - { - this.logger.LogDebug("Cancelled scheduled notification: {Id}", notificationId); - } - return removed; - } - - public async Task> GetPendingNotificationsAsync() - { - var pending = new List(); - - // Add queued notifications - pending.AddRange(this.notificationQueue.ToArray()); - - // Add scheduled notifications - pending.AddRange(this.scheduledNotifications.Values); - - return pending.OrderByDescending(n => n.Priority).ThenBy(n => n.CreatedAt).ToList(); - } - - public async Task> GetNotificationHistoryAsync(TimeSpan? period = null) - { - var cutoff = period.HasValue ? DateTime.UtcNow - period.Value : DateTime.MinValue; - - lock (this.sentNotifications) - { - return this.sentNotifications - .Where(n => n.CreatedAt >= cutoff) - .OrderByDescending(n => n.CreatedAt) - .ToList(); - } - } - - public async Task ClearHistoryAsync() - { - lock (this.sentNotifications) - { - this.sentNotifications.Clear(); - } - - this.notificationHistory.Clear(); - this.logger.LogInformation("Cleared notification history"); - } - - public async Task UpdatePreferencesAsync(NotificationPreferences preferences) - { - this.preferences = preferences ?? throw new ArgumentNullException(nameof(preferences)); - await this.SavePreferencesAsync(); - this.logger.LogInformation("Updated notification preferences"); - } - - public async Task GetPreferencesAsync() - { - return this.preferences; - } - - public async Task SetDoNotDisturbAsync(bool enabled, TimeSpan? duration = null) - { - var wasActive = this.IsDoNotDisturbActive(); - - if (enabled) - { - this.doNotDisturbUntil = duration.HasValue - ? DateTime.UtcNow + duration.Value - : DateTime.MaxValue; - this.preferences.DoNotDisturbMode = true; - } - else - { - this.doNotDisturbUntil = null; - this.preferences.DoNotDisturbMode = false; - } - - var isActive = this.IsDoNotDisturbActive(); - if (wasActive != isActive) - { - this.DoNotDisturbChanged?.Invoke(this, isActive); - this.logger.LogInformation("Do Not Disturb mode {Status}", isActive ? "enabled" : "disabled"); - } - } - - public bool IsDoNotDisturbActive() - { - if (!this.preferences.DoNotDisturbMode) - { - return false; - } - - if (this.doNotDisturbUntil.HasValue && DateTime.UtcNow > this.doNotDisturbUntil.Value) - { - this.preferences.DoNotDisturbMode = false; - this.doNotDisturbUntil = null; - return false; - } - - // Check time-based DND - var now = DateTime.Now.TimeOfDay; - if (this.preferences.DoNotDisturbStart < this.preferences.DoNotDisturbEnd) - { - // Same day range (e.g., 10 PM to 8 AM next day) - return now >= this.preferences.DoNotDisturbStart || now <= this.preferences.DoNotDisturbEnd; - } - else - { - // Cross-midnight range (e.g., 10 PM to 8 AM) - return now >= this.preferences.DoNotDisturbStart && now <= this.preferences.DoNotDisturbEnd; - } - } - - public async Task> GetStatisticsAsync() - { - var stats = new Dictionary(); - - lock (this.sentNotifications) - { - var last24Hours = this.sentNotifications.Where(n => n.CreatedAt >= DateTime.UtcNow.AddDays(-1)).ToList(); - var lastWeek = this.sentNotifications.Where(n => n.CreatedAt >= DateTime.UtcNow.AddDays(-7)).ToList(); - - stats["TotalSent"] = this.sentNotifications.Count; - stats["SentLast24Hours"] = last24Hours.Count; - stats["SentLastWeek"] = lastWeek.Count; - stats["PendingCount"] = this.notificationQueue.Count; - stats["ScheduledCount"] = this.scheduledNotifications.Count; - - // Category breakdown - var categoryStats = this.sentNotifications - .GroupBy(n => n.Category) - .ToDictionary(g => g.Key.ToString(), g => g.Count()); - stats["ByCategory"] = categoryStats; - - // Priority breakdown - var priorityStats = this.sentNotifications - .GroupBy(n => n.Priority) - .ToDictionary(g => g.Key.ToString(), g => g.Count()); - stats["ByPriority"] = priorityStats; - } - - return stats; - } - - public async Task TestNotificationAsync() - { - var testNotification = new SmartNotification - { - Title = "Test Notification", - Message = "This is a test notification from ThreadPilot Smart Notification System", - Priority = NotificationPriority.Normal, - Category = NotificationCategory.System, - }; - - return await this.SendNotificationAsync(testNotification); - } - - private void ProcessQueueCallback(object? state) - { - TaskSafety.FireAndForget(this.ProcessQueueCallbackAsync(), ex => - { - this.logger.LogWarning(ex, "Error during notification queue processing"); - }); - } - - private async Task ProcessQueueCallbackAsync() - { - if (this.disposed) - { - return; - } - - await this.processingLock.WaitAsync(); - try - { - var processedCount = 0; - var maxProcessPerCycle = 10; - - while (this.notificationQueue.TryDequeue(out var notification) && processedCount < maxProcessPerCycle) - { - await this.ProcessNotificationAsync(notification); - processedCount++; - } - - // Process scheduled notifications - var now = DateTime.UtcNow; - var dueNotifications = this.scheduledNotifications.Values - .Where(n => n.ScheduledFor <= now) - .ToList(); - - foreach (var notification in dueNotifications) - { - this.scheduledNotifications.TryRemove(notification.Id, out _); - await this.ProcessNotificationAsync(notification); - } - } - finally - { - this.processingLock.Release(); - } - } - - private async Task ProcessNotificationAsync(SmartNotification notification) - { - try - { - // Check if notification has expired - if (notification.ExpiresAfter.HasValue && - DateTime.UtcNow - notification.CreatedAt > notification.ExpiresAfter.Value) - { - this.logger.LogDebug("Notification expired: {Title}", notification.Title); - return; - } - - // Send through base notification service - await this.baseNotificationService.ShowNotificationAsync( - notification.Title, - notification.Message, - this.ConvertToNotificationType(notification.Priority)); - - // Assume success since no exception was thrown - var success = true; - - if (success) - { - // Record successful delivery - this.RecordNotificationSent(notification); - - this.NotificationSent?.Invoke(this, new SmartNotificationEventArgs - { - Notification = notification, - Reason = "Successfully delivered", - }); - - this.logger.LogDebug("Successfully sent notification: {Title}", notification.Title); - } - else if (notification.RetryCount < notification.MaxRetries) - { - // Retry failed notification - notification.RetryCount++; - this.notificationQueue.Enqueue(notification); - this.logger.LogDebug( - "Retrying notification: {Title} (Attempt {Retry}/{Max})", - notification.Title, notification.RetryCount, notification.MaxRetries); - } - else - { - this.logger.LogWarning( - "Failed to send notification after {MaxRetries} attempts: {Title}", - notification.MaxRetries, notification.Title); - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error processing notification: {Title}", notification.Title); - } - } - - private bool IsThrottled(SmartNotification notification) - { - if (!this.preferences.ThrottleConfigs.TryGetValue(notification.Category, out var config)) - { - return false; // No throttling configured for this category - } - - var key = $"{notification.Category}:{notification.DeduplicationKey}"; - var now = DateTime.UtcNow; - - // Check minimum interval - if (this.lastNotificationTimes.TryGetValue(key, out var lastTime)) - { - if (now - lastTime < config.MinInterval) - { - return true; - } - } - - // Check hourly and daily limits - if (!this.notificationHistory.TryGetValue(key, out var history)) - { - history = new List(); - this.notificationHistory[key] = history; - } - - // Clean old entries - var oneHourAgo = now.AddHours(-1); - var oneDayAgo = now.AddDays(-1); - history.RemoveAll(t => t < oneDayAgo); - - var hourlyCount = history.Count(t => t >= oneHourAgo); - var dailyCount = history.Count; - - return hourlyCount >= config.MaxPerHour || dailyCount >= config.MaxPerDay; - } - - private bool IsDuplicate(SmartNotification notification) - { - if (string.IsNullOrEmpty(notification.DeduplicationKey)) - { - return false; - } - - if (!this.preferences.ThrottleConfigs.TryGetValue(notification.Category, out var config) || - !config.EnableDeduplication) - { - return false; - } - - var key = $"{notification.Category}:{notification.DeduplicationKey}"; - if (this.lastNotificationTimes.TryGetValue(key, out var lastTime)) - { - return DateTime.UtcNow - lastTime < config.DeduplicationWindow; - } - - return false; - } - - private void RecordNotificationSent(SmartNotification notification) - { - var key = $"{notification.Category}:{notification.DeduplicationKey}"; - var now = DateTime.UtcNow; - - this.lastNotificationTimes[key] = now; - - if (!this.notificationHistory.TryGetValue(key, out var history)) - { - history = new List(); - this.notificationHistory[key] = history; - } - history.Add(now); - - lock (this.sentNotifications) - { - this.sentNotifications.Add(notification); - - // Keep only last 1000 notifications in memory - if (this.sentNotifications.Count > 1000) - { - this.sentNotifications.RemoveRange(0, this.sentNotifications.Count - 1000); - } - } - } - - private NotificationType ConvertToNotificationType(NotificationPriority priority) - { - return priority switch - { - NotificationPriority.Critical => NotificationType.Error, - NotificationPriority.High => NotificationType.Warning, - NotificationPriority.Normal => NotificationType.Information, - NotificationPriority.Low => NotificationType.Information, - _ => NotificationType.Information, - }; - } - - private NotificationPreferences CreateDefaultPreferences() - { - var preferences = new NotificationPreferences(); - - // Enable all categories by default - foreach (NotificationCategory category in Enum.GetValues()) - { - preferences.CategoryEnabled[category] = true; - preferences.ThrottleConfigs[category] = new NotificationThrottleConfig - { - Category = category, - MinInterval = TimeSpan.FromSeconds(30), - MaxPerHour = category == NotificationCategory.Error ? 20 : 10, - MaxPerDay = category == NotificationCategory.Error ? 100 : 50, - }; - } - - return preferences; - } - - private Task LoadPreferencesAsync() - { - // Simplified - would load from actual storage - this.logger.LogDebug("Loaded notification preferences"); - return Task.CompletedTask; - } - - private Task SavePreferencesAsync() - { - // Simplified - would save to actual storage - this.logger.LogDebug("Saved notification preferences"); - return Task.CompletedTask; - } - - private void CleanupCallback(object? state) - { - TaskSafety.FireAndForget(this.CleanupCallbackAsync(), ex => - { - this.logger.LogWarning(ex, "Error during notification cleanup"); - }); - } - - private async Task CleanupCallbackAsync() - { - try - { - var cutoff = DateTime.UtcNow.AddDays(-7); - - // Clean notification history - var keysToRemove = new List(); - foreach (var kvp in this.notificationHistory) - { - kvp.Value.RemoveAll(t => t < cutoff); - if (!kvp.Value.Any()) - { - keysToRemove.Add(kvp.Key); - } - } - - foreach (var key in keysToRemove) - { - this.notificationHistory.TryRemove(key, out _); - } - - this.logger.LogDebug("Cleaned up notification history, removed {Count} empty entries", keysToRemove.Count); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Error during notification cleanup"); - } - } - - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - this.processingTimer?.Dispose(); - this.cleanupTimer?.Dispose(); - this.processingLock?.Dispose(); - this.logger.LogInformation("SmartNotificationService disposed"); - } - this.disposed = true; - } - } - - public void Dispose() - { - this.Dispose(disposing: true); - GC.SuppressFinalize(this); - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class SmartNotificationService : ISmartNotificationService, IDisposable + { + private readonly ILogger logger; + private readonly INotificationService baseNotificationService; + private readonly ConcurrentQueue notificationQueue = new(); + private readonly ConcurrentDictionary scheduledNotifications = new(); + private readonly ConcurrentDictionary lastNotificationTimes = new(); + private readonly ConcurrentDictionary> notificationHistory = new(); + private readonly List sentNotifications = new(); + private readonly System.Threading.Timer processingTimer; + private readonly System.Threading.Timer cleanupTimer; + private readonly SemaphoreSlim processingLock = new(1, 1); + + private NotificationPreferences preferences = new(); + private DateTime? doNotDisturbUntil; + private bool disposed; + + public event EventHandler? NotificationSent; + + public event EventHandler? NotificationThrottled; + + public event EventHandler? NotificationDeduplicated; + + public event EventHandler? DoNotDisturbChanged; + + public SmartNotificationService( + ILogger logger, + INotificationService baseNotificationService) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.baseNotificationService = baseNotificationService ?? throw new ArgumentNullException(nameof(baseNotificationService)); + + // Set up processing timer (process queue every 2 seconds) + this.processingTimer = new System.Threading.Timer(this.ProcessQueueCallback, null, + TimeSpan.FromSeconds(2), TimeSpan.FromSeconds(2)); + + // Set up cleanup timer (clean history every hour) + this.cleanupTimer = new System.Threading.Timer(this.CleanupCallback, null, + TimeSpan.FromHours(1), TimeSpan.FromHours(1)); + } + + public async Task InitializeAsync() + { + this.logger.LogInformation("Initializing SmartNotificationService"); + + // Initialize default preferences + this.preferences = this.CreateDefaultPreferences(); + + // Load preferences from storage (simplified) + await this.LoadPreferencesAsync(); + } + + public async Task SendNotificationAsync(SmartNotification notification) + { + try + { + // Validate notification + if (string.IsNullOrWhiteSpace(notification.Title) && string.IsNullOrWhiteSpace(notification.Message)) + { + this.logger.LogWarning("Attempted to send notification with empty title and message"); + return false; + } + + // Check if notifications are enabled + if (!this.preferences.IsEnabled) + { + this.logger.LogDebug("Notifications are disabled, skipping notification: {Title}", notification.Title); + return false; + } + + // Check category preferences + if (this.preferences.CategoryEnabled.TryGetValue(notification.Category, out var categoryEnabled) && !categoryEnabled) + { + this.logger.LogDebug( + "Category {Category} is disabled, skipping notification: {Title}", + notification.Category, notification.Title); + return false; + } + + // Check minimum priority + if (notification.Priority < this.preferences.MinimumPriority) + { + this.logger.LogDebug( + "Notification priority {Priority} below minimum {MinPriority}, skipping: {Title}", + notification.Priority, this.preferences.MinimumPriority, notification.Title); + return false; + } + + // Check Do Not Disturb mode + if (this.IsDoNotDisturbActive() && notification.Priority < NotificationPriority.Critical) + { + this.logger.LogDebug("Do Not Disturb is active, skipping non-critical notification: {Title}", notification.Title); + return false; + } + + // Check throttling + if (this.IsThrottled(notification)) + { + this.NotificationThrottled?.Invoke(this, new SmartNotificationEventArgs + { + Notification = notification, + Reason = "Throttled due to rate limiting", + }); + return false; + } + + // Check deduplication + if (this.IsDuplicate(notification)) + { + this.NotificationDeduplicated?.Invoke(this, new SmartNotificationEventArgs + { + Notification = notification, + Reason = "Deduplicated - similar notification recently sent", + }); + return false; + } + + // Add to queue for processing + this.notificationQueue.Enqueue(notification); + this.logger.LogDebug( + "Queued notification: {Title} (Priority: {Priority}, Category: {Category})", + notification.Title, notification.Priority, notification.Category); + + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error sending notification: {Title}", notification.Title); + return false; + } + } + + public async Task SendNotificationAsync(string title, string message, + NotificationPriority priority = NotificationPriority.Normal, + NotificationCategory category = NotificationCategory.Information) + { + var notification = new SmartNotification + { + Title = title, + Message = message, + Priority = priority, + Category = category, + DeduplicationKey = $"{category}:{title}:{message}".GetHashCode().ToString(), + }; + + return await this.SendNotificationAsync(notification); + } + + public async Task ScheduleNotificationAsync(SmartNotification notification, DateTime deliveryTime) + { + notification.ScheduledFor = deliveryTime; + this.scheduledNotifications.TryAdd(notification.Id, notification); + + this.logger.LogDebug( + "Scheduled notification {Id} for delivery at {DeliveryTime}", + notification.Id, deliveryTime); + + return true; + } + + public async Task CancelNotificationAsync(string notificationId) + { + var removed = this.scheduledNotifications.TryRemove(notificationId, out var notification); + if (removed) + { + this.logger.LogDebug("Cancelled scheduled notification: {Id}", notificationId); + } + return removed; + } + + public async Task> GetPendingNotificationsAsync() + { + var pending = new List(); + + // Add queued notifications + pending.AddRange(this.notificationQueue.ToArray()); + + // Add scheduled notifications + pending.AddRange(this.scheduledNotifications.Values); + + return pending.OrderByDescending(n => n.Priority).ThenBy(n => n.CreatedAt).ToList(); + } + + public async Task> GetNotificationHistoryAsync(TimeSpan? period = null) + { + var cutoff = period.HasValue ? DateTime.UtcNow - period.Value : DateTime.MinValue; + + lock (this.sentNotifications) + { + return this.sentNotifications + .Where(n => n.CreatedAt >= cutoff) + .OrderByDescending(n => n.CreatedAt) + .ToList(); + } + } + + public async Task ClearHistoryAsync() + { + lock (this.sentNotifications) + { + this.sentNotifications.Clear(); + } + + this.notificationHistory.Clear(); + this.logger.LogInformation("Cleared notification history"); + } + + public async Task UpdatePreferencesAsync(NotificationPreferences preferences) + { + this.preferences = preferences ?? throw new ArgumentNullException(nameof(preferences)); + await this.SavePreferencesAsync(); + this.logger.LogInformation("Updated notification preferences"); + } + + public async Task GetPreferencesAsync() + { + return this.preferences; + } + + public async Task SetDoNotDisturbAsync(bool enabled, TimeSpan? duration = null) + { + var wasActive = this.IsDoNotDisturbActive(); + + if (enabled) + { + this.doNotDisturbUntil = duration.HasValue + ? DateTime.UtcNow + duration.Value + : DateTime.MaxValue; + this.preferences.DoNotDisturbMode = true; + } + else + { + this.doNotDisturbUntil = null; + this.preferences.DoNotDisturbMode = false; + } + + var isActive = this.IsDoNotDisturbActive(); + if (wasActive != isActive) + { + this.DoNotDisturbChanged?.Invoke(this, isActive); + this.logger.LogInformation("Do Not Disturb mode {Status}", isActive ? "enabled" : "disabled"); + } + } + + public bool IsDoNotDisturbActive() + { + if (!this.preferences.DoNotDisturbMode) + { + return false; + } + + if (this.doNotDisturbUntil.HasValue && DateTime.UtcNow > this.doNotDisturbUntil.Value) + { + this.preferences.DoNotDisturbMode = false; + this.doNotDisturbUntil = null; + return false; + } + + // Check time-based DND + var now = DateTime.Now.TimeOfDay; + if (this.preferences.DoNotDisturbStart < this.preferences.DoNotDisturbEnd) + { + // Same day range (e.g., 10 PM to 8 AM next day) + return now >= this.preferences.DoNotDisturbStart || now <= this.preferences.DoNotDisturbEnd; + } + else + { + // Cross-midnight range (e.g., 10 PM to 8 AM) + return now >= this.preferences.DoNotDisturbStart && now <= this.preferences.DoNotDisturbEnd; + } + } + + public async Task> GetStatisticsAsync() + { + var stats = new Dictionary(); + + lock (this.sentNotifications) + { + var last24Hours = this.sentNotifications.Where(n => n.CreatedAt >= DateTime.UtcNow.AddDays(-1)).ToList(); + var lastWeek = this.sentNotifications.Where(n => n.CreatedAt >= DateTime.UtcNow.AddDays(-7)).ToList(); + + stats["TotalSent"] = this.sentNotifications.Count; + stats["SentLast24Hours"] = last24Hours.Count; + stats["SentLastWeek"] = lastWeek.Count; + stats["PendingCount"] = this.notificationQueue.Count; + stats["ScheduledCount"] = this.scheduledNotifications.Count; + + // Category breakdown + var categoryStats = this.sentNotifications + .GroupBy(n => n.Category) + .ToDictionary(g => g.Key.ToString(), g => g.Count()); + stats["ByCategory"] = categoryStats; + + // Priority breakdown + var priorityStats = this.sentNotifications + .GroupBy(n => n.Priority) + .ToDictionary(g => g.Key.ToString(), g => g.Count()); + stats["ByPriority"] = priorityStats; + } + + return stats; + } + + public async Task TestNotificationAsync() + { + var testNotification = new SmartNotification + { + Title = "Test Notification", + Message = "This is a test notification from ThreadPilot Smart Notification System", + Priority = NotificationPriority.Normal, + Category = NotificationCategory.System, + }; + + return await this.SendNotificationAsync(testNotification); + } + + private void ProcessQueueCallback(object? state) + { + TaskSafety.FireAndForget(this.ProcessQueueCallbackAsync(), ex => + { + this.logger.LogWarning(ex, "Error during notification queue processing"); + }); + } + + private async Task ProcessQueueCallbackAsync() + { + if (this.disposed) + { + return; + } + + await this.processingLock.WaitAsync(); + try + { + var processedCount = 0; + var maxProcessPerCycle = 10; + + while (this.notificationQueue.TryDequeue(out var notification) && processedCount < maxProcessPerCycle) + { + await this.ProcessNotificationAsync(notification); + processedCount++; + } + + // Process scheduled notifications + var now = DateTime.UtcNow; + var dueNotifications = this.scheduledNotifications.Values + .Where(n => n.ScheduledFor <= now) + .ToList(); + + foreach (var notification in dueNotifications) + { + this.scheduledNotifications.TryRemove(notification.Id, out _); + await this.ProcessNotificationAsync(notification); + } + } + finally + { + this.processingLock.Release(); + } + } + + private async Task ProcessNotificationAsync(SmartNotification notification) + { + try + { + // Check if notification has expired + if (notification.ExpiresAfter.HasValue && + DateTime.UtcNow - notification.CreatedAt > notification.ExpiresAfter.Value) + { + this.logger.LogDebug("Notification expired: {Title}", notification.Title); + return; + } + + // Send through base notification service + await this.baseNotificationService.ShowNotificationAsync( + notification.Title, + notification.Message, + this.ConvertToNotificationType(notification.Priority)); + + // Assume success since no exception was thrown + var success = true; + + if (success) + { + // Record successful delivery + this.RecordNotificationSent(notification); + + this.NotificationSent?.Invoke(this, new SmartNotificationEventArgs + { + Notification = notification, + Reason = "Successfully delivered", + }); + + this.logger.LogDebug("Successfully sent notification: {Title}", notification.Title); + } + else if (notification.RetryCount < notification.MaxRetries) + { + // Retry failed notification + notification.RetryCount++; + this.notificationQueue.Enqueue(notification); + this.logger.LogDebug( + "Retrying notification: {Title} (Attempt {Retry}/{Max})", + notification.Title, notification.RetryCount, notification.MaxRetries); + } + else + { + this.logger.LogWarning( + "Failed to send notification after {MaxRetries} attempts: {Title}", + notification.MaxRetries, notification.Title); + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error processing notification: {Title}", notification.Title); + } + } + + private bool IsThrottled(SmartNotification notification) + { + if (!this.preferences.ThrottleConfigs.TryGetValue(notification.Category, out var config)) + { + return false; // No throttling configured for this category + } + + var key = $"{notification.Category}:{notification.DeduplicationKey}"; + var now = DateTime.UtcNow; + + // Check minimum interval + if (this.lastNotificationTimes.TryGetValue(key, out var lastTime)) + { + if (now - lastTime < config.MinInterval) + { + return true; + } + } + + // Check hourly and daily limits + if (!this.notificationHistory.TryGetValue(key, out var history)) + { + history = new List(); + this.notificationHistory[key] = history; + } + + // Clean old entries + var oneHourAgo = now.AddHours(-1); + var oneDayAgo = now.AddDays(-1); + history.RemoveAll(t => t < oneDayAgo); + + var hourlyCount = history.Count(t => t >= oneHourAgo); + var dailyCount = history.Count; + + return hourlyCount >= config.MaxPerHour || dailyCount >= config.MaxPerDay; + } + + private bool IsDuplicate(SmartNotification notification) + { + if (string.IsNullOrEmpty(notification.DeduplicationKey)) + { + return false; + } + + if (!this.preferences.ThrottleConfigs.TryGetValue(notification.Category, out var config) || + !config.EnableDeduplication) + { + return false; + } + + var key = $"{notification.Category}:{notification.DeduplicationKey}"; + if (this.lastNotificationTimes.TryGetValue(key, out var lastTime)) + { + return DateTime.UtcNow - lastTime < config.DeduplicationWindow; + } + + return false; + } + + private void RecordNotificationSent(SmartNotification notification) + { + var key = $"{notification.Category}:{notification.DeduplicationKey}"; + var now = DateTime.UtcNow; + + this.lastNotificationTimes[key] = now; + + if (!this.notificationHistory.TryGetValue(key, out var history)) + { + history = new List(); + this.notificationHistory[key] = history; + } + history.Add(now); + + lock (this.sentNotifications) + { + this.sentNotifications.Add(notification); + + // Keep only last 1000 notifications in memory + if (this.sentNotifications.Count > 1000) + { + this.sentNotifications.RemoveRange(0, this.sentNotifications.Count - 1000); + } + } + } + + private NotificationType ConvertToNotificationType(NotificationPriority priority) + { + return priority switch + { + NotificationPriority.Critical => NotificationType.Error, + NotificationPriority.High => NotificationType.Warning, + NotificationPriority.Normal => NotificationType.Information, + NotificationPriority.Low => NotificationType.Information, + _ => NotificationType.Information, + }; + } + + private NotificationPreferences CreateDefaultPreferences() + { + var preferences = new NotificationPreferences(); + + // Enable all categories by default + foreach (NotificationCategory category in Enum.GetValues()) + { + preferences.CategoryEnabled[category] = true; + preferences.ThrottleConfigs[category] = new NotificationThrottleConfig + { + Category = category, + MinInterval = TimeSpan.FromSeconds(30), + MaxPerHour = category == NotificationCategory.Error ? 20 : 10, + MaxPerDay = category == NotificationCategory.Error ? 100 : 50, + }; + } + + return preferences; + } + + private Task LoadPreferencesAsync() + { + // Simplified - would load from actual storage + this.logger.LogDebug("Loaded notification preferences"); + return Task.CompletedTask; + } + + private Task SavePreferencesAsync() + { + // Simplified - would save to actual storage + this.logger.LogDebug("Saved notification preferences"); + return Task.CompletedTask; + } + + private void CleanupCallback(object? state) + { + TaskSafety.FireAndForget(this.CleanupCallbackAsync(), ex => + { + this.logger.LogWarning(ex, "Error during notification cleanup"); + }); + } + + private async Task CleanupCallbackAsync() + { + try + { + var cutoff = DateTime.UtcNow.AddDays(-7); + + // Clean notification history + var keysToRemove = new List(); + foreach (var kvp in this.notificationHistory) + { + kvp.Value.RemoveAll(t => t < cutoff); + if (!kvp.Value.Any()) + { + keysToRemove.Add(kvp.Key); + } + } + + foreach (var key in keysToRemove) + { + this.notificationHistory.TryRemove(key, out _); + } + + this.logger.LogDebug("Cleaned up notification history, removed {Count} empty entries", keysToRemove.Count); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Error during notification cleanup"); + } + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + this.processingTimer?.Dispose(); + this.cleanupTimer?.Dispose(); + this.processingLock?.Dispose(); + this.logger.LogInformation("SmartNotificationService disposed"); + } + this.disposed = true; + } + } + + public void Dispose() + { + this.Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} + diff --git a/Services/StoragePaths.cs b/Services/StoragePaths.cs index f8b05b4..286eb34 100644 --- a/Services/StoragePaths.cs +++ b/Services/StoragePaths.cs @@ -1,48 +1,32 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - - internal static class StoragePaths - { - public static string AppDataRoot { get; } = Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - "ThreadPilot"); - - public static string SettingsFilePath => Path.Combine(AppDataRoot, "settings.json"); - - public static string ProfilesDirectory => Path.Combine(AppDataRoot, "Profiles"); - - public static string ConfigurationDirectory => Path.Combine(AppDataRoot, "Configuration"); - - public static string CoreMasksFilePath => Path.Combine(AppDataRoot, "core_masks.json"); - - public static string PersistentRulesFilePath => Path.Combine(AppDataRoot, "persistent_rules.json"); - - public static string PowerPlansDirectory => Path.Combine(AppDataRoot, "Powerplans"); - - public static void EnsureAppDataDirectories() - { - Directory.CreateDirectory(AppDataRoot); - Directory.CreateDirectory(ProfilesDirectory); - Directory.CreateDirectory(ConfigurationDirectory); - Directory.CreateDirectory(PowerPlansDirectory); - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.IO; + + internal static class StoragePaths + { + public static string AppDataRoot { get; } = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + "ThreadPilot"); + + public static string SettingsFilePath => Path.Combine(AppDataRoot, "settings.json"); + + public static string ProfilesDirectory => Path.Combine(AppDataRoot, "Profiles"); + + public static string ConfigurationDirectory => Path.Combine(AppDataRoot, "Configuration"); + + public static string CoreMasksFilePath => Path.Combine(AppDataRoot, "core_masks.json"); + + public static string PersistentRulesFilePath => Path.Combine(AppDataRoot, "persistent_rules.json"); + + public static string PowerPlansDirectory => Path.Combine(AppDataRoot, "Powerplans"); + + public static void EnsureAppDataDirectories() + { + Directory.CreateDirectory(AppDataRoot); + Directory.CreateDirectory(ProfilesDirectory); + Directory.CreateDirectory(ConfigurationDirectory); + Directory.CreateDirectory(PowerPlansDirectory); + } + } +} diff --git a/Services/SystemProcessRunner.cs b/Services/SystemProcessRunner.cs index d666d35..2c89224 100644 --- a/Services/SystemProcessRunner.cs +++ b/Services/SystemProcessRunner.cs @@ -1,69 +1,65 @@ -/* - * ThreadPilot - default process runner. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.IO; - using System.Threading.Tasks; - using ThreadPilot.Services.Abstractions; - - /// - /// Production implementation of backed by . - /// - public sealed class SystemProcessRunner : IProcessRunner - { - /// - public async Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout) - { - if (!File.Exists(fileName)) - { - return new ProcessRunResult(-1, string.Empty, $"Executable not found: {fileName}"); - } - - var processInfo = new ProcessStartInfo - { - FileName = fileName, - UseShellExecute = false, - CreateNoWindow = true, - RedirectStandardOutput = true, - RedirectStandardError = true, - }; - - foreach (var argument in arguments) - { - processInfo.ArgumentList.Add(argument); - } - - using var process = Process.Start(processInfo); - if (process == null) - { - return new ProcessRunResult(-1, string.Empty, $"Could not start process: {fileName}"); - } - - var outputTask = process.StandardOutput.ReadToEndAsync(); - var errorTask = process.StandardError.ReadToEndAsync(); - var exitTask = process.WaitForExitAsync(); - var completedTask = await Task.WhenAny(exitTask, Task.Delay(timeout)).ConfigureAwait(false); - - if (completedTask != exitTask) - { - try - { - process.Kill(entireProcessTree: true); - } - catch - { - // Best-effort kill for timed-out processes. - } - - return new ProcessRunResult(-1, await outputTask.ConfigureAwait(false), $"Process timeout after {timeout.TotalSeconds} seconds"); - } - - await exitTask.ConfigureAwait(false); - return new ProcessRunResult(process.ExitCode, await outputTask.ConfigureAwait(false), await errorTask.ConfigureAwait(false)); - } - } -} +/* + * ThreadPilot - default process runner. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Threading.Tasks; + using ThreadPilot.Services.Abstractions; + + public sealed class SystemProcessRunner : IProcessRunner + { + public async Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout) + { + if (!File.Exists(fileName)) + { + return new ProcessRunResult(-1, string.Empty, $"Executable not found: {fileName}"); + } + + var processInfo = new ProcessStartInfo + { + FileName = fileName, + UseShellExecute = false, + CreateNoWindow = true, + RedirectStandardOutput = true, + RedirectStandardError = true, + }; + + foreach (var argument in arguments) + { + processInfo.ArgumentList.Add(argument); + } + + using var process = Process.Start(processInfo); + if (process == null) + { + return new ProcessRunResult(-1, string.Empty, $"Could not start process: {fileName}"); + } + + var outputTask = process.StandardOutput.ReadToEndAsync(); + var errorTask = process.StandardError.ReadToEndAsync(); + var exitTask = process.WaitForExitAsync(); + var completedTask = await Task.WhenAny(exitTask, Task.Delay(timeout)).ConfigureAwait(false); + + if (completedTask != exitTask) + { + try + { + process.Kill(entireProcessTree: true); + } + catch + { + // Best-effort kill for timed-out processes. + } + + return new ProcessRunResult(-1, await outputTask.ConfigureAwait(false), $"Process timeout after {timeout.TotalSeconds} seconds"); + } + + await exitTask.ConfigureAwait(false); + return new ProcessRunResult(process.ExitCode, await outputTask.ConfigureAwait(false), await errorTask.ConfigureAwait(false)); + } + } +} diff --git a/Services/SystemTrayMenuPlacement.cs b/Services/SystemTrayMenuPlacement.cs index 246b72e..9ae50b9 100644 --- a/Services/SystemTrayMenuPlacement.cs +++ b/Services/SystemTrayMenuPlacement.cs @@ -1,47 +1,47 @@ -namespace ThreadPilot.Services -{ - using System.Drawing; - - public static class SystemTrayMenuPlacement - { - public static Point ResolveMenuOpenPoint(Point cursorPosition, Point lastKnownPosition) - { - return ResolveMenuOpenPoint( - cursorPosition, - lastKnownPosition, - Rectangle.Empty, - Rectangle.Empty); - } - - public static Point ResolveMenuOpenPoint( - Point cursorPosition, - Point lastKnownPosition, - Rectangle trayBounds, - Rectangle fallbackWorkingArea) - { - if (!cursorPosition.IsEmpty) - { - return cursorPosition; - } - - if (!lastKnownPosition.IsEmpty) - { - return lastKnownPosition; - } - - if (!trayBounds.IsEmpty) - { - return new Point(trayBounds.Left + (trayBounds.Width / 2), trayBounds.Top + (trayBounds.Height / 2)); - } - - if (!fallbackWorkingArea.IsEmpty) - { - return new Point( - Math.Max(fallbackWorkingArea.Left + 1, fallbackWorkingArea.Right - 8), - Math.Max(fallbackWorkingArea.Top + 1, fallbackWorkingArea.Bottom - 8)); - } - - return new Point(16, 16); - } - } -} +namespace ThreadPilot.Services +{ + using System.Drawing; + + public static class SystemTrayMenuPlacement + { + public static Point ResolveMenuOpenPoint(Point cursorPosition, Point lastKnownPosition) + { + return ResolveMenuOpenPoint( + cursorPosition, + lastKnownPosition, + Rectangle.Empty, + Rectangle.Empty); + } + + public static Point ResolveMenuOpenPoint( + Point cursorPosition, + Point lastKnownPosition, + Rectangle trayBounds, + Rectangle fallbackWorkingArea) + { + if (!cursorPosition.IsEmpty) + { + return cursorPosition; + } + + if (!lastKnownPosition.IsEmpty) + { + return lastKnownPosition; + } + + if (!trayBounds.IsEmpty) + { + return new Point(trayBounds.Left + (trayBounds.Width / 2), trayBounds.Top + (trayBounds.Height / 2)); + } + + if (!fallbackWorkingArea.IsEmpty) + { + return new Point( + Math.Max(fallbackWorkingArea.Left + 1, fallbackWorkingArea.Right - 8), + Math.Max(fallbackWorkingArea.Top + 1, fallbackWorkingArea.Bottom - 8)); + } + + return new Point(16, 16); + } + } +} diff --git a/Services/SystemTrayService.cs b/Services/SystemTrayService.cs index 52e8b85..1bce92f 100644 --- a/Services/SystemTrayService.cs +++ b/Services/SystemTrayService.cs @@ -1,883 +1,864 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Drawing; - using System.IO; - using System.Windows.Forms; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using MediaSolidColorBrush = System.Windows.Media.SolidColorBrush; - - /// - /// Service for managing system tray icon and context menu. - /// - public class SystemTrayService : ISystemTrayService - { - private readonly ILogger logger; - private NotifyIcon? notifyIcon; - private ContextMenuStrip? contextMenu; - private ToolStripMenuItem? quickApplyMenuItem; - private ToolStripMenuItem? selectedProcessMenuItem; - private ToolStripMenuItem? monitoringToggleMenuItem; - private ToolStripMenuItem? settingsMenuItem; - private ToolStripMenuItem? powerPlansMenuItem; - private ToolStripMenuItem? profilesMenuItem; - private ToolStripMenuItem? performanceMenuItem; - private ToolStripMenuItem? systemStatusMenuItem; - private ToolStripMenuItem? openDashboardMenuItem; - private ToolStripMenuItem? exitMenuItem; - private ApplicationSettingsModel settings; - private readonly ILocalizationService? localizationService; - private bool isMonitoring = true; - private bool isWmiAvailable = true; - private TrayIconState currentIconState = TrayIconState.Normal; - private bool isDarkTheme = true; - private Font? menuFont; - private Point lastContextMenuOpenPoint = Point.Empty; - private bool disposed = false; - - public event EventHandler? QuickApplyRequested; - - public event EventHandler? ShowMainWindowRequested; - - public event EventHandler? ExitRequested; - - public event EventHandler? MonitoringToggleRequested; - - public event EventHandler? SettingsRequested; - - public event EventHandler? PowerPlanChangeRequested; - - public event EventHandler? ProfileApplicationRequested; - - public event EventHandler? PerformanceDashboardRequested; - - public event EventHandler? DashboardRequested; - - public SystemTrayService(ILogger logger, ILocalizationService? localizationService = null) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.localizationService = localizationService; - this.settings = new ApplicationSettingsModel(); // Default settings - if (this.localizationService != null) - { - this.localizationService.LanguageChanged += this.OnLanguageChanged; - } - } - - public void Initialize() - { - try - { - this.logger.LogInformation("Initializing system tray service"); - - // Check if already initialized to prevent duplicate icons - if (this.notifyIcon != null) - { - this.logger.LogInformation("System tray service already initialized, skipping duplicate initialization to prevent duplicate icons"); - return; - } - - // Create the notify icon - this.notifyIcon = new NotifyIcon - { - Text = this.Localize("MainWindow_Title", "ThreadPilot - Process & Power Plan Manager"), - Visible = false, - }; - - // Load the tray icon (custom path if enabled, otherwise bundled ico.ico) - this.TryLoadTrayIcon(); - - // Create context menu - this.CreateContextMenu(); - - // Set up event handlers - this.notifyIcon.DoubleClick += this.OnTrayIconDoubleClick; - this.notifyIcon.MouseUp += this.OnTrayIconMouseUp; - - // Set initial icon state - this.UpdateTrayIcon(TrayIconState.Normal); - - this.logger.LogInformation("System tray service initialized successfully"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to initialize system tray service"); - throw; - } - } - - private void CreateContextMenu() - { - this.contextMenu = new ContextMenuStrip(); - this.menuFont = CreatePreferredMenuFont(this.contextMenu.Font.Size); - this.contextMenu.Font = this.menuFont; - - this.openDashboardMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_OpenDashboard", "Open Dashboard")) - { - Font = new Font(this.menuFont, FontStyle.Regular), - }; - this.openDashboardMenuItem.Click += this.OnDashboardClick; - this.contextMenu.Items.Add(this.openDashboardMenuItem); - - if (AppNavigationOptions.ShowAdvancedDiagnostics) - { - this.performanceMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_OpenDiagnostics", "Open Diagnostics")) - { - Font = new Font(this.menuFont, FontStyle.Regular), - }; - this.performanceMenuItem.Click += this.OnPerformanceDashboardClick; - this.contextMenu.Items.Add(this.performanceMenuItem); - } - - this.monitoringToggleMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_PauseMonitoring", "Pause Automation Monitoring")); - this.monitoringToggleMenuItem.Click += this.OnMonitoringToggleClick; - this.contextMenu.Items.Add(this.monitoringToggleMenuItem); - - this.contextMenu.Items.Add(new ToolStripSeparator()); - - // System status (disabled, for display only) - this.systemStatusMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_SystemStatus", "System Status")) - { - Enabled = false, - Font = new Font(this.menuFont, FontStyle.Regular), - }; - this.contextMenu.Items.Add(this.systemStatusMenuItem); - - // Selected process info (disabled, for display only) - this.selectedProcessMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_NoProcessSelected", "No process selected")) - { - Enabled = false, - Font = new Font(this.menuFont, FontStyle.Regular), - }; - this.contextMenu.Items.Add(this.selectedProcessMenuItem); - - // Quick apply command - this.quickApplyMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_ApplyPendingToSelected", "Apply Pending Settings to Selected Process")) - { - Enabled = false, - }; - this.quickApplyMenuItem.Click += this.OnQuickApplyClick; - this.contextMenu.Items.Add(this.quickApplyMenuItem); - - this.contextMenu.Items.Add(new ToolStripSeparator()); - - // Power Plans submenu - this.powerPlansMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_PowerPlans", "🔋 Power Plans")); - this.contextMenu.Items.Add(this.powerPlansMenuItem); - - // Profiles submenu - this.profilesMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_Profiles", "📋 Profiles")); - this.contextMenu.Items.Add(this.profilesMenuItem); - - this.contextMenu.Items.Add(new ToolStripSeparator()); - - // Settings - this.settingsMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_Settings", "Settings")); - this.settingsMenuItem.Click += this.OnSettingsClick; - this.contextMenu.Items.Add(this.settingsMenuItem); - - // Separator - this.contextMenu.Items.Add(new ToolStripSeparator()); - - // Exit - this.exitMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_Exit", "Exit")); - this.exitMenuItem.Click += this.OnExitClick; - this.contextMenu.Items.Add(this.exitMenuItem); - - this.ApplyContextMenuTheme(); - } - - public void Show() - { - if (this.notifyIcon != null) - { - this.notifyIcon.Visible = true; - this.logger.LogDebug("System tray icon shown"); - } - } - - public void Hide() - { - if (this.notifyIcon != null) - { - this.notifyIcon.Visible = false; - this.logger.LogDebug("System tray icon hidden"); - } - } - - public void UpdateTooltip(string tooltip) - { - if (this.notifyIcon != null) - { - this.notifyIcon.Text = tooltip.Length > 63 ? tooltip.Substring(0, 60) + "..." : tooltip; - } - } - - public void ShowBalloonTip(string title, string text, int timeoutMs = 3000) - { - if (this.notifyIcon != null && this.notifyIcon.Visible) - { - this.notifyIcon.ShowBalloonTip(timeoutMs, title, text, ToolTipIcon.Info); - } - } - - public void UpdateContextMenu(string? selectedProcessName = null, bool hasSelection = false) - { - if (this.selectedProcessMenuItem == null || this.quickApplyMenuItem == null) - { - return; - } - - if (hasSelection && !string.IsNullOrEmpty(selectedProcessName)) - { - this.selectedProcessMenuItem.Text = string.Format( - this.Localize("SystemTray_SelectedProcessFormat", "Selected: {0}"), - selectedProcessName); - this.quickApplyMenuItem.Enabled = true; - this.quickApplyMenuItem.Text = string.Format( - this.Localize("SystemTray_ApplyPendingToProcessFormat", "Apply Pending Settings to {0}"), - selectedProcessName); - } - else - { - this.selectedProcessMenuItem.Text = this.Localize("SystemTray_NoProcessSelected", "No process selected"); - this.quickApplyMenuItem.Enabled = false; - this.quickApplyMenuItem.Text = this.Localize("SystemTray_ApplyPendingToSelected", "Apply Pending Settings to Selected Process"); - } - } - - private void OnTrayIconDoubleClick(object? sender, EventArgs e) - { - this.ShowMainWindowRequested?.Invoke(this, EventArgs.Empty); - } - - private void OnTrayIconMouseUp(object? sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Right || this.contextMenu == null) - { - return; - } - - var cursorPosition = Cursor.Position; - var workingArea = Screen.FromPoint(cursorPosition.IsEmpty ? this.lastContextMenuOpenPoint : cursorPosition).WorkingArea; - var openPoint = SystemTrayMenuPlacement.ResolveMenuOpenPoint( - cursorPosition, - this.lastContextMenuOpenPoint, - Rectangle.Empty, - workingArea); - this.lastContextMenuOpenPoint = openPoint; - - if (this.contextMenu.Visible) - { - this.contextMenu.Close(ToolStripDropDownCloseReason.CloseCalled); - } - - this.contextMenu.Show(openPoint, ToolStripDropDownDirection.Default); - } - - private void OnQuickApplyClick(object? sender, EventArgs e) - { - this.QuickApplyRequested?.Invoke(this, EventArgs.Empty); - } - - private void OnDashboardClick(object? sender, EventArgs e) - { - this.DashboardRequested?.Invoke(this, EventArgs.Empty); - } - - private void OnExitClick(object? sender, EventArgs e) - { - this.ExitRequested?.Invoke(this, EventArgs.Empty); - } - - private void OnMonitoringToggleClick(object? sender, EventArgs e) - { - this.isMonitoring = !this.isMonitoring; - this.MonitoringToggleRequested?.Invoke(this, new MonitoringToggleEventArgs(this.isMonitoring)); - this.UpdateMonitoringStatus(this.isMonitoring, this.isWmiAvailable); - } - - private void OnSettingsClick(object? sender, EventArgs e) - { - this.SettingsRequested?.Invoke(this, EventArgs.Empty); - } - - private void OnPerformanceDashboardClick(object? sender, EventArgs e) - { - this.PerformanceDashboardRequested?.Invoke(this, EventArgs.Empty); - } - - private void OnPowerPlanClick(object? sender, EventArgs e) - { - if (sender is ToolStripMenuItem menuItem && menuItem.Tag is PowerPlanModel powerPlan) - { - this.PowerPlanChangeRequested?.Invoke(this, new PowerPlanChangeRequestedEventArgs(powerPlan.Guid, powerPlan.Name)); - } - } - - private void OnProfileClick(object? sender, EventArgs e) - { - if (sender is ToolStripMenuItem menuItem && menuItem.Tag is string profileName) - { - this.ProfileApplicationRequested?.Invoke(this, new ProfileApplicationRequestedEventArgs(profileName)); - } - } - - public void UpdateMonitoringStatus(bool isMonitoring, bool isWmiAvailable = true) - { - this.isMonitoring = isMonitoring; - this.isWmiAvailable = isWmiAvailable; - - if (this.monitoringToggleMenuItem != null) - { - this.monitoringToggleMenuItem.Text = isMonitoring - ? this.Localize("SystemTray_PauseMonitoring", "Pause Automation Monitoring") - : this.Localize("SystemTray_ResumeMonitoring", "Resume Automation Monitoring"); - this.monitoringToggleMenuItem.Enabled = isWmiAvailable; - } - - // Update tray icon state - var iconState = !isWmiAvailable ? TrayIconState.Error : - isMonitoring ? TrayIconState.Monitoring : TrayIconState.Disabled; - this.UpdateTrayIcon(iconState); - - // Update tooltip - var status = !isWmiAvailable - ? this.Localize("SystemTray_StatusWmiError", "Automation WMI Error") - : isMonitoring - ? this.Localize("SystemTray_StatusActive", "Automation Active") - : this.Localize("SystemTray_StatusDisabled", "Automation Disabled"); - this.UpdateTooltip($"ThreadPilot - {status}"); - } - - public void UpdateTrayIcon(TrayIconState state) - { - if (this.notifyIcon == null) - { - return; - } - - this.currentIconState = state; - - this.TryLoadTrayIcon(state); - } - - public void ShowTrayNotification(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000) - { - if (this.notifyIcon == null || !this.settings.EnableBalloonNotifications) - { - return; - } - - try - { - var balloonIcon = type switch - { - NotificationType.Error => ToolTipIcon.Error, - NotificationType.Warning => ToolTipIcon.Warning, - NotificationType.Success => ToolTipIcon.Info, - _ => ToolTipIcon.Info, - }; - - this.notifyIcon.ShowBalloonTip(timeoutMs, title, message, balloonIcon); - this.logger.LogDebug("Balloon tip shown: {Title}", title); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error showing balloon tip"); - } - } - - public void UpdateSettings(ApplicationSettingsModel settings) - { - this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); - - // Update tray icon visibility - if (this.notifyIcon != null) - { - this.notifyIcon.Visible = settings.ShowTrayIcon; - this.TryLoadTrayIcon(this.currentIconState); - } - - this.ApplyContextMenuTheme(); - - this.logger.LogDebug("Tray service settings updated"); - } - - public void ApplyTheme(bool useDarkTheme) - { - if (this.isDarkTheme == useDarkTheme) - { - return; - } - - this.isDarkTheme = useDarkTheme; - this.ApplyContextMenuTheme(); - } - - public void UpdatePowerPlans(IEnumerable powerPlans, PowerPlanModel? activePlan) - { - if (this.powerPlansMenuItem == null) - { - return; - } - - try - { - this.powerPlansMenuItem.DropDownItems.Clear(); - - foreach (var powerPlan in powerPlans) - { - var menuItem = new ToolStripMenuItem(powerPlan.Name) - { - Tag = powerPlan, - Checked = activePlan?.Guid == powerPlan.Guid, - }; - menuItem.Click += this.OnPowerPlanClick; - this.powerPlansMenuItem.DropDownItems.Add(menuItem); - } - - this.ApplyContextMenuTheme(); - - this.logger.LogDebug("Updated power plans in context menu"); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to update power plans in context menu"); - } - } - - public void UpdateProfiles(IEnumerable profileNames) - { - if (this.profilesMenuItem == null) - { - return; - } - - try - { - this.profilesMenuItem.DropDownItems.Clear(); - - if (!profileNames.Any()) - { - var noProfilesItem = new ToolStripMenuItem(this.Localize("SystemTray_NoProfilesAvailable", "No profiles available")) - { - Enabled = false, - }; - this.profilesMenuItem.DropDownItems.Add(noProfilesItem); - } - else - { - foreach (var profileName in profileNames) - { - var menuItem = new ToolStripMenuItem(profileName) - { - Tag = profileName, - }; - menuItem.Click += this.OnProfileClick; - this.profilesMenuItem.DropDownItems.Add(menuItem); - } - } - - this.ApplyContextMenuTheme(); - - this.logger.LogDebug("Updated profiles in context menu"); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to update profiles in context menu"); - } - } - - public void UpdateSystemStatus(string currentPowerPlan, double cpuUsage, double memoryUsage) - { - if (this.systemStatusMenuItem == null) - { - return; - } - - try - { - this.systemStatusMenuItem.Text = string.Format( - this.Localize("SystemTray_CpuRamStatusFormat", "💻 CPU: {0:F1}% | RAM: {1:F1}% | {2}"), - cpuUsage, - memoryUsage, - currentPowerPlan); - this.logger.LogDebug("Updated system status in context menu"); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to update system status in context menu"); - } - } - - public void UpdateSystemStatus(string currentPowerPlan) - { - if (this.systemStatusMenuItem == null) - { - return; - } - - try - { - this.systemStatusMenuItem.Text = string.Format( - this.Localize("SystemTray_PowerPlanFormat", "Power Plan: {0}"), - currentPowerPlan); - this.logger.LogDebug("Updated non-performance system status in context menu"); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to update system status in context menu"); - } - } - - public void Dispose() - { - if (this.disposed) - { - return; - } - - try - { - this.logger.LogInformation("Disposing system tray service"); - - if (this.notifyIcon != null) - { - this.notifyIcon.MouseUp -= this.OnTrayIconMouseUp; - this.notifyIcon.Visible = false; - this.notifyIcon.Dispose(); - this.notifyIcon = null; - } - - if (this.contextMenu != null) - { - this.contextMenu.Dispose(); - this.contextMenu = null; - } - - this.menuFont?.Dispose(); - this.menuFont = null; - if (this.localizationService != null) - { - this.localizationService.LanguageChanged -= this.OnLanguageChanged; - } - - this.disposed = true; - this.logger.LogInformation("System tray service disposed"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error disposing system tray service"); - } - } - - private string? ResolveTrayIconPath() - { - if (this.settings.UseCustomTrayIcon && !string.IsNullOrWhiteSpace(this.settings.CustomTrayIconPath) && File.Exists(this.settings.CustomTrayIconPath)) - { - return this.settings.CustomTrayIconPath; - } - - var iconCandidates = new[] - { - Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ico.ico"), - Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets", "icons", "ico.ico"), - }; - - foreach (var candidate in iconCandidates) - { - if (File.Exists(candidate)) - { - return candidate; - } - } - - return null; - } - - private void OnLanguageChanged(object? sender, string language) - { - this.UpdateLocalizedMenuText(); - } - - private void UpdateLocalizedMenuText() - { - if (this.notifyIcon != null) - { - this.notifyIcon.Text = this.Localize("MainWindow_Title", "ThreadPilot - Process & Power Plan Manager"); - } - - if (this.openDashboardMenuItem != null) - { - this.openDashboardMenuItem.Text = this.Localize("SystemTray_OpenDashboard", "Open Dashboard"); - } - - if (this.performanceMenuItem != null) - { - this.performanceMenuItem.Text = this.Localize("SystemTray_OpenDiagnostics", "Open Diagnostics"); - } - - if (this.systemStatusMenuItem != null) - { - this.systemStatusMenuItem.Text = this.Localize("SystemTray_SystemStatus", "System Status"); - } - - if (this.powerPlansMenuItem != null) - { - this.powerPlansMenuItem.Text = this.Localize("SystemTray_PowerPlans", "🔋 Power Plans"); - } - - if (this.profilesMenuItem != null) - { - this.profilesMenuItem.Text = this.Localize("SystemTray_Profiles", "📋 Profiles"); - } - - if (this.settingsMenuItem != null) - { - this.settingsMenuItem.Text = this.Localize("SystemTray_Settings", "Settings"); - } - - if (this.exitMenuItem != null) - { - this.exitMenuItem.Text = this.Localize("SystemTray_Exit", "Exit"); - } - - this.UpdateContextMenu(); - this.UpdateMonitoringStatus(this.isMonitoring, this.isWmiAvailable); - } - - private string Localize(string key, string fallback) - { - if (this.localizationService == null) - { - return fallback; - } - - var localized = this.localizationService.GetString(key); - return string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) - ? fallback - : localized; - } - - private Icon? TryLoadEmbeddedIcon() - { - try - { - var uri = new Uri("pack://application:,,,/assets/icons/ico.ico", UriKind.Absolute); - var streamInfo = System.Windows.Application.GetResourceStream(uri); - if (streamInfo != null) - { - return new Icon(streamInfo.Stream); - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to load embedded icon"); - } - return null; - } - - private void TryLoadTrayIcon(TrayIconState? stateOverride = null) - { - if (this.notifyIcon == null) - { - return; - } - - try - { - // Try custom or external bundled icon first - var iconPath = this.ResolveTrayIconPath(); - if (iconPath != null) - { - this.notifyIcon.Icon = new Icon(iconPath); - this.logger.LogDebug("Tray icon set from {IconPath}", iconPath); - return; - } - - // Try embedded resource icon (for single-file publish) - var embeddedIcon = this.TryLoadEmbeddedIcon(); - if (embeddedIcon != null) - { - this.notifyIcon.Icon = embeddedIcon; - this.logger.LogDebug("Tray icon set from embedded resource"); - return; - } - - // Fallback to system icons if no custom/bundled/embedded icon is available - var state = stateOverride ?? this.currentIconState; - this.notifyIcon.Icon = state switch - { - TrayIconState.Normal => SystemIcons.Application, - TrayIconState.Monitoring => SystemIcons.Information, - TrayIconState.Error => SystemIcons.Error, - TrayIconState.Disabled => SystemIcons.Warning, - _ => SystemIcons.Application, - }; - this.logger.LogDebug("Tray icon set to system icon for state {State}", state); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to load tray icon"); - } - } - - private void ApplyContextMenuTheme() - { - if (this.contextMenu == null) - { - return; - } - - Color backgroundColor; - Color foregroundColor; - Color selectionColor; - Color borderColor; - Color disabledColor; - - if (this.isDarkTheme) - { - // Force stable dark palette for WinForms tray menu even if XAML resources are unavailable. - backgroundColor = Color.FromArgb(28, 28, 30); - foregroundColor = Color.FromArgb(232, 232, 232); - selectionColor = Color.FromArgb(60, 60, 64); - borderColor = Color.FromArgb(74, 74, 79); - disabledColor = Color.FromArgb(132, 132, 136); - } - else - { - backgroundColor = ResolveColorFromResource("SurfaceAltBrush", SystemColors.Menu); - foregroundColor = ResolveColorFromResource("TextPrimaryBrush", SystemColors.MenuText); - selectionColor = ResolveColorFromResource("SoftSelectionBackgroundBrush", SystemColors.Highlight); - borderColor = ResolveColorFromResource("BorderBrush", SystemColors.ControlDark); - disabledColor = ResolveColorFromResource("TextDisabledBrush", SystemColors.GrayText); - } - - this.contextMenu.RenderMode = ToolStripRenderMode.Professional; - this.contextMenu.Renderer = new ToolStripProfessionalRenderer(new TrayMenuColorTable(backgroundColor, selectionColor, borderColor)); - this.contextMenu.BackColor = backgroundColor; - this.contextMenu.ForeColor = foregroundColor; - - ApplyMenuItemTheme(this.contextMenu.Items, backgroundColor, foregroundColor, disabledColor); - } - - private static void ApplyMenuItemTheme(ToolStripItemCollection items, Color backColor, Color foreColor, Color disabledColor) - { - foreach (ToolStripItem item in items) - { - if (item is ToolStripSeparator) - { - continue; - } - - item.BackColor = backColor; - item.ForeColor = item.Enabled ? foreColor : disabledColor; - - if (item is ToolStripMenuItem menuItem) - { - menuItem.DropDown.BackColor = backColor; - menuItem.DropDown.ForeColor = foreColor; - - if (menuItem.DropDownItems.Count > 0) - { - ApplyMenuItemTheme(menuItem.DropDownItems, backColor, foreColor, disabledColor); - } - } - } - } - - private sealed class TrayMenuColorTable : ProfessionalColorTable - { - private readonly Color backgroundColor; - private readonly Color selectionColor; - private readonly Color borderColor; - - public TrayMenuColorTable(Color backgroundColor, Color selectionColor, Color borderColor) - { - this.backgroundColor = backgroundColor; - this.selectionColor = selectionColor; - this.borderColor = borderColor; - } - - public override Color MenuBorder => this.borderColor; - - public override Color ToolStripDropDownBackground => this.backgroundColor; - - public override Color ImageMarginGradientBegin => this.ToolStripDropDownBackground; - - public override Color ImageMarginGradientMiddle => this.ToolStripDropDownBackground; - - public override Color ImageMarginGradientEnd => this.ToolStripDropDownBackground; - - public override Color MenuItemSelected => this.selectionColor; - - public override Color MenuItemSelectedGradientBegin => this.MenuItemSelected; - - public override Color MenuItemSelectedGradientEnd => this.MenuItemSelected; - - public override Color MenuItemBorder => this.borderColor; - } - - private static Font CreatePreferredMenuFont(float baseSize) - { - var size = Math.Max(8.5f, baseSize); - - try - { - return new Font("Segoe UI Variable", size, FontStyle.Regular, GraphicsUnit.Point); - } - catch - { - return new Font("Segoe UI", size, FontStyle.Regular, GraphicsUnit.Point); - } - } - - private static Color ResolveColorFromResource(string resourceKey, Color fallback) - { - var app = System.Windows.Application.Current; - if (app == null) - { - return fallback; - } - - MediaSolidColorBrush? brush = null; - - if (app.Dispatcher.CheckAccess()) - { - brush = app.TryFindResource(resourceKey) as MediaSolidColorBrush; - } - else - { - app.Dispatcher.Invoke(() => - { - brush = app.TryFindResource(resourceKey) as MediaSolidColorBrush; - }); - } - - if (brush != null) - { - return Color.FromArgb(brush.Color.A, brush.Color.R, brush.Color.G, brush.Color.B); - } - - return fallback; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Drawing; + using System.IO; + using System.Windows.Forms; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using MediaSolidColorBrush = System.Windows.Media.SolidColorBrush; + + public class SystemTrayService : ISystemTrayService + { + private readonly ILogger logger; + private NotifyIcon? notifyIcon; + private ContextMenuStrip? contextMenu; + private ToolStripMenuItem? quickApplyMenuItem; + private ToolStripMenuItem? selectedProcessMenuItem; + private ToolStripMenuItem? monitoringToggleMenuItem; + private ToolStripMenuItem? settingsMenuItem; + private ToolStripMenuItem? powerPlansMenuItem; + private ToolStripMenuItem? profilesMenuItem; + private ToolStripMenuItem? performanceMenuItem; + private ToolStripMenuItem? systemStatusMenuItem; + private ToolStripMenuItem? openDashboardMenuItem; + private ToolStripMenuItem? exitMenuItem; + private ApplicationSettingsModel settings; + private readonly ILocalizationService? localizationService; + private bool isMonitoring = true; + private bool isWmiAvailable = true; + private TrayIconState currentIconState = TrayIconState.Normal; + private bool isDarkTheme = true; + private Font? menuFont; + private Point lastContextMenuOpenPoint = Point.Empty; + private bool disposed = false; + + public event EventHandler? QuickApplyRequested; + + public event EventHandler? ShowMainWindowRequested; + + public event EventHandler? ExitRequested; + + public event EventHandler? MonitoringToggleRequested; + + public event EventHandler? SettingsRequested; + + public event EventHandler? PowerPlanChangeRequested; + + public event EventHandler? ProfileApplicationRequested; + + public event EventHandler? PerformanceDashboardRequested; + + public event EventHandler? DashboardRequested; + + public SystemTrayService(ILogger logger, ILocalizationService? localizationService = null) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.localizationService = localizationService; + this.settings = new ApplicationSettingsModel(); // Default settings + if (this.localizationService != null) + { + this.localizationService.LanguageChanged += this.OnLanguageChanged; + } + } + + public void Initialize() + { + try + { + this.logger.LogInformation("Initializing system tray service"); + + // Check if already initialized to prevent duplicate icons + if (this.notifyIcon != null) + { + this.logger.LogInformation("System tray service already initialized, skipping duplicate initialization to prevent duplicate icons"); + return; + } + + // Create the notify icon + this.notifyIcon = new NotifyIcon + { + Text = this.Localize("MainWindow_Title", "ThreadPilot - Process & Power Plan Manager"), + Visible = false, + }; + + // Load the tray icon (custom path if enabled, otherwise bundled ico.ico) + this.TryLoadTrayIcon(); + + // Create context menu + this.CreateContextMenu(); + + // Set up event handlers + this.notifyIcon.DoubleClick += this.OnTrayIconDoubleClick; + this.notifyIcon.MouseUp += this.OnTrayIconMouseUp; + + // Set initial icon state + this.UpdateTrayIcon(TrayIconState.Normal); + + this.logger.LogInformation("System tray service initialized successfully"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to initialize system tray service"); + throw; + } + } + + private void CreateContextMenu() + { + this.contextMenu = new ContextMenuStrip(); + this.menuFont = CreatePreferredMenuFont(this.contextMenu.Font.Size); + this.contextMenu.Font = this.menuFont; + + this.openDashboardMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_OpenDashboard", "Open Dashboard")) + { + Font = new Font(this.menuFont, FontStyle.Regular), + }; + this.openDashboardMenuItem.Click += this.OnDashboardClick; + this.contextMenu.Items.Add(this.openDashboardMenuItem); + + if (AppNavigationOptions.ShowAdvancedDiagnostics) + { + this.performanceMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_OpenDiagnostics", "Open Diagnostics")) + { + Font = new Font(this.menuFont, FontStyle.Regular), + }; + this.performanceMenuItem.Click += this.OnPerformanceDashboardClick; + this.contextMenu.Items.Add(this.performanceMenuItem); + } + + this.monitoringToggleMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_PauseMonitoring", "Pause Automation Monitoring")); + this.monitoringToggleMenuItem.Click += this.OnMonitoringToggleClick; + this.contextMenu.Items.Add(this.monitoringToggleMenuItem); + + this.contextMenu.Items.Add(new ToolStripSeparator()); + + // System status (disabled, for display only) + this.systemStatusMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_SystemStatus", "System Status")) + { + Enabled = false, + Font = new Font(this.menuFont, FontStyle.Regular), + }; + this.contextMenu.Items.Add(this.systemStatusMenuItem); + + // Selected process info (disabled, for display only) + this.selectedProcessMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_NoProcessSelected", "No process selected")) + { + Enabled = false, + Font = new Font(this.menuFont, FontStyle.Regular), + }; + this.contextMenu.Items.Add(this.selectedProcessMenuItem); + + // Quick apply command + this.quickApplyMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_ApplyPendingToSelected", "Apply Pending Settings to Selected Process")) + { + Enabled = false, + }; + this.quickApplyMenuItem.Click += this.OnQuickApplyClick; + this.contextMenu.Items.Add(this.quickApplyMenuItem); + + this.contextMenu.Items.Add(new ToolStripSeparator()); + + // Power Plans submenu + this.powerPlansMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_PowerPlans", "🔋 Power Plans")); + this.contextMenu.Items.Add(this.powerPlansMenuItem); + + // Profiles submenu + this.profilesMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_Profiles", "📋 Profiles")); + this.contextMenu.Items.Add(this.profilesMenuItem); + + this.contextMenu.Items.Add(new ToolStripSeparator()); + + // Settings + this.settingsMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_Settings", "Settings")); + this.settingsMenuItem.Click += this.OnSettingsClick; + this.contextMenu.Items.Add(this.settingsMenuItem); + + // Separator + this.contextMenu.Items.Add(new ToolStripSeparator()); + + // Exit + this.exitMenuItem = new ToolStripMenuItem(this.Localize("SystemTray_Exit", "Exit")); + this.exitMenuItem.Click += this.OnExitClick; + this.contextMenu.Items.Add(this.exitMenuItem); + + this.ApplyContextMenuTheme(); + } + + public void Show() + { + if (this.notifyIcon != null) + { + this.notifyIcon.Visible = true; + this.logger.LogDebug("System tray icon shown"); + } + } + + public void Hide() + { + if (this.notifyIcon != null) + { + this.notifyIcon.Visible = false; + this.logger.LogDebug("System tray icon hidden"); + } + } + + public void UpdateTooltip(string tooltip) + { + if (this.notifyIcon != null) + { + this.notifyIcon.Text = tooltip.Length > 63 ? tooltip.Substring(0, 60) + "..." : tooltip; + } + } + + public void ShowBalloonTip(string title, string text, int timeoutMs = 3000) + { + if (this.notifyIcon != null && this.notifyIcon.Visible) + { + this.notifyIcon.ShowBalloonTip(timeoutMs, title, text, ToolTipIcon.Info); + } + } + + public void UpdateContextMenu(string? selectedProcessName = null, bool hasSelection = false) + { + if (this.selectedProcessMenuItem == null || this.quickApplyMenuItem == null) + { + return; + } + + if (hasSelection && !string.IsNullOrEmpty(selectedProcessName)) + { + this.selectedProcessMenuItem.Text = string.Format( + this.Localize("SystemTray_SelectedProcessFormat", "Selected: {0}"), + selectedProcessName); + this.quickApplyMenuItem.Enabled = true; + this.quickApplyMenuItem.Text = string.Format( + this.Localize("SystemTray_ApplyPendingToProcessFormat", "Apply Pending Settings to {0}"), + selectedProcessName); + } + else + { + this.selectedProcessMenuItem.Text = this.Localize("SystemTray_NoProcessSelected", "No process selected"); + this.quickApplyMenuItem.Enabled = false; + this.quickApplyMenuItem.Text = this.Localize("SystemTray_ApplyPendingToSelected", "Apply Pending Settings to Selected Process"); + } + } + + private void OnTrayIconDoubleClick(object? sender, EventArgs e) + { + this.ShowMainWindowRequested?.Invoke(this, EventArgs.Empty); + } + + private void OnTrayIconMouseUp(object? sender, MouseEventArgs e) + { + if (e.Button != MouseButtons.Right || this.contextMenu == null) + { + return; + } + + var cursorPosition = Cursor.Position; + var workingArea = Screen.FromPoint(cursorPosition.IsEmpty ? this.lastContextMenuOpenPoint : cursorPosition).WorkingArea; + var openPoint = SystemTrayMenuPlacement.ResolveMenuOpenPoint( + cursorPosition, + this.lastContextMenuOpenPoint, + Rectangle.Empty, + workingArea); + this.lastContextMenuOpenPoint = openPoint; + + if (this.contextMenu.Visible) + { + this.contextMenu.Close(ToolStripDropDownCloseReason.CloseCalled); + } + + this.contextMenu.Show(openPoint, ToolStripDropDownDirection.Default); + } + + private void OnQuickApplyClick(object? sender, EventArgs e) + { + this.QuickApplyRequested?.Invoke(this, EventArgs.Empty); + } + + private void OnDashboardClick(object? sender, EventArgs e) + { + this.DashboardRequested?.Invoke(this, EventArgs.Empty); + } + + private void OnExitClick(object? sender, EventArgs e) + { + this.ExitRequested?.Invoke(this, EventArgs.Empty); + } + + private void OnMonitoringToggleClick(object? sender, EventArgs e) + { + this.isMonitoring = !this.isMonitoring; + this.MonitoringToggleRequested?.Invoke(this, new MonitoringToggleEventArgs(this.isMonitoring)); + this.UpdateMonitoringStatus(this.isMonitoring, this.isWmiAvailable); + } + + private void OnSettingsClick(object? sender, EventArgs e) + { + this.SettingsRequested?.Invoke(this, EventArgs.Empty); + } + + private void OnPerformanceDashboardClick(object? sender, EventArgs e) + { + this.PerformanceDashboardRequested?.Invoke(this, EventArgs.Empty); + } + + private void OnPowerPlanClick(object? sender, EventArgs e) + { + if (sender is ToolStripMenuItem menuItem && menuItem.Tag is PowerPlanModel powerPlan) + { + this.PowerPlanChangeRequested?.Invoke(this, new PowerPlanChangeRequestedEventArgs(powerPlan.Guid, powerPlan.Name)); + } + } + + private void OnProfileClick(object? sender, EventArgs e) + { + if (sender is ToolStripMenuItem menuItem && menuItem.Tag is string profileName) + { + this.ProfileApplicationRequested?.Invoke(this, new ProfileApplicationRequestedEventArgs(profileName)); + } + } + + public void UpdateMonitoringStatus(bool isMonitoring, bool isWmiAvailable = true) + { + this.isMonitoring = isMonitoring; + this.isWmiAvailable = isWmiAvailable; + + if (this.monitoringToggleMenuItem != null) + { + this.monitoringToggleMenuItem.Text = isMonitoring + ? this.Localize("SystemTray_PauseMonitoring", "Pause Automation Monitoring") + : this.Localize("SystemTray_ResumeMonitoring", "Resume Automation Monitoring"); + this.monitoringToggleMenuItem.Enabled = isWmiAvailable; + } + + // Update tray icon state + var iconState = !isWmiAvailable ? TrayIconState.Error : + isMonitoring ? TrayIconState.Monitoring : TrayIconState.Disabled; + this.UpdateTrayIcon(iconState); + + // Update tooltip + var status = !isWmiAvailable + ? this.Localize("SystemTray_StatusWmiError", "Automation WMI Error") + : isMonitoring + ? this.Localize("SystemTray_StatusActive", "Automation Active") + : this.Localize("SystemTray_StatusDisabled", "Automation Disabled"); + this.UpdateTooltip($"ThreadPilot - {status}"); + } + + public void UpdateTrayIcon(TrayIconState state) + { + if (this.notifyIcon == null) + { + return; + } + + this.currentIconState = state; + + this.TryLoadTrayIcon(state); + } + + public void ShowTrayNotification(string title, string message, NotificationType type = NotificationType.Information, int timeoutMs = 3000) + { + if (this.notifyIcon == null || !this.settings.EnableBalloonNotifications) + { + return; + } + + try + { + var balloonIcon = type switch + { + NotificationType.Error => ToolTipIcon.Error, + NotificationType.Warning => ToolTipIcon.Warning, + NotificationType.Success => ToolTipIcon.Info, + _ => ToolTipIcon.Info, + }; + + this.notifyIcon.ShowBalloonTip(timeoutMs, title, message, balloonIcon); + this.logger.LogDebug("Balloon tip shown: {Title}", title); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error showing balloon tip"); + } + } + + public void UpdateSettings(ApplicationSettingsModel settings) + { + this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); + + // Update tray icon visibility + if (this.notifyIcon != null) + { + this.notifyIcon.Visible = settings.ShowTrayIcon; + this.TryLoadTrayIcon(this.currentIconState); + } + + this.ApplyContextMenuTheme(); + + this.logger.LogDebug("Tray service settings updated"); + } + + public void ApplyTheme(bool useDarkTheme) + { + if (this.isDarkTheme == useDarkTheme) + { + return; + } + + this.isDarkTheme = useDarkTheme; + this.ApplyContextMenuTheme(); + } + + public void UpdatePowerPlans(IEnumerable powerPlans, PowerPlanModel? activePlan) + { + if (this.powerPlansMenuItem == null) + { + return; + } + + try + { + this.powerPlansMenuItem.DropDownItems.Clear(); + + foreach (var powerPlan in powerPlans) + { + var menuItem = new ToolStripMenuItem(powerPlan.Name) + { + Tag = powerPlan, + Checked = activePlan?.Guid == powerPlan.Guid, + }; + menuItem.Click += this.OnPowerPlanClick; + this.powerPlansMenuItem.DropDownItems.Add(menuItem); + } + + this.ApplyContextMenuTheme(); + + this.logger.LogDebug("Updated power plans in context menu"); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to update power plans in context menu"); + } + } + + public void UpdateProfiles(IEnumerable profileNames) + { + if (this.profilesMenuItem == null) + { + return; + } + + try + { + this.profilesMenuItem.DropDownItems.Clear(); + + if (!profileNames.Any()) + { + var noProfilesItem = new ToolStripMenuItem(this.Localize("SystemTray_NoProfilesAvailable", "No profiles available")) + { + Enabled = false, + }; + this.profilesMenuItem.DropDownItems.Add(noProfilesItem); + } + else + { + foreach (var profileName in profileNames) + { + var menuItem = new ToolStripMenuItem(profileName) + { + Tag = profileName, + }; + menuItem.Click += this.OnProfileClick; + this.profilesMenuItem.DropDownItems.Add(menuItem); + } + } + + this.ApplyContextMenuTheme(); + + this.logger.LogDebug("Updated profiles in context menu"); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to update profiles in context menu"); + } + } + + public void UpdateSystemStatus(string currentPowerPlan, double cpuUsage, double memoryUsage) + { + if (this.systemStatusMenuItem == null) + { + return; + } + + try + { + this.systemStatusMenuItem.Text = string.Format( + this.Localize("SystemTray_CpuRamStatusFormat", "💻 CPU: {0:F1}% | RAM: {1:F1}% | {2}"), + cpuUsage, + memoryUsage, + currentPowerPlan); + this.logger.LogDebug("Updated system status in context menu"); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to update system status in context menu"); + } + } + + public void UpdateSystemStatus(string currentPowerPlan) + { + if (this.systemStatusMenuItem == null) + { + return; + } + + try + { + this.systemStatusMenuItem.Text = string.Format( + this.Localize("SystemTray_PowerPlanFormat", "Power Plan: {0}"), + currentPowerPlan); + this.logger.LogDebug("Updated non-performance system status in context menu"); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to update system status in context menu"); + } + } + + public void Dispose() + { + if (this.disposed) + { + return; + } + + try + { + this.logger.LogInformation("Disposing system tray service"); + + if (this.notifyIcon != null) + { + this.notifyIcon.MouseUp -= this.OnTrayIconMouseUp; + this.notifyIcon.Visible = false; + this.notifyIcon.Dispose(); + this.notifyIcon = null; + } + + if (this.contextMenu != null) + { + this.contextMenu.Dispose(); + this.contextMenu = null; + } + + this.menuFont?.Dispose(); + this.menuFont = null; + if (this.localizationService != null) + { + this.localizationService.LanguageChanged -= this.OnLanguageChanged; + } + + this.disposed = true; + this.logger.LogInformation("System tray service disposed"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error disposing system tray service"); + } + } + + private string? ResolveTrayIconPath() + { + if (this.settings.UseCustomTrayIcon && !string.IsNullOrWhiteSpace(this.settings.CustomTrayIconPath) && File.Exists(this.settings.CustomTrayIconPath)) + { + return this.settings.CustomTrayIconPath; + } + + var iconCandidates = new[] + { + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ico.ico"), + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets", "icons", "ico.ico"), + }; + + foreach (var candidate in iconCandidates) + { + if (File.Exists(candidate)) + { + return candidate; + } + } + + return null; + } + + private void OnLanguageChanged(object? sender, string language) + { + this.UpdateLocalizedMenuText(); + } + + private void UpdateLocalizedMenuText() + { + if (this.notifyIcon != null) + { + this.notifyIcon.Text = this.Localize("MainWindow_Title", "ThreadPilot - Process & Power Plan Manager"); + } + + if (this.openDashboardMenuItem != null) + { + this.openDashboardMenuItem.Text = this.Localize("SystemTray_OpenDashboard", "Open Dashboard"); + } + + if (this.performanceMenuItem != null) + { + this.performanceMenuItem.Text = this.Localize("SystemTray_OpenDiagnostics", "Open Diagnostics"); + } + + if (this.systemStatusMenuItem != null) + { + this.systemStatusMenuItem.Text = this.Localize("SystemTray_SystemStatus", "System Status"); + } + + if (this.powerPlansMenuItem != null) + { + this.powerPlansMenuItem.Text = this.Localize("SystemTray_PowerPlans", "🔋 Power Plans"); + } + + if (this.profilesMenuItem != null) + { + this.profilesMenuItem.Text = this.Localize("SystemTray_Profiles", "📋 Profiles"); + } + + if (this.settingsMenuItem != null) + { + this.settingsMenuItem.Text = this.Localize("SystemTray_Settings", "Settings"); + } + + if (this.exitMenuItem != null) + { + this.exitMenuItem.Text = this.Localize("SystemTray_Exit", "Exit"); + } + + this.UpdateContextMenu(); + this.UpdateMonitoringStatus(this.isMonitoring, this.isWmiAvailable); + } + + private string Localize(string key, string fallback) + { + if (this.localizationService == null) + { + return fallback; + } + + var localized = this.localizationService.GetString(key); + return string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) + ? fallback + : localized; + } + + private Icon? TryLoadEmbeddedIcon() + { + try + { + var uri = new Uri("pack://application:,,,/assets/icons/ico.ico", UriKind.Absolute); + var streamInfo = System.Windows.Application.GetResourceStream(uri); + if (streamInfo != null) + { + return new Icon(streamInfo.Stream); + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to load embedded icon"); + } + return null; + } + + private void TryLoadTrayIcon(TrayIconState? stateOverride = null) + { + if (this.notifyIcon == null) + { + return; + } + + try + { + // Try custom or external bundled icon first + var iconPath = this.ResolveTrayIconPath(); + if (iconPath != null) + { + this.notifyIcon.Icon = new Icon(iconPath); + this.logger.LogDebug("Tray icon set from {IconPath}", iconPath); + return; + } + + // Try embedded resource icon (for single-file publish) + var embeddedIcon = this.TryLoadEmbeddedIcon(); + if (embeddedIcon != null) + { + this.notifyIcon.Icon = embeddedIcon; + this.logger.LogDebug("Tray icon set from embedded resource"); + return; + } + + // Fallback to system icons if no custom/bundled/embedded icon is available + var state = stateOverride ?? this.currentIconState; + this.notifyIcon.Icon = state switch + { + TrayIconState.Normal => SystemIcons.Application, + TrayIconState.Monitoring => SystemIcons.Information, + TrayIconState.Error => SystemIcons.Error, + TrayIconState.Disabled => SystemIcons.Warning, + _ => SystemIcons.Application, + }; + this.logger.LogDebug("Tray icon set to system icon for state {State}", state); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to load tray icon"); + } + } + + private void ApplyContextMenuTheme() + { + if (this.contextMenu == null) + { + return; + } + + Color backgroundColor; + Color foregroundColor; + Color selectionColor; + Color borderColor; + Color disabledColor; + + if (this.isDarkTheme) + { + // Force stable dark palette for WinForms tray menu even if XAML resources are unavailable. + backgroundColor = Color.FromArgb(28, 28, 30); + foregroundColor = Color.FromArgb(232, 232, 232); + selectionColor = Color.FromArgb(60, 60, 64); + borderColor = Color.FromArgb(74, 74, 79); + disabledColor = Color.FromArgb(132, 132, 136); + } + else + { + backgroundColor = ResolveColorFromResource("SurfaceAltBrush", SystemColors.Menu); + foregroundColor = ResolveColorFromResource("TextPrimaryBrush", SystemColors.MenuText); + selectionColor = ResolveColorFromResource("SoftSelectionBackgroundBrush", SystemColors.Highlight); + borderColor = ResolveColorFromResource("BorderBrush", SystemColors.ControlDark); + disabledColor = ResolveColorFromResource("TextDisabledBrush", SystemColors.GrayText); + } + + this.contextMenu.RenderMode = ToolStripRenderMode.Professional; + this.contextMenu.Renderer = new ToolStripProfessionalRenderer(new TrayMenuColorTable(backgroundColor, selectionColor, borderColor)); + this.contextMenu.BackColor = backgroundColor; + this.contextMenu.ForeColor = foregroundColor; + + ApplyMenuItemTheme(this.contextMenu.Items, backgroundColor, foregroundColor, disabledColor); + } + + private static void ApplyMenuItemTheme(ToolStripItemCollection items, Color backColor, Color foreColor, Color disabledColor) + { + foreach (ToolStripItem item in items) + { + if (item is ToolStripSeparator) + { + continue; + } + + item.BackColor = backColor; + item.ForeColor = item.Enabled ? foreColor : disabledColor; + + if (item is ToolStripMenuItem menuItem) + { + menuItem.DropDown.BackColor = backColor; + menuItem.DropDown.ForeColor = foreColor; + + if (menuItem.DropDownItems.Count > 0) + { + ApplyMenuItemTheme(menuItem.DropDownItems, backColor, foreColor, disabledColor); + } + } + } + } + + private sealed class TrayMenuColorTable : ProfessionalColorTable + { + private readonly Color backgroundColor; + private readonly Color selectionColor; + private readonly Color borderColor; + + public TrayMenuColorTable(Color backgroundColor, Color selectionColor, Color borderColor) + { + this.backgroundColor = backgroundColor; + this.selectionColor = selectionColor; + this.borderColor = borderColor; + } + + public override Color MenuBorder => this.borderColor; + + public override Color ToolStripDropDownBackground => this.backgroundColor; + + public override Color ImageMarginGradientBegin => this.ToolStripDropDownBackground; + + public override Color ImageMarginGradientMiddle => this.ToolStripDropDownBackground; + + public override Color ImageMarginGradientEnd => this.ToolStripDropDownBackground; + + public override Color MenuItemSelected => this.selectionColor; + + public override Color MenuItemSelectedGradientBegin => this.MenuItemSelected; + + public override Color MenuItemSelectedGradientEnd => this.MenuItemSelected; + + public override Color MenuItemBorder => this.borderColor; + } + + private static Font CreatePreferredMenuFont(float baseSize) + { + var size = Math.Max(8.5f, baseSize); + + try + { + return new Font("Segoe UI Variable", size, FontStyle.Regular, GraphicsUnit.Point); + } + catch + { + return new Font("Segoe UI", size, FontStyle.Regular, GraphicsUnit.Point); + } + } + + private static Color ResolveColorFromResource(string resourceKey, Color fallback) + { + var app = System.Windows.Application.Current; + if (app == null) + { + return fallback; + } + + MediaSolidColorBrush? brush = null; + + if (app.Dispatcher.CheckAccess()) + { + brush = app.TryFindResource(resourceKey) as MediaSolidColorBrush; + } + else + { + app.Dispatcher.Invoke(() => + { + brush = app.TryFindResource(resourceKey) as MediaSolidColorBrush; + }); + } + + if (brush != null) + { + return Color.FromArgb(brush.Color.A, brush.Color.R, brush.Color.G, brush.Color.B); + } + + return fallback; + } + } +} diff --git a/Services/SystemTrayStatusUpdater.cs b/Services/SystemTrayStatusUpdater.cs index 6fa2592..f214d42 100644 --- a/Services/SystemTrayStatusUpdater.cs +++ b/Services/SystemTrayStatusUpdater.cs @@ -1,160 +1,144 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Linq; - using System.Threading.Tasks; - using ThreadPilot.Models; - - public interface ISystemTrayStatusUpdater - { - bool ShouldRunPerformanceStatusUpdates { get; } - - Task UpdateContextMenuAsync(ISystemTrayService systemTrayService); - - Task UpdateStatusAsync(ISystemTrayService systemTrayService, Func dispatchAsync); - } - - public sealed class SystemTrayStatusUpdater : ISystemTrayStatusUpdater - { - private readonly IPowerPlanService powerPlanService; - private readonly Lazy performanceService; - private readonly ILocalizationService? localizationService; - - public SystemTrayStatusUpdater( - IPowerPlanService powerPlanService, - Lazy performanceService, - ILocalizationService? localizationService = null) - { - this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); - this.performanceService = performanceService ?? throw new ArgumentNullException(nameof(performanceService)); - this.localizationService = localizationService; - } - - public bool ShouldRunPerformanceStatusUpdates => AppNavigationOptions.ShowAdvancedDiagnostics; - - public async Task UpdateContextMenuAsync(ISystemTrayService systemTrayService) - { - ArgumentNullException.ThrowIfNull(systemTrayService); - - var activePowerPlan = await this.UpdatePowerPlanMenuAsync(systemTrayService).ConfigureAwait(false); - this.UpdateProfileMenu(systemTrayService); - - await this.UpdateStatusCoreAsync( - systemTrayService, - activePowerPlan, - action => - { - action(); - return Task.CompletedTask; - }).ConfigureAwait(false); - } - - public async Task UpdateStatusAsync(ISystemTrayService systemTrayService, Func dispatchAsync) - { - ArgumentNullException.ThrowIfNull(systemTrayService); - ArgumentNullException.ThrowIfNull(dispatchAsync); - - try - { - var activePowerPlan = await this.powerPlanService.GetActivePowerPlan().ConfigureAwait(false); - await this.UpdateStatusCoreAsync(systemTrayService, activePowerPlan, dispatchAsync).ConfigureAwait(false); - return true; - } - catch - { - return false; - } - } - - private async Task UpdatePowerPlanMenuAsync(ISystemTrayService systemTrayService) - { - var powerPlans = await this.powerPlanService.GetPowerPlansAsync().ConfigureAwait(false); - var activePowerPlan = await this.powerPlanService.GetActivePowerPlan().ConfigureAwait(false); - systemTrayService.UpdatePowerPlans(powerPlans, activePowerPlan); - return activePowerPlan; - } - - private void UpdateProfileMenu(ISystemTrayService systemTrayService) - { - var profilesDirectory = StoragePaths.ProfilesDirectory; - var profileNames = new List(); - - if (Directory.Exists(profilesDirectory)) - { - profileNames = Directory.GetFiles(profilesDirectory, "*.json") - .Select(Path.GetFileNameWithoutExtension) - .Where(name => !string.IsNullOrWhiteSpace(name)) - .ToList()!; - } - - systemTrayService.UpdateProfiles(profileNames); - } - - private async Task UpdateStatusCoreAsync( - ISystemTrayService systemTrayService, - PowerPlanModel? activePowerPlan, - Func dispatchAsync) - { - var planName = activePowerPlan?.Name ?? this.Localize("SystemTray_Unknown", "Unknown"); - - if (!this.ShouldRunPerformanceStatusUpdates) - { - await dispatchAsync(() => systemTrayService.UpdateSystemStatus(planName)).ConfigureAwait(false); - return; - } - - try - { - var metricsTask = this.performanceService.Value.GetSystemMetricsAsync(lightweight: true); - var metricsResult = await Task.WhenAny(metricsTask, Task.Delay(2000)).ConfigureAwait(false); - - if (metricsResult == metricsTask) - { - var currentMetrics = await metricsTask.ConfigureAwait(false); - await dispatchAsync(() => systemTrayService.UpdateSystemStatus( - planName, - currentMetrics?.TotalCpuUsage ?? 0.0, - currentMetrics?.MemoryUsagePercentage ?? 0.0)).ConfigureAwait(false); - return; - } - } - catch - { - // Fall back to non-performance status below. - } - - await dispatchAsync(() => systemTrayService.UpdateSystemStatus(planName)).ConfigureAwait(false); - } - - private string Localize(string key, string fallback) - { - if (this.localizationService == null) - { - return fallback; - } - - var localized = this.localizationService.GetString(key); - return string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) - ? fallback - : localized; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Threading.Tasks; + using ThreadPilot.Models; + + public interface ISystemTrayStatusUpdater + { + bool ShouldRunPerformanceStatusUpdates { get; } + + Task UpdateContextMenuAsync(ISystemTrayService systemTrayService); + + Task UpdateStatusAsync(ISystemTrayService systemTrayService, Func dispatchAsync); + } + + public sealed class SystemTrayStatusUpdater : ISystemTrayStatusUpdater + { + private readonly IPowerPlanService powerPlanService; + private readonly Lazy performanceService; + private readonly ILocalizationService? localizationService; + + public SystemTrayStatusUpdater( + IPowerPlanService powerPlanService, + Lazy performanceService, + ILocalizationService? localizationService = null) + { + this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); + this.performanceService = performanceService ?? throw new ArgumentNullException(nameof(performanceService)); + this.localizationService = localizationService; + } + + public bool ShouldRunPerformanceStatusUpdates => AppNavigationOptions.ShowAdvancedDiagnostics; + + public async Task UpdateContextMenuAsync(ISystemTrayService systemTrayService) + { + ArgumentNullException.ThrowIfNull(systemTrayService); + + var activePowerPlan = await this.UpdatePowerPlanMenuAsync(systemTrayService).ConfigureAwait(false); + this.UpdateProfileMenu(systemTrayService); + + await this.UpdateStatusCoreAsync( + systemTrayService, + activePowerPlan, + action => + { + action(); + return Task.CompletedTask; + }).ConfigureAwait(false); + } + + public async Task UpdateStatusAsync(ISystemTrayService systemTrayService, Func dispatchAsync) + { + ArgumentNullException.ThrowIfNull(systemTrayService); + ArgumentNullException.ThrowIfNull(dispatchAsync); + + try + { + var activePowerPlan = await this.powerPlanService.GetActivePowerPlan().ConfigureAwait(false); + await this.UpdateStatusCoreAsync(systemTrayService, activePowerPlan, dispatchAsync).ConfigureAwait(false); + return true; + } + catch + { + return false; + } + } + + private async Task UpdatePowerPlanMenuAsync(ISystemTrayService systemTrayService) + { + var powerPlans = await this.powerPlanService.GetPowerPlansAsync().ConfigureAwait(false); + var activePowerPlan = await this.powerPlanService.GetActivePowerPlan().ConfigureAwait(false); + systemTrayService.UpdatePowerPlans(powerPlans, activePowerPlan); + return activePowerPlan; + } + + private void UpdateProfileMenu(ISystemTrayService systemTrayService) + { + var profilesDirectory = StoragePaths.ProfilesDirectory; + var profileNames = new List(); + + if (Directory.Exists(profilesDirectory)) + { + profileNames = Directory.GetFiles(profilesDirectory, "*.json") + .Select(Path.GetFileNameWithoutExtension) + .Where(name => !string.IsNullOrWhiteSpace(name)) + .ToList()!; + } + + systemTrayService.UpdateProfiles(profileNames); + } + + private async Task UpdateStatusCoreAsync( + ISystemTrayService systemTrayService, + PowerPlanModel? activePowerPlan, + Func dispatchAsync) + { + var planName = activePowerPlan?.Name ?? this.Localize("SystemTray_Unknown", "Unknown"); + + if (!this.ShouldRunPerformanceStatusUpdates) + { + await dispatchAsync(() => systemTrayService.UpdateSystemStatus(planName)).ConfigureAwait(false); + return; + } + + try + { + var metricsTask = this.performanceService.Value.GetSystemMetricsAsync(lightweight: true); + var metricsResult = await Task.WhenAny(metricsTask, Task.Delay(2000)).ConfigureAwait(false); + + if (metricsResult == metricsTask) + { + var currentMetrics = await metricsTask.ConfigureAwait(false); + await dispatchAsync(() => systemTrayService.UpdateSystemStatus( + planName, + currentMetrics?.TotalCpuUsage ?? 0.0, + currentMetrics?.MemoryUsagePercentage ?? 0.0)).ConfigureAwait(false); + return; + } + } + catch + { + // Fall back to non-performance status below. + } + + await dispatchAsync(() => systemTrayService.UpdateSystemStatus(planName)).ConfigureAwait(false); + } + + private string Localize(string key, string fallback) + { + if (this.localizationService == null) + { + return fallback; + } + + var localized = this.localizationService.GetString(key); + return string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) + ? fallback + : localized; + } + } +} diff --git a/Services/SystemTweaksService.cs b/Services/SystemTweaksService.cs index 5609bb2..7da99fd 100644 --- a/Services/SystemTweaksService.cs +++ b/Services/SystemTweaksService.cs @@ -1,799 +1,780 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.IO; - using System.Management; - using System.ServiceProcess; - using System.Text.RegularExpressions; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - - /// - /// Service for managing Windows system tweaks and optimizations. - /// - public class SystemTweaksService : ISystemTweaksService - { - private static readonly string BcdEditExecutablePath = Path.Combine(Environment.SystemDirectory, "bcdedit.exe"); - private static readonly string PowerCfgExecutablePath = Path.Combine(Environment.SystemDirectory, "powercfg.exe"); - private static readonly string ScExecutablePath = Path.Combine(Environment.SystemDirectory, "sc.exe"); - private static readonly HashSet AllowedExecutablePaths = new(StringComparer.OrdinalIgnoreCase) - { - Path.GetFullPath(BcdEditExecutablePath), - Path.GetFullPath(PowerCfgExecutablePath), - Path.GetFullPath(ScExecutablePath), - }; - - private static readonly Regex HexValueRegex = new("0x([0-9a-fA-F]+)", RegexOptions.Compiled); - private static readonly Regex ServiceNameRegex = new("^[A-Za-z0-9_.-]+$", RegexOptions.Compiled); - private static readonly TimeSpan ExternalCommandTimeout = TimeSpan.FromSeconds(20); - private const string ProcessorSubgroupAlias = "SUB_PROCESSOR"; - private const string CoreParkingSettingAlias = "CPMINCORES"; - private const string CStatesSettingAlias = "IDLEDISABLE"; - private const string CoreParkingVisibilityKeyPath = @"SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583"; - private const string PriorityControlKeyPath = @"SYSTEM\CurrentControlSet\Control\PriorityControl"; - private const string PrioritySeparationValueName = "Win32PrioritySeparation"; - private const int HighSchedulingCategoryDisabledValue = 2; - internal const int HighSchedulingCategoryEnabledValue = 0x1A; - private readonly ILogger logger; - private readonly IElevationService elevationService; - - public event EventHandler? TweakStatusChanged; - - public SystemTweaksService( - ILogger logger, - IElevationService elevationService) - { - this.logger = logger; - this.elevationService = elevationService; - } - - public async Task GetCoreParkingStatusAsync() - { - try - { - await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CoreParkingSettingAlias); - - var acValue = await this.GetPowerCfgAcSettingValueAsync(ProcessorSubgroupAlias, CoreParkingSettingAlias); - if (!acValue.HasValue) - { - return new TweakStatus { IsAvailable = false, ErrorMessage = "Could not query Core Parking value via powercfg" }; - } - - // ON = disable parking (keep all cores unparked, typically 100) - var isEnabled = acValue.Value >= 100; - - return new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "ON disables core parking (all cores unparked); OFF allows parking", - }; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting Core Parking status"); - return new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }; - } - } - - public async Task SetCoreParkingAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify Core Parking"); - return false; - } - - await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CoreParkingSettingAlias); - - var acValue = enabled ? 100 : 10; - var setValueResult = await RunProcessAsync( - PowerCfgExecutablePath, - $"-setacvalueindex SCHEME_CURRENT {ProcessorSubgroupAlias} {CoreParkingSettingAlias} {acValue}"); - if (setValueResult.ExitCode != 0) - { - this.logger.LogError( - "Failed setting Core Parking AC value. ExitCode={ExitCode}, Error={Error}", - setValueResult.ExitCode, setValueResult.StandardError); - return false; - } - - var activateResult = await RunProcessAsync(PowerCfgExecutablePath, "/setactive SCHEME_CURRENT"); - if (activateResult.ExitCode != 0) - { - this.logger.LogError( - "Failed activating current power scheme after Core Parking change. ExitCode={ExitCode}, Error={Error}", - activateResult.ExitCode, activateResult.StandardError); - return false; - } - - // Keep setting visible in Windows advanced power UI if the key exists. - using var visibilityKey = Registry.LocalMachine.OpenSubKey(CoreParkingVisibilityKeyPath, true); - if (visibilityKey != null) - { - visibilityKey.SetValue("Attributes", 2, RegistryValueKind.DWord); - } - - var status = await this.GetCoreParkingStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("CoreParking", status)); - - this.logger.LogInformation("Core Parking {Status}", enabled ? "enabled" : "disabled"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting Core Parking to {Enabled}", enabled); - return false; - } - } - - public async Task GetCStatesStatusAsync() - { - try - { - await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CStatesSettingAlias); - - var acValue = await this.GetPowerCfgAcSettingValueAsync(ProcessorSubgroupAlias, CStatesSettingAlias); - if (!acValue.HasValue) - { - return new TweakStatus { IsAvailable = false, ErrorMessage = "Could not query C-States value via powercfg" }; - } - - // ON = enable C-States (IDLEDISABLE=0), OFF = disable C-States (IDLEDISABLE=1) - var isEnabled = acValue.Value == 0; - - return new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "ON enables C-States; OFF disables C-States for lower latency", - }; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting C-States status"); - return new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }; - } - } - - public async Task SetCStatesAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify C-States"); - return false; - } - - await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CStatesSettingAlias); - - var value = enabled ? 0 : 1; - var setValueResult = await RunProcessAsync( - PowerCfgExecutablePath, - $"-setacvalueindex SCHEME_CURRENT {ProcessorSubgroupAlias} {CStatesSettingAlias} {value}"); - if (setValueResult.ExitCode != 0) - { - this.logger.LogError( - "Failed setting C-States AC value. ExitCode={ExitCode}, Error={Error}", - setValueResult.ExitCode, setValueResult.StandardError); - return false; - } - - var activateResult = await RunProcessAsync(PowerCfgExecutablePath, "/setactive SCHEME_CURRENT"); - if (activateResult.ExitCode != 0) - { - this.logger.LogError( - "Failed activating current power scheme after C-States change. ExitCode={ExitCode}, Error={Error}", - activateResult.ExitCode, activateResult.StandardError); - return false; - } - - var status = await this.GetCStatesStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("CStates", status)); - - this.logger.LogInformation("C-States {Status}", enabled ? "enabled" : "disabled"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting C-States to {Enabled}", enabled); - return false; - } - } - - public Task GetSysMainStatusAsync() - { - try - { - using var serviceController = new ServiceController("SysMain"); - serviceController.Refresh(); - var isEnabled = serviceController.StartType != ServiceStartMode.Disabled; - var isAvailable = true; - - return Task.FromResult(new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = isAvailable, - Description = "Windows Superfetch/SysMain service for memory management", - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting SysMain status"); - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); - } - } - - public async Task SetSysMainAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify SysMain service"); - return false; - } - - using var serviceController = new ServiceController("SysMain"); - if (!await this.SetServiceStartModeAsync("SysMain", enabled ? ServiceStartMode.Automatic : ServiceStartMode.Disabled)) - { - this.logger.LogError("Failed to set SysMain startup mode"); - return false; - } - - serviceController.Refresh(); - - if (enabled && serviceController.Status == ServiceControllerStatus.Stopped) - { - serviceController.Start(); - serviceController.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30)); - } - else if (!enabled && (serviceController.Status == ServiceControllerStatus.Running || serviceController.Status == ServiceControllerStatus.Paused)) - { - serviceController.Stop(); - serviceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30)); - } - - var status = await this.GetSysMainStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("SysMain", status)); - - this.logger.LogInformation("SysMain service {Status}", enabled ? "started" : "stopped"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting SysMain service to {Enabled}", enabled); - return false; - } - } - - public Task GetPrefetchStatusAsync() - { - try - { - using var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters"); - if (key == null) - { - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "Prefetch registry key not found" }); - } - - var enablePrefetcher = key.GetValue("EnablePrefetcher"); - var isEnabled = enablePrefetcher?.ToString() != "0"; // 0 = disabled, 1-3 = enabled - - return Task.FromResult(new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "Windows Prefetch feature for faster application loading", - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting Prefetch status"); - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); - } - } - - public async Task SetPrefetchAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify Prefetch"); - return false; - } - - using var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters", true); - if (key == null) - { - this.logger.LogError("Prefetch registry key not found"); - return false; - } - - // Set EnablePrefetcher: 0 = disabled, 3 = enabled for both applications and boot - key.SetValue("EnablePrefetcher", enabled ? 3 : 0, RegistryValueKind.DWord); - - var status = await this.GetPrefetchStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("Prefetch", status)); - - this.logger.LogInformation("Prefetch {Status}", enabled ? "enabled" : "disabled"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting Prefetch to {Enabled}", enabled); - return false; - } - } - - public Task GetPowerThrottlingStatusAsync() - { - try - { - using var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Power\PowerThrottling"); - if (key == null) - { - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "Power Throttling not available on this system" }); - } - - var powerThrottlingOff = ReadRegistryIntValue(key, "PowerThrottlingOff"); - // ON = disable throttling (PowerThrottlingOff=1) - var isEnabled = powerThrottlingOff.GetValueOrDefault(0) == 1; - - return Task.FromResult(new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "ON disables Windows Power Throttling for sustained performance", - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting Power Throttling status"); - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); - } - } - - public async Task SetPowerThrottlingAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify Power Throttling"); - return false; - } - - using var key = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Power\PowerThrottling"); - if (key == null) - { - this.logger.LogError("Could not create Power Throttling registry key"); - return false; - } - - // Set PowerThrottlingOff: 1 = throttling disabled, 0 = throttling enabled - key.SetValue("PowerThrottlingOff", enabled ? 1 : 0, RegistryValueKind.DWord); - - var status = await this.GetPowerThrottlingStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("PowerThrottling", status)); - - this.logger.LogInformation("Power Throttling {Status}", enabled ? "enabled" : "disabled"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting Power Throttling to {Enabled}", enabled); - return false; - } - } - - public async Task GetHpetStatusAsync() - { - try - { - var result = await RunProcessAsync(BcdEditExecutablePath, "/enum"); - if (result.ExitCode != 0) - { - return new TweakStatus - { - IsAvailable = false, - ErrorMessage = string.IsNullOrWhiteSpace(result.StandardError) - ? "Could not query bcdedit status" - : result.StandardError, - }; - } - - var output = result.StandardOutput; - - var platformClockLine = output.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) - .FirstOrDefault(l => l.TrimStart().StartsWith("useplatformclock", StringComparison.OrdinalIgnoreCase)); - - // ON = disable HPET (useplatformclock removed/absent) - var isEnabled = true; - if (!string.IsNullOrWhiteSpace(platformClockLine)) - { - isEnabled = !platformClockLine.TrimEnd().EndsWith("Yes", StringComparison.OrdinalIgnoreCase); - } - - return new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "High Precision Event Timer for system timing", - }; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting HPET status"); - return new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }; - } - } - - public async Task SetHpetAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify HPET"); - return false; - } - - // ON = disable HPET (/deletevalue), OFF = force HPET (/set true) - var arguments = enabled ? "/deletevalue useplatformclock" : "/set useplatformclock true"; - var commandResult = await RunProcessAsync(BcdEditExecutablePath, arguments); - var success = commandResult.ExitCode == 0; - - if (success) - { - var status = await this.GetHpetStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("Hpet", status)); - this.logger.LogInformation("HPET {Status}", enabled ? "enabled" : "disabled"); - } - else - { - this.logger.LogWarning( - "Failed to set HPET. ExitCode={ExitCode}, Error={Error}", - commandResult.ExitCode, commandResult.StandardError); - } - - return success; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting HPET to {Enabled}", enabled); - return false; - } - } - - public Task GetHighSchedulingCategoryStatusAsync() - { - try - { - using var key = Registry.LocalMachine.OpenSubKey(PriorityControlKeyPath); - if (key == null) - { - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "PriorityControl registry key not found" }); - } - - var rawValue = ReadRegistryIntValue(key, PrioritySeparationValueName); - var isEnabled = rawValue.GetValueOrDefault(HighSchedulingCategoryDisabledValue) == HighSchedulingCategoryEnabledValue; - - return Task.FromResult(new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "ON applies high foreground boost (Win32PrioritySeparation=26 / 0x1A)", - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting High Scheduling Category status"); - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); - } - } - - public async Task SetHighSchedulingCategoryAsync(bool enabled) - { - try - { - if (!this.elevationService.IsRunningAsAdministrator()) - { - this.logger.LogWarning("Administrator privileges required to modify High Scheduling Category"); - return false; - } - - using var key = Registry.LocalMachine.OpenSubKey(PriorityControlKeyPath, true); - if (key == null) - { - this.logger.LogError("PriorityControl registry key not found"); - return false; - } - - // ON = 26 / 0x1A, OFF = 2 (default/minimal boost) - key.SetValue(PrioritySeparationValueName, GetHighSchedulingCategoryRegistryValue(enabled), RegistryValueKind.DWord); - - var status = await this.GetHighSchedulingCategoryStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("HighSchedulingCategory", status)); - - this.logger.LogInformation("High Scheduling Category {Status}", enabled ? "enabled" : "disabled"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting High Scheduling Category to {Enabled}", enabled); - return false; - } - } - - private async Task SetServiceStartModeAsync(string serviceName, ServiceStartMode mode) - { - if (!ServiceNameRegex.IsMatch(serviceName)) - { - this.logger.LogWarning("Rejected invalid service name format: {ServiceName}", serviceName); - return false; - } - - var startModeValue = mode switch - { - ServiceStartMode.Automatic => "auto", - ServiceStartMode.Manual => "demand", - ServiceStartMode.Disabled => "disabled", - _ => "demand", - }; - - var result = await RunProcessAsync(ScExecutablePath, $"config \"{serviceName}\" start= {startModeValue}"); - if (result.ExitCode != 0) - { - this.logger.LogWarning( - "Failed to update service start mode for {ServiceName}. ExitCode={ExitCode}, Error={Error}", - serviceName, result.ExitCode, result.StandardError); - return false; - } - - return true; - } - - internal static int GetHighSchedulingCategoryRegistryValue(bool enabled) => - enabled ? HighSchedulingCategoryEnabledValue : HighSchedulingCategoryDisabledValue; - - private async Task EnsurePowerSettingVisibleAsync(string subgroupAlias, string settingAlias) - { - var attributesResult = await RunProcessAsync( - PowerCfgExecutablePath, - $"-attributes {subgroupAlias} {settingAlias} -ATTRIB_HIDE"); - - if (attributesResult.ExitCode != 0) - { - this.logger.LogDebug( - "Could not unhide power setting {Subgroup}/{Setting}. ExitCode={ExitCode}, Error={Error}", - subgroupAlias, settingAlias, attributesResult.ExitCode, attributesResult.StandardError); - } - } - - private async Task GetPowerCfgAcSettingValueAsync(string subgroupAlias, string settingAlias) - { - var queryResult = await RunProcessAsync( - PowerCfgExecutablePath, - $"-query SCHEME_CURRENT {subgroupAlias} {settingAlias}"); - - if (queryResult.ExitCode != 0) - { - this.logger.LogWarning( - "powercfg query failed for {Subgroup}/{Setting}. ExitCode={ExitCode}, Error={Error}", - subgroupAlias, settingAlias, queryResult.ExitCode, queryResult.StandardError); - return null; - } - - var line = queryResult.StandardOutput - .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) - .FirstOrDefault(l => l.Contains("Current AC Power Setting Index", StringComparison.OrdinalIgnoreCase)); - if (string.IsNullOrWhiteSpace(line)) - { - return null; - } - - var match = HexValueRegex.Match(line); - if (!match.Success) - { - return null; - } - - return int.TryParse(match.Groups[1].Value, System.Globalization.NumberStyles.HexNumber, - System.Globalization.CultureInfo.InvariantCulture, out var parsed) - ? parsed - : null; - } - - private static async Task RunProcessAsync(string fileName, string arguments) - { - if (!IsAllowedExecutable(fileName)) - { - return new ProcessResult(-1, string.Empty, $"Executable not allowed: {fileName}"); - } - - var processInfo = new ProcessStartInfo - { - FileName = Path.GetFullPath(fileName), - Arguments = arguments, - UseShellExecute = false, - RedirectStandardOutput = true, - RedirectStandardError = true, - CreateNoWindow = true, - }; - - using var process = Process.Start(processInfo); - if (process == null) - { - return new ProcessResult(-1, string.Empty, "Could not start process"); - } - - var outputTask = process.StandardOutput.ReadToEndAsync(); - var errorTask = process.StandardError.ReadToEndAsync(); - var exitTask = process.WaitForExitAsync(); - var completedTask = await Task.WhenAny(exitTask, Task.Delay(ExternalCommandTimeout)); - if (completedTask != exitTask) - { - try - { - process.Kill(entireProcessTree: true); - } - catch - { - // Best-effort kill for stuck child processes. - } - - return new ProcessResult(-1, await outputTask, $"Process timed out after {ExternalCommandTimeout.TotalSeconds} seconds"); - } - - await exitTask; - - return new ProcessResult(process.ExitCode, await outputTask, await errorTask); - } - - private static bool IsAllowedExecutable(string fileName) - { - if (string.IsNullOrWhiteSpace(fileName) || !Path.IsPathRooted(fileName)) - { - return false; - } - - var fullPath = Path.GetFullPath(fileName); - return AllowedExecutablePaths.Contains(fullPath) && File.Exists(fullPath); - } - - private static int? ReadRegistryIntValue(RegistryKey key, string valueName) - { - var raw = key.GetValue(valueName); - return raw switch - { - int intValue => intValue, - uint uintValue => unchecked((int)uintValue), - long longValue when longValue >= int.MinValue && longValue <= int.MaxValue => (int)longValue, - string stringValue when int.TryParse(stringValue, out var parsed) => parsed, - _ => null, - }; - } - - private readonly struct ProcessResult - { - public ProcessResult(int exitCode, string standardOutput, string standardError) - { - this.ExitCode = exitCode; - this.StandardOutput = standardOutput; - this.StandardError = standardError; - } - - public int ExitCode { get; } - - public string StandardOutput { get; } - - public string StandardError { get; } - } - - public Task GetMenuShowDelayStatusAsync() - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop"); - if (key == null) - { - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "Desktop registry key not found" }); - } - - var menuShowDelay = key.GetValue("MenuShowDelay"); - var isEnabled = menuShowDelay?.ToString() != "0"; // 0 = no delay, >0 = delay enabled - - return Task.FromResult(new TweakStatus - { - IsEnabled = isEnabled, - IsAvailable = true, - Description = "Delay before showing context menus", - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error getting Menu Show Delay status"); - return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); - } - } - - public async Task SetMenuShowDelayAsync(bool enabled) - { - try - { - using var key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true); - if (key == null) - { - this.logger.LogError("Desktop registry key not found"); - return false; - } - - // Set MenuShowDelay: 0 = no delay, 400 = default delay - key.SetValue("MenuShowDelay", enabled ? "400" : "0", RegistryValueKind.String); - - var status = await this.GetMenuShowDelayStatusAsync(); - this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("MenuShowDelay", status)); - - this.logger.LogInformation("Menu Show Delay {Status}", enabled ? "enabled" : "disabled"); - return true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error setting Menu Show Delay to {Enabled}", enabled); - return false; - } - } - - public async Task RefreshAllStatusesAsync() - { - try - { - this.logger.LogInformation("Refreshing all system tweak statuses"); - - var tasks = new[] - { - this.GetCoreParkingStatusAsync(), - this.GetCStatesStatusAsync(), - this.GetSysMainStatusAsync(), - this.GetPrefetchStatusAsync(), - this.GetPowerThrottlingStatusAsync(), - this.GetHpetStatusAsync(), - this.GetHighSchedulingCategoryStatusAsync(), - this.GetMenuShowDelayStatusAsync(), - }; - - await Task.WhenAll(tasks); - this.logger.LogInformation("All system tweak statuses refreshed"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error refreshing system tweak statuses"); - } - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Management; + using System.ServiceProcess; + using System.Text.RegularExpressions; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + + public class SystemTweaksService : ISystemTweaksService + { + private static readonly string BcdEditExecutablePath = Path.Combine(Environment.SystemDirectory, "bcdedit.exe"); + private static readonly string PowerCfgExecutablePath = Path.Combine(Environment.SystemDirectory, "powercfg.exe"); + private static readonly string ScExecutablePath = Path.Combine(Environment.SystemDirectory, "sc.exe"); + private static readonly HashSet AllowedExecutablePaths = new(StringComparer.OrdinalIgnoreCase) + { + Path.GetFullPath(BcdEditExecutablePath), + Path.GetFullPath(PowerCfgExecutablePath), + Path.GetFullPath(ScExecutablePath), + }; + + private static readonly Regex HexValueRegex = new("0x([0-9a-fA-F]+)", RegexOptions.Compiled); + private static readonly Regex ServiceNameRegex = new("^[A-Za-z0-9_.-]+$", RegexOptions.Compiled); + private static readonly TimeSpan ExternalCommandTimeout = TimeSpan.FromSeconds(20); + private const string ProcessorSubgroupAlias = "SUB_PROCESSOR"; + private const string CoreParkingSettingAlias = "CPMINCORES"; + private const string CStatesSettingAlias = "IDLEDISABLE"; + private const string CoreParkingVisibilityKeyPath = @"SYSTEM\CurrentControlSet\Control\Power\PowerSettings\54533251-82be-4824-96c1-47b60b740d00\0cc5b647-c1df-4637-891a-dec35c318583"; + private const string PriorityControlKeyPath = @"SYSTEM\CurrentControlSet\Control\PriorityControl"; + private const string PrioritySeparationValueName = "Win32PrioritySeparation"; + private const int HighSchedulingCategoryDisabledValue = 2; + internal const int HighSchedulingCategoryEnabledValue = 0x1A; + private readonly ILogger logger; + private readonly IElevationService elevationService; + + public event EventHandler? TweakStatusChanged; + + public SystemTweaksService( + ILogger logger, + IElevationService elevationService) + { + this.logger = logger; + this.elevationService = elevationService; + } + + public async Task GetCoreParkingStatusAsync() + { + try + { + await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CoreParkingSettingAlias); + + var acValue = await this.GetPowerCfgAcSettingValueAsync(ProcessorSubgroupAlias, CoreParkingSettingAlias); + if (!acValue.HasValue) + { + return new TweakStatus { IsAvailable = false, ErrorMessage = "Could not query Core Parking value via powercfg" }; + } + + // ON = disable parking (keep all cores unparked, typically 100) + var isEnabled = acValue.Value >= 100; + + return new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "ON disables core parking (all cores unparked); OFF allows parking", + }; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting Core Parking status"); + return new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }; + } + } + + public async Task SetCoreParkingAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify Core Parking"); + return false; + } + + await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CoreParkingSettingAlias); + + var acValue = enabled ? 100 : 10; + var setValueResult = await RunProcessAsync( + PowerCfgExecutablePath, + $"-setacvalueindex SCHEME_CURRENT {ProcessorSubgroupAlias} {CoreParkingSettingAlias} {acValue}"); + if (setValueResult.ExitCode != 0) + { + this.logger.LogError( + "Failed setting Core Parking AC value. ExitCode={ExitCode}, Error={Error}", + setValueResult.ExitCode, setValueResult.StandardError); + return false; + } + + var activateResult = await RunProcessAsync(PowerCfgExecutablePath, "/setactive SCHEME_CURRENT"); + if (activateResult.ExitCode != 0) + { + this.logger.LogError( + "Failed activating current power scheme after Core Parking change. ExitCode={ExitCode}, Error={Error}", + activateResult.ExitCode, activateResult.StandardError); + return false; + } + + // Keep setting visible in Windows advanced power UI if the key exists. + using var visibilityKey = Registry.LocalMachine.OpenSubKey(CoreParkingVisibilityKeyPath, true); + if (visibilityKey != null) + { + visibilityKey.SetValue("Attributes", 2, RegistryValueKind.DWord); + } + + var status = await this.GetCoreParkingStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("CoreParking", status)); + + this.logger.LogInformation("Core Parking {Status}", enabled ? "enabled" : "disabled"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting Core Parking to {Enabled}", enabled); + return false; + } + } + + public async Task GetCStatesStatusAsync() + { + try + { + await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CStatesSettingAlias); + + var acValue = await this.GetPowerCfgAcSettingValueAsync(ProcessorSubgroupAlias, CStatesSettingAlias); + if (!acValue.HasValue) + { + return new TweakStatus { IsAvailable = false, ErrorMessage = "Could not query C-States value via powercfg" }; + } + + // ON = enable C-States (IDLEDISABLE=0), OFF = disable C-States (IDLEDISABLE=1) + var isEnabled = acValue.Value == 0; + + return new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "ON enables C-States; OFF disables C-States for lower latency", + }; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting C-States status"); + return new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }; + } + } + + public async Task SetCStatesAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify C-States"); + return false; + } + + await this.EnsurePowerSettingVisibleAsync(ProcessorSubgroupAlias, CStatesSettingAlias); + + var value = enabled ? 0 : 1; + var setValueResult = await RunProcessAsync( + PowerCfgExecutablePath, + $"-setacvalueindex SCHEME_CURRENT {ProcessorSubgroupAlias} {CStatesSettingAlias} {value}"); + if (setValueResult.ExitCode != 0) + { + this.logger.LogError( + "Failed setting C-States AC value. ExitCode={ExitCode}, Error={Error}", + setValueResult.ExitCode, setValueResult.StandardError); + return false; + } + + var activateResult = await RunProcessAsync(PowerCfgExecutablePath, "/setactive SCHEME_CURRENT"); + if (activateResult.ExitCode != 0) + { + this.logger.LogError( + "Failed activating current power scheme after C-States change. ExitCode={ExitCode}, Error={Error}", + activateResult.ExitCode, activateResult.StandardError); + return false; + } + + var status = await this.GetCStatesStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("CStates", status)); + + this.logger.LogInformation("C-States {Status}", enabled ? "enabled" : "disabled"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting C-States to {Enabled}", enabled); + return false; + } + } + + public Task GetSysMainStatusAsync() + { + try + { + using var serviceController = new ServiceController("SysMain"); + serviceController.Refresh(); + var isEnabled = serviceController.StartType != ServiceStartMode.Disabled; + var isAvailable = true; + + return Task.FromResult(new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = isAvailable, + Description = "Windows Superfetch/SysMain service for memory management", + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting SysMain status"); + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); + } + } + + public async Task SetSysMainAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify SysMain service"); + return false; + } + + using var serviceController = new ServiceController("SysMain"); + if (!await this.SetServiceStartModeAsync("SysMain", enabled ? ServiceStartMode.Automatic : ServiceStartMode.Disabled)) + { + this.logger.LogError("Failed to set SysMain startup mode"); + return false; + } + + serviceController.Refresh(); + + if (enabled && serviceController.Status == ServiceControllerStatus.Stopped) + { + serviceController.Start(); + serviceController.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30)); + } + else if (!enabled && (serviceController.Status == ServiceControllerStatus.Running || serviceController.Status == ServiceControllerStatus.Paused)) + { + serviceController.Stop(); + serviceController.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30)); + } + + var status = await this.GetSysMainStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("SysMain", status)); + + this.logger.LogInformation("SysMain service {Status}", enabled ? "started" : "stopped"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting SysMain service to {Enabled}", enabled); + return false; + } + } + + public Task GetPrefetchStatusAsync() + { + try + { + using var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters"); + if (key == null) + { + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "Prefetch registry key not found" }); + } + + var enablePrefetcher = key.GetValue("EnablePrefetcher"); + var isEnabled = enablePrefetcher?.ToString() != "0"; // 0 = disabled, 1-3 = enabled + + return Task.FromResult(new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "Windows Prefetch feature for faster application loading", + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting Prefetch status"); + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); + } + } + + public async Task SetPrefetchAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify Prefetch"); + return false; + } + + using var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters", true); + if (key == null) + { + this.logger.LogError("Prefetch registry key not found"); + return false; + } + + // Set EnablePrefetcher: 0 = disabled, 3 = enabled for both applications and boot + key.SetValue("EnablePrefetcher", enabled ? 3 : 0, RegistryValueKind.DWord); + + var status = await this.GetPrefetchStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("Prefetch", status)); + + this.logger.LogInformation("Prefetch {Status}", enabled ? "enabled" : "disabled"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting Prefetch to {Enabled}", enabled); + return false; + } + } + + public Task GetPowerThrottlingStatusAsync() + { + try + { + using var key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Power\PowerThrottling"); + if (key == null) + { + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "Power Throttling not available on this system" }); + } + + var powerThrottlingOff = ReadRegistryIntValue(key, "PowerThrottlingOff"); + // ON = disable throttling (PowerThrottlingOff=1) + var isEnabled = powerThrottlingOff.GetValueOrDefault(0) == 1; + + return Task.FromResult(new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "ON disables Windows Power Throttling for sustained performance", + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting Power Throttling status"); + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); + } + } + + public async Task SetPowerThrottlingAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify Power Throttling"); + return false; + } + + using var key = Registry.LocalMachine.CreateSubKey(@"SYSTEM\CurrentControlSet\Control\Power\PowerThrottling"); + if (key == null) + { + this.logger.LogError("Could not create Power Throttling registry key"); + return false; + } + + // Set PowerThrottlingOff: 1 = throttling disabled, 0 = throttling enabled + key.SetValue("PowerThrottlingOff", enabled ? 1 : 0, RegistryValueKind.DWord); + + var status = await this.GetPowerThrottlingStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("PowerThrottling", status)); + + this.logger.LogInformation("Power Throttling {Status}", enabled ? "enabled" : "disabled"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting Power Throttling to {Enabled}", enabled); + return false; + } + } + + public async Task GetHpetStatusAsync() + { + try + { + var result = await RunProcessAsync(BcdEditExecutablePath, "/enum"); + if (result.ExitCode != 0) + { + return new TweakStatus + { + IsAvailable = false, + ErrorMessage = string.IsNullOrWhiteSpace(result.StandardError) + ? "Could not query bcdedit status" + : result.StandardError, + }; + } + + var output = result.StandardOutput; + + var platformClockLine = output.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .FirstOrDefault(l => l.TrimStart().StartsWith("useplatformclock", StringComparison.OrdinalIgnoreCase)); + + // ON = disable HPET (useplatformclock removed/absent) + var isEnabled = true; + if (!string.IsNullOrWhiteSpace(platformClockLine)) + { + isEnabled = !platformClockLine.TrimEnd().EndsWith("Yes", StringComparison.OrdinalIgnoreCase); + } + + return new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "High Precision Event Timer for system timing", + }; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting HPET status"); + return new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }; + } + } + + public async Task SetHpetAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify HPET"); + return false; + } + + // ON = disable HPET (/deletevalue), OFF = force HPET (/set true) + var arguments = enabled ? "/deletevalue useplatformclock" : "/set useplatformclock true"; + var commandResult = await RunProcessAsync(BcdEditExecutablePath, arguments); + var success = commandResult.ExitCode == 0; + + if (success) + { + var status = await this.GetHpetStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("Hpet", status)); + this.logger.LogInformation("HPET {Status}", enabled ? "enabled" : "disabled"); + } + else + { + this.logger.LogWarning( + "Failed to set HPET. ExitCode={ExitCode}, Error={Error}", + commandResult.ExitCode, commandResult.StandardError); + } + + return success; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting HPET to {Enabled}", enabled); + return false; + } + } + + public Task GetHighSchedulingCategoryStatusAsync() + { + try + { + using var key = Registry.LocalMachine.OpenSubKey(PriorityControlKeyPath); + if (key == null) + { + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "PriorityControl registry key not found" }); + } + + var rawValue = ReadRegistryIntValue(key, PrioritySeparationValueName); + var isEnabled = rawValue.GetValueOrDefault(HighSchedulingCategoryDisabledValue) == HighSchedulingCategoryEnabledValue; + + return Task.FromResult(new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "ON applies high foreground boost (Win32PrioritySeparation=26 / 0x1A)", + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting High Scheduling Category status"); + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); + } + } + + public async Task SetHighSchedulingCategoryAsync(bool enabled) + { + try + { + if (!this.elevationService.IsRunningAsAdministrator()) + { + this.logger.LogWarning("Administrator privileges required to modify High Scheduling Category"); + return false; + } + + using var key = Registry.LocalMachine.OpenSubKey(PriorityControlKeyPath, true); + if (key == null) + { + this.logger.LogError("PriorityControl registry key not found"); + return false; + } + + // ON = 26 / 0x1A, OFF = 2 (default/minimal boost) + key.SetValue(PrioritySeparationValueName, GetHighSchedulingCategoryRegistryValue(enabled), RegistryValueKind.DWord); + + var status = await this.GetHighSchedulingCategoryStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("HighSchedulingCategory", status)); + + this.logger.LogInformation("High Scheduling Category {Status}", enabled ? "enabled" : "disabled"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting High Scheduling Category to {Enabled}", enabled); + return false; + } + } + + private async Task SetServiceStartModeAsync(string serviceName, ServiceStartMode mode) + { + if (!ServiceNameRegex.IsMatch(serviceName)) + { + this.logger.LogWarning("Rejected invalid service name format: {ServiceName}", serviceName); + return false; + } + + var startModeValue = mode switch + { + ServiceStartMode.Automatic => "auto", + ServiceStartMode.Manual => "demand", + ServiceStartMode.Disabled => "disabled", + _ => "demand", + }; + + var result = await RunProcessAsync(ScExecutablePath, $"config \"{serviceName}\" start= {startModeValue}"); + if (result.ExitCode != 0) + { + this.logger.LogWarning( + "Failed to update service start mode for {ServiceName}. ExitCode={ExitCode}, Error={Error}", + serviceName, result.ExitCode, result.StandardError); + return false; + } + + return true; + } + + internal static int GetHighSchedulingCategoryRegistryValue(bool enabled) => + enabled ? HighSchedulingCategoryEnabledValue : HighSchedulingCategoryDisabledValue; + + private async Task EnsurePowerSettingVisibleAsync(string subgroupAlias, string settingAlias) + { + var attributesResult = await RunProcessAsync( + PowerCfgExecutablePath, + $"-attributes {subgroupAlias} {settingAlias} -ATTRIB_HIDE"); + + if (attributesResult.ExitCode != 0) + { + this.logger.LogDebug( + "Could not unhide power setting {Subgroup}/{Setting}. ExitCode={ExitCode}, Error={Error}", + subgroupAlias, settingAlias, attributesResult.ExitCode, attributesResult.StandardError); + } + } + + private async Task GetPowerCfgAcSettingValueAsync(string subgroupAlias, string settingAlias) + { + var queryResult = await RunProcessAsync( + PowerCfgExecutablePath, + $"-query SCHEME_CURRENT {subgroupAlias} {settingAlias}"); + + if (queryResult.ExitCode != 0) + { + this.logger.LogWarning( + "powercfg query failed for {Subgroup}/{Setting}. ExitCode={ExitCode}, Error={Error}", + subgroupAlias, settingAlias, queryResult.ExitCode, queryResult.StandardError); + return null; + } + + var line = queryResult.StandardOutput + .Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries) + .FirstOrDefault(l => l.Contains("Current AC Power Setting Index", StringComparison.OrdinalIgnoreCase)); + if (string.IsNullOrWhiteSpace(line)) + { + return null; + } + + var match = HexValueRegex.Match(line); + if (!match.Success) + { + return null; + } + + return int.TryParse(match.Groups[1].Value, System.Globalization.NumberStyles.HexNumber, + System.Globalization.CultureInfo.InvariantCulture, out var parsed) + ? parsed + : null; + } + + private static async Task RunProcessAsync(string fileName, string arguments) + { + if (!IsAllowedExecutable(fileName)) + { + return new ProcessResult(-1, string.Empty, $"Executable not allowed: {fileName}"); + } + + var processInfo = new ProcessStartInfo + { + FileName = Path.GetFullPath(fileName), + Arguments = arguments, + UseShellExecute = false, + RedirectStandardOutput = true, + RedirectStandardError = true, + CreateNoWindow = true, + }; + + using var process = Process.Start(processInfo); + if (process == null) + { + return new ProcessResult(-1, string.Empty, "Could not start process"); + } + + var outputTask = process.StandardOutput.ReadToEndAsync(); + var errorTask = process.StandardError.ReadToEndAsync(); + var exitTask = process.WaitForExitAsync(); + var completedTask = await Task.WhenAny(exitTask, Task.Delay(ExternalCommandTimeout)); + if (completedTask != exitTask) + { + try + { + process.Kill(entireProcessTree: true); + } + catch + { + // Best-effort kill for stuck child processes. + } + + return new ProcessResult(-1, await outputTask, $"Process timed out after {ExternalCommandTimeout.TotalSeconds} seconds"); + } + + await exitTask; + + return new ProcessResult(process.ExitCode, await outputTask, await errorTask); + } + + private static bool IsAllowedExecutable(string fileName) + { + if (string.IsNullOrWhiteSpace(fileName) || !Path.IsPathRooted(fileName)) + { + return false; + } + + var fullPath = Path.GetFullPath(fileName); + return AllowedExecutablePaths.Contains(fullPath) && File.Exists(fullPath); + } + + private static int? ReadRegistryIntValue(RegistryKey key, string valueName) + { + var raw = key.GetValue(valueName); + return raw switch + { + int intValue => intValue, + uint uintValue => unchecked((int)uintValue), + long longValue when longValue >= int.MinValue && longValue <= int.MaxValue => (int)longValue, + string stringValue when int.TryParse(stringValue, out var parsed) => parsed, + _ => null, + }; + } + + private readonly struct ProcessResult + { + public ProcessResult(int exitCode, string standardOutput, string standardError) + { + this.ExitCode = exitCode; + this.StandardOutput = standardOutput; + this.StandardError = standardError; + } + + public int ExitCode { get; } + + public string StandardOutput { get; } + + public string StandardError { get; } + } + + public Task GetMenuShowDelayStatusAsync() + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop"); + if (key == null) + { + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = "Desktop registry key not found" }); + } + + var menuShowDelay = key.GetValue("MenuShowDelay"); + var isEnabled = menuShowDelay?.ToString() != "0"; // 0 = no delay, >0 = delay enabled + + return Task.FromResult(new TweakStatus + { + IsEnabled = isEnabled, + IsAvailable = true, + Description = "Delay before showing context menus", + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error getting Menu Show Delay status"); + return Task.FromResult(new TweakStatus { IsAvailable = false, ErrorMessage = ex.Message }); + } + } + + public async Task SetMenuShowDelayAsync(bool enabled) + { + try + { + using var key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true); + if (key == null) + { + this.logger.LogError("Desktop registry key not found"); + return false; + } + + // Set MenuShowDelay: 0 = no delay, 400 = default delay + key.SetValue("MenuShowDelay", enabled ? "400" : "0", RegistryValueKind.String); + + var status = await this.GetMenuShowDelayStatusAsync(); + this.TweakStatusChanged?.Invoke(this, new TweakStatusChangedEventArgs("MenuShowDelay", status)); + + this.logger.LogInformation("Menu Show Delay {Status}", enabled ? "enabled" : "disabled"); + return true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error setting Menu Show Delay to {Enabled}", enabled); + return false; + } + } + + public async Task RefreshAllStatusesAsync() + { + try + { + this.logger.LogInformation("Refreshing all system tweak statuses"); + + var tasks = new[] + { + this.GetCoreParkingStatusAsync(), + this.GetCStatesStatusAsync(), + this.GetSysMainStatusAsync(), + this.GetPrefetchStatusAsync(), + this.GetPowerThrottlingStatusAsync(), + this.GetHpetStatusAsync(), + this.GetHighSchedulingCategoryStatusAsync(), + this.GetMenuShowDelayStatusAsync(), + }; + + await Task.WhenAll(tasks); + this.logger.LogInformation("All system tweak statuses refreshed"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error refreshing system tweak statuses"); + } + } + } +} + diff --git a/Services/SystemUpdateClock.cs b/Services/SystemUpdateClock.cs index 35f8351..c5cd63c 100644 --- a/Services/SystemUpdateClock.cs +++ b/Services/SystemUpdateClock.cs @@ -1,12 +1,12 @@ -/* - * ThreadPilot - updater clock abstraction. - */ -namespace ThreadPilot.Services -{ - using System; - - public sealed class SystemUpdateClock : IUpdateClock - { - public DateTimeOffset UtcNow => DateTimeOffset.UtcNow; - } -} +/* + * ThreadPilot - updater clock abstraction. + */ +namespace ThreadPilot.Services +{ + using System; + + public sealed class SystemUpdateClock : IUpdateClock + { + public DateTimeOffset UtcNow => DateTimeOffset.UtcNow; + } +} diff --git a/Services/TaskSafety.cs b/Services/TaskSafety.cs index 55bdef0..26e9b1d 100644 --- a/Services/TaskSafety.cs +++ b/Services/TaskSafety.cs @@ -1,45 +1,29 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading.Tasks; - - internal static class TaskSafety - { - public static void FireAndForget(Task task, Action onError) - { - _ = ObserveAsync(task, onError); - } - - private static async Task ObserveAsync(Task task, Action onError) - { - try - { - await task.ConfigureAwait(false); - } - catch (OperationCanceledException) - { - // Cancellation is expected in shutdown paths. - } - catch (Exception ex) - { - onError(ex); - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Threading.Tasks; + + internal static class TaskSafety + { + public static void FireAndForget(Task task, Action onError) + { + _ = ObserveAsync(task, onError); + } + + private static async Task ObserveAsync(Task task, Action onError) + { + try + { + await task.ConfigureAwait(false); + } + catch (OperationCanceledException) + { + // Cancellation is expected in shutdown paths. + } + catch (Exception ex) + { + onError(ex); + } + } + } +} diff --git a/Services/ThemeService.cs b/Services/ThemeService.cs index 7ceafba..d5062fb 100644 --- a/Services/ThemeService.cs +++ b/Services/ThemeService.cs @@ -1,237 +1,221 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Windows; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - using Wpf.Ui.Appearance; - using Wpf.Ui.Controls; - - public class ThemeService : IThemeService, IDisposable - { - private const string LightThemeDictionaryPath = "Themes/FluentLight.xaml"; - private const string DarkThemeDictionaryPath = "Themes/FluentDark.xaml"; - - private readonly ILogger logger; - private ResourceDictionary? activeThemeDictionary; - private Uri? activeThemeUri; - private bool hasAppliedTheme; - - public bool IsDarkTheme { get; private set; } - - public ThemeService(ILogger logger) - { - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - SystemEvents.UserPreferenceChanged += this.OnUserPreferenceChanged; - } - - public void ApplyTheme(bool useDarkTheme) - { - var targetUri = new Uri(useDarkTheme ? DarkThemeDictionaryPath : LightThemeDictionaryPath, UriKind.Relative); - if (this.hasAppliedTheme && - this.IsDarkTheme == useDarkTheme && - string.Equals(this.activeThemeUri?.OriginalString, targetUri.OriginalString, StringComparison.OrdinalIgnoreCase)) - { - return; - } - - var appResources = System.Windows.Application.Current?.Resources; - if (appResources == null) - { - return; - } - - try - { - // Keep Wpf.Ui controls aligned with app theme (NavigationView, TitleBar, etc.). - var applicationTheme = useDarkTheme ? ApplicationTheme.Dark : ApplicationTheme.Light; - ApplicationThemeManager.Apply(applicationTheme, WindowBackdropType.Mica, updateAccent: true); - - // ThreadPilot overrides depend on the active Wpf.Ui theme and must remain last - // because later merged dictionaries have precedence in WPF resource lookup. - this.activeThemeDictionary = ThemeDictionaryPolicy.ReplaceThreadPilotThemeDictionary(appResources, targetUri); - - this.IsDarkTheme = useDarkTheme; - this.activeThemeUri = targetUri; - this.hasAppliedTheme = true; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to apply theme {ThemeUri}", targetUri); - } - } - - public bool GetSystemUsesDarkTheme() - { - try - { - const string personalizeKey = @"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize"; - - using var key = Registry.CurrentUser.OpenSubKey(personalizeKey, writable: false); - if (key != null) - { - var appsThemeValue = key.GetValue("AppsUseLightTheme"); - if (TryResolveDarkPreference(appsThemeValue, out var useDarkTheme)) - { - return useDarkTheme; - } - - // Fallback key used on some Windows configurations. - var systemThemeValue = key.GetValue("SystemUsesLightTheme"); - if (TryResolveDarkPreference(systemThemeValue, out useDarkTheme)) - { - return useDarkTheme; - } - } - - var detectedTheme = ApplicationThemeManager.GetSystemTheme(); - if (detectedTheme == SystemTheme.Dark) - { - return true; - } - - if (detectedTheme == SystemTheme.Light) - { - return false; - } - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to read system theme preference, falling back to light theme"); - } - - return false; - } - - private static bool TryResolveDarkPreference(object? value, out bool useDarkTheme) - { - useDarkTheme = false; - - switch (value) - { - case int intValue: - useDarkTheme = intValue == 0; - return true; - case long longValue: - useDarkTheme = longValue == 0; - return true; - case string stringValue when int.TryParse(stringValue, out var parsed): - useDarkTheme = parsed == 0; - return true; - default: - return false; - } - } - - private void OnUserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) - { - if (e.Category != UserPreferenceCategory.Color && - e.Category != UserPreferenceCategory.General && - e.Category != UserPreferenceCategory.VisualStyle) - { - return; - } - - try - { - this.ApplyTheme(this.GetSystemUsesDarkTheme()); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to apply theme after system preference change"); - } - } - - public void Dispose() - { - SystemEvents.UserPreferenceChanged -= this.OnUserPreferenceChanged; - } - } - - internal static class ThemeDictionaryPolicy - { - public static bool IsThreadPilotThemeDictionary(string? source) - { - if (string.IsNullOrWhiteSpace(source)) - { - return false; - } - - var normalized = source.Replace('\\', '/'); - return normalized.EndsWith("Themes/FluentLight.xaml", StringComparison.OrdinalIgnoreCase) || - normalized.EndsWith("Themes/FluentDark.xaml", StringComparison.OrdinalIgnoreCase); - } - - public static int GetInsertionIndex(int mergedDictionaryCount) - { - return Math.Max(0, mergedDictionaryCount); - } - - public static ResourceDictionary ReplaceThreadPilotThemeDictionary(ResourceDictionary appResources, Uri targetUri) - { - return ReplaceThreadPilotThemeDictionary( - appResources, - targetUri, - uri => new ResourceDictionary { Source = uri }); - } - - internal static ResourceDictionary ReplaceThreadPilotThemeDictionary( - ResourceDictionary appResources, - Uri targetUri, - Func dictionaryFactory) - { - ArgumentNullException.ThrowIfNull(appResources); - ArgumentNullException.ThrowIfNull(targetUri); - ArgumentNullException.ThrowIfNull(dictionaryFactory); - - ResourceDictionary? matchingDictionary = null; - for (int i = appResources.MergedDictionaries.Count - 1; i >= 0; i--) - { - var dictionary = appResources.MergedDictionaries[i]; - if (IsThreadPilotThemeDictionary(dictionary.Source?.OriginalString)) - { - if (matchingDictionary == null && - string.Equals(dictionary.Source?.OriginalString, targetUri.OriginalString, StringComparison.OrdinalIgnoreCase)) - { - matchingDictionary = dictionary; - continue; - } - - appResources.MergedDictionaries.RemoveAt(i); - } - } - - if (matchingDictionary != null) - { - appResources.MergedDictionaries.Remove(matchingDictionary); - appResources.MergedDictionaries.Insert( - GetInsertionIndex(appResources.MergedDictionaries.Count), - matchingDictionary); - return matchingDictionary; - } - - var nextDictionary = dictionaryFactory(targetUri); - appResources.MergedDictionaries.Insert( - GetInsertionIndex(appResources.MergedDictionaries.Count), - nextDictionary); - - return nextDictionary; - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Windows; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + using Wpf.Ui.Appearance; + using Wpf.Ui.Controls; + + public class ThemeService : IThemeService, IDisposable + { + private const string LightThemeDictionaryPath = "Themes/FluentLight.xaml"; + private const string DarkThemeDictionaryPath = "Themes/FluentDark.xaml"; + + private readonly ILogger logger; + private ResourceDictionary? activeThemeDictionary; + private Uri? activeThemeUri; + private bool hasAppliedTheme; + + public bool IsDarkTheme { get; private set; } + + public ThemeService(ILogger logger) + { + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + SystemEvents.UserPreferenceChanged += this.OnUserPreferenceChanged; + } + + public void ApplyTheme(bool useDarkTheme) + { + var targetUri = new Uri(useDarkTheme ? DarkThemeDictionaryPath : LightThemeDictionaryPath, UriKind.Relative); + if (this.hasAppliedTheme && + this.IsDarkTheme == useDarkTheme && + string.Equals(this.activeThemeUri?.OriginalString, targetUri.OriginalString, StringComparison.OrdinalIgnoreCase)) + { + return; + } + + var appResources = System.Windows.Application.Current?.Resources; + if (appResources == null) + { + return; + } + + try + { + // Keep Wpf.Ui controls aligned with app theme (NavigationView, TitleBar, etc.). + var applicationTheme = useDarkTheme ? ApplicationTheme.Dark : ApplicationTheme.Light; + ApplicationThemeManager.Apply(applicationTheme, WindowBackdropType.Mica, updateAccent: true); + + // ThreadPilot overrides depend on the active Wpf.Ui theme and must remain last + // because later merged dictionaries have precedence in WPF resource lookup. + this.activeThemeDictionary = ThemeDictionaryPolicy.ReplaceThreadPilotThemeDictionary(appResources, targetUri); + + this.IsDarkTheme = useDarkTheme; + this.activeThemeUri = targetUri; + this.hasAppliedTheme = true; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to apply theme {ThemeUri}", targetUri); + } + } + + public bool GetSystemUsesDarkTheme() + { + try + { + const string personalizeKey = @"Software\Microsoft\Windows\CurrentVersion\Themes\Personalize"; + + using var key = Registry.CurrentUser.OpenSubKey(personalizeKey, writable: false); + if (key != null) + { + var appsThemeValue = key.GetValue("AppsUseLightTheme"); + if (TryResolveDarkPreference(appsThemeValue, out var useDarkTheme)) + { + return useDarkTheme; + } + + // Fallback key used on some Windows configurations. + var systemThemeValue = key.GetValue("SystemUsesLightTheme"); + if (TryResolveDarkPreference(systemThemeValue, out useDarkTheme)) + { + return useDarkTheme; + } + } + + var detectedTheme = ApplicationThemeManager.GetSystemTheme(); + if (detectedTheme == SystemTheme.Dark) + { + return true; + } + + if (detectedTheme == SystemTheme.Light) + { + return false; + } + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to read system theme preference, falling back to light theme"); + } + + return false; + } + + private static bool TryResolveDarkPreference(object? value, out bool useDarkTheme) + { + useDarkTheme = false; + + switch (value) + { + case int intValue: + useDarkTheme = intValue == 0; + return true; + case long longValue: + useDarkTheme = longValue == 0; + return true; + case string stringValue when int.TryParse(stringValue, out var parsed): + useDarkTheme = parsed == 0; + return true; + default: + return false; + } + } + + private void OnUserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) + { + if (e.Category != UserPreferenceCategory.Color && + e.Category != UserPreferenceCategory.General && + e.Category != UserPreferenceCategory.VisualStyle) + { + return; + } + + try + { + this.ApplyTheme(this.GetSystemUsesDarkTheme()); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to apply theme after system preference change"); + } + } + + public void Dispose() + { + SystemEvents.UserPreferenceChanged -= this.OnUserPreferenceChanged; + } + } + + internal static class ThemeDictionaryPolicy + { + public static bool IsThreadPilotThemeDictionary(string? source) + { + if (string.IsNullOrWhiteSpace(source)) + { + return false; + } + + var normalized = source.Replace('\\', '/'); + return normalized.EndsWith("Themes/FluentLight.xaml", StringComparison.OrdinalIgnoreCase) || + normalized.EndsWith("Themes/FluentDark.xaml", StringComparison.OrdinalIgnoreCase); + } + + public static int GetInsertionIndex(int mergedDictionaryCount) + { + return Math.Max(0, mergedDictionaryCount); + } + + public static ResourceDictionary ReplaceThreadPilotThemeDictionary(ResourceDictionary appResources, Uri targetUri) + { + return ReplaceThreadPilotThemeDictionary( + appResources, + targetUri, + uri => new ResourceDictionary { Source = uri }); + } + + internal static ResourceDictionary ReplaceThreadPilotThemeDictionary( + ResourceDictionary appResources, + Uri targetUri, + Func dictionaryFactory) + { + ArgumentNullException.ThrowIfNull(appResources); + ArgumentNullException.ThrowIfNull(targetUri); + ArgumentNullException.ThrowIfNull(dictionaryFactory); + + ResourceDictionary? matchingDictionary = null; + for (int i = appResources.MergedDictionaries.Count - 1; i >= 0; i--) + { + var dictionary = appResources.MergedDictionaries[i]; + if (IsThreadPilotThemeDictionary(dictionary.Source?.OriginalString)) + { + if (matchingDictionary == null && + string.Equals(dictionary.Source?.OriginalString, targetUri.OriginalString, StringComparison.OrdinalIgnoreCase)) + { + matchingDictionary = dictionary; + continue; + } + + appResources.MergedDictionaries.RemoveAt(i); + } + } + + if (matchingDictionary != null) + { + appResources.MergedDictionaries.Remove(matchingDictionary); + appResources.MergedDictionaries.Insert( + GetInsertionIndex(appResources.MergedDictionaries.Count), + matchingDictionary); + return matchingDictionary; + } + + var nextDictionary = dictionaryFactory(targetUri); + appResources.MergedDictionaries.Insert( + GetInsertionIndex(appResources.MergedDictionaries.Count), + nextDictionary); + + return nextDictionary; + } + } +} diff --git a/Services/ThrottledRefreshCoordinator.cs b/Services/ThrottledRefreshCoordinator.cs index 8d4952b..aecba30 100644 --- a/Services/ThrottledRefreshCoordinator.cs +++ b/Services/ThrottledRefreshCoordinator.cs @@ -1,103 +1,84 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Reusable async throttling coordinator for delayed refresh operations. - /// - public sealed class ThrottledRefreshCoordinator : IDisposable - { - private readonly Func callback; - private readonly Action? onError; - private readonly object lockObject = new(); - private readonly TimeSpan defaultDelay; - private System.Threading.Timer? timer; - private int isExecuting; - private int disposedFlag; - - public ThrottledRefreshCoordinator(TimeSpan defaultDelay, Func callback, Action? onError = null) - { - this.defaultDelay = defaultDelay; - this.callback = callback ?? throw new ArgumentNullException(nameof(callback)); - this.onError = onError; - } - - public void Schedule() - { - this.Schedule(this.defaultDelay); - } - - public void Schedule(TimeSpan delay) - { - if (Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1) - { - return; - } - - lock (this.lockObject) - { - this.timer?.Dispose(); - this.timer = new System.Threading.Timer(this.OnTimerTick, null, delay, Timeout.InfiniteTimeSpan); - } - } - - private void OnTimerTick(object? state) - { - if (Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1) - { - return; - } - - if (Interlocked.Exchange(ref this.isExecuting, 1) == 1) - { - return; - } - - TaskSafety.FireAndForget(this.ExecuteCallbackAsync(), ex => this.onError?.Invoke(ex)); - } - - private async Task ExecuteCallbackAsync() - { - try - { - await this.callback().ConfigureAwait(false); - } - finally - { - Interlocked.Exchange(ref this.isExecuting, 0); - } - } - - public void Dispose() - { - if (Interlocked.Exchange(ref this.disposedFlag, 1) == 1) - { - return; - } - - lock (this.lockObject) - { - this.timer?.Dispose(); - this.timer = null; - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Threading; + using System.Threading.Tasks; + + public sealed class ThrottledRefreshCoordinator : IDisposable + { + private readonly Func callback; + private readonly Action? onError; + private readonly object lockObject = new(); + private readonly TimeSpan defaultDelay; + private System.Threading.Timer? timer; + private int isExecuting; + private int disposedFlag; + + public ThrottledRefreshCoordinator(TimeSpan defaultDelay, Func callback, Action? onError = null) + { + this.defaultDelay = defaultDelay; + this.callback = callback ?? throw new ArgumentNullException(nameof(callback)); + this.onError = onError; + } + + public void Schedule() + { + this.Schedule(this.defaultDelay); + } + + public void Schedule(TimeSpan delay) + { + if (Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1) + { + return; + } + + lock (this.lockObject) + { + this.timer?.Dispose(); + this.timer = new System.Threading.Timer(this.OnTimerTick, null, delay, Timeout.InfiniteTimeSpan); + } + } + + private void OnTimerTick(object? state) + { + if (Interlocked.CompareExchange(ref this.disposedFlag, 0, 0) == 1) + { + return; + } + + if (Interlocked.Exchange(ref this.isExecuting, 1) == 1) + { + return; + } + + TaskSafety.FireAndForget(this.ExecuteCallbackAsync(), ex => this.onError?.Invoke(ex)); + } + + private async Task ExecuteCallbackAsync() + { + try + { + await this.callback().ConfigureAwait(false); + } + finally + { + Interlocked.Exchange(ref this.isExecuting, 0); + } + } + + public void Dispose() + { + if (Interlocked.Exchange(ref this.disposedFlag, 1) == 1) + { + return; + } + + lock (this.lockObject) + { + this.timer?.Dispose(); + this.timer = null; + } + } + } +} diff --git a/Services/UpdateAssetSelector.cs b/Services/UpdateAssetSelector.cs index 10819f0..f3d619c 100644 --- a/Services/UpdateAssetSelector.cs +++ b/Services/UpdateAssetSelector.cs @@ -1,81 +1,81 @@ -/* - * ThreadPilot - release asset selection for safe installer updates. - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Linq; - - public static class UpdateAssetSelector - { - public static bool TrySelectInstaller(UpdateReleaseInfo release, out UpdateAsset asset) - { - var selected = release.Assets - .Where(IsInstallerAsset) - .OrderByDescending(candidate => candidate.Name.Contains("setup", StringComparison.OrdinalIgnoreCase)) - .FirstOrDefault(); - - asset = selected!; - return selected != null; - } - - public static UpdateAsset? SelectChecksumAsset(UpdateReleaseInfo release) - { - return release.Assets.FirstOrDefault(asset => - string.Equals(asset.Name, "SHA256SUMS.txt", StringComparison.OrdinalIgnoreCase)); - } - - public static bool IsSafeGitHubAssetUrl(Uri uri) - { - if (uri.Scheme != Uri.UriSchemeHttps) - { - return false; - } - - return string.Equals(uri.Host, "github.com", StringComparison.OrdinalIgnoreCase) || - string.Equals(uri.Host, "objects.githubusercontent.com", StringComparison.OrdinalIgnoreCase); - } - - public static bool IsSafeAssetFileName(string assetName) - { - if (string.IsNullOrWhiteSpace(assetName)) - { - return false; - } - - if (!string.Equals(Path.GetFileName(assetName), assetName, StringComparison.Ordinal)) - { - return false; - } - - return assetName.IndexOfAny(Path.GetInvalidFileNameChars()) < 0; - } - - private static bool IsInstallerAsset(UpdateAsset asset) - { - if (!IsSafeGitHubAssetUrl(asset.DownloadUrl) || !IsSafeAssetFileName(asset.Name)) - { - return false; - } - - if (!asset.Name.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - if (!asset.Name.StartsWith("ThreadPilot", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - if (asset.Name.Contains("portable", StringComparison.OrdinalIgnoreCase)) - { - return false; - } - - return asset.Name.Contains("setup", StringComparison.OrdinalIgnoreCase) || - asset.Name.Contains("installer", StringComparison.OrdinalIgnoreCase); - } - } -} +/* + * ThreadPilot - release asset selection for safe installer updates. + */ +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Linq; + + public static class UpdateAssetSelector + { + public static bool TrySelectInstaller(UpdateReleaseInfo release, out UpdateAsset asset) + { + var selected = release.Assets + .Where(IsInstallerAsset) + .OrderByDescending(candidate => candidate.Name.Contains("setup", StringComparison.OrdinalIgnoreCase)) + .FirstOrDefault(); + + asset = selected!; + return selected != null; + } + + public static UpdateAsset? SelectChecksumAsset(UpdateReleaseInfo release) + { + return release.Assets.FirstOrDefault(asset => + string.Equals(asset.Name, "SHA256SUMS.txt", StringComparison.OrdinalIgnoreCase)); + } + + public static bool IsSafeGitHubAssetUrl(Uri uri) + { + if (uri.Scheme != Uri.UriSchemeHttps) + { + return false; + } + + return string.Equals(uri.Host, "github.com", StringComparison.OrdinalIgnoreCase) || + string.Equals(uri.Host, "objects.githubusercontent.com", StringComparison.OrdinalIgnoreCase); + } + + public static bool IsSafeAssetFileName(string assetName) + { + if (string.IsNullOrWhiteSpace(assetName)) + { + return false; + } + + if (!string.Equals(Path.GetFileName(assetName), assetName, StringComparison.Ordinal)) + { + return false; + } + + return assetName.IndexOfAny(Path.GetInvalidFileNameChars()) < 0; + } + + private static bool IsInstallerAsset(UpdateAsset asset) + { + if (!IsSafeGitHubAssetUrl(asset.DownloadUrl) || !IsSafeAssetFileName(asset.Name)) + { + return false; + } + + if (!asset.Name.EndsWith(".exe", StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + if (!asset.Name.StartsWith("ThreadPilot", StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + if (asset.Name.Contains("portable", StringComparison.OrdinalIgnoreCase)) + { + return false; + } + + return asset.Name.Contains("setup", StringComparison.OrdinalIgnoreCase) || + asset.Name.Contains("installer", StringComparison.OrdinalIgnoreCase); + } + } +} diff --git a/Services/UpdateChecksumVerifier.cs b/Services/UpdateChecksumVerifier.cs index 82ff53e..f39130f 100644 --- a/Services/UpdateChecksumVerifier.cs +++ b/Services/UpdateChecksumVerifier.cs @@ -1,73 +1,73 @@ -/* - * ThreadPilot - SHA256SUMS parsing and verification. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Globalization; - using System.IO; - using System.Linq; - using System.Security.Cryptography; - - public static class UpdateChecksumVerifier - { - public static bool TryFindExpectedHash(string checksumsText, string fileName, out string expectedHash) - { - expectedHash = string.Empty; - foreach (var rawLine in checksumsText.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries)) - { - var line = rawLine.Trim(); - if (line.Length == 0 || line.StartsWith('#')) - { - continue; - } - - if (line.StartsWith("SHA256(", StringComparison.OrdinalIgnoreCase)) - { - var close = line.IndexOf(')'); - var equals = line.IndexOf('=', StringComparison.Ordinal); - if (close > 7 && equals > close) - { - var listedName = line[7..close]; - var hash = line[(equals + 1)..].Trim(); - if (IsHash(hash) && string.Equals(listedName, fileName, StringComparison.OrdinalIgnoreCase)) - { - expectedHash = hash.ToUpperInvariant(); - return true; - } - } - } - - var parts = line.Split((char[]?)null, StringSplitOptions.RemoveEmptyEntries); - if (parts.Length >= 2 && IsHash(parts[0])) - { - var listedName = parts[^1].TrimStart('*'); - if (string.Equals(listedName, fileName, StringComparison.OrdinalIgnoreCase)) - { - expectedHash = parts[0].ToUpperInvariant(); - return true; - } - } - } - - return false; - } - - public static string ComputeSha256(string filePath) - { - using var stream = File.OpenRead(filePath); - var hash = SHA256.HashData(stream); - return string.Concat(hash.Select(b => b.ToString("X2", CultureInfo.InvariantCulture))); - } - - public static bool Verify(string filePath, string expectedHash) - { - return string.Equals(ComputeSha256(filePath), expectedHash, StringComparison.OrdinalIgnoreCase); - } - - private static bool IsHash(string value) - { - return value.Length == 64 && value.All(Uri.IsHexDigit); - } - } -} +/* + * ThreadPilot - SHA256SUMS parsing and verification. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Globalization; + using System.IO; + using System.Linq; + using System.Security.Cryptography; + + public static class UpdateChecksumVerifier + { + public static bool TryFindExpectedHash(string checksumsText, string fileName, out string expectedHash) + { + expectedHash = string.Empty; + foreach (var rawLine in checksumsText.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries)) + { + var line = rawLine.Trim(); + if (line.Length == 0 || line.StartsWith('#')) + { + continue; + } + + if (line.StartsWith("SHA256(", StringComparison.OrdinalIgnoreCase)) + { + var close = line.IndexOf(')'); + var equals = line.IndexOf('=', StringComparison.Ordinal); + if (close > 7 && equals > close) + { + var listedName = line[7..close]; + var hash = line[(equals + 1)..].Trim(); + if (IsHash(hash) && string.Equals(listedName, fileName, StringComparison.OrdinalIgnoreCase)) + { + expectedHash = hash.ToUpperInvariant(); + return true; + } + } + } + + var parts = line.Split((char[]?)null, StringSplitOptions.RemoveEmptyEntries); + if (parts.Length >= 2 && IsHash(parts[0])) + { + var listedName = parts[^1].TrimStart('*'); + if (string.Equals(listedName, fileName, StringComparison.OrdinalIgnoreCase)) + { + expectedHash = parts[0].ToUpperInvariant(); + return true; + } + } + } + + return false; + } + + public static string ComputeSha256(string filePath) + { + using var stream = File.OpenRead(filePath); + var hash = SHA256.HashData(stream); + return string.Concat(hash.Select(b => b.ToString("X2", CultureInfo.InvariantCulture))); + } + + public static bool Verify(string filePath, string expectedHash) + { + return string.Equals(ComputeSha256(filePath), expectedHash, StringComparison.OrdinalIgnoreCase); + } + + private static bool IsHash(string value) + { + return value.Length == 64 && value.All(Uri.IsHexDigit); + } + } +} diff --git a/Services/UpdateDownloadService.cs b/Services/UpdateDownloadService.cs index e14c343..54c9181 100644 --- a/Services/UpdateDownloadService.cs +++ b/Services/UpdateDownloadService.cs @@ -1,103 +1,103 @@ -/* - * ThreadPilot - secure update installer download and verification. - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - public sealed class UpdateDownloadService : IUpdateDownloadService - { - private readonly IUpdateDownloadClient downloadClient; - private readonly IUpdateTempDirectoryProvider tempDirectoryProvider; - private readonly IUpdateSignatureVerifier signatureVerifier; - private readonly ILogger logger; - - public UpdateDownloadService( - IUpdateDownloadClient downloadClient, - IUpdateTempDirectoryProvider tempDirectoryProvider, - IUpdateSignatureVerifier signatureVerifier, - ILogger logger) - { - this.downloadClient = downloadClient ?? throw new ArgumentNullException(nameof(downloadClient)); - this.tempDirectoryProvider = tempDirectoryProvider ?? throw new ArgumentNullException(nameof(tempDirectoryProvider)); - this.signatureVerifier = signatureVerifier ?? throw new ArgumentNullException(nameof(signatureVerifier)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async Task DownloadInstallerAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default) - { - if (!UpdateAssetSelector.TrySelectInstaller(release, out var installerAsset)) - { - throw new InvalidOperationException("Release does not contain a ThreadPilot installer asset."); - } - - var tempDirectory = this.tempDirectoryProvider.CreateUpdateTempDirectory(release.Version); - try - { - var installerPath = Path.Combine(tempDirectory, installerAsset.Name); - await this.downloadClient.DownloadFileAsync(installerAsset.DownloadUrl, installerPath, cancellationToken) - .ConfigureAwait(false); - - var checksumVerified = false; - var checksumAsset = UpdateAssetSelector.SelectChecksumAsset(release); - if (checksumAsset != null) - { - var checksumText = await this.downloadClient.TryDownloadStringAsync(checksumAsset.DownloadUrl, cancellationToken) - .ConfigureAwait(false); - if (string.IsNullOrWhiteSpace(checksumText) || - !UpdateChecksumVerifier.TryFindExpectedHash(checksumText, installerAsset.Name, out var expectedHash)) - { - throw new InvalidOperationException("SHA256SUMS.txt did not contain the installer checksum."); - } - - if (!UpdateChecksumVerifier.Verify(installerPath, expectedHash)) - { - throw new InvalidOperationException("Installer SHA256 checksum did not match SHA256SUMS.txt."); - } - - checksumVerified = true; - } - - var signatureStatus = this.signatureVerifier.Verify(installerPath); - if (signatureStatus == UpdateSignatureStatus.Invalid) - { - throw new InvalidOperationException("Installer Authenticode signature is invalid."); - } - - this.logger.LogInformation( - "Downloaded ThreadPilot update installer {InstallerName}; checksum verified: {ChecksumVerified}; signature: {SignatureStatus}", - installerAsset.Name, - checksumVerified, - signatureStatus); - - return new UpdateDownloadResult( - installerPath, - tempDirectory, - checksumVerified, - signatureStatus, - checksumVerified ? "Installer checksum verified." : "No SHA256SUMS.txt asset was available."); - } - catch - { - this.TryCleanup(tempDirectory); - throw; - } - } - - private void TryCleanup(string tempDirectory) - { - try - { - this.tempDirectoryProvider.Cleanup(tempDirectory); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to clean update temp directory {TempDirectory}", tempDirectory); - } - } - } -} +/* + * ThreadPilot - secure update installer download and verification. + */ +namespace ThreadPilot.Services +{ + using System; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + + public sealed class UpdateDownloadService : IUpdateDownloadService + { + private readonly IUpdateDownloadClient downloadClient; + private readonly IUpdateTempDirectoryProvider tempDirectoryProvider; + private readonly IUpdateSignatureVerifier signatureVerifier; + private readonly ILogger logger; + + public UpdateDownloadService( + IUpdateDownloadClient downloadClient, + IUpdateTempDirectoryProvider tempDirectoryProvider, + IUpdateSignatureVerifier signatureVerifier, + ILogger logger) + { + this.downloadClient = downloadClient ?? throw new ArgumentNullException(nameof(downloadClient)); + this.tempDirectoryProvider = tempDirectoryProvider ?? throw new ArgumentNullException(nameof(tempDirectoryProvider)); + this.signatureVerifier = signatureVerifier ?? throw new ArgumentNullException(nameof(signatureVerifier)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public async Task DownloadInstallerAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default) + { + if (!UpdateAssetSelector.TrySelectInstaller(release, out var installerAsset)) + { + throw new InvalidOperationException("Release does not contain a ThreadPilot installer asset."); + } + + var tempDirectory = this.tempDirectoryProvider.CreateUpdateTempDirectory(release.Version); + try + { + var installerPath = Path.Combine(tempDirectory, installerAsset.Name); + await this.downloadClient.DownloadFileAsync(installerAsset.DownloadUrl, installerPath, cancellationToken) + .ConfigureAwait(false); + + var checksumVerified = false; + var checksumAsset = UpdateAssetSelector.SelectChecksumAsset(release); + if (checksumAsset != null) + { + var checksumText = await this.downloadClient.TryDownloadStringAsync(checksumAsset.DownloadUrl, cancellationToken) + .ConfigureAwait(false); + if (string.IsNullOrWhiteSpace(checksumText) || + !UpdateChecksumVerifier.TryFindExpectedHash(checksumText, installerAsset.Name, out var expectedHash)) + { + throw new InvalidOperationException("SHA256SUMS.txt did not contain the installer checksum."); + } + + if (!UpdateChecksumVerifier.Verify(installerPath, expectedHash)) + { + throw new InvalidOperationException("Installer SHA256 checksum did not match SHA256SUMS.txt."); + } + + checksumVerified = true; + } + + var signatureStatus = this.signatureVerifier.Verify(installerPath); + if (signatureStatus == UpdateSignatureStatus.Invalid) + { + throw new InvalidOperationException("Installer Authenticode signature is invalid."); + } + + this.logger.LogInformation( + "Downloaded ThreadPilot update installer {InstallerName}; checksum verified: {ChecksumVerified}; signature: {SignatureStatus}", + installerAsset.Name, + checksumVerified, + signatureStatus); + + return new UpdateDownloadResult( + installerPath, + tempDirectory, + checksumVerified, + signatureStatus, + checksumVerified ? "Installer checksum verified." : "No SHA256SUMS.txt asset was available."); + } + catch + { + this.TryCleanup(tempDirectory); + throw; + } + } + + private void TryCleanup(string tempDirectory) + { + try + { + this.tempDirectoryProvider.Cleanup(tempDirectory); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to clean update temp directory {TempDirectory}", tempDirectory); + } + } + } +} diff --git a/Services/UpdateInstallerService.cs b/Services/UpdateInstallerService.cs index d710d65..4331106 100644 --- a/Services/UpdateInstallerService.cs +++ b/Services/UpdateInstallerService.cs @@ -1,64 +1,64 @@ -/* - * ThreadPilot - elevated update installer launch. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Diagnostics; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - - public sealed class UpdateInstallerService : IUpdateInstallerService - { - private readonly IUpdateTempDirectoryProvider tempDirectoryProvider; - private readonly IUpdateProcessLauncher processLauncher; - - public UpdateInstallerService( - IUpdateTempDirectoryProvider tempDirectoryProvider, - IUpdateProcessLauncher processLauncher) - { - this.tempDirectoryProvider = tempDirectoryProvider ?? throw new ArgumentNullException(nameof(tempDirectoryProvider)); - this.processLauncher = processLauncher ?? throw new ArgumentNullException(nameof(processLauncher)); - } - - public Task LaunchInstallerElevatedAsync(string installerPath, CancellationToken cancellationToken = default) - { - if (!File.Exists(installerPath)) - { - throw new FileNotFoundException("Update installer was not found.", installerPath); - } - - if (!string.Equals(Path.GetExtension(installerPath), ".exe", StringComparison.OrdinalIgnoreCase) || - !this.tempDirectoryProvider.IsSafeUpdateTempPath(installerPath)) - { - throw new InvalidOperationException("Update installer path is not trusted."); - } - - return this.processLauncher.LaunchElevatedAsync(installerPath, Array.Empty(), cancellationToken); - } - } - - public sealed class ShellUpdateProcessLauncher : IUpdateProcessLauncher - { - public Task LaunchElevatedAsync(string fileName, IReadOnlyList arguments, CancellationToken cancellationToken = default) - { - var startInfo = new ProcessStartInfo - { - FileName = fileName, - UseShellExecute = true, - Verb = "runas", - WorkingDirectory = Path.GetDirectoryName(fileName) ?? Environment.CurrentDirectory, - }; - - foreach (var argument in arguments) - { - startInfo.ArgumentList.Add(argument); - } - - Process.Start(startInfo); - return Task.CompletedTask; - } - } -} +/* + * ThreadPilot - elevated update installer launch. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Diagnostics; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + public sealed class UpdateInstallerService : IUpdateInstallerService + { + private readonly IUpdateTempDirectoryProvider tempDirectoryProvider; + private readonly IUpdateProcessLauncher processLauncher; + + public UpdateInstallerService( + IUpdateTempDirectoryProvider tempDirectoryProvider, + IUpdateProcessLauncher processLauncher) + { + this.tempDirectoryProvider = tempDirectoryProvider ?? throw new ArgumentNullException(nameof(tempDirectoryProvider)); + this.processLauncher = processLauncher ?? throw new ArgumentNullException(nameof(processLauncher)); + } + + public Task LaunchInstallerElevatedAsync(string installerPath, CancellationToken cancellationToken = default) + { + if (!File.Exists(installerPath)) + { + throw new FileNotFoundException("Update installer was not found.", installerPath); + } + + if (!string.Equals(Path.GetExtension(installerPath), ".exe", StringComparison.OrdinalIgnoreCase) || + !this.tempDirectoryProvider.IsSafeUpdateTempPath(installerPath)) + { + throw new InvalidOperationException("Update installer path is not trusted."); + } + + return this.processLauncher.LaunchElevatedAsync(installerPath, Array.Empty(), cancellationToken); + } + } + + public sealed class ShellUpdateProcessLauncher : IUpdateProcessLauncher + { + public Task LaunchElevatedAsync(string fileName, IReadOnlyList arguments, CancellationToken cancellationToken = default) + { + var startInfo = new ProcessStartInfo + { + FileName = fileName, + UseShellExecute = true, + Verb = "runas", + WorkingDirectory = Path.GetDirectoryName(fileName) ?? Environment.CurrentDirectory, + }; + + foreach (var argument in arguments) + { + startInfo.ArgumentList.Add(argument); + } + + Process.Start(startInfo); + return Task.CompletedTask; + } + } +} diff --git a/Services/UpdateModels.cs b/Services/UpdateModels.cs index 85cfe3e..68f8f05 100644 --- a/Services/UpdateModels.cs +++ b/Services/UpdateModels.cs @@ -1,126 +1,126 @@ -/* - * ThreadPilot - updater models and abstractions. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - public enum UpdateCheckTrigger - { - Startup, - Manual, - } - - public enum UpdateCheckStatus - { - Skipped, - UpToDate, - UpdateAvailable, - Failed, - } - - public enum UpdateInstallStatus - { - Started, - Failed, - } - - public enum UpdateSignatureStatus - { - Valid, - Invalid, - Unknown, - } - - public sealed record UpdateCheckRequest(UpdateCheckTrigger Trigger); - - public sealed record UpdateAsset(string Name, Uri DownloadUrl, long Size); - - public sealed record UpdateReleaseInfo( - SemanticVersion Version, - string TagName, - Uri ReleasePageUrl, - bool IsPrerelease, - IReadOnlyList Assets); - - public sealed record UpdateCheckResult( - UpdateCheckStatus Status, - SemanticVersion CurrentVersion, - UpdateReleaseInfo? Release, - string Message) - { - public bool IsUpdateAvailable => this.Status == UpdateCheckStatus.UpdateAvailable && this.Release != null; - } - - public sealed record UpdateDownloadResult( - string InstallerPath, - string TempDirectory, - bool ChecksumVerified, - UpdateSignatureStatus SignatureStatus, - string Message); - - public sealed record UpdateInstallResult(UpdateInstallStatus Status, string Message); - - public interface IApplicationVersionProvider - { - SemanticVersion CurrentVersion { get; } - - string DisplayVersion { get; } - } - - public interface IUpdateClock - { - DateTimeOffset UtcNow { get; } - } - - public interface IUpdateService - { - Task CheckForUpdatesAsync(UpdateCheckRequest request, CancellationToken cancellationToken = default); - - Task DownloadAndInstallAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default); - } - - public interface IUpdateDownloadService - { - Task DownloadInstallerAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default); - } - - public interface IUpdateInstallerService - { - Task LaunchInstallerElevatedAsync(string installerPath, CancellationToken cancellationToken = default); - } - - public interface IUpdateDownloadClient - { - Task DownloadFileAsync(Uri uri, string destinationPath, CancellationToken cancellationToken = default); - - Task TryDownloadStringAsync(Uri uri, CancellationToken cancellationToken = default); - } - - public interface IUpdateTempDirectoryProvider - { - string CreateUpdateTempDirectory(SemanticVersion version); - - bool IsSafeUpdateTempPath(string path); - - void Cleanup(string path); - } - - public interface IUpdateSignatureVerifier - { - UpdateSignatureStatus Verify(string installerPath); - } - - public interface IUpdateProcessLauncher - { - Task LaunchElevatedAsync(string fileName, IReadOnlyList arguments, CancellationToken cancellationToken = default); - } - - public interface IApplicationShutdownService - { - void RequestShutdownForUpdate(); - } -} +/* + * ThreadPilot - updater models and abstractions. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + public enum UpdateCheckTrigger + { + Startup, + Manual, + } + + public enum UpdateCheckStatus + { + Skipped, + UpToDate, + UpdateAvailable, + Failed, + } + + public enum UpdateInstallStatus + { + Started, + Failed, + } + + public enum UpdateSignatureStatus + { + Valid, + Invalid, + Unknown, + } + + public sealed record UpdateCheckRequest(UpdateCheckTrigger Trigger); + + public sealed record UpdateAsset(string Name, Uri DownloadUrl, long Size); + + public sealed record UpdateReleaseInfo( + SemanticVersion Version, + string TagName, + Uri ReleasePageUrl, + bool IsPrerelease, + IReadOnlyList Assets); + + public sealed record UpdateCheckResult( + UpdateCheckStatus Status, + SemanticVersion CurrentVersion, + UpdateReleaseInfo? Release, + string Message) + { + public bool IsUpdateAvailable => this.Status == UpdateCheckStatus.UpdateAvailable && this.Release != null; + } + + public sealed record UpdateDownloadResult( + string InstallerPath, + string TempDirectory, + bool ChecksumVerified, + UpdateSignatureStatus SignatureStatus, + string Message); + + public sealed record UpdateInstallResult(UpdateInstallStatus Status, string Message); + + public interface IApplicationVersionProvider + { + SemanticVersion CurrentVersion { get; } + + string DisplayVersion { get; } + } + + public interface IUpdateClock + { + DateTimeOffset UtcNow { get; } + } + + public interface IUpdateService + { + Task CheckForUpdatesAsync(UpdateCheckRequest request, CancellationToken cancellationToken = default); + + Task DownloadAndInstallAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default); + } + + public interface IUpdateDownloadService + { + Task DownloadInstallerAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default); + } + + public interface IUpdateInstallerService + { + Task LaunchInstallerElevatedAsync(string installerPath, CancellationToken cancellationToken = default); + } + + public interface IUpdateDownloadClient + { + Task DownloadFileAsync(Uri uri, string destinationPath, CancellationToken cancellationToken = default); + + Task TryDownloadStringAsync(Uri uri, CancellationToken cancellationToken = default); + } + + public interface IUpdateTempDirectoryProvider + { + string CreateUpdateTempDirectory(SemanticVersion version); + + bool IsSafeUpdateTempPath(string path); + + void Cleanup(string path); + } + + public interface IUpdateSignatureVerifier + { + UpdateSignatureStatus Verify(string installerPath); + } + + public interface IUpdateProcessLauncher + { + Task LaunchElevatedAsync(string fileName, IReadOnlyList arguments, CancellationToken cancellationToken = default); + } + + public interface IApplicationShutdownService + { + void RequestShutdownForUpdate(); + } +} diff --git a/Services/UpdateService.cs b/Services/UpdateService.cs index 5cc3256..ba9d2ea 100644 --- a/Services/UpdateService.cs +++ b/Services/UpdateService.cs @@ -1,158 +1,158 @@ -/* - * ThreadPilot - safe in-app update orchestration. - */ -namespace ThreadPilot.Services -{ - using System; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - - public sealed class UpdateService : IUpdateService - { - private const string OfficialOwner = "PrimeBuild-pc"; - private const string OfficialRepository = "ThreadPilot"; - - private readonly GitHubUpdateChecker updateChecker; - private readonly IApplicationSettingsService settingsService; - private readonly IApplicationVersionProvider versionProvider; - private readonly IUpdateDownloadService downloadService; - private readonly IUpdateInstallerService installerService; - private readonly IUpdateTempDirectoryProvider tempDirectoryProvider; - private readonly IApplicationShutdownService shutdownService; - private readonly IUpdateClock clock; - private readonly ILogger logger; - private readonly SemaphoreSlim checkGate = new(1, 1); - private readonly SemaphoreSlim installGate = new(1, 1); - - public UpdateService( - GitHubUpdateChecker updateChecker, - IApplicationSettingsService settingsService, - IApplicationVersionProvider versionProvider, - IUpdateDownloadService downloadService, - IUpdateInstallerService installerService, - IUpdateTempDirectoryProvider tempDirectoryProvider, - IApplicationShutdownService shutdownService, - IUpdateClock clock, - ILogger logger) - { - this.updateChecker = updateChecker ?? throw new ArgumentNullException(nameof(updateChecker)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.versionProvider = versionProvider ?? throw new ArgumentNullException(nameof(versionProvider)); - this.downloadService = downloadService ?? throw new ArgumentNullException(nameof(downloadService)); - this.installerService = installerService ?? throw new ArgumentNullException(nameof(installerService)); - this.tempDirectoryProvider = tempDirectoryProvider ?? throw new ArgumentNullException(nameof(tempDirectoryProvider)); - this.shutdownService = shutdownService ?? throw new ArgumentNullException(nameof(shutdownService)); - this.clock = clock ?? throw new ArgumentNullException(nameof(clock)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public async Task CheckForUpdatesAsync(UpdateCheckRequest request, CancellationToken cancellationToken = default) - { - var currentVersion = this.versionProvider.CurrentVersion; - var settings = this.settingsService.Settings; - - if (request.Trigger == UpdateCheckTrigger.Startup) - { - if (!settings.EnableAutomaticUpdateChecks) - { - return new UpdateCheckResult(UpdateCheckStatus.Skipped, currentVersion, null, "Automatic update checks are disabled."); - } - - var intervalDays = Math.Max(1, settings.UpdateCheckIntervalDays); - if (settings.LastUpdateCheckUtc.HasValue && - this.clock.UtcNow - settings.LastUpdateCheckUtc.Value < TimeSpan.FromDays(intervalDays)) - { - return new UpdateCheckResult(UpdateCheckStatus.Skipped, currentVersion, null, "Startup update check throttled."); - } - } - - await this.checkGate.WaitAsync(cancellationToken).ConfigureAwait(false); - try - { - await this.MarkUpdateCheckAttemptAsync(cancellationToken).ConfigureAwait(false); - - var release = await this.updateChecker.GetLatestReleaseInfoAsync( - OfficialOwner, - OfficialRepository, - settings.IncludePrereleaseUpdates, - cancellationToken).ConfigureAwait(false); - - if (release == null) - { - return new UpdateCheckResult(UpdateCheckStatus.Failed, currentVersion, null, "Unable to determine the latest ThreadPilot release."); - } - - if (release.Version > currentVersion) - { - this.logger.LogInformation( - "ThreadPilot update available: current {CurrentVersion}, latest {LatestVersion}", - currentVersion, - release.Version); - return new UpdateCheckResult(UpdateCheckStatus.UpdateAvailable, currentVersion, release, "A newer ThreadPilot version is available."); - } - - return new UpdateCheckResult(UpdateCheckStatus.UpToDate, currentVersion, release, "ThreadPilot is up to date."); - } - catch (Exception ex) when (ex is not OperationCanceledException) - { - this.logger.LogWarning(ex, "ThreadPilot update check failed"); - return new UpdateCheckResult(UpdateCheckStatus.Failed, currentVersion, null, ex.Message); - } - finally - { - this.checkGate.Release(); - } - } - - public async Task DownloadAndInstallAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default) - { - if (!await this.installGate.WaitAsync(0, cancellationToken).ConfigureAwait(false)) - { - return new UpdateInstallResult(UpdateInstallStatus.Failed, "Another update is already in progress."); - } - - UpdateDownloadResult? download = null; - try - { - download = await this.downloadService.DownloadInstallerAsync(release, cancellationToken).ConfigureAwait(false); - await this.installerService.LaunchInstallerElevatedAsync(download.InstallerPath, cancellationToken).ConfigureAwait(false); - this.shutdownService.RequestShutdownForUpdate(); - return new UpdateInstallResult(UpdateInstallStatus.Started, "Update installer started."); - } - catch (Exception ex) when (ex is not OperationCanceledException) - { - this.logger.LogWarning(ex, "ThreadPilot update install failed"); - return new UpdateInstallResult(UpdateInstallStatus.Failed, ex.Message); - } - finally - { - if (download != null) - { - this.TryCleanup(download.TempDirectory); - } - - this.installGate.Release(); - } - } - - private async Task MarkUpdateCheckAttemptAsync(CancellationToken cancellationToken) - { - var settings = this.settingsService.Settings; - settings.LastUpdateCheckUtc = this.clock.UtcNow; - await this.settingsService.UpdateSettingsAsync(settings).ConfigureAwait(false); - } - - private void TryCleanup(string tempDirectory) - { - try - { - this.tempDirectoryProvider.Cleanup(tempDirectory); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to clean update temp directory {TempDirectory}", tempDirectory); - } - } - } -} +/* + * ThreadPilot - safe in-app update orchestration. + */ +namespace ThreadPilot.Services +{ + using System; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + + public sealed class UpdateService : IUpdateService + { + private const string OfficialOwner = "PrimeBuild-pc"; + private const string OfficialRepository = "ThreadPilot"; + + private readonly GitHubUpdateChecker updateChecker; + private readonly IApplicationSettingsService settingsService; + private readonly IApplicationVersionProvider versionProvider; + private readonly IUpdateDownloadService downloadService; + private readonly IUpdateInstallerService installerService; + private readonly IUpdateTempDirectoryProvider tempDirectoryProvider; + private readonly IApplicationShutdownService shutdownService; + private readonly IUpdateClock clock; + private readonly ILogger logger; + private readonly SemaphoreSlim checkGate = new(1, 1); + private readonly SemaphoreSlim installGate = new(1, 1); + + public UpdateService( + GitHubUpdateChecker updateChecker, + IApplicationSettingsService settingsService, + IApplicationVersionProvider versionProvider, + IUpdateDownloadService downloadService, + IUpdateInstallerService installerService, + IUpdateTempDirectoryProvider tempDirectoryProvider, + IApplicationShutdownService shutdownService, + IUpdateClock clock, + ILogger logger) + { + this.updateChecker = updateChecker ?? throw new ArgumentNullException(nameof(updateChecker)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.versionProvider = versionProvider ?? throw new ArgumentNullException(nameof(versionProvider)); + this.downloadService = downloadService ?? throw new ArgumentNullException(nameof(downloadService)); + this.installerService = installerService ?? throw new ArgumentNullException(nameof(installerService)); + this.tempDirectoryProvider = tempDirectoryProvider ?? throw new ArgumentNullException(nameof(tempDirectoryProvider)); + this.shutdownService = shutdownService ?? throw new ArgumentNullException(nameof(shutdownService)); + this.clock = clock ?? throw new ArgumentNullException(nameof(clock)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } + + public async Task CheckForUpdatesAsync(UpdateCheckRequest request, CancellationToken cancellationToken = default) + { + var currentVersion = this.versionProvider.CurrentVersion; + var settings = this.settingsService.Settings; + + if (request.Trigger == UpdateCheckTrigger.Startup) + { + if (!settings.EnableAutomaticUpdateChecks) + { + return new UpdateCheckResult(UpdateCheckStatus.Skipped, currentVersion, null, "Automatic update checks are disabled."); + } + + var intervalDays = Math.Max(1, settings.UpdateCheckIntervalDays); + if (settings.LastUpdateCheckUtc.HasValue && + this.clock.UtcNow - settings.LastUpdateCheckUtc.Value < TimeSpan.FromDays(intervalDays)) + { + return new UpdateCheckResult(UpdateCheckStatus.Skipped, currentVersion, null, "Startup update check throttled."); + } + } + + await this.checkGate.WaitAsync(cancellationToken).ConfigureAwait(false); + try + { + await this.MarkUpdateCheckAttemptAsync(cancellationToken).ConfigureAwait(false); + + var release = await this.updateChecker.GetLatestReleaseInfoAsync( + OfficialOwner, + OfficialRepository, + settings.IncludePrereleaseUpdates, + cancellationToken).ConfigureAwait(false); + + if (release == null) + { + return new UpdateCheckResult(UpdateCheckStatus.Failed, currentVersion, null, "Unable to determine the latest ThreadPilot release."); + } + + if (release.Version > currentVersion) + { + this.logger.LogInformation( + "ThreadPilot update available: current {CurrentVersion}, latest {LatestVersion}", + currentVersion, + release.Version); + return new UpdateCheckResult(UpdateCheckStatus.UpdateAvailable, currentVersion, release, "A newer ThreadPilot version is available."); + } + + return new UpdateCheckResult(UpdateCheckStatus.UpToDate, currentVersion, release, "ThreadPilot is up to date."); + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + this.logger.LogWarning(ex, "ThreadPilot update check failed"); + return new UpdateCheckResult(UpdateCheckStatus.Failed, currentVersion, null, ex.Message); + } + finally + { + this.checkGate.Release(); + } + } + + public async Task DownloadAndInstallAsync(UpdateReleaseInfo release, CancellationToken cancellationToken = default) + { + if (!await this.installGate.WaitAsync(0, cancellationToken).ConfigureAwait(false)) + { + return new UpdateInstallResult(UpdateInstallStatus.Failed, "Another update is already in progress."); + } + + UpdateDownloadResult? download = null; + try + { + download = await this.downloadService.DownloadInstallerAsync(release, cancellationToken).ConfigureAwait(false); + await this.installerService.LaunchInstallerElevatedAsync(download.InstallerPath, cancellationToken).ConfigureAwait(false); + this.shutdownService.RequestShutdownForUpdate(); + return new UpdateInstallResult(UpdateInstallStatus.Started, "Update installer started."); + } + catch (Exception ex) when (ex is not OperationCanceledException) + { + this.logger.LogWarning(ex, "ThreadPilot update install failed"); + return new UpdateInstallResult(UpdateInstallStatus.Failed, ex.Message); + } + finally + { + if (download != null) + { + this.TryCleanup(download.TempDirectory); + } + + this.installGate.Release(); + } + } + + private async Task MarkUpdateCheckAttemptAsync(CancellationToken cancellationToken) + { + var settings = this.settingsService.Settings; + settings.LastUpdateCheckUtc = this.clock.UtcNow; + await this.settingsService.UpdateSettingsAsync(settings).ConfigureAwait(false); + } + + private void TryCleanup(string tempDirectory) + { + try + { + this.tempDirectoryProvider.Cleanup(tempDirectory); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to clean update temp directory {TempDirectory}", tempDirectory); + } + } + } +} diff --git a/Services/UpdateTempDirectoryProvider.cs b/Services/UpdateTempDirectoryProvider.cs index d2ac116..4f9a8d0 100644 --- a/Services/UpdateTempDirectoryProvider.cs +++ b/Services/UpdateTempDirectoryProvider.cs @@ -1,68 +1,68 @@ -/* - * ThreadPilot - safe temporary directory management for update downloads. - */ -namespace ThreadPilot.Services -{ - using System; - using System.IO; - - public sealed class UpdateTempDirectoryProvider : IUpdateTempDirectoryProvider - { - private readonly string rootDirectory; - - public UpdateTempDirectoryProvider() - : this(Path.Combine(Path.GetTempPath(), "ThreadPilot", "Updates")) - { - } - - public UpdateTempDirectoryProvider(string rootDirectory) - { - this.rootDirectory = Path.GetFullPath(rootDirectory ?? throw new ArgumentNullException(nameof(rootDirectory))); - } - - public string CreateUpdateTempDirectory(SemanticVersion version) - { - var directory = Path.Combine(this.rootDirectory, version.ToString(), Guid.NewGuid().ToString("N")); - Directory.CreateDirectory(directory); - return directory; - } - - public bool IsSafeUpdateTempPath(string path) - { - if (string.IsNullOrWhiteSpace(path)) - { - return false; - } - - var fullPath = Path.GetFullPath(path); - var rootWithSeparator = this.rootDirectory.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) - + Path.DirectorySeparatorChar; - return fullPath.StartsWith(rootWithSeparator, StringComparison.OrdinalIgnoreCase); - } - - public void Cleanup(string path) - { - if (!this.IsSafeUpdateTempPath(path) || !Directory.Exists(path)) - { - return; - } - - Directory.Delete(path, recursive: true); - this.DeleteEmptyParentsUntilRoot(Path.GetDirectoryName(Path.GetFullPath(path))); - } - - private void DeleteEmptyParentsUntilRoot(string? directory) - { - while (!string.IsNullOrWhiteSpace(directory) && this.IsSafeUpdateTempPath(directory)) - { - if (Directory.GetFileSystemEntries(directory).Length > 0) - { - return; - } - - Directory.Delete(directory); - directory = Path.GetDirectoryName(directory); - } - } - } -} +/* + * ThreadPilot - safe temporary directory management for update downloads. + */ +namespace ThreadPilot.Services +{ + using System; + using System.IO; + + public sealed class UpdateTempDirectoryProvider : IUpdateTempDirectoryProvider + { + private readonly string rootDirectory; + + public UpdateTempDirectoryProvider() + : this(Path.Combine(Path.GetTempPath(), "ThreadPilot", "Updates")) + { + } + + public UpdateTempDirectoryProvider(string rootDirectory) + { + this.rootDirectory = Path.GetFullPath(rootDirectory ?? throw new ArgumentNullException(nameof(rootDirectory))); + } + + public string CreateUpdateTempDirectory(SemanticVersion version) + { + var directory = Path.Combine(this.rootDirectory, version.ToString(), Guid.NewGuid().ToString("N")); + Directory.CreateDirectory(directory); + return directory; + } + + public bool IsSafeUpdateTempPath(string path) + { + if (string.IsNullOrWhiteSpace(path)) + { + return false; + } + + var fullPath = Path.GetFullPath(path); + var rootWithSeparator = this.rootDirectory.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + + Path.DirectorySeparatorChar; + return fullPath.StartsWith(rootWithSeparator, StringComparison.OrdinalIgnoreCase); + } + + public void Cleanup(string path) + { + if (!this.IsSafeUpdateTempPath(path) || !Directory.Exists(path)) + { + return; + } + + Directory.Delete(path, recursive: true); + this.DeleteEmptyParentsUntilRoot(Path.GetDirectoryName(Path.GetFullPath(path))); + } + + private void DeleteEmptyParentsUntilRoot(string? directory) + { + while (!string.IsNullOrWhiteSpace(directory) && this.IsSafeUpdateTempPath(directory)) + { + if (Directory.GetFileSystemEntries(directory).Length > 0) + { + return; + } + + Directory.Delete(directory); + directory = Path.GetDirectoryName(directory); + } + } + } +} diff --git a/Services/VirtualizedProcessService.cs b/Services/VirtualizedProcessService.cs index ff2bc5b..be0e474 100644 --- a/Services/VirtualizedProcessService.cs +++ b/Services/VirtualizedProcessService.cs @@ -1,321 +1,292 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Concurrent; - using System.Collections.Generic; - using System.Diagnostics; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Caching.Memory; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - - /// - /// Implementation of virtualized process service with batch loading and caching. - /// - public class VirtualizedProcessService : IVirtualizedProcessService, IDisposable - { - private readonly IProcessService processService; - private readonly IMemoryCache cache; - private readonly ILogger logger; - private readonly IRetryPolicyService retryPolicy; - private readonly SemaphoreSlim loadingSemaphore = new(1, 1); - private readonly ConcurrentDictionary batchCache = new(); - private readonly System.Threading.Timer backgroundPreloadTimer; - - private List? allProcesses; - private DateTime lastFullRefresh = DateTime.MinValue; - private bool disposed; - - public VirtualizedProcessConfig Configuration { get; set; } = new(); - - public event EventHandler? BatchLoadProgress; - - public event EventHandler? BackgroundBatchLoaded; - - public VirtualizedProcessService( - IProcessService processService, - IMemoryCache cache, - ILogger logger, - IRetryPolicyService retryPolicy) - { - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.cache = cache ?? throw new ArgumentNullException(nameof(cache)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.retryPolicy = retryPolicy ?? throw new ArgumentNullException(nameof(retryPolicy)); - - // Set up background preloading timer - this.backgroundPreloadTimer = new System.Threading.Timer(this.BackgroundPreloadCallback, null, Timeout.Infinite, Timeout.Infinite); - } - - public async Task InitializeAsync() - { - this.logger.LogDebug("Initializing VirtualizedProcessService with batch size: {BatchSize}", this.Configuration.BatchSize); - - // Perform initial load to get total count - await this.RefreshAllProcessesAsync(false); - } - - public async Task GetTotalProcessCountAsync(bool activeApplicationsOnly = false) - { - await this.EnsureProcessesLoadedAsync(activeApplicationsOnly); - - if (activeApplicationsOnly) - { - return this.allProcesses?.Count(p => p.HasVisibleWindow) ?? 0; - } - - return this.allProcesses?.Count ?? 0; - } - - public async Task LoadProcessBatchAsync(int batchIndex, bool activeApplicationsOnly = false) - { - var cacheKey = $"batch_{batchIndex}_{activeApplicationsOnly}"; - - if (this.batchCache.TryGetValue(cacheKey.GetHashCode(), out var cachedBatch)) - { - this.logger.LogDebug("Returning cached batch {BatchIndex}", batchIndex); - return cachedBatch; - } - - return await this.retryPolicy.ExecuteAsync( - async () => - { - var stopwatch = Stopwatch.StartNew(); - - await this.EnsureProcessesLoadedAsync(activeApplicationsOnly); - - var filteredProcesses = activeApplicationsOnly - ? this.allProcesses?.Where(p => p.HasVisibleWindow).ToList() ?? new List() - : this.allProcesses ?? new List(); - - var totalCount = filteredProcesses.Count; - var totalBatches = (int)Math.Ceiling((double)totalCount / this.Configuration.BatchSize); - - var startIndex = batchIndex * this.Configuration.BatchSize; - var batchProcesses = filteredProcesses - .Skip(startIndex) - .Take(this.Configuration.BatchSize) - .ToList(); - - var result = new ProcessBatchResult - { - Processes = batchProcesses, - BatchIndex = batchIndex, - TotalBatches = totalBatches, - TotalProcessCount = totalCount, - HasMoreBatches = batchIndex < totalBatches - 1, - LoadTime = stopwatch.Elapsed, - }; - - // Cache the result - this.batchCache.TryAdd(cacheKey.GetHashCode(), result); - - this.logger.LogDebug( - "Loaded batch {BatchIndex}/{TotalBatches} with {ProcessCount} processes in {LoadTime}ms", - batchIndex, totalBatches, batchProcesses.Count, stopwatch.ElapsedMilliseconds); - - return result; - }, this.retryPolicy.CreateProcessOperationPolicy()); - } - - public async Task> LoadProcessBatchesAsync(int startBatchIndex, int batchCount, bool activeApplicationsOnly = false) - { - var results = new List(); - var totalBatches = await this.GetTotalBatchCountAsync(activeApplicationsOnly); - - for (int i = 0; i < batchCount && (startBatchIndex + i) < totalBatches; i++) - { - var batchIndex = startBatchIndex + i; - var batch = await this.LoadProcessBatchAsync(batchIndex, activeApplicationsOnly); - results.Add(batch); - - // Report progress - this.BatchLoadProgress?.Invoke(this, new BatchLoadProgressEventArgs - { - LoadedBatches = i + 1, - TotalBatches = batchCount, - LoadedProcesses = results.Sum(r => r.Processes.Count), - TotalProcesses = batch.TotalProcessCount, - StatusMessage = $"Loaded batch {batchIndex + 1} of {totalBatches}", - }); - } - - return results; - } - - public async Task PreloadNextBatchAsync(int currentBatchIndex, bool activeApplicationsOnly = false) - { - if (!this.Configuration.EnableBackgroundLoading) - { - return; - } - - var nextBatchIndex = currentBatchIndex + 1; - var totalBatches = await this.GetTotalBatchCountAsync(activeApplicationsOnly); - - if (nextBatchIndex < totalBatches) - { - _ = Task.Run(async () => - { - try - { - if (!this.Configuration.EnableBackgroundLoading) - { - return; - } - - var batch = await this.LoadProcessBatchAsync(nextBatchIndex, activeApplicationsOnly); - this.BackgroundBatchLoaded?.Invoke(this, batch); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Failed to preload batch {BatchIndex}", nextBatchIndex); - } - }); - } - } - - public async Task> SearchProcessesAsync(string searchTerm, bool activeApplicationsOnly = false) - { - if (string.IsNullOrWhiteSpace(searchTerm)) - { - return new List(); - } - - await this.EnsureProcessesLoadedAsync(activeApplicationsOnly); - - var filteredProcesses = activeApplicationsOnly - ? this.allProcesses?.Where(p => p.HasVisibleWindow) ?? Enumerable.Empty() - : this.allProcesses ?? Enumerable.Empty(); - - return filteredProcesses - .Where(p => p.Name.Contains(searchTerm, StringComparison.OrdinalIgnoreCase) || - (p.MainWindowTitle?.Contains(searchTerm, StringComparison.OrdinalIgnoreCase) ?? false)) - .ToList(); - } - - public async Task RefreshBatchAsync(int batchIndex, bool activeApplicationsOnly = false) - { - var cacheKey = $"batch_{batchIndex}_{activeApplicationsOnly}"; - this.batchCache.TryRemove(cacheKey.GetHashCode(), out _); - - // Force refresh of all processes - await this.RefreshAllProcessesAsync(activeApplicationsOnly); - - return await this.LoadProcessBatchAsync(batchIndex, activeApplicationsOnly); - } - - public void ClearCache() - { - this.batchCache.Clear(); - this.allProcesses = null; - this.lastFullRefresh = DateTime.MinValue; - this.logger.LogInformation("Cleared virtualized process cache"); - } - - private async Task EnsureProcessesLoadedAsync(bool activeApplicationsOnly) - { - if (this.allProcesses == null || DateTime.UtcNow - this.lastFullRefresh > this.Configuration.RefreshInterval) - { - await this.RefreshAllProcessesAsync(activeApplicationsOnly); - } - } - - private async Task RefreshAllProcessesAsync(bool activeApplicationsOnly) - { - await this.loadingSemaphore.WaitAsync(); - try - { - this.logger.LogDebug("Refreshing all processes (activeOnly: {ActiveOnly})", activeApplicationsOnly); - - var processes = activeApplicationsOnly - ? await this.processService.GetActiveApplicationsAsync() - : await this.processService.GetProcessesAsync(); - - this.allProcesses = processes.ToList(); - this.lastFullRefresh = DateTime.UtcNow; - - // Clear batch cache since underlying data changed - this.batchCache.Clear(); - - this.logger.LogDebug("Refreshed {ProcessCount} processes", this.allProcesses.Count); - } - finally - { - this.loadingSemaphore.Release(); - } - } - - private async Task GetTotalBatchCountAsync(bool activeApplicationsOnly) - { - var totalCount = await this.GetTotalProcessCountAsync(activeApplicationsOnly); - return (int)Math.Ceiling((double)totalCount / this.Configuration.BatchSize); - } - - private void BackgroundPreloadCallback(object? state) - { - TaskSafety.FireAndForget(this.BackgroundPreloadCallbackAsync(), ex => - { - this.logger.LogDebug(ex, "Background process refresh failed"); - }); - } - - private async Task BackgroundPreloadCallbackAsync() - { - try - { - if (!this.Configuration.EnableBackgroundLoading) - { - return; - } - - // Refresh processes in background - await this.RefreshAllProcessesAsync(false); - } - catch (Exception ex) - { - this.logger.LogDebug(ex, "Background process refresh failed"); - } - } - - protected virtual void Dispose(bool disposing) - { - if (!this.disposed) - { - if (disposing) - { - this.backgroundPreloadTimer?.Dispose(); - this.loadingSemaphore?.Dispose(); - this.batchCache.Clear(); - this.logger.LogInformation("VirtualizedProcessService disposed"); - } - this.disposed = true; - } - } - - public void Dispose() - { - this.Dispose(disposing: true); - GC.SuppressFinalize(this); - } - } -} - +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Diagnostics; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + + public class VirtualizedProcessService : IVirtualizedProcessService, IDisposable + { + private readonly IProcessService processService; + private readonly ILogger logger; + private readonly SemaphoreSlim loadingSemaphore = new(1, 1); + private readonly ConcurrentDictionary batchCache = new(); + private readonly System.Threading.Timer backgroundPreloadTimer; + + private List? allProcesses; + private DateTime lastFullRefresh = DateTime.MinValue; + private bool disposed; + + public VirtualizedProcessConfig Configuration { get; set; } = new(); + + public event EventHandler? BatchLoadProgress; + + public event EventHandler? BackgroundBatchLoaded; + + public VirtualizedProcessService( + IProcessService processService, + ILogger logger) + { + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + + // Set up background preloading timer + this.backgroundPreloadTimer = new System.Threading.Timer(this.BackgroundPreloadCallback, null, Timeout.Infinite, Timeout.Infinite); + } + + public async Task InitializeAsync() + { + this.logger.LogDebug("Initializing VirtualizedProcessService with batch size: {BatchSize}", this.Configuration.BatchSize); + + // Perform initial load to get total count + await this.RefreshAllProcessesAsync(false); + } + + public async Task GetTotalProcessCountAsync(bool activeApplicationsOnly = false) + { + await this.EnsureProcessesLoadedAsync(activeApplicationsOnly); + + if (activeApplicationsOnly) + { + return this.allProcesses?.Count(p => p.HasVisibleWindow) ?? 0; + } + + return this.allProcesses?.Count ?? 0; + } + + public async Task LoadProcessBatchAsync(int batchIndex, bool activeApplicationsOnly = false) + { + var cacheKey = $"batch_{batchIndex}_{activeApplicationsOnly}"; + + if (this.batchCache.TryGetValue(cacheKey.GetHashCode(), out var cachedBatch)) + { + this.logger.LogDebug("Returning cached batch {BatchIndex}", batchIndex); + return cachedBatch; + } + + var stopwatch = Stopwatch.StartNew(); + + await this.EnsureProcessesLoadedAsync(activeApplicationsOnly); + + var filteredProcesses = activeApplicationsOnly + ? this.allProcesses?.Where(p => p.HasVisibleWindow).ToList() ?? new List() + : this.allProcesses ?? new List(); + + var totalCount = filteredProcesses.Count; + var totalBatches = (int)Math.Ceiling((double)totalCount / this.Configuration.BatchSize); + + var startIndex = batchIndex * this.Configuration.BatchSize; + var batchProcesses = filteredProcesses + .Skip(startIndex) + .Take(this.Configuration.BatchSize) + .ToList(); + + var result = new ProcessBatchResult + { + Processes = batchProcesses, + BatchIndex = batchIndex, + TotalBatches = totalBatches, + TotalProcessCount = totalCount, + HasMoreBatches = batchIndex < totalBatches - 1, + LoadTime = stopwatch.Elapsed, + }; + + // Cache the result + this.batchCache.TryAdd(cacheKey.GetHashCode(), result); + + this.logger.LogDebug( + "Loaded batch {BatchIndex}/{TotalBatches} with {ProcessCount} processes in {LoadTime}ms", + batchIndex, totalBatches, batchProcesses.Count, stopwatch.ElapsedMilliseconds); + + return result; + } + + + public async Task> LoadProcessBatchesAsync(int startBatchIndex, int batchCount, bool activeApplicationsOnly = false) + { + var results = new List(); + var totalBatches = await this.GetTotalBatchCountAsync(activeApplicationsOnly); + + for (int i = 0; i < batchCount && (startBatchIndex + i) < totalBatches; i++) + { + var batchIndex = startBatchIndex + i; + var batch = await this.LoadProcessBatchAsync(batchIndex, activeApplicationsOnly); + results.Add(batch); + + // Report progress + this.BatchLoadProgress?.Invoke(this, new BatchLoadProgressEventArgs + { + LoadedBatches = i + 1, + TotalBatches = batchCount, + LoadedProcesses = results.Sum(r => r.Processes.Count), + TotalProcesses = batch.TotalProcessCount, + StatusMessage = $"Loaded batch {batchIndex + 1} of {totalBatches}", + }); + } + + return results; + } + + public async Task PreloadNextBatchAsync(int currentBatchIndex, bool activeApplicationsOnly = false) + { + if (!this.Configuration.EnableBackgroundLoading) + { + return; + } + + var nextBatchIndex = currentBatchIndex + 1; + var totalBatches = await this.GetTotalBatchCountAsync(activeApplicationsOnly); + + if (nextBatchIndex < totalBatches) + { + _ = Task.Run(async () => + { + try + { + if (!this.Configuration.EnableBackgroundLoading) + { + return; + } + + var batch = await this.LoadProcessBatchAsync(nextBatchIndex, activeApplicationsOnly); + this.BackgroundBatchLoaded?.Invoke(this, batch); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Failed to preload batch {BatchIndex}", nextBatchIndex); + } + }); + } + } + + public async Task> SearchProcessesAsync(string searchTerm, bool activeApplicationsOnly = false) + { + if (string.IsNullOrWhiteSpace(searchTerm)) + { + return new List(); + } + + await this.EnsureProcessesLoadedAsync(activeApplicationsOnly); + + var filteredProcesses = activeApplicationsOnly + ? this.allProcesses?.Where(p => p.HasVisibleWindow) ?? Enumerable.Empty() + : this.allProcesses ?? Enumerable.Empty(); + + return filteredProcesses + .Where(p => p.Name.Contains(searchTerm, StringComparison.OrdinalIgnoreCase) || + (p.MainWindowTitle?.Contains(searchTerm, StringComparison.OrdinalIgnoreCase) ?? false)) + .ToList(); + } + + public async Task RefreshBatchAsync(int batchIndex, bool activeApplicationsOnly = false) + { + var cacheKey = $"batch_{batchIndex}_{activeApplicationsOnly}"; + this.batchCache.TryRemove(cacheKey.GetHashCode(), out _); + + // Force refresh of all processes + await this.RefreshAllProcessesAsync(activeApplicationsOnly); + + return await this.LoadProcessBatchAsync(batchIndex, activeApplicationsOnly); + } + + public void ClearCache() + { + this.batchCache.Clear(); + this.allProcesses = null; + this.lastFullRefresh = DateTime.MinValue; + this.logger.LogInformation("Cleared virtualized process cache"); + } + + private async Task EnsureProcessesLoadedAsync(bool activeApplicationsOnly) + { + if (this.allProcesses == null || DateTime.UtcNow - this.lastFullRefresh > this.Configuration.RefreshInterval) + { + await this.RefreshAllProcessesAsync(activeApplicationsOnly); + } + } + + private async Task RefreshAllProcessesAsync(bool activeApplicationsOnly) + { + await this.loadingSemaphore.WaitAsync(); + try + { + this.logger.LogDebug("Refreshing all processes (activeOnly: {ActiveOnly})", activeApplicationsOnly); + + var processes = activeApplicationsOnly + ? await this.processService.GetActiveApplicationsAsync() + : await this.processService.GetProcessesAsync(); + + this.allProcesses = processes.ToList(); + this.lastFullRefresh = DateTime.UtcNow; + + // Clear batch cache since underlying data changed + this.batchCache.Clear(); + + this.logger.LogDebug("Refreshed {ProcessCount} processes", this.allProcesses.Count); + } + finally + { + this.loadingSemaphore.Release(); + } + } + + private async Task GetTotalBatchCountAsync(bool activeApplicationsOnly) + { + var totalCount = await this.GetTotalProcessCountAsync(activeApplicationsOnly); + return (int)Math.Ceiling((double)totalCount / this.Configuration.BatchSize); + } + + private void BackgroundPreloadCallback(object? state) + { + TaskSafety.FireAndForget(this.BackgroundPreloadCallbackAsync(), ex => + { + this.logger.LogDebug(ex, "Background process refresh failed"); + }); + } + + private async Task BackgroundPreloadCallbackAsync() + { + try + { + if (!this.Configuration.EnableBackgroundLoading) + { + return; + } + + // Refresh processes in background + await this.RefreshAllProcessesAsync(false); + } + catch (Exception ex) + { + this.logger.LogDebug(ex, "Background process refresh failed"); + } + } + + protected virtual void Dispose(bool disposing) + { + if (!this.disposed) + { + if (disposing) + { + this.backgroundPreloadTimer?.Dispose(); + this.loadingSemaphore?.Dispose(); + this.batchCache.Clear(); + this.logger.LogInformation("VirtualizedProcessService disposed"); + } + this.disposed = true; + } + } + + public void Dispose() + { + this.Dispose(disposing: true); + GC.SuppressFinalize(this); + } + } +} + diff --git a/Services/WindowsCpuTopologyNativeLayout.cs b/Services/WindowsCpuTopologyNativeLayout.cs index 02bcae2..6717520 100644 --- a/Services/WindowsCpuTopologyNativeLayout.cs +++ b/Services/WindowsCpuTopologyNativeLayout.cs @@ -1,164 +1,148 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.InteropServices; - using ThreadPilot.Models; - - internal static class WindowsCpuTopologyNativeLayout - { - public static int GroupAffinitySize => Marshal.SizeOf(); - - public static int ProcessorGroupCountOffset => Marshal.OffsetOf(nameof(ProcessorRelationship.GroupCount)).ToInt32(); - - public static int ProcessorGroupMaskOffset => Marshal.OffsetOf(nameof(ProcessorRelationship.GroupMask)).ToInt32(); - - public static int CacheReservedOffset => Marshal.OffsetOf(nameof(CacheRelationship.Reserved)).ToInt32(); - - public static int CacheGroupCountOffset => Marshal.OffsetOf(nameof(CacheRelationship.GroupCount)).ToInt32(); - - public static int CacheGroupMaskOffset => Marshal.OffsetOf(nameof(CacheRelationship.GroupMask)).ToInt32(); - - public static int NumaReservedOffset => Marshal.OffsetOf(nameof(NumaNodeRelationship.Reserved)).ToInt32(); - - public static int NumaGroupCountOffset => Marshal.OffsetOf(nameof(NumaNodeRelationship.GroupCount)).ToInt32(); - - public static int NumaGroupMaskOffset => Marshal.OffsetOf(nameof(NumaNodeRelationship.GroupMask)).ToInt32(); - - internal enum ProcessorCacheType - { - CacheUnified = 0, - CacheInstruction = 1, - CacheData = 2, - CacheTrace = 3, - } - - [StructLayout(LayoutKind.Sequential)] - internal struct GroupAffinity - { - public UIntPtr Mask; - public ushort Group; - public ushort Reserved0; - public ushort Reserved1; - public ushort Reserved2; - } - - [StructLayout(LayoutKind.Sequential)] - internal unsafe struct ProcessorRelationship - { - public byte Flags; - public byte EfficiencyClass; - public fixed byte Reserved[20]; - public ushort GroupCount; - public GroupAffinity GroupMask; - } - - [StructLayout(LayoutKind.Sequential)] - internal unsafe struct CacheRelationship - { - public byte Level; - public byte Associativity; - public ushort LineSize; - public uint CacheSize; - public ProcessorCacheType Type; - public fixed byte Reserved[18]; - public ushort GroupCount; - public GroupAffinity GroupMask; - } - - [StructLayout(LayoutKind.Sequential)] - internal unsafe struct NumaNodeRelationship - { - public uint NodeNumber; - public fixed byte Reserved[18]; - public ushort GroupCount; - public GroupAffinity GroupMask; - } - - public static IReadOnlyList ReadProcessorRelationshipProcessors(IntPtr relationshipPtr, ushort groupCount) - { - return ReadProcessorsFromGroupMasks(relationshipPtr, ProcessorGroupMaskOffset, groupCount).ToList(); - } - - public static bool TryReadL3CacheProcessors(IntPtr relationshipPtr, out IReadOnlyList processors) - { - var cache = Marshal.PtrToStructure(relationshipPtr); - if (cache.Level != 3 || cache.GroupCount == 0) - { - processors = []; - return false; - } - - processors = ReadProcessorsFromGroupMasks(relationshipPtr, CacheGroupMaskOffset, cache.GroupCount).ToList(); - return processors.Count > 0; - } - - public static IReadOnlyList ReadNumaNodeProcessors(IntPtr relationshipPtr, out int nodeNumber) - { - var numaNode = Marshal.PtrToStructure(relationshipPtr); - nodeNumber = unchecked((int)numaNode.NodeNumber); - var groupCount = numaNode.GroupCount == 0 - ? (ushort)1 - : numaNode.GroupCount; - - return ReadProcessorsFromGroupMasks(relationshipPtr, NumaGroupMaskOffset, groupCount).ToList(); - } - - public static IEnumerable CreateFallbackProcessors(int logicalProcessorCount) - { - return Enumerable.Range(0, logicalProcessorCount) - .Select(index => new ProcessorRef((ushort)(index / 64), (byte)(index % 64), index)); - } - - private static IEnumerable ReadProcessorsFromGroupMasks( - IntPtr relationshipPtr, - int groupMaskOffset, - ushort groupCount) - { - var firstGroupMaskPtr = IntPtr.Add(relationshipPtr, groupMaskOffset); - var stride = GroupAffinitySize; - for (var index = 0; index < groupCount; index++) - { - var groupAffinity = Marshal.PtrToStructure(IntPtr.Add(firstGroupMaskPtr, index * stride)); - foreach (var logicalProcessor in ReadProcessorsFromGroupAffinity(groupAffinity)) - { - yield return logicalProcessor; - } - } - } - - private static IEnumerable ReadProcessorsFromGroupAffinity(GroupAffinity groupAffinity) - { - var mask = groupAffinity.Mask.ToUInt64(); - for (var bit = 0; bit < 64; bit++) - { - if ((mask & (1UL << bit)) != 0) - { - yield return CreateProcessorRef(groupAffinity.Group, (byte)bit); - } - } - } - - public static ProcessorRef CreateProcessorRef(ushort group, byte logicalProcessorNumber) - { - return new ProcessorRef(group, logicalProcessorNumber, (group * 64) + logicalProcessorNumber); - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Runtime.InteropServices; + using ThreadPilot.Models; + + internal static class WindowsCpuTopologyNativeLayout + { + public static int GroupAffinitySize => Marshal.SizeOf(); + + public static int ProcessorGroupCountOffset => Marshal.OffsetOf(nameof(ProcessorRelationship.GroupCount)).ToInt32(); + + public static int ProcessorGroupMaskOffset => Marshal.OffsetOf(nameof(ProcessorRelationship.GroupMask)).ToInt32(); + + public static int CacheReservedOffset => Marshal.OffsetOf(nameof(CacheRelationship.Reserved)).ToInt32(); + + public static int CacheGroupCountOffset => Marshal.OffsetOf(nameof(CacheRelationship.GroupCount)).ToInt32(); + + public static int CacheGroupMaskOffset => Marshal.OffsetOf(nameof(CacheRelationship.GroupMask)).ToInt32(); + + public static int NumaReservedOffset => Marshal.OffsetOf(nameof(NumaNodeRelationship.Reserved)).ToInt32(); + + public static int NumaGroupCountOffset => Marshal.OffsetOf(nameof(NumaNodeRelationship.GroupCount)).ToInt32(); + + public static int NumaGroupMaskOffset => Marshal.OffsetOf(nameof(NumaNodeRelationship.GroupMask)).ToInt32(); + + internal enum ProcessorCacheType + { + CacheUnified = 0, + CacheInstruction = 1, + CacheData = 2, + CacheTrace = 3, + } + + [StructLayout(LayoutKind.Sequential)] + internal struct GroupAffinity + { + public UIntPtr Mask; + public ushort Group; + public ushort Reserved0; + public ushort Reserved1; + public ushort Reserved2; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct ProcessorRelationship + { + public byte Flags; + public byte EfficiencyClass; + public fixed byte Reserved[20]; + public ushort GroupCount; + public GroupAffinity GroupMask; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct CacheRelationship + { + public byte Level; + public byte Associativity; + public ushort LineSize; + public uint CacheSize; + public ProcessorCacheType Type; + public fixed byte Reserved[18]; + public ushort GroupCount; + public GroupAffinity GroupMask; + } + + [StructLayout(LayoutKind.Sequential)] + internal unsafe struct NumaNodeRelationship + { + public uint NodeNumber; + public fixed byte Reserved[18]; + public ushort GroupCount; + public GroupAffinity GroupMask; + } + + public static IReadOnlyList ReadProcessorRelationshipProcessors(IntPtr relationshipPtr, ushort groupCount) + { + return ReadProcessorsFromGroupMasks(relationshipPtr, ProcessorGroupMaskOffset, groupCount).ToList(); + } + + public static bool TryReadL3CacheProcessors(IntPtr relationshipPtr, out IReadOnlyList processors) + { + var cache = Marshal.PtrToStructure(relationshipPtr); + if (cache.Level != 3 || cache.GroupCount == 0) + { + processors = []; + return false; + } + + processors = ReadProcessorsFromGroupMasks(relationshipPtr, CacheGroupMaskOffset, cache.GroupCount).ToList(); + return processors.Count > 0; + } + + public static IReadOnlyList ReadNumaNodeProcessors(IntPtr relationshipPtr, out int nodeNumber) + { + var numaNode = Marshal.PtrToStructure(relationshipPtr); + nodeNumber = unchecked((int)numaNode.NodeNumber); + var groupCount = numaNode.GroupCount == 0 + ? (ushort)1 + : numaNode.GroupCount; + + return ReadProcessorsFromGroupMasks(relationshipPtr, NumaGroupMaskOffset, groupCount).ToList(); + } + + public static IEnumerable CreateFallbackProcessors(int logicalProcessorCount) + { + return Enumerable.Range(0, logicalProcessorCount) + .Select(index => new ProcessorRef((ushort)(index / 64), (byte)(index % 64), index)); + } + + private static IEnumerable ReadProcessorsFromGroupMasks( + IntPtr relationshipPtr, + int groupMaskOffset, + ushort groupCount) + { + var firstGroupMaskPtr = IntPtr.Add(relationshipPtr, groupMaskOffset); + var stride = GroupAffinitySize; + for (var index = 0; index < groupCount; index++) + { + var groupAffinity = Marshal.PtrToStructure(IntPtr.Add(firstGroupMaskPtr, index * stride)); + foreach (var logicalProcessor in ReadProcessorsFromGroupAffinity(groupAffinity)) + { + yield return logicalProcessor; + } + } + } + + private static IEnumerable ReadProcessorsFromGroupAffinity(GroupAffinity groupAffinity) + { + var mask = groupAffinity.Mask.ToUInt64(); + for (var bit = 0; bit < 64; bit++) + { + if ((mask & (1UL << bit)) != 0) + { + yield return CreateProcessorRef(groupAffinity.Group, (byte)bit); + } + } + } + + public static ProcessorRef CreateProcessorRef(ushort group, byte logicalProcessorNumber) + { + return new ProcessorRef(group, logicalProcessorNumber, (group * 64) + logicalProcessorNumber); + } + } +} diff --git a/Services/WindowsCpuTopologyProvider.cs b/Services/WindowsCpuTopologyProvider.cs index 4a71ac2..6651eab 100644 --- a/Services/WindowsCpuTopologyProvider.cs +++ b/Services/WindowsCpuTopologyProvider.cs @@ -1,398 +1,378 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Collections.Generic; - using System.Linq; - using System.Runtime.InteropServices; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Models; - - /// - /// Builds instances from Windows CPU Sets and processor relationship APIs. - /// This provider is introduced for CPU topology v2 and is not wired into runtime affinity application yet. - /// - public sealed class WindowsCpuTopologyProvider : ICpuTopologyProvider - { - private const int ErrorInsufficientBuffer = 122; - - private readonly ILogger logger; - - public WindowsCpuTopologyProvider(ILogger? logger = null) - { - this.logger = logger ?? NullLogger.Instance; - } - - private enum CpuSetInformationType - { - CpuSetInformation = 0, - } - - private enum LogicalProcessorRelationship - { - RelationProcessorCore = 0, - RelationNumaNode = 1, - RelationCache = 2, - RelationProcessorPackage = 3, - RelationGroup = 4, - RelationProcessorDie = 5, - RelationNumaNodeEx = 6, - RelationProcessorModule = 7, - RelationAll = 0xFFFF, - } - - [StructLayout(LayoutKind.Sequential)] - private struct SystemCpuSetInformation - { - public uint Size; - public CpuSetInformationType Type; - public uint Id; - public ushort Group; - public byte LogicalProcessorIndex; - public byte CoreIndex; - public byte LastLevelCacheIndex; - public byte NumaNodeIndex; - public byte EfficiencyClass; - public byte AllFlags; - public uint SchedulingClassOrReserved; - public ulong AllocationTag; - } - - [StructLayout(LayoutKind.Sequential)] - private struct SystemLogicalProcessorInformationExHeader - { - public LogicalProcessorRelationship Relationship; - public int Size; - } - - [DllImport("kernel32.dll", SetLastError = true)] - private static extern bool GetSystemCpuSetInformation( - IntPtr information, - uint bufferLength, - out uint returnedLength, - IntPtr process, - uint flags); - - [DllImport("kernel32.dll", SetLastError = true)] - private static extern bool GetLogicalProcessorInformationEx( - LogicalProcessorRelationship relationshipType, - IntPtr buffer, - ref int returnedLength); - - public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(this.CreateSnapshot(cancellationToken)); - } - - private CpuTopologySnapshot CreateSnapshot(CancellationToken cancellationToken) - { - var logicalProcessors = new HashSet(); - var cpuSetIds = new Dictionary(); - var efficiencyClasses = new Dictionary(); - var coreIndexes = new Dictionary(); - var numaNodeIndexes = new Dictionary(); - var lastLevelCacheIndexes = new Dictionary(); - var packageIndexes = new Dictionary(); - var smtSiblingGlobalIndexes = new Dictionary>(); - - this.ReadCpuSetInformation( - logicalProcessors, - cpuSetIds, - efficiencyClasses, - coreIndexes, - numaNodeIndexes, - lastLevelCacheIndexes, - cancellationToken); - - this.ReadLogicalProcessorRelationships( - logicalProcessors, - efficiencyClasses, - coreIndexes, - numaNodeIndexes, - lastLevelCacheIndexes, - packageIndexes, - smtSiblingGlobalIndexes, - cancellationToken); - - if (efficiencyClasses.Values.Distinct().Count() <= 1) - { - efficiencyClasses.Clear(); - } - - if (logicalProcessors.Count == 0) - { - this.logger.LogWarning("CPU topology provider could not read Windows topology APIs; using Environment.ProcessorCount fallback"); - foreach (var processor in WindowsCpuTopologyNativeLayout.CreateFallbackProcessors(Environment.ProcessorCount)) - { - logicalProcessors.Add(processor); - coreIndexes[processor] = processor.GlobalIndex; - } - } - - var processors = logicalProcessors - .OrderBy(processor => processor.GlobalIndex) - .ThenBy(processor => processor.Group) - .ThenBy(processor => processor.LogicalProcessorNumber) - .ToList(); - - var signature = new CpuTopologySignature - { - LogicalProcessorCount = processors.Count, - PhysicalCoreCount = coreIndexes.Count == 0 - ? processors.Count - : coreIndexes.Values.Distinct().Count(), - ProcessorGroupCount = processors.Select(processor => processor.Group).Distinct().Count(), - NumaNodeCount = numaNodeIndexes.Values.Distinct().Count(), - LastLevelCacheGroupCount = lastLevelCacheIndexes.Values.Distinct().Count(), - PackageCount = packageIndexes.Values.Distinct().Count(), - Source = nameof(WindowsCpuTopologyProvider), - }; - - return CpuTopologySnapshot.Create( - processors, - cpuSetIds, - efficiencyClasses, - signature, - coreIndexes, - numaNodeIndexes, - lastLevelCacheIndexes, - packageIndexes, - smtSiblingGlobalIndexes); - } - - private void ReadCpuSetInformation( - HashSet logicalProcessors, - IDictionary cpuSetIds, - IDictionary efficiencyClasses, - IDictionary coreIndexes, - IDictionary numaNodeIndexes, - IDictionary lastLevelCacheIndexes, - CancellationToken cancellationToken) - { - uint requiredLength = 0; - if (GetSystemCpuSetInformation(IntPtr.Zero, 0, out requiredLength, IntPtr.Zero, 0)) - { - return; - } - - var firstError = Marshal.GetLastWin32Error(); - if (firstError != ErrorInsufficientBuffer || requiredLength == 0) - { - this.logger.LogDebug("GetSystemCpuSetInformation probe failed with Win32 error {Error}", firstError); - return; - } - - var buffer = Marshal.AllocHGlobal((int)requiredLength); - try - { - cancellationToken.ThrowIfCancellationRequested(); - if (!GetSystemCpuSetInformation(buffer, requiredLength, out requiredLength, IntPtr.Zero, 0)) - { - this.logger.LogDebug("GetSystemCpuSetInformation read failed with Win32 error {Error}", Marshal.GetLastWin32Error()); - return; - } - - var offset = 0; - while (offset < requiredLength) - { - cancellationToken.ThrowIfCancellationRequested(); - var itemPtr = IntPtr.Add(buffer, offset); - var info = Marshal.PtrToStructure(itemPtr); - if (info.Size == 0) - { - break; - } - - if (info.Type == CpuSetInformationType.CpuSetInformation) - { - var processor = WindowsCpuTopologyNativeLayout.CreateProcessorRef(info.Group, info.LogicalProcessorIndex); - logicalProcessors.Add(processor); - cpuSetIds[processor] = info.Id; - efficiencyClasses[processor] = info.EfficiencyClass; - coreIndexes.TryAdd(processor, info.CoreIndex); - numaNodeIndexes[processor] = info.NumaNodeIndex; - lastLevelCacheIndexes[processor] = info.LastLevelCacheIndex; - } - - offset += (int)info.Size; - } - } - finally - { - Marshal.FreeHGlobal(buffer); - } - } - - private void ReadLogicalProcessorRelationships( - HashSet logicalProcessors, - IDictionary efficiencyClasses, - IDictionary coreIndexes, - IDictionary numaNodeIndexes, - IDictionary lastLevelCacheIndexes, - IDictionary packageIndexes, - IDictionary> smtSiblingGlobalIndexes, - CancellationToken cancellationToken) - { - var requiredLength = 0; - if (GetLogicalProcessorInformationEx(LogicalProcessorRelationship.RelationAll, IntPtr.Zero, ref requiredLength)) - { - return; - } - - var firstError = Marshal.GetLastWin32Error(); - if (firstError != ErrorInsufficientBuffer || requiredLength <= 0) - { - this.logger.LogDebug("GetLogicalProcessorInformationEx probe failed with Win32 error {Error}", firstError); - return; - } - - var buffer = Marshal.AllocHGlobal(requiredLength); - try - { - cancellationToken.ThrowIfCancellationRequested(); - if (!GetLogicalProcessorInformationEx(LogicalProcessorRelationship.RelationAll, buffer, ref requiredLength)) - { - this.logger.LogDebug("GetLogicalProcessorInformationEx read failed with Win32 error {Error}", Marshal.GetLastWin32Error()); - return; - } - - var coreIndex = 0; - var packageIndex = 0; - var lastLevelCacheIndex = 0; - var offset = 0; - while (offset < requiredLength) - { - cancellationToken.ThrowIfCancellationRequested(); - var itemPtr = IntPtr.Add(buffer, offset); - var header = Marshal.PtrToStructure(itemPtr); - if (header.Size <= 0) - { - break; - } - - switch (header.Relationship) - { - case LogicalProcessorRelationship.RelationProcessorCore: - this.ReadProcessorCoreRelationship( - itemPtr, - coreIndex++, - logicalProcessors, - efficiencyClasses, - coreIndexes, - smtSiblingGlobalIndexes); - break; - case LogicalProcessorRelationship.RelationProcessorPackage: - this.ReadIndexedProcessorRelationship( - itemPtr, - packageIndex++, - logicalProcessors, - packageIndexes); - break; - case LogicalProcessorRelationship.RelationCache: - if (TryReadL3CacheProcessors(itemPtr, out var cacheProcessors)) - { - foreach (var processor in cacheProcessors) - { - logicalProcessors.Add(processor); - lastLevelCacheIndexes[processor] = lastLevelCacheIndex; - } - - lastLevelCacheIndex++; - } - - break; - case LogicalProcessorRelationship.RelationNumaNode: - case LogicalProcessorRelationship.RelationNumaNodeEx: - this.ReadNumaNodeRelationship(itemPtr, logicalProcessors, numaNodeIndexes); - break; - } - - offset += header.Size; - } - } - finally - { - Marshal.FreeHGlobal(buffer); - } - } - - private void ReadProcessorCoreRelationship( - IntPtr itemPtr, - int coreIndex, - HashSet logicalProcessors, - IDictionary efficiencyClasses, - IDictionary coreIndexes, - IDictionary> smtSiblingGlobalIndexes) - { - var relationshipPtr = IntPtr.Add(itemPtr, 8); - var processor = Marshal.PtrToStructure(relationshipPtr); - var processorsInCore = WindowsCpuTopologyNativeLayout - .ReadProcessorRelationshipProcessors(relationshipPtr, processor.GroupCount) - .ToList(); - var siblingIndexes = processorsInCore.Select(item => item.GlobalIndex).ToList(); - - foreach (var logicalProcessor in processorsInCore) - { - logicalProcessors.Add(logicalProcessor); - efficiencyClasses[logicalProcessor] = processor.EfficiencyClass; - coreIndexes[logicalProcessor] = coreIndex; - smtSiblingGlobalIndexes[logicalProcessor] = siblingIndexes - .Where(index => index != logicalProcessor.GlobalIndex) - .OrderBy(index => index) - .ToList(); - } - } - - private void ReadIndexedProcessorRelationship( - IntPtr itemPtr, - int index, - HashSet logicalProcessors, - IDictionary indexMap) - { - var relationshipPtr = IntPtr.Add(itemPtr, 8); - var processor = Marshal.PtrToStructure(relationshipPtr); - foreach (var logicalProcessor in WindowsCpuTopologyNativeLayout.ReadProcessorRelationshipProcessors(relationshipPtr, processor.GroupCount)) - { - logicalProcessors.Add(logicalProcessor); - indexMap[logicalProcessor] = index; - } - } - - private static bool TryReadL3CacheProcessors(IntPtr itemPtr, out IReadOnlyList processors) - { - return WindowsCpuTopologyNativeLayout.TryReadL3CacheProcessors(IntPtr.Add(itemPtr, 8), out processors); - } - - private void ReadNumaNodeRelationship( - IntPtr itemPtr, - HashSet logicalProcessors, - IDictionary numaNodeIndexes) - { - var processors = WindowsCpuTopologyNativeLayout.ReadNumaNodeProcessors(IntPtr.Add(itemPtr, 8), out var nodeNumber); - foreach (var processor in processors) - { - logicalProcessors.Add(processor); - numaNodeIndexes[processor] = nodeNumber; - } - } - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Runtime.InteropServices; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Models; + + public sealed class WindowsCpuTopologyProvider : ICpuTopologyProvider + { + private const int ErrorInsufficientBuffer = 122; + + private readonly ILogger logger; + + public WindowsCpuTopologyProvider(ILogger? logger = null) + { + this.logger = logger ?? NullLogger.Instance; + } + + private enum CpuSetInformationType + { + CpuSetInformation = 0, + } + + private enum LogicalProcessorRelationship + { + RelationProcessorCore = 0, + RelationNumaNode = 1, + RelationCache = 2, + RelationProcessorPackage = 3, + RelationGroup = 4, + RelationProcessorDie = 5, + RelationNumaNodeEx = 6, + RelationProcessorModule = 7, + RelationAll = 0xFFFF, + } + + [StructLayout(LayoutKind.Sequential)] + private struct SystemCpuSetInformation + { + public uint Size; + public CpuSetInformationType Type; + public uint Id; + public ushort Group; + public byte LogicalProcessorIndex; + public byte CoreIndex; + public byte LastLevelCacheIndex; + public byte NumaNodeIndex; + public byte EfficiencyClass; + public byte AllFlags; + public uint SchedulingClassOrReserved; + public ulong AllocationTag; + } + + [StructLayout(LayoutKind.Sequential)] + private struct SystemLogicalProcessorInformationExHeader + { + public LogicalProcessorRelationship Relationship; + public int Size; + } + + [DllImport("kernel32.dll", SetLastError = true)] + private static extern bool GetSystemCpuSetInformation( + IntPtr information, + uint bufferLength, + out uint returnedLength, + IntPtr process, + uint flags); + + [DllImport("kernel32.dll", SetLastError = true)] + private static extern bool GetLogicalProcessorInformationEx( + LogicalProcessorRelationship relationshipType, + IntPtr buffer, + ref int returnedLength); + + public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) + { + cancellationToken.ThrowIfCancellationRequested(); + return Task.FromResult(this.CreateSnapshot(cancellationToken)); + } + + private CpuTopologySnapshot CreateSnapshot(CancellationToken cancellationToken) + { + var logicalProcessors = new HashSet(); + var cpuSetIds = new Dictionary(); + var efficiencyClasses = new Dictionary(); + var coreIndexes = new Dictionary(); + var numaNodeIndexes = new Dictionary(); + var lastLevelCacheIndexes = new Dictionary(); + var packageIndexes = new Dictionary(); + var smtSiblingGlobalIndexes = new Dictionary>(); + + this.ReadCpuSetInformation( + logicalProcessors, + cpuSetIds, + efficiencyClasses, + coreIndexes, + numaNodeIndexes, + lastLevelCacheIndexes, + cancellationToken); + + this.ReadLogicalProcessorRelationships( + logicalProcessors, + efficiencyClasses, + coreIndexes, + numaNodeIndexes, + lastLevelCacheIndexes, + packageIndexes, + smtSiblingGlobalIndexes, + cancellationToken); + + if (efficiencyClasses.Values.Distinct().Count() <= 1) + { + efficiencyClasses.Clear(); + } + + if (logicalProcessors.Count == 0) + { + this.logger.LogWarning("CPU topology provider could not read Windows topology APIs; using Environment.ProcessorCount fallback"); + foreach (var processor in WindowsCpuTopologyNativeLayout.CreateFallbackProcessors(Environment.ProcessorCount)) + { + logicalProcessors.Add(processor); + coreIndexes[processor] = processor.GlobalIndex; + } + } + + var processors = logicalProcessors + .OrderBy(processor => processor.GlobalIndex) + .ThenBy(processor => processor.Group) + .ThenBy(processor => processor.LogicalProcessorNumber) + .ToList(); + + var signature = new CpuTopologySignature + { + LogicalProcessorCount = processors.Count, + PhysicalCoreCount = coreIndexes.Count == 0 + ? processors.Count + : coreIndexes.Values.Distinct().Count(), + ProcessorGroupCount = processors.Select(processor => processor.Group).Distinct().Count(), + NumaNodeCount = numaNodeIndexes.Values.Distinct().Count(), + LastLevelCacheGroupCount = lastLevelCacheIndexes.Values.Distinct().Count(), + PackageCount = packageIndexes.Values.Distinct().Count(), + Source = nameof(WindowsCpuTopologyProvider), + }; + + return CpuTopologySnapshot.Create( + processors, + cpuSetIds, + efficiencyClasses, + signature, + coreIndexes, + numaNodeIndexes, + lastLevelCacheIndexes, + packageIndexes, + smtSiblingGlobalIndexes); + } + + private void ReadCpuSetInformation( + HashSet logicalProcessors, + IDictionary cpuSetIds, + IDictionary efficiencyClasses, + IDictionary coreIndexes, + IDictionary numaNodeIndexes, + IDictionary lastLevelCacheIndexes, + CancellationToken cancellationToken) + { + uint requiredLength = 0; + if (GetSystemCpuSetInformation(IntPtr.Zero, 0, out requiredLength, IntPtr.Zero, 0)) + { + return; + } + + var firstError = Marshal.GetLastWin32Error(); + if (firstError != ErrorInsufficientBuffer || requiredLength == 0) + { + this.logger.LogDebug("GetSystemCpuSetInformation probe failed with Win32 error {Error}", firstError); + return; + } + + var buffer = Marshal.AllocHGlobal((int)requiredLength); + try + { + cancellationToken.ThrowIfCancellationRequested(); + if (!GetSystemCpuSetInformation(buffer, requiredLength, out requiredLength, IntPtr.Zero, 0)) + { + this.logger.LogDebug("GetSystemCpuSetInformation read failed with Win32 error {Error}", Marshal.GetLastWin32Error()); + return; + } + + var offset = 0; + while (offset < requiredLength) + { + cancellationToken.ThrowIfCancellationRequested(); + var itemPtr = IntPtr.Add(buffer, offset); + var info = Marshal.PtrToStructure(itemPtr); + if (info.Size == 0) + { + break; + } + + if (info.Type == CpuSetInformationType.CpuSetInformation) + { + var processor = WindowsCpuTopologyNativeLayout.CreateProcessorRef(info.Group, info.LogicalProcessorIndex); + logicalProcessors.Add(processor); + cpuSetIds[processor] = info.Id; + efficiencyClasses[processor] = info.EfficiencyClass; + coreIndexes.TryAdd(processor, info.CoreIndex); + numaNodeIndexes[processor] = info.NumaNodeIndex; + lastLevelCacheIndexes[processor] = info.LastLevelCacheIndex; + } + + offset += (int)info.Size; + } + } + finally + { + Marshal.FreeHGlobal(buffer); + } + } + + private void ReadLogicalProcessorRelationships( + HashSet logicalProcessors, + IDictionary efficiencyClasses, + IDictionary coreIndexes, + IDictionary numaNodeIndexes, + IDictionary lastLevelCacheIndexes, + IDictionary packageIndexes, + IDictionary> smtSiblingGlobalIndexes, + CancellationToken cancellationToken) + { + var requiredLength = 0; + if (GetLogicalProcessorInformationEx(LogicalProcessorRelationship.RelationAll, IntPtr.Zero, ref requiredLength)) + { + return; + } + + var firstError = Marshal.GetLastWin32Error(); + if (firstError != ErrorInsufficientBuffer || requiredLength <= 0) + { + this.logger.LogDebug("GetLogicalProcessorInformationEx probe failed with Win32 error {Error}", firstError); + return; + } + + var buffer = Marshal.AllocHGlobal(requiredLength); + try + { + cancellationToken.ThrowIfCancellationRequested(); + if (!GetLogicalProcessorInformationEx(LogicalProcessorRelationship.RelationAll, buffer, ref requiredLength)) + { + this.logger.LogDebug("GetLogicalProcessorInformationEx read failed with Win32 error {Error}", Marshal.GetLastWin32Error()); + return; + } + + var coreIndex = 0; + var packageIndex = 0; + var lastLevelCacheIndex = 0; + var offset = 0; + while (offset < requiredLength) + { + cancellationToken.ThrowIfCancellationRequested(); + var itemPtr = IntPtr.Add(buffer, offset); + var header = Marshal.PtrToStructure(itemPtr); + if (header.Size <= 0) + { + break; + } + + switch (header.Relationship) + { + case LogicalProcessorRelationship.RelationProcessorCore: + this.ReadProcessorCoreRelationship( + itemPtr, + coreIndex++, + logicalProcessors, + efficiencyClasses, + coreIndexes, + smtSiblingGlobalIndexes); + break; + case LogicalProcessorRelationship.RelationProcessorPackage: + this.ReadIndexedProcessorRelationship( + itemPtr, + packageIndex++, + logicalProcessors, + packageIndexes); + break; + case LogicalProcessorRelationship.RelationCache: + if (TryReadL3CacheProcessors(itemPtr, out var cacheProcessors)) + { + foreach (var processor in cacheProcessors) + { + logicalProcessors.Add(processor); + lastLevelCacheIndexes[processor] = lastLevelCacheIndex; + } + + lastLevelCacheIndex++; + } + + break; + case LogicalProcessorRelationship.RelationNumaNode: + case LogicalProcessorRelationship.RelationNumaNodeEx: + this.ReadNumaNodeRelationship(itemPtr, logicalProcessors, numaNodeIndexes); + break; + } + + offset += header.Size; + } + } + finally + { + Marshal.FreeHGlobal(buffer); + } + } + + private void ReadProcessorCoreRelationship( + IntPtr itemPtr, + int coreIndex, + HashSet logicalProcessors, + IDictionary efficiencyClasses, + IDictionary coreIndexes, + IDictionary> smtSiblingGlobalIndexes) + { + var relationshipPtr = IntPtr.Add(itemPtr, 8); + var processor = Marshal.PtrToStructure(relationshipPtr); + var processorsInCore = WindowsCpuTopologyNativeLayout + .ReadProcessorRelationshipProcessors(relationshipPtr, processor.GroupCount) + .ToList(); + var siblingIndexes = processorsInCore.Select(item => item.GlobalIndex).ToList(); + + foreach (var logicalProcessor in processorsInCore) + { + logicalProcessors.Add(logicalProcessor); + efficiencyClasses[logicalProcessor] = processor.EfficiencyClass; + coreIndexes[logicalProcessor] = coreIndex; + smtSiblingGlobalIndexes[logicalProcessor] = siblingIndexes + .Where(index => index != logicalProcessor.GlobalIndex) + .OrderBy(index => index) + .ToList(); + } + } + + private void ReadIndexedProcessorRelationship( + IntPtr itemPtr, + int index, + HashSet logicalProcessors, + IDictionary indexMap) + { + var relationshipPtr = IntPtr.Add(itemPtr, 8); + var processor = Marshal.PtrToStructure(relationshipPtr); + foreach (var logicalProcessor in WindowsCpuTopologyNativeLayout.ReadProcessorRelationshipProcessors(relationshipPtr, processor.GroupCount)) + { + logicalProcessors.Add(logicalProcessor); + indexMap[logicalProcessor] = index; + } + } + + private static bool TryReadL3CacheProcessors(IntPtr itemPtr, out IReadOnlyList processors) + { + return WindowsCpuTopologyNativeLayout.TryReadL3CacheProcessors(IntPtr.Add(itemPtr, 8), out processors); + } + + private void ReadNumaNodeRelationship( + IntPtr itemPtr, + HashSet logicalProcessors, + IDictionary numaNodeIndexes) + { + var processors = WindowsCpuTopologyNativeLayout.ReadNumaNodeProcessors(IntPtr.Add(itemPtr, 8), out var nodeNumber); + foreach (var processor in processors) + { + logicalProcessors.Add(processor); + numaNodeIndexes[processor] = nodeNumber; + } + } + } +} diff --git a/Services/WindowsForegroundWindowProvider.cs b/Services/WindowsForegroundWindowProvider.cs index 57fc17e..b4de578 100644 --- a/Services/WindowsForegroundWindowProvider.cs +++ b/Services/WindowsForegroundWindowProvider.cs @@ -1,78 +1,62 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Services -{ - using System; - using System.Runtime.InteropServices; - - public sealed class WindowsForegroundWindowProvider : IForegroundWindowProvider - { - private const int DwmwaCloaked = 14; - - public bool TryGetForegroundWindow(out ForegroundWindowSnapshot snapshot) - { - snapshot = default; - - var windowHandle = GetForegroundWindow(); - if (windowHandle == IntPtr.Zero) - { - return false; - } - - _ = GetWindowThreadProcessId(windowHandle, out var processId); - if (processId == 0) - { - return false; - } - - snapshot = new ForegroundWindowSnapshot( - windowHandle, - unchecked((int)processId), - IsWindowVisible(windowHandle), - IsWindowCloaked(windowHandle)); - return true; - } - - private static bool IsWindowCloaked(IntPtr windowHandle) - { - var result = DwmGetWindowAttribute( - windowHandle, - DwmwaCloaked, - out int cloaked, - Marshal.SizeOf()); - - return result == 0 && cloaked != 0; - } - - [DllImport("dwmapi.dll", PreserveSig = true)] - private static extern int DwmGetWindowAttribute( - IntPtr hwnd, - int dwAttribute, - out int pvAttribute, - int cbAttribute); - - [DllImport("user32.dll")] - private static extern IntPtr GetForegroundWindow(); - - [DllImport("user32.dll")] - private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - private static extern bool IsWindowVisible(IntPtr hWnd); - } -} +namespace ThreadPilot.Services +{ + using System; + using System.Runtime.InteropServices; + + public sealed class WindowsForegroundWindowProvider : IForegroundWindowProvider + { + private const int DwmwaCloaked = 14; + + public bool TryGetForegroundWindow(out ForegroundWindowSnapshot snapshot) + { + snapshot = default; + + var windowHandle = GetForegroundWindow(); + if (windowHandle == IntPtr.Zero) + { + return false; + } + + _ = GetWindowThreadProcessId(windowHandle, out var processId); + if (processId == 0) + { + return false; + } + + snapshot = new ForegroundWindowSnapshot( + windowHandle, + unchecked((int)processId), + IsWindowVisible(windowHandle), + IsWindowCloaked(windowHandle)); + return true; + } + + private static bool IsWindowCloaked(IntPtr windowHandle) + { + var result = DwmGetWindowAttribute( + windowHandle, + DwmwaCloaked, + out int cloaked, + Marshal.SizeOf()); + + return result == 0 && cloaked != 0; + } + + [DllImport("dwmapi.dll", PreserveSig = true)] + private static extern int DwmGetWindowAttribute( + IntPtr hwnd, + int dwAttribute, + out int pvAttribute, + int cbAttribute); + + [DllImport("user32.dll")] + private static extern IntPtr GetForegroundWindow(); + + [DllImport("user32.dll")] + private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint processId); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool IsWindowVisible(IntPtr hWnd); + } +} diff --git a/Services/WpfApplicationShutdownService.cs b/Services/WpfApplicationShutdownService.cs index 2ae900d..fcca799 100644 --- a/Services/WpfApplicationShutdownService.cs +++ b/Services/WpfApplicationShutdownService.cs @@ -1,21 +1,21 @@ -/* - * ThreadPilot - graceful shutdown hook after updater launch. - */ -namespace ThreadPilot.Services -{ - using System.Windows; - - public sealed class WpfApplicationShutdownService : IApplicationShutdownService - { - public void RequestShutdownForUpdate() - { - var application = Application.Current; - if (application == null) - { - return; - } - - application.Dispatcher.InvokeAsync(application.Shutdown); - } - } -} +/* + * ThreadPilot - graceful shutdown hook after updater launch. + */ +namespace ThreadPilot.Services +{ + using System.Windows; + + public sealed class WpfApplicationShutdownService : IApplicationShutdownService + { + public void RequestShutdownForUpdate() + { + var application = Application.Current; + if (application == null) + { + return; + } + + application.Dispatcher.InvokeAsync(application.Shutdown); + } + } +} diff --git a/Tests/ActiveApplicationsTest.cs b/Tests/ActiveApplicationsTest.cs index ed5b18a..285cfe8 100644 --- a/Tests/ActiveApplicationsTest.cs +++ b/Tests/ActiveApplicationsTest.cs @@ -1,149 +1,121 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Tests -{ - using System; - using System.Diagnostics; - using System.Linq; - using System.Threading.Tasks; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Test class to validate the Active Applications filtering functionality. - /// - public class ActiveApplicationsTest - { - private readonly ProcessService processService; - - public ActiveApplicationsTest() - { - this.processService = new ProcessService(); - } - - /// - /// Test that demonstrates the difference between all processes and active applications. - /// - public async Task TestActiveApplicationsFiltering() - { - Console.WriteLine("=== Active Applications Test ==="); - Console.WriteLine(); - - // Get all processes - var allProcesses = await this.processService.GetProcessesAsync(); - Console.WriteLine($"Total processes found: {allProcesses.Count}"); - - // Get only active applications - var activeApplications = await this.processService.GetActiveApplicationsAsync(); - Console.WriteLine($"Active applications found: {activeApplications.Count}"); - Console.WriteLine(); - - // Show some examples of active applications - Console.WriteLine("=== Active Applications (with visible windows) ==="); - foreach (var app in activeApplications.Take(10)) - { - Console.WriteLine($"- {app.Name} (PID: {app.ProcessId})"); - Console.WriteLine($" Window Title: '{app.MainWindowTitle}'"); - Console.WriteLine($" Has Visible Window: {app.HasVisibleWindow}"); - Console.WriteLine($" Window Handle: {app.MainWindowHandle}"); - Console.WriteLine(); - } - - // Show some examples of background processes (processes without windows) - var backgroundProcesses = allProcesses.Where(p => !p.HasVisibleWindow).Take(10); - Console.WriteLine("=== Background Processes (no visible windows) ==="); - foreach (var process in backgroundProcesses) - { - Console.WriteLine($"- {process.Name} (PID: {process.ProcessId})"); - Console.WriteLine($" Window Title: '{process.MainWindowTitle}'"); - Console.WriteLine($" Has Visible Window: {process.HasVisibleWindow}"); - Console.WriteLine(); - } - - // Validate that active applications are a subset of all processes - var activeAppIds = activeApplications.Select(a => a.ProcessId).ToHashSet(); - var allProcessIds = allProcesses.Select(p => p.ProcessId).ToHashSet(); - - bool isSubset = activeAppIds.IsSubsetOf(allProcessIds); - Console.WriteLine($"Active applications are subset of all processes: {isSubset}"); - - // Validate that all active applications have visible windows - bool allHaveWindows = activeApplications.All(a => a.HasVisibleWindow); - Console.WriteLine($"All active applications have visible windows: {allHaveWindows}"); - - // Show filtering effectiveness - double filteringRatio = (double)activeApplications.Count / allProcesses.Count * 100; - Console.WriteLine($"Filtering effectiveness: {filteringRatio:F1}% of processes are active applications"); - } - - /// - /// Test specific process properties for window information. - /// - public async Task TestProcessWindowProperties() - { - Console.WriteLine("\n=== Process Window Properties Test ==="); - - var allProcesses = await this.processService.GetProcessesAsync(); - - // Find some common applications that should have windows - var commonApps = new[] { "explorer", "chrome", "firefox", "notepad", "code", "devenv" }; - - foreach (var appName in commonApps) - { - var matchingProcesses = allProcesses.Where(p => - p.Name.Contains(appName, StringComparison.OrdinalIgnoreCase)).ToList(); - - if (matchingProcesses.Any()) - { - Console.WriteLine($"\n--- {appName.ToUpper()} Processes ---"); - foreach (var process in matchingProcesses) - { - Console.WriteLine($"Name: {process.Name}"); - Console.WriteLine($"PID: {process.ProcessId}"); - Console.WriteLine($"Window Handle: {process.MainWindowHandle}"); - Console.WriteLine($"Window Title: '{process.MainWindowTitle}'"); - Console.WriteLine($"Has Visible Window: {process.HasVisibleWindow}"); - Console.WriteLine($"Executable Path: {process.ExecutablePath}"); - Console.WriteLine(); - } - } - } - } - - /// - /// Run all tests. - /// - public static async Task RunTests() - { - var test = new ActiveApplicationsTest(); - - try - { - await test.TestActiveApplicationsFiltering(); - await test.TestProcessWindowProperties(); - - Console.WriteLine("\n=== All tests completed successfully! ==="); - } - catch (Exception ex) - { - Console.WriteLine($"\nTest failed with error: {ex.Message}"); - Console.WriteLine($"Stack trace: {ex.StackTrace}"); - } - } - } -} - +namespace ThreadPilot.Tests +{ + using System; + using System.Diagnostics; + using System.Linq; + using System.Threading.Tasks; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public class ActiveApplicationsTest + { + private readonly ProcessService processService; + + public ActiveApplicationsTest() + { + this.processService = new ProcessService(); + } + + public async Task TestActiveApplicationsFiltering() + { + Console.WriteLine("=== Active Applications Test ==="); + Console.WriteLine(); + + // Get all processes + var allProcesses = await this.processService.GetProcessesAsync(); + Console.WriteLine($"Total processes found: {allProcesses.Count}"); + + // Get only active applications + var activeApplications = await this.processService.GetActiveApplicationsAsync(); + Console.WriteLine($"Active applications found: {activeApplications.Count}"); + Console.WriteLine(); + + // Show some examples of active applications + Console.WriteLine("=== Active Applications (with visible windows) ==="); + foreach (var app in activeApplications.Take(10)) + { + Console.WriteLine($"- {app.Name} (PID: {app.ProcessId})"); + Console.WriteLine($" Window Title: '{app.MainWindowTitle}'"); + Console.WriteLine($" Has Visible Window: {app.HasVisibleWindow}"); + Console.WriteLine($" Window Handle: {app.MainWindowHandle}"); + Console.WriteLine(); + } + + // Show some examples of background processes (processes without windows) + var backgroundProcesses = allProcesses.Where(p => !p.HasVisibleWindow).Take(10); + Console.WriteLine("=== Background Processes (no visible windows) ==="); + foreach (var process in backgroundProcesses) + { + Console.WriteLine($"- {process.Name} (PID: {process.ProcessId})"); + Console.WriteLine($" Window Title: '{process.MainWindowTitle}'"); + Console.WriteLine($" Has Visible Window: {process.HasVisibleWindow}"); + Console.WriteLine(); + } + + // Validate that active applications are a subset of all processes + var activeAppIds = activeApplications.Select(a => a.ProcessId).ToHashSet(); + var allProcessIds = allProcesses.Select(p => p.ProcessId).ToHashSet(); + + bool isSubset = activeAppIds.IsSubsetOf(allProcessIds); + Console.WriteLine($"Active applications are subset of all processes: {isSubset}"); + + // Validate that all active applications have visible windows + bool allHaveWindows = activeApplications.All(a => a.HasVisibleWindow); + Console.WriteLine($"All active applications have visible windows: {allHaveWindows}"); + + // Show filtering effectiveness + double filteringRatio = (double)activeApplications.Count / allProcesses.Count * 100; + Console.WriteLine($"Filtering effectiveness: {filteringRatio:F1}% of processes are active applications"); + } + + public async Task TestProcessWindowProperties() + { + Console.WriteLine("\n=== Process Window Properties Test ==="); + + var allProcesses = await this.processService.GetProcessesAsync(); + + // Find some common applications that should have windows + var commonApps = new[] { "explorer", "chrome", "firefox", "notepad", "code", "devenv" }; + + foreach (var appName in commonApps) + { + var matchingProcesses = allProcesses.Where(p => + p.Name.Contains(appName, StringComparison.OrdinalIgnoreCase)).ToList(); + + if (matchingProcesses.Any()) + { + Console.WriteLine($"\n--- {appName.ToUpper()} Processes ---"); + foreach (var process in matchingProcesses) + { + Console.WriteLine($"Name: {process.Name}"); + Console.WriteLine($"PID: {process.ProcessId}"); + Console.WriteLine($"Window Handle: {process.MainWindowHandle}"); + Console.WriteLine($"Window Title: '{process.MainWindowTitle}'"); + Console.WriteLine($"Has Visible Window: {process.HasVisibleWindow}"); + Console.WriteLine($"Executable Path: {process.ExecutablePath}"); + Console.WriteLine(); + } + } + } + } + + public static async Task RunTests() + { + var test = new ActiveApplicationsTest(); + + try + { + await test.TestActiveApplicationsFiltering(); + await test.TestProcessWindowProperties(); + + Console.WriteLine("\n=== All tests completed successfully! ==="); + } + catch (Exception ex) + { + Console.WriteLine($"\nTest failed with error: {ex.Message}"); + Console.WriteLine($"Stack trace: {ex.StackTrace}"); + } + } + } +} + diff --git a/Tests/CpuTopologyServiceTests.cs b/Tests/CpuTopologyServiceTests.cs index 7cfb45f..4d054af 100644 --- a/Tests/CpuTopologyServiceTests.cs +++ b/Tests/CpuTopologyServiceTests.cs @@ -1,136 +1,114 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Tests -{ - using System; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Simple test class for CPU topology detection. - /// - public static class CpuTopologyServiceTests - { - /// - /// Test CPU topology detection. - /// - public static async Task TestCpuTopologyDetection() - { - Console.WriteLine("=== CPU Topology Detection Test ==="); - - try - { - // Create logger - using var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); - var logger = loggerFactory.CreateLogger(); - - // Create service - var service = new CpuTopologyService(logger); - - // Subscribe to events - service.TopologyDetected += (sender, e) => - { - Console.WriteLine($"Topology detected: Success={e.DetectionSuccessful}"); - if (e.Topology != null) - { - PrintTopologyInfo(e.Topology); - } - }; - - // Detect topology - Console.WriteLine("Starting topology detection..."); - await service.DetectTopologyAsync(); - - // Get current topology - var topology = service.CurrentTopology; - if (topology != null) - { - Console.WriteLine("\n=== Current Topology ==="); - PrintTopologyInfo(topology); - - // Test affinity presets - Console.WriteLine("\n=== Affinity Presets ==="); - var presets = service.GetAffinityPresets(); - foreach (var preset in presets) - { - Console.WriteLine($"- {preset.Name}: {preset.Description}"); - Console.WriteLine($" Mask: 0x{preset.AffinityMask:X}"); - } - - // Test affinity validation - Console.WriteLine("\n=== Affinity Validation ==="); - var testMask = topology.CalculateAffinityMask(topology.LogicalCores); - var isValid = service.IsAffinityMaskValid(testMask); - Console.WriteLine($"Test mask 0x{testMask:X} is valid: {isValid}"); - } - else - { - Console.WriteLine("No topology detected"); - } - } - catch (Exception ex) - { - Console.WriteLine($"Error: {ex.Message}"); - Console.WriteLine($"Stack trace: {ex.StackTrace}"); - } - - Console.WriteLine("\n=== Test Complete ==="); - } - - private static void PrintTopologyInfo(CpuTopologyModel topology) - { - Console.WriteLine($"Total Logical Cores: {topology.LogicalCores.Count}"); - Console.WriteLine($"Total Physical Cores: {topology.PhysicalCores.Count()}"); - Console.WriteLine($"Socket Count: {topology.SocketCount}"); - Console.WriteLine($"CCD Count: {topology.CcdCount}"); - Console.WriteLine($"Has Hybrid Architecture: {topology.HasHybridArchitecture}"); - Console.WriteLine($"Has SMT: {topology.HasSmt}"); - Console.WriteLine($"Architecture: {topology.Architecture}"); - - if (topology.HasHybridArchitecture) - { - var pCores = topology.LogicalCores.Count(c => c.CoreType == CpuCoreType.PerformanceCore); - var eCores = topology.LogicalCores.Count(c => c.CoreType == CpuCoreType.EfficiencyCore); - Console.WriteLine($"P-Cores: {pCores}, E-Cores: {eCores}"); - } - - if (topology.CcdCount > 1) - { - for (int i = 0; i < topology.CcdCount; i++) - { - var ccdCores = topology.LogicalCores.Count(c => c.CcdId == i); - Console.WriteLine($"CCD {i}: {ccdCores} cores"); - } - } - - Console.WriteLine("\nCore Details:"); - foreach (var core in topology.LogicalCores.Take(Math.Min(8, topology.LogicalCores.Count))) - { - Console.WriteLine($" Core {core.LogicalCoreId}: Physical={core.PhysicalCoreId}, " + - $"CCD={core.CcdId}, Type={core.CoreType}, HT={core.IsHyperThreaded}"); - } - - if (topology.LogicalCores.Count > 8) - { - Console.WriteLine($" ... and {topology.LogicalCores.Count - 8} more cores"); - } - } - } -} - +namespace ThreadPilot.Tests +{ + using System; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public static class CpuTopologyServiceTests + { + public static async Task TestCpuTopologyDetection() + { + Console.WriteLine("=== CPU Topology Detection Test ==="); + + try + { + // Create logger + using var loggerFactory = LoggerFactory.Create(builder => { }); + var logger = loggerFactory.CreateLogger(); + + // Create service + var service = new CpuTopologyService(logger); + + // Subscribe to events + service.TopologyDetected += (sender, e) => + { + Console.WriteLine($"Topology detected: Success={e.DetectionSuccessful}"); + if (e.Topology != null) + { + PrintTopologyInfo(e.Topology); + } + }; + + // Detect topology + Console.WriteLine("Starting topology detection..."); + await service.DetectTopologyAsync(); + + // Get current topology + var topology = service.CurrentTopology; + if (topology != null) + { + Console.WriteLine("\n=== Current Topology ==="); + PrintTopologyInfo(topology); + + // Test affinity presets + Console.WriteLine("\n=== Affinity Presets ==="); + var presets = service.GetAffinityPresets(); + foreach (var preset in presets) + { + Console.WriteLine($"- {preset.Name}: {preset.Description}"); + Console.WriteLine($" Mask: 0x{preset.AffinityMask:X}"); + } + + // Test affinity validation + Console.WriteLine("\n=== Affinity Validation ==="); + var testMask = topology.CalculateAffinityMask(topology.LogicalCores); + var isValid = service.IsAffinityMaskValid(testMask); + Console.WriteLine($"Test mask 0x{testMask:X} is valid: {isValid}"); + } + else + { + Console.WriteLine("No topology detected"); + } + } + catch (Exception ex) + { + Console.WriteLine($"Error: {ex.Message}"); + Console.WriteLine($"Stack trace: {ex.StackTrace}"); + } + + Console.WriteLine("\n=== Test Complete ==="); + } + + private static void PrintTopologyInfo(CpuTopologyModel topology) + { + Console.WriteLine($"Total Logical Cores: {topology.LogicalCores.Count}"); + Console.WriteLine($"Total Physical Cores: {topology.PhysicalCores.Count()}"); + Console.WriteLine($"Socket Count: {topology.SocketCount}"); + Console.WriteLine($"CCD Count: {topology.CcdCount}"); + Console.WriteLine($"Has Hybrid Architecture: {topology.HasHybridArchitecture}"); + Console.WriteLine($"Has SMT: {topology.HasSmt}"); + Console.WriteLine($"Architecture: {topology.Architecture}"); + + if (topology.HasHybridArchitecture) + { + var pCores = topology.LogicalCores.Count(c => c.CoreType == CpuCoreType.PerformanceCore); + var eCores = topology.LogicalCores.Count(c => c.CoreType == CpuCoreType.EfficiencyCore); + Console.WriteLine($"P-Cores: {pCores}, E-Cores: {eCores}"); + } + + if (topology.CcdCount > 1) + { + for (int i = 0; i < topology.CcdCount; i++) + { + var ccdCores = topology.LogicalCores.Count(c => c.CcdId == i); + Console.WriteLine($"CCD {i}: {ccdCores} cores"); + } + } + + Console.WriteLine("\nCore Details:"); + foreach (var core in topology.LogicalCores.Take(Math.Min(8, topology.LogicalCores.Count))) + { + Console.WriteLine($" Core {core.LogicalCoreId}: Physical={core.PhysicalCoreId}, " + + $"CCD={core.CcdId}, Type={core.CoreType}, HT={core.IsHyperThreaded}"); + } + + if (topology.LogicalCores.Count > 8) + { + Console.WriteLine($" ... and {topology.LogicalCores.Count - 8} more cores"); + } + } + } +} + diff --git a/Tests/ExecutableBrowseTest.cs b/Tests/ExecutableBrowseTest.cs index 8772fe3..97fb6b9 100644 --- a/Tests/ExecutableBrowseTest.cs +++ b/Tests/ExecutableBrowseTest.cs @@ -1,166 +1,135 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Tests -{ - using System; - using System.IO; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - /// - /// Test class to validate the new executable browse functionality. - /// - public class ExecutableBrowseTest - { - public ExecutableBrowseTest() - { - // Simple test class without complex dependencies - } - - /// - /// Test the executable validation logic (static test). - /// - public bool TestExecutableValidation() - { - try - { - Console.WriteLine("Testing executable validation logic..."); - - // Test with a known Windows executable - string windowsDir = Environment.GetFolderPath(Environment.SpecialFolder.Windows); - string notepadPath = Path.Combine(windowsDir, "notepad.exe"); - - bool notepadExists = File.Exists(notepadPath); - Console.WriteLine($"Notepad.exe exists: {notepadExists}"); - - if (notepadExists) - { - // Test file extension validation - string extension = Path.GetExtension(notepadPath); - bool hasExeExtension = string.Equals(extension, ".exe", StringComparison.OrdinalIgnoreCase); - Console.WriteLine($"Has .exe extension: {hasExeExtension}"); - - // Test with non-exe file - string systemIni = Path.Combine(windowsDir, "system.ini"); - bool systemIniExists = File.Exists(systemIni); - if (systemIniExists) - { - string iniExtension = Path.GetExtension(systemIni); - bool isNotExe = !string.Equals(iniExtension, ".exe", StringComparison.OrdinalIgnoreCase); - Console.WriteLine($"system.ini is not .exe: {isNotExe}"); - } - - bool testPassed = notepadExists && hasExeExtension; - Console.WriteLine($"Executable validation test: {(testPassed ? "PASSED" : "FAILED")}"); - return testPassed; - } - - Console.WriteLine("Could not find notepad.exe for testing"); - return false; - } - catch (Exception ex) - { - Console.WriteLine($"Executable validation test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Test path extraction functionality. - /// - public bool TestPathExtraction() - { - try - { - Console.WriteLine("Testing path extraction functionality..."); - - // Test extracting filename from full path - string testPath = @"C:\Program Files\MyApp\myapp.exe"; - string extractedName = Path.GetFileName(testPath); - - Console.WriteLine($"Full path: {testPath}"); - Console.WriteLine($"Extracted name: {extractedName}"); - - bool testPassed = extractedName == "myapp.exe"; - Console.WriteLine($"Path extraction test: {(testPassed ? "PASSED" : "FAILED")}"); - return testPassed; - } - catch (Exception ex) - { - Console.WriteLine($"Path extraction test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Test file dialog filter validation. - /// - public bool TestFileDialogFilter() - { - try - { - Console.WriteLine("Testing file dialog filter logic..."); - - // Test the filter string that would be used - string expectedFilter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"; - Console.WriteLine($"Expected filter: {expectedFilter}"); - - // Test that the filter contains the right patterns - bool hasExeFilter = expectedFilter.Contains("*.exe"); - bool hasAllFilesFilter = expectedFilter.Contains("*.*"); - - Console.WriteLine($"Has .exe filter: {hasExeFilter}"); - Console.WriteLine($"Has all files filter: {hasAllFilesFilter}"); - - bool testPassed = hasExeFilter && hasAllFilesFilter; - Console.WriteLine($"File dialog filter test: {(testPassed ? "PASSED" : "FAILED")}"); - return testPassed; - } - catch (Exception ex) - { - Console.WriteLine($"File dialog filter test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Run all tests. - /// - public bool RunAllTests() - { - Console.WriteLine("=== Executable Browse Functionality Tests ==="); - Console.WriteLine(); - - bool test1 = this.TestExecutableValidation(); - Console.WriteLine(); - - bool test2 = this.TestPathExtraction(); - Console.WriteLine(); - - bool test3 = this.TestFileDialogFilter(); - Console.WriteLine(); - - bool allPassed = test1 && test2 && test3; - Console.WriteLine($"=== Overall Test Result: {(allPassed ? "ALL TESTS PASSED" : "SOME TESTS FAILED")} ==="); - - return allPassed; - } - } -} - +namespace ThreadPilot.Tests +{ + using System; + using System.IO; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public class ExecutableBrowseTest + { + public ExecutableBrowseTest() + { + // Simple test class without complex dependencies + } + + public bool TestExecutableValidation() + { + try + { + Console.WriteLine("Testing executable validation logic..."); + + // Test with a known Windows executable + string windowsDir = Environment.GetFolderPath(Environment.SpecialFolder.Windows); + string notepadPath = Path.Combine(windowsDir, "notepad.exe"); + + bool notepadExists = File.Exists(notepadPath); + Console.WriteLine($"Notepad.exe exists: {notepadExists}"); + + if (notepadExists) + { + // Test file extension validation + string extension = Path.GetExtension(notepadPath); + bool hasExeExtension = string.Equals(extension, ".exe", StringComparison.OrdinalIgnoreCase); + Console.WriteLine($"Has .exe extension: {hasExeExtension}"); + + // Test with non-exe file + string systemIni = Path.Combine(windowsDir, "system.ini"); + bool systemIniExists = File.Exists(systemIni); + if (systemIniExists) + { + string iniExtension = Path.GetExtension(systemIni); + bool isNotExe = !string.Equals(iniExtension, ".exe", StringComparison.OrdinalIgnoreCase); + Console.WriteLine($"system.ini is not .exe: {isNotExe}"); + } + + bool testPassed = notepadExists && hasExeExtension; + Console.WriteLine($"Executable validation test: {(testPassed ? "PASSED" : "FAILED")}"); + return testPassed; + } + + Console.WriteLine("Could not find notepad.exe for testing"); + return false; + } + catch (Exception ex) + { + Console.WriteLine($"Executable validation test FAILED: {ex.Message}"); + return false; + } + } + + public bool TestPathExtraction() + { + try + { + Console.WriteLine("Testing path extraction functionality..."); + + // Test extracting filename from full path + string testPath = @"C:\Program Files\MyApp\myapp.exe"; + string extractedName = Path.GetFileName(testPath); + + Console.WriteLine($"Full path: {testPath}"); + Console.WriteLine($"Extracted name: {extractedName}"); + + bool testPassed = extractedName == "myapp.exe"; + Console.WriteLine($"Path extraction test: {(testPassed ? "PASSED" : "FAILED")}"); + return testPassed; + } + catch (Exception ex) + { + Console.WriteLine($"Path extraction test FAILED: {ex.Message}"); + return false; + } + } + + public bool TestFileDialogFilter() + { + try + { + Console.WriteLine("Testing file dialog filter logic..."); + + // Test the filter string that would be used + string expectedFilter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*"; + Console.WriteLine($"Expected filter: {expectedFilter}"); + + // Test that the filter contains the right patterns + bool hasExeFilter = expectedFilter.Contains("*.exe"); + bool hasAllFilesFilter = expectedFilter.Contains("*.*"); + + Console.WriteLine($"Has .exe filter: {hasExeFilter}"); + Console.WriteLine($"Has all files filter: {hasAllFilesFilter}"); + + bool testPassed = hasExeFilter && hasAllFilesFilter; + Console.WriteLine($"File dialog filter test: {(testPassed ? "PASSED" : "FAILED")}"); + return testPassed; + } + catch (Exception ex) + { + Console.WriteLine($"File dialog filter test FAILED: {ex.Message}"); + return false; + } + } + + public bool RunAllTests() + { + Console.WriteLine("=== Executable Browse Functionality Tests ==="); + Console.WriteLine(); + + bool test1 = this.TestExecutableValidation(); + Console.WriteLine(); + + bool test2 = this.TestPathExtraction(); + Console.WriteLine(); + + bool test3 = this.TestFileDialogFilter(); + Console.WriteLine(); + + bool allPassed = test1 && test2 && test3; + Console.WriteLine($"=== Overall Test Result: {(allPassed ? "ALL TESTS PASSED" : "SOME TESTS FAILED")} ==="); + + return allPassed; + } + } +} + diff --git a/Tests/GameBoostIntegrationTest.cs b/Tests/GameBoostIntegrationTest.cs deleted file mode 100644 index 90f17fc..0000000 --- a/Tests/GameBoostIntegrationTest.cs +++ /dev/null @@ -1,228 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Logging; -using ThreadPilot.Services; -using ThreadPilot.Models; - -namespace ThreadPilot.Tests -{ - /// - /// Integration test for Game Boost functionality - /// - public class GameBoostIntegrationTest - { - private readonly IServiceProvider _serviceProvider; - private readonly ILogger _logger; - - public GameBoostIntegrationTest(IServiceProvider serviceProvider) - { - _serviceProvider = serviceProvider; - _logger = serviceProvider.GetRequiredService>(); - } - - /// - /// Tests the complete Game Boost workflow - /// - public async Task RunIntegrationTestAsync() - { - try - { - _logger.LogInformation("Starting Game Boost integration test..."); - - // Test 1: Service Resolution - if (!await TestServiceResolutionAsync()) - { - _logger.LogError("Service resolution test failed"); - return false; - } - - // Test 2: Game Detection Logic - if (!await TestGameDetectionAsync()) - { - _logger.LogError("Game detection test failed"); - return false; - } - - // Test 3: Known Games Management - if (!await TestKnownGamesManagementAsync()) - { - _logger.LogError("Known games management test failed"); - return false; - } - - // Test 4: System Tray Integration - if (!await TestSystemTrayIntegrationAsync()) - { - _logger.LogError("System tray integration test failed"); - return false; - } - - _logger.LogInformation("All Game Boost integration tests passed!"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Game Boost integration test failed with exception"); - return false; - } - } - - private async Task TestServiceResolutionAsync() - { - try - { - _logger.LogInformation("Testing service resolution..."); - - var gameBoostService = _serviceProvider.GetRequiredService(); - var systemTrayService = _serviceProvider.GetRequiredService(); - var processMonitorService = _serviceProvider.GetRequiredService(); - var settingsService = _serviceProvider.GetRequiredService(); - - if (gameBoostService == null || systemTrayService == null || - processMonitorService == null || settingsService == null) - { - _logger.LogError("One or more required services could not be resolved"); - return false; - } - - _logger.LogInformation("Service resolution test passed"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Service resolution test failed"); - return false; - } - } - - private async Task TestGameDetectionAsync() - { - try - { - _logger.LogInformation("Testing game detection logic..."); - - var gameBoostService = _serviceProvider.GetRequiredService(); - - // Test with known game processes - var testProcesses = new[] - { - new ProcessModel { Name = "steam.exe", ProcessId = 1234, ExecutablePath = @"C:\Program Files\Steam\steam.exe" }, - new ProcessModel { Name = "notepad.exe", ProcessId = 5678, ExecutablePath = @"C:\Windows\System32\notepad.exe" }, - new ProcessModel { Name = "csgo.exe", ProcessId = 9999, ExecutablePath = @"C:\Games\Counter-Strike\csgo.exe" } - }; - - foreach (var process in testProcesses) - { - var isGame = gameBoostService.IsGameProcess(process); - _logger.LogInformation("Process {ProcessName}: IsGame = {IsGame}", process.Name, isGame); - } - - _logger.LogInformation("Game detection test passed"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Game detection test failed"); - return false; - } - } - - private async Task TestKnownGamesManagementAsync() - { - try - { - _logger.LogInformation("Testing known games management..."); - - var gameBoostService = _serviceProvider.GetRequiredService(); - - // Get initial count - var initialCount = gameBoostService.KnownGameExecutables.Count; - _logger.LogInformation("Initial known games count: {Count}", initialCount); - - // Test adding a game - var testGame = "testgame.exe"; - var addResult = await gameBoostService.AddKnownGameAsync(testGame); - if (!addResult) - { - _logger.LogError("Failed to add test game"); - return false; - } - - // Verify it was added - var newCount = gameBoostService.KnownGameExecutables.Count; - if (newCount != initialCount + 1) - { - _logger.LogError("Game count did not increase after adding game"); - return false; - } - - // Test removing the game - var removeResult = await gameBoostService.RemoveKnownGameAsync(testGame); - if (!removeResult) - { - _logger.LogError("Failed to remove test game"); - return false; - } - - // Verify it was removed - var finalCount = gameBoostService.KnownGameExecutables.Count; - if (finalCount != initialCount) - { - _logger.LogError("Game count did not return to initial value after removing game"); - return false; - } - - _logger.LogInformation("Known games management test passed"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "Known games management test failed"); - return false; - } - } - - private async Task TestSystemTrayIntegrationAsync() - { - try - { - _logger.LogInformation("Testing system tray integration..."); - - var systemTrayService = _serviceProvider.GetRequiredService(); - - // Test updating Game Boost status - systemTrayService.UpdateGameBoostStatus(true, "TestGame"); - await Task.Delay(100); // Allow UI to update - - systemTrayService.UpdateGameBoostStatus(false); - await Task.Delay(100); // Allow UI to update - - _logger.LogInformation("System tray integration test passed"); - return true; - } - catch (Exception ex) - { - _logger.LogError(ex, "System tray integration test failed"); - return false; - } - } - } -} - diff --git a/Tests/ProcessSelectionTest.cs b/Tests/ProcessSelectionTest.cs index f73f8e0..581584b 100644 --- a/Tests/ProcessSelectionTest.cs +++ b/Tests/ProcessSelectionTest.cs @@ -1,320 +1,283 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Tests -{ - using System; - using System.Diagnostics; - using System.Linq; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Test class to validate the improved process selection and real-time data sync functionality. - /// - public class ProcessSelectionTest - { - private readonly ProcessService processService; - private readonly CpuTopologyService cpuTopologyService; - - public ProcessSelectionTest() - { - this.processService = new ProcessService(); - - // Create a simple logger for the CPU topology service - var loggerFactory = LoggerFactory.Create(builder => builder.AddConsole()); - var logger = loggerFactory.CreateLogger(); - this.cpuTopologyService = new CpuTopologyService(logger); - } - - /// - /// Test that process information is correctly refreshed and reflects actual OS state. - /// - public async Task TestProcessInfoRefresh() - { - try - { - Console.WriteLine("Testing process info refresh..."); - - // Get current process as test subject - var currentProcess = Process.GetCurrentProcess(); - var processModel = this.processService.CreateProcessModel(currentProcess); - - Console.WriteLine($"Initial process info - PID: {processModel.ProcessId}, Priority: {processModel.Priority}, Affinity: 0x{processModel.ProcessorAffinity:X}"); - - // Refresh the process info - await this.processService.RefreshProcessInfo(processModel); - - Console.WriteLine($"After refresh - PID: {processModel.ProcessId}, Priority: {processModel.Priority}, Affinity: 0x{processModel.ProcessorAffinity:X}"); - - // Verify the data is consistent - bool isValid = processModel.ProcessId == currentProcess.Id && - processModel.Priority == currentProcess.PriorityClass && - processModel.ProcessorAffinity == (long)currentProcess.ProcessorAffinity; - - Console.WriteLine($"Process info refresh test: {(isValid ? "PASSED" : "FAILED")}"); - return isValid; - } - catch (Exception ex) - { - Console.WriteLine($"Process info refresh test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Test that process termination is properly detected. - /// - public async Task TestProcessTerminationDetection() - { - try - { - Console.WriteLine("Testing process termination detection..."); - - // Start a short-lived process - var notepadProcess = Process.Start("notepad.exe"); - if (notepadProcess == null) - { - Console.WriteLine("Could not start test process"); - return false; - } - - var processModel = this.processService.CreateProcessModel(notepadProcess); - Console.WriteLine($"Started test process - PID: {processModel.ProcessId}"); - - // Verify process is running - bool isRunning = await this.processService.IsProcessStillRunning(processModel); - Console.WriteLine($"Process running check: {isRunning}"); - - // Terminate the process - notepadProcess.Kill(); - await Task.Delay(1000); // Wait for termination - - // Check if termination is detected - bool isStillRunning = await this.processService.IsProcessStillRunning(processModel); - Console.WriteLine($"Process running after termination: {isStillRunning}"); - - bool testPassed = isRunning && !isStillRunning; - Console.WriteLine($"Process termination detection test: {(testPassed ? "PASSED" : "FAILED")}"); - - return testPassed; - } - catch (Exception ex) - { - Console.WriteLine($"Process termination detection test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Test active applications filtering. - /// - public async Task TestActiveApplicationsFiltering() - { - try - { - Console.WriteLine("Testing active applications filtering..."); - - var allProcesses = await this.processService.GetProcessesAsync(); - var activeApps = await this.processService.GetActiveApplicationsAsync(); - - Console.WriteLine($"Total processes: {allProcesses.Count}"); - Console.WriteLine($"Active applications: {activeApps.Count}"); - - // Verify that active apps is a subset of all processes - bool isSubset = activeApps.Count <= allProcesses.Count; - - // Verify that all active apps have visible windows - bool allHaveWindows = true; - foreach (var app in activeApps) - { - if (!app.HasVisibleWindow) - { - allHaveWindows = false; - Console.WriteLine($"Process {app.Name} marked as active but has no visible window"); - break; - } - } - - bool testPassed = isSubset && allHaveWindows; - Console.WriteLine($"Active applications filtering test: {(testPassed ? "PASSED" : "FAILED")}"); - - return testPassed; - } - catch (Exception ex) - { - Console.WriteLine($"Active applications filtering test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Test CPU affinity mask conversion and core selection. - /// - public async Task TestCpuAffinityMaskConversion() - { - try - { - Console.WriteLine("Testing CPU affinity mask conversion..."); - - // Get current process as test subject - var currentProcess = Process.GetCurrentProcess(); - var processModel = this.processService.CreateProcessModel(currentProcess); - - Console.WriteLine($"Process affinity mask: 0x{processModel.ProcessorAffinity:X} ({Convert.ToString(processModel.ProcessorAffinity, 2).PadLeft(Environment.ProcessorCount, '0')})"); - - // Test affinity mask bit calculations - var totalCores = Environment.ProcessorCount; - var expectedSelectedCores = new List(); - - for (int i = 0; i < totalCores; i++) - { - long coreMask = 1L << i; - if ((processModel.ProcessorAffinity & coreMask) != 0) - { - expectedSelectedCores.Add(i); - } - } - - Console.WriteLine($"Expected selected cores based on affinity mask: [{string.Join(", ", expectedSelectedCores)}]"); - Console.WriteLine($"Total cores: {totalCores}, Selected cores: {expectedSelectedCores.Count}"); - - // Verify that at least one core is selected (process must run on something) - bool hasSelectedCores = expectedSelectedCores.Count > 0; - - // Verify that selected cores don't exceed total cores - bool validCoreCount = expectedSelectedCores.Count <= totalCores; - - // Verify that all selected core IDs are within valid range - bool validCoreIds = expectedSelectedCores.All(id => id >= 0 && id < totalCores); - - bool testPassed = hasSelectedCores && validCoreCount && validCoreIds; - Console.WriteLine($"CPU affinity mask conversion test: {(testPassed ? "PASSED" : "FAILED")}"); - - if (!testPassed) - { - Console.WriteLine($" - Has selected cores: {hasSelectedCores}"); - Console.WriteLine($" - Valid core count: {validCoreCount}"); - Console.WriteLine($" - Valid core IDs: {validCoreIds}"); - } - - return testPassed; - } - catch (Exception ex) - { - Console.WriteLine($"CPU affinity mask conversion test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Test hyperthreading/SMT status detection and display. - /// - public async Task TestHyperThreadingStatusDetection() - { - try - { - Console.WriteLine("Testing hyperthreading/SMT status detection..."); - - // Get CPU topology information - await this.cpuTopologyService.DetectTopologyAsync(); - var topology = this.cpuTopologyService.CurrentTopology; - - if (topology == null) - { - Console.WriteLine("Hyperthreading status test FAILED: Could not detect CPU topology"); - return false; - } - - Console.WriteLine($"CPU Brand: {topology.CpuBrand}"); - Console.WriteLine($"Total Logical Cores: {topology.TotalLogicalCores}"); - Console.WriteLine($"Total Physical Cores: {topology.TotalPhysicalCores}"); - Console.WriteLine($"Has Hyperthreading/SMT: {topology.HasHyperThreading}"); - - // Determine expected technology name - string expectedTechName = "Multi-Threading"; - if (topology.CpuBrand.Contains("Intel", StringComparison.OrdinalIgnoreCase)) - { - expectedTechName = "Hyper-Threading"; - } - else if (topology.CpuBrand.Contains("AMD", StringComparison.OrdinalIgnoreCase)) - { - expectedTechName = "SMT"; - } - - Console.WriteLine($"Expected technology name: {expectedTechName}"); - - // Verify hyperthreading detection logic - bool expectedHasHT = topology.TotalLogicalCores > topology.TotalPhysicalCores; - bool actualHasHT = topology.HasHyperThreading; - - bool detectionCorrect = expectedHasHT == actualHasHT; - Console.WriteLine($"Hyperthreading detection: Expected={expectedHasHT}, Actual={actualHasHT}, Correct={detectionCorrect}"); - - // Verify that if HT is detected, there are actually HT cores marked - bool htCoresMarkedCorrectly = true; - if (actualHasHT) - { - var htCores = topology.LogicalCores.Where(c => c.IsHyperThreaded).ToList(); - htCoresMarkedCorrectly = htCores.Count > 0; - Console.WriteLine($"HyperThreaded cores found: {htCores.Count}"); - } - - bool testPassed = detectionCorrect && htCoresMarkedCorrectly; - Console.WriteLine($"Hyperthreading status detection test: {(testPassed ? "PASSED" : "FAILED")}"); - - return testPassed; - } - catch (Exception ex) - { - Console.WriteLine($"Hyperthreading status detection test FAILED: {ex.Message}"); - return false; - } - } - - /// - /// Run all tests. - /// - public async Task RunAllTests() - { - Console.WriteLine("=== Process Selection and Real-time Data Sync Tests ==="); - Console.WriteLine(); - - bool test1 = await this.TestProcessInfoRefresh(); - Console.WriteLine(); - - bool test2 = await this.TestProcessTerminationDetection(); - Console.WriteLine(); - - bool test3 = await this.TestActiveApplicationsFiltering(); - Console.WriteLine(); - - bool test4 = await this.TestCpuAffinityMaskConversion(); - Console.WriteLine(); - - bool test5 = await this.TestHyperThreadingStatusDetection(); - Console.WriteLine(); - - bool allPassed = test1 && test2 && test3 && test4 && test5; - Console.WriteLine($"=== Overall Test Result: {(allPassed ? "ALL TESTS PASSED" : "SOME TESTS FAILED")} ==="); - - return allPassed; - } - } -} - +namespace ThreadPilot.Tests +{ + using System; + using System.Diagnostics; + using System.Linq; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public class ProcessSelectionTest + { + private readonly ProcessService processService; + private readonly CpuTopologyService cpuTopologyService; + + public ProcessSelectionTest() + { + this.processService = new ProcessService(); + + // Create a simple logger for the CPU topology service + var loggerFactory = LoggerFactory.Create(builder => { }); + var logger = loggerFactory.CreateLogger(); + this.cpuTopologyService = new CpuTopologyService(logger); + } + + public async Task TestProcessInfoRefresh() + { + try + { + Console.WriteLine("Testing process info refresh..."); + + // Get current process as test subject + var currentProcess = Process.GetCurrentProcess(); + var processModel = this.processService.CreateProcessModel(currentProcess); + + Console.WriteLine($"Initial process info - PID: {processModel.ProcessId}, Priority: {processModel.Priority}, Affinity: 0x{processModel.ProcessorAffinity:X}"); + + // Refresh the process info + await this.processService.RefreshProcessInfo(processModel); + + Console.WriteLine($"After refresh - PID: {processModel.ProcessId}, Priority: {processModel.Priority}, Affinity: 0x{processModel.ProcessorAffinity:X}"); + + // Verify the data is consistent + bool isValid = processModel.ProcessId == currentProcess.Id && + processModel.Priority == currentProcess.PriorityClass && + processModel.ProcessorAffinity == (long)currentProcess.ProcessorAffinity; + + Console.WriteLine($"Process info refresh test: {(isValid ? "PASSED" : "FAILED")}"); + return isValid; + } + catch (Exception ex) + { + Console.WriteLine($"Process info refresh test FAILED: {ex.Message}"); + return false; + } + } + + public async Task TestProcessTerminationDetection() + { + try + { + Console.WriteLine("Testing process termination detection..."); + + // Start a short-lived process + var notepadProcess = Process.Start("notepad.exe"); + if (notepadProcess == null) + { + Console.WriteLine("Could not start test process"); + return false; + } + + var processModel = this.processService.CreateProcessModel(notepadProcess); + Console.WriteLine($"Started test process - PID: {processModel.ProcessId}"); + + // Verify process is running + bool isRunning = await this.processService.IsProcessStillRunning(processModel); + Console.WriteLine($"Process running check: {isRunning}"); + + // Terminate the process + notepadProcess.Kill(); + await Task.Delay(1000); // Wait for termination + + // Check if termination is detected + bool isStillRunning = await this.processService.IsProcessStillRunning(processModel); + Console.WriteLine($"Process running after termination: {isStillRunning}"); + + bool testPassed = isRunning && !isStillRunning; + Console.WriteLine($"Process termination detection test: {(testPassed ? "PASSED" : "FAILED")}"); + + return testPassed; + } + catch (Exception ex) + { + Console.WriteLine($"Process termination detection test FAILED: {ex.Message}"); + return false; + } + } + + public async Task TestActiveApplicationsFiltering() + { + try + { + Console.WriteLine("Testing active applications filtering..."); + + var allProcesses = await this.processService.GetProcessesAsync(); + var activeApps = await this.processService.GetActiveApplicationsAsync(); + + Console.WriteLine($"Total processes: {allProcesses.Count}"); + Console.WriteLine($"Active applications: {activeApps.Count}"); + + // Verify that active apps is a subset of all processes + bool isSubset = activeApps.Count <= allProcesses.Count; + + // Verify that all active apps have visible windows + bool allHaveWindows = true; + foreach (var app in activeApps) + { + if (!app.HasVisibleWindow) + { + allHaveWindows = false; + Console.WriteLine($"Process {app.Name} marked as active but has no visible window"); + break; + } + } + + bool testPassed = isSubset && allHaveWindows; + Console.WriteLine($"Active applications filtering test: {(testPassed ? "PASSED" : "FAILED")}"); + + return testPassed; + } + catch (Exception ex) + { + Console.WriteLine($"Active applications filtering test FAILED: {ex.Message}"); + return false; + } + } + + public async Task TestCpuAffinityMaskConversion() + { + try + { + Console.WriteLine("Testing CPU affinity mask conversion..."); + + // Get current process as test subject + var currentProcess = Process.GetCurrentProcess(); + var processModel = this.processService.CreateProcessModel(currentProcess); + + Console.WriteLine($"Process affinity mask: 0x{processModel.ProcessorAffinity:X} ({Convert.ToString(processModel.ProcessorAffinity, 2).PadLeft(Environment.ProcessorCount, '0')})"); + + // Test affinity mask bit calculations + var totalCores = Environment.ProcessorCount; + var expectedSelectedCores = new List(); + + for (int i = 0; i < totalCores; i++) + { + long coreMask = 1L << i; + if ((processModel.ProcessorAffinity & coreMask) != 0) + { + expectedSelectedCores.Add(i); + } + } + + Console.WriteLine($"Expected selected cores based on affinity mask: [{string.Join(", ", expectedSelectedCores)}]"); + Console.WriteLine($"Total cores: {totalCores}, Selected cores: {expectedSelectedCores.Count}"); + + // Verify that at least one core is selected (process must run on something) + bool hasSelectedCores = expectedSelectedCores.Count > 0; + + // Verify that selected cores don't exceed total cores + bool validCoreCount = expectedSelectedCores.Count <= totalCores; + + // Verify that all selected core IDs are within valid range + bool validCoreIds = expectedSelectedCores.All(id => id >= 0 && id < totalCores); + + bool testPassed = hasSelectedCores && validCoreCount && validCoreIds; + Console.WriteLine($"CPU affinity mask conversion test: {(testPassed ? "PASSED" : "FAILED")}"); + + if (!testPassed) + { + Console.WriteLine($" - Has selected cores: {hasSelectedCores}"); + Console.WriteLine($" - Valid core count: {validCoreCount}"); + Console.WriteLine($" - Valid core IDs: {validCoreIds}"); + } + + return testPassed; + } + catch (Exception ex) + { + Console.WriteLine($"CPU affinity mask conversion test FAILED: {ex.Message}"); + return false; + } + } + + public async Task TestHyperThreadingStatusDetection() + { + try + { + Console.WriteLine("Testing hyperthreading/SMT status detection..."); + + // Get CPU topology information + await this.cpuTopologyService.DetectTopologyAsync(); + var topology = this.cpuTopologyService.CurrentTopology; + + if (topology == null) + { + Console.WriteLine("Hyperthreading status test FAILED: Could not detect CPU topology"); + return false; + } + + Console.WriteLine($"CPU Brand: {topology.CpuBrand}"); + Console.WriteLine($"Total Logical Cores: {topology.TotalLogicalCores}"); + Console.WriteLine($"Total Physical Cores: {topology.TotalPhysicalCores}"); + Console.WriteLine($"Has Hyperthreading/SMT: {topology.HasHyperThreading}"); + + // Determine expected technology name + string expectedTechName = "Multi-Threading"; + if (topology.CpuBrand.Contains("Intel", StringComparison.OrdinalIgnoreCase)) + { + expectedTechName = "Hyper-Threading"; + } + else if (topology.CpuBrand.Contains("AMD", StringComparison.OrdinalIgnoreCase)) + { + expectedTechName = "SMT"; + } + + Console.WriteLine($"Expected technology name: {expectedTechName}"); + + // Verify hyperthreading detection logic + bool expectedHasHT = topology.TotalLogicalCores > topology.TotalPhysicalCores; + bool actualHasHT = topology.HasHyperThreading; + + bool detectionCorrect = expectedHasHT == actualHasHT; + Console.WriteLine($"Hyperthreading detection: Expected={expectedHasHT}, Actual={actualHasHT}, Correct={detectionCorrect}"); + + // Verify that if HT is detected, there are actually HT cores marked + bool htCoresMarkedCorrectly = true; + if (actualHasHT) + { + var htCores = topology.LogicalCores.Where(c => c.IsHyperThreaded).ToList(); + htCoresMarkedCorrectly = htCores.Count > 0; + Console.WriteLine($"HyperThreaded cores found: {htCores.Count}"); + } + + bool testPassed = detectionCorrect && htCoresMarkedCorrectly; + Console.WriteLine($"Hyperthreading status detection test: {(testPassed ? "PASSED" : "FAILED")}"); + + return testPassed; + } + catch (Exception ex) + { + Console.WriteLine($"Hyperthreading status detection test FAILED: {ex.Message}"); + return false; + } + } + + public async Task RunAllTests() + { + Console.WriteLine("=== Process Selection and Real-time Data Sync Tests ==="); + Console.WriteLine(); + + bool test1 = await this.TestProcessInfoRefresh(); + Console.WriteLine(); + + bool test2 = await this.TestProcessTerminationDetection(); + Console.WriteLine(); + + bool test3 = await this.TestActiveApplicationsFiltering(); + Console.WriteLine(); + + bool test4 = await this.TestCpuAffinityMaskConversion(); + Console.WriteLine(); + + bool test5 = await this.TestHyperThreadingStatusDetection(); + Console.WriteLine(); + + bool allPassed = test1 && test2 && test3 && test4 && test5; + Console.WriteLine($"=== Overall Test Result: {(allPassed ? "ALL TESTS PASSED" : "SOME TESTS FAILED")} ==="); + + return allPassed; + } + } +} + diff --git a/Tests/TestRunner.cs b/Tests/TestRunner.cs index 12fe769..34b0a4f 100644 --- a/Tests/TestRunner.cs +++ b/Tests/TestRunner.cs @@ -1,59 +1,40 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Tests -{ - using System; - using System.Threading.Tasks; - - /// - /// Legacy runtime smoke test runner used by debug-only --test mode. - /// - public static class TestRunner - { - public static async Task RunTests() - { - Console.WriteLine("ThreadPilot Integrated Test Runner"); - Console.WriteLine("================================"); - - try - { - await CpuTopologyServiceTests.TestCpuTopologyDetection(); - Console.WriteLine(); - - var processSelectionTest = new ProcessSelectionTest(); - await processSelectionTest.RunAllTests(); - Console.WriteLine(); - - var executableBrowseTest = new ExecutableBrowseTest(); - var browsePassed = executableBrowseTest.RunAllTests(); - Console.WriteLine(); - - Console.WriteLine(browsePassed - ? "Integrated tests completed." - : "Integrated tests completed with failures."); - } - catch (Exception ex) - { - Console.WriteLine($"Test runner failed with exception: {ex.Message}"); - Console.WriteLine($"Stack trace: {ex.StackTrace}"); - } - - Console.WriteLine("\nPress any key to exit..."); - Console.ReadKey(); - } - } -} +namespace ThreadPilot.Tests +{ + using System; + using System.Threading.Tasks; + + public static class TestRunner + { + public static async Task RunTests() + { + Console.WriteLine("ThreadPilot Integrated Test Runner"); + Console.WriteLine("================================"); + + try + { + await CpuTopologyServiceTests.TestCpuTopologyDetection(); + Console.WriteLine(); + + var processSelectionTest = new ProcessSelectionTest(); + await processSelectionTest.RunAllTests(); + Console.WriteLine(); + + var executableBrowseTest = new ExecutableBrowseTest(); + var browsePassed = executableBrowseTest.RunAllTests(); + Console.WriteLine(); + + Console.WriteLine(browsePassed + ? "Integrated tests completed." + : "Integrated tests completed with failures."); + } + catch (Exception ex) + { + Console.WriteLine($"Test runner failed with exception: {ex.Message}"); + Console.WriteLine($"Stack trace: {ex.StackTrace}"); + } + + Console.WriteLine("\nPress any key to exit..."); + Console.ReadKey(); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ActivityAuditServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ActivityAuditServiceTests.cs index 7aa3c54..22ac49f 100644 --- a/Tests/ThreadPilot.Core.Tests/ActivityAuditServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ActivityAuditServiceTests.cs @@ -1,65 +1,65 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Services; - - public sealed class ActivityAuditServiceTests - { - [Theory] - [InlineData("ThemeChanged", "Theme changed to Dark", "Settings", ActivityAuditSeverity.Success)] - [InlineData("SystemTweakApplied", "Core Parking enabled", "Tweaks", ActivityAuditSeverity.Success)] - [InlineData("SystemTweakFailed", "Failed to enable Core Parking", "Tweaks", ActivityAuditSeverity.Error)] - [InlineData("OptimizationMonitoringStarted", "Performance monitoring started", "Optimization", ActivityAuditSeverity.Success)] - [InlineData("OptimizationActionFailed", "Failed to start performance monitoring: unavailable", "Optimization", ActivityAuditSeverity.Error)] - [InlineData("PowerPlanApplied", "Applied power plan Gaming", "Power Plans", ActivityAuditSeverity.Success)] - [InlineData("PowerPlanDeleted", "Deleted power plan Gaming", "Power Plans", ActivityAuditSeverity.Success)] - [InlineData("PowerPlansRefreshed", "Refreshed power plan list", "Power Plans", ActivityAuditSeverity.Success)] - [InlineData("ProcessPriorityChanged", "CPU priority changed for Game.exe: High", "Priority", ActivityAuditSeverity.Success)] - [InlineData("ProcessPriorityChangeFailed", "Windows denied this change.", "Priority", ActivityAuditSeverity.Warning)] - [InlineData("ProcessPriorityBlocked", "Realtime priority is blocked by ThreadPilot.", "Priority", ActivityAuditSeverity.Warning)] - [InlineData("ProcessMemoryPriorityChanged", "Memory priority changed for Game.exe: Low", "Memory Priority", ActivityAuditSeverity.Success)] - [InlineData("ProcessMemoryPriorityFailed", "The process appears protected by anti-cheat or process protection.", "Memory Priority", ActivityAuditSeverity.Warning)] - [InlineData("CpuSetsCleared", "CPU Sets cleared for Game.exe", "Affinity", ActivityAuditSeverity.Success)] - [InlineData("CpuSetsClearFailed", "The process exited before ThreadPilot could apply the change.", "Affinity", ActivityAuditSeverity.Error)] - [InlineData("ProcessAffinityApplied", "Affinity applied successfully to Game.exe", "Affinity", ActivityAuditSeverity.Success)] - [InlineData("ProcessAffinityFailed", "The process appears protected by anti-cheat or process protection.", "Affinity", ActivityAuditSeverity.Warning)] - [InlineData("PersistentRuleSaved", "Saved rule for Game.exe.", "Rules", ActivityAuditSeverity.Success)] - [InlineData("PersistentRuleSaveFailed", "Failed to save rule for Game.exe.", "Rules", ActivityAuditSeverity.Error)] - [InlineData("PersistentRuleAutoApplied", "Auto-applied saved rule for Game.exe.", "Rules", ActivityAuditSeverity.Success)] - [InlineData("PersistentRuleAutoApplyFailed", "Failed to auto-apply saved rule for Game.exe: protected process.", "Rules", ActivityAuditSeverity.Warning)] - public async Task LogUserActionAsync_CreatesVisibleActivityEntry( - string action, - string details, - string expectedCategory, - ActivityAuditSeverity expectedSeverity) - { - var service = new ActivityAuditService(NullLogger.Instance); - - await service.LogUserActionAsync(action, details, "PID: 42"); - - var entry = Assert.Single(await service.GetEntriesAsync()); - Assert.Equal(expectedCategory, entry.Category); - Assert.Equal(expectedSeverity, entry.Severity); - Assert.Equal(details, entry.Message); - Assert.Equal("PID: 42", entry.Details); - } - - [Fact] - public async Task GetEntriesAsync_ReturnsMostRecentFirstAndPreservesTimestamp() - { - var service = new ActivityAuditService(NullLogger.Instance); - - await service.LogInfoAsync("Diagnostics", "First"); - await Task.Delay(5); - await service.LogSuccessAsync("Power Plans", "Second"); - - var entries = await service.GetEntriesAsync(); - - Assert.Collection( - entries, - entry => Assert.Equal("Second", entry.Message), - entry => Assert.Equal("First", entry.Message)); - Assert.All(entries, entry => Assert.NotEqual(default, entry.Timestamp)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Services; + + public sealed class ActivityAuditServiceTests + { + [Theory] + [InlineData("ThemeChanged", "Theme changed to Dark", "Settings", ActivityAuditSeverity.Success)] + [InlineData("SystemTweakApplied", "Core Parking enabled", "Tweaks", ActivityAuditSeverity.Success)] + [InlineData("SystemTweakFailed", "Failed to enable Core Parking", "Tweaks", ActivityAuditSeverity.Error)] + [InlineData("OptimizationMonitoringStarted", "Performance monitoring started", "Optimization", ActivityAuditSeverity.Success)] + [InlineData("OptimizationActionFailed", "Failed to start performance monitoring: unavailable", "Optimization", ActivityAuditSeverity.Error)] + [InlineData("PowerPlanApplied", "Applied power plan Gaming", "Power Plans", ActivityAuditSeverity.Success)] + [InlineData("PowerPlanDeleted", "Deleted power plan Gaming", "Power Plans", ActivityAuditSeverity.Success)] + [InlineData("PowerPlansRefreshed", "Refreshed power plan list", "Power Plans", ActivityAuditSeverity.Success)] + [InlineData("ProcessPriorityChanged", "CPU priority changed for Game.exe: High", "Priority", ActivityAuditSeverity.Success)] + [InlineData("ProcessPriorityChangeFailed", "Windows denied this change.", "Priority", ActivityAuditSeverity.Warning)] + [InlineData("ProcessPriorityBlocked", "Realtime priority is blocked by ThreadPilot.", "Priority", ActivityAuditSeverity.Warning)] + [InlineData("ProcessMemoryPriorityChanged", "Memory priority changed for Game.exe: Low", "Memory Priority", ActivityAuditSeverity.Success)] + [InlineData("ProcessMemoryPriorityFailed", "The process appears protected by anti-cheat or process protection.", "Memory Priority", ActivityAuditSeverity.Warning)] + [InlineData("CpuSetsCleared", "CPU Sets cleared for Game.exe", "Affinity", ActivityAuditSeverity.Success)] + [InlineData("CpuSetsClearFailed", "The process exited before ThreadPilot could apply the change.", "Affinity", ActivityAuditSeverity.Error)] + [InlineData("ProcessAffinityApplied", "Affinity applied successfully to Game.exe", "Affinity", ActivityAuditSeverity.Success)] + [InlineData("ProcessAffinityFailed", "The process appears protected by anti-cheat or process protection.", "Affinity", ActivityAuditSeverity.Warning)] + [InlineData("PersistentRuleSaved", "Saved rule for Game.exe.", "Rules", ActivityAuditSeverity.Success)] + [InlineData("PersistentRuleSaveFailed", "Failed to save rule for Game.exe.", "Rules", ActivityAuditSeverity.Error)] + [InlineData("PersistentRuleAutoApplied", "Auto-applied saved rule for Game.exe.", "Rules", ActivityAuditSeverity.Success)] + [InlineData("PersistentRuleAutoApplyFailed", "Failed to auto-apply saved rule for Game.exe: protected process.", "Rules", ActivityAuditSeverity.Warning)] + public async Task LogUserActionAsync_CreatesVisibleActivityEntry( + string action, + string details, + string expectedCategory, + ActivityAuditSeverity expectedSeverity) + { + var service = new ActivityAuditService(NullLogger.Instance); + + await service.LogUserActionAsync(action, details, "PID: 42"); + + var entry = Assert.Single(await service.GetEntriesAsync()); + Assert.Equal(expectedCategory, entry.Category); + Assert.Equal(expectedSeverity, entry.Severity); + Assert.Equal(details, entry.Message); + Assert.Equal("PID: 42", entry.Details); + } + + [Fact] + public async Task GetEntriesAsync_ReturnsMostRecentFirstAndPreservesTimestamp() + { + var service = new ActivityAuditService(NullLogger.Instance); + + await service.LogInfoAsync("Diagnostics", "First"); + await Task.Delay(5); + await service.LogSuccessAsync("Power Plans", "Second"); + + var entries = await service.GetEntriesAsync(); + + Assert.Collection( + entries, + entry => Assert.Equal("Second", entry.Message), + entry => Assert.Equal("First", entry.Message)); + Assert.All(entries, entry => Assert.NotEqual(default, entry.Timestamp)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/AffinityApplyServiceTests.cs b/Tests/ThreadPilot.Core.Tests/AffinityApplyServiceTests.cs index 1b3f115..de637aa 100644 --- a/Tests/ThreadPilot.Core.Tests/AffinityApplyServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/AffinityApplyServiceTests.cs @@ -1,628 +1,628 @@ -namespace ThreadPilot.Core.Tests -{ - using System.ComponentModel; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Platforms.Windows; - using ThreadPilot.Services; - - public sealed class AffinityApplyServiceTests - { - [Fact] - public async Task ApplyAsync_WhenVerifiedMaskMatches_ReturnsSuccess() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .Returns(Task.CompletedTask); - processService - .Setup(service => service.RefreshProcessInfo(process)) - .Callback(() => process.ProcessorAffinity = 1) - .Returns(Task.CompletedTask); - - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.True(result.Success); - Assert.Equal(1, result.RequestedMask); - Assert.Equal(1, result.VerifiedMask); - Assert.Equal(AffinityApplyFailureReason.None, result.FailureReason); - } - - [Fact] - public async Task ApplyAsync_WhenProcessIsTerminated_ReturnsFailureWithoutApplying() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: false); - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.ProcessTerminated, result.FailureReason); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - processService.Verify( - service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyAsync_WhenAccessDenied_ReturnsAccessDeniedFailure() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .ThrowsAsync(new InvalidOperationException("Access denied while setting processor affinity.")); - - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.AccessDenied, result.FailureReason); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - Assert.True(result.IsAccessDenied); - Assert.False(result.UserMessage.Contains("bypass", StringComparison.OrdinalIgnoreCase)); - Assert.Equal(3, result.VerifiedMask); - } - - [Fact] - public async Task ApplyAsync_WhenAntiCheatProtected_ReturnsProtectedMessageWithoutBypassSuggestion() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .ThrowsAsync(new InvalidOperationException("Protected by anti-cheat.")); - - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AntiCheatProtectedLikely, result.UserMessage); - Assert.True(result.IsAccessDenied); - Assert.True(result.IsAntiCheatLikely); - Assert.Equal( - "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to bypass it.", - ProcessOperationUserMessages.AntiCheatProtectedLikely); - Assert.DoesNotContain("disable anti-cheat", result.UserMessage, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("administrator", result.UserMessage, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public async Task ApplyAsync_WhenVerifiedMaskDiffers_ReturnsMismatchFailure() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .Returns(Task.CompletedTask); - processService - .Setup(service => service.RefreshProcessInfo(process)) - .Callback(() => process.ProcessorAffinity = 2) - .Returns(Task.CompletedTask); - - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.VerificationMismatch, result.FailureReason); - Assert.Equal(1, result.RequestedMask); - Assert.Equal(2, result.VerifiedMask); - } - - [Fact] - public async Task ApplyAsync_WhenMaskIsZero_ReturnsInvalidMaskFailure() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 0); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.InvalidMask, result.FailureReason); - Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); - } - - [Fact] - public async Task ApplyAsync_WhenTopologyRejectsMask_ReturnsInvalidMaskFailure() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - var topologyService = new Mock(MockBehavior.Strict); - topologyService.Setup(service => service.IsAffinityMaskValid(8)).Returns(false); - var service = CreateService(processService, topologyService); - - var result = await service.ApplyAsync(process, 8); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.InvalidMask, result.FailureReason); - Assert.Equal(AffinityApplyErrorCodes.InvalidTopology, result.ErrorCode); - Assert.True(result.IsInvalidTopology); - Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); - processService.Verify( - service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public void AdminClarification_DoesNotPromiseAntiCheatBypass() - { - Assert.Contains("Administrator mode may help", ProcessOperationUserMessages.AdminClarification); - Assert.Contains("cannot bypass anti-cheat", ProcessOperationUserMessages.AdminClarification); - } - - [Fact] - public async Task ApplyAsync_WhenProcessStateCheckIsAccessDenied_StillAttemptsApply() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = new Mock(MockBehavior.Strict); - processService - .Setup(service => service.IsProcessStillRunning(process)) - .ThrowsAsync(new UnauthorizedAccessException("Access denied.")); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .Returns(Task.CompletedTask); - processService - .Setup(service => service.RefreshProcessInfo(process)) - .Callback(() => process.ProcessorAffinity = 1) - .Returns(Task.CompletedTask); - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.True(result.Success); - processService.Verify(service => service.SetProcessorAffinity(process, 1), Times.Once); - } - - [Fact] - public async Task ApplyAsync_WhenRefreshAfterApplyIsAccessDenied_ReportsVerificationMismatch() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .Returns(Task.CompletedTask); - processService - .Setup(service => service.RefreshProcessInfo(process)) - .ThrowsAsync(new UnauthorizedAccessException("Access denied.")); - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.VerificationMismatch, result.FailureReason); - Assert.Equal(3, result.VerifiedMask); - } - - [Fact] - public async Task ApplyAsync_WhenApplyThrowsUnexpectedError_ReturnsApplyFailed() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; - var processService = CreateProcessService(processStillRunning: true); - processService - .Setup(service => service.SetProcessorAffinity(process, 1)) - .ThrowsAsync(new InvalidOperationException("Driver rejected request.")); - processService - .Setup(service => service.RefreshProcessInfo(process)) - .Returns(Task.CompletedTask); - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, 1); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyFailureReason.ApplyFailed, result.FailureReason); - Assert.Equal(3, result.VerifiedMask); - } - - [Fact] - public async Task CpuSelectionApply_WhenCpuSetsFailAndSelectionIsSingleGroupBelow64_UsesLegacyFallback() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier(); - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = CreateSelection( - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 2, 2)); - - var result = await service.ApplyAsync(process, selection); - - Assert.True(result.Success); - Assert.Equal(AffinityApplyErrorCodes.None, result.ErrorCode); - Assert.False(result.UsedCpuSets); - Assert.True(result.UsedLegacyAffinity); - Assert.Equal(0x05, legacy.LastMask); - Assert.Equal(1, legacy.CallCount); - Assert.Equal(1, cpuSets.ApplyCpuSelectionCalls); - } - - [Fact] - public async Task CpuSelectionApply_WhenCpuSetsFailAndSelectionHasMultipleGroups_BlocksLegacyFallback() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier(); - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = CreateSelection( - new ProcessorRef(0, 0, 0), - new ProcessorRef(1, 0, 1)); - - var result = await service.ApplyAsync(process, selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.LegacyFallbackUnsafe, result.ErrorCode); - Assert.True(result.IsLegacyFallbackBlocked); - Assert.Equal(ProcessOperationUserMessages.LegacyFallbackBlocked, result.UserMessage); - Assert.False(result.UsedLegacyAffinity); - Assert.Equal(0, legacy.CallCount); - } - - [Fact] - public async Task CpuSelectionApply_WhenCpuSetsFailAndSelectionContainsCpu64_BlocksLegacyFallback() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier(); - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = CreateSelection(new ProcessorRef(0, 64, 64)); - - var result = await service.ApplyAsync(process, selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.LegacyFallbackUnsafe, result.ErrorCode); - Assert.True(result.IsLegacyFallbackBlocked); - Assert.Equal(0, legacy.CallCount); - } - - [Fact] - public async Task CpuSelectionApply_WhenSelectionHasExplicitCpuSetIds_TriesCpuSets() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = true }; - var legacy = new RecordingLegacyAffinityApplier(); - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = new CpuSelection { CpuSetIds = [101, 103] }; - - var result = await service.ApplyAsync(process, selection); - - Assert.True(result.Success); - Assert.True(result.UsedCpuSets); - Assert.False(result.UsedLegacyAffinity); - Assert.Same(selection, cpuSets.LastSelection); - Assert.Equal(0, legacy.CallCount); - } - - [Fact] - public async Task CpuSelectionApply_WhenCpuSetsSucceed_AuditsSuccessAndSkipsLegacyFallback() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = true }; - var legacy = new RecordingLegacyAffinityApplier(); - var audit = new RecordingAffinityAudit(); - var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); - var selection = CreateSelection(new ProcessorRef(0, 0, 0)); - - var result = await service.ApplyAsync(process, selection); - - Assert.True(result.Success); - Assert.True(result.UsedCpuSets); - Assert.False(result.UsedLegacyAffinity); - Assert.Equal(0, legacy.CallCount); - Assert.Equal([(process, true)], audit.Calls); - } - - [Fact] - public async Task CpuSelectionApply_WhenSelectionIsEmpty_ReturnsInvalidSelection() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler(); - var legacy = new RecordingLegacyAffinityApplier(); - var service = CreateCpuSelectionApplier(cpuSets, legacy); - - var result = await service.ApplyAsync(process, new CpuSelection()); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); - Assert.True(result.IsInvalidTopology); - Assert.False(result.UsedCpuSets); - Assert.False(result.UsedLegacyAffinity); - Assert.Equal(0, cpuSets.ApplyCpuSelectionCalls); - Assert.Equal(0, legacy.CallCount); - } - - [Fact] - public async Task CpuSelectionApply_WhenSelectionIsEmpty_AuditsFailure() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler(); - var legacy = new RecordingLegacyAffinityApplier(); - var audit = new RecordingAffinityAudit(); - var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); - - var result = await service.ApplyAsync(process, new CpuSelection()); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); - Assert.Equal([(process, false)], audit.Calls); - } - - [Fact] - public async Task CpuSelectionApply_WhenLegacyFallbackIsUnsafe_AuditsFailure() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier(); - var audit = new RecordingAffinityAudit(); - var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); - var selection = CreateSelection(new ProcessorRef(1, 64, 64)); - - var result = await service.ApplyAsync(process, selection); - - Assert.False(result.Success); - Assert.True(result.IsLegacyFallbackBlocked); - Assert.Equal(0, legacy.CallCount); - Assert.Equal([(process, false)], audit.Calls); - } - - [Fact] - public async Task CpuSelectionApply_WhenLegacyFallbackSucceeds_DoesNotAuditTwice() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier(); - var audit = new RecordingAffinityAudit(); - var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); - var selection = CreateSelection(new ProcessorRef(0, 0, 0)); - - var result = await service.ApplyAsync(process, selection); - - Assert.True(result.Success); - Assert.True(result.UsedLegacyAffinity); - Assert.Equal(1, legacy.CallCount); - Assert.Empty(audit.Calls); - } - - [Fact] - public async Task CpuSelectionApply_WhenCpuSetsThrowAccessDenied_ReturnsAccessDenied() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler - { - ApplyCpuSelectionException = new Win32Exception(5, "Access is denied."), - }; - var legacy = new RecordingLegacyAffinityApplier(); - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = CreateSelection(new ProcessorRef(0, 0, 0)); - - var result = await service.ApplyAsync(process, selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - Assert.True(result.IsAccessDenied); - Assert.Equal(0, legacy.CallCount); - } - - [Fact] - public async Task CpuSelectionApply_WhenFallbackThrowsAccessDenied_ReturnsAccessDenied() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier - { - ExceptionToThrow = new UnauthorizedAccessException("Access denied."), - }; - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = CreateSelection(new ProcessorRef(0, 0, 0)); - - var result = await service.ApplyAsync(process, selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.True(result.IsAccessDenied); - Assert.Equal(1, legacy.CallCount); - } - - [Fact] - public async Task CpuSelectionApply_WhenFallbackThrowsProcessExited_ReturnsProcessExited() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; - var legacy = new RecordingLegacyAffinityApplier - { - ExceptionToThrow = new ArgumentException("Process has exited."), - }; - var service = CreateCpuSelectionApplier(cpuSets, legacy); - var selection = CreateSelection(new ProcessorRef(0, 0, 0)); - - var result = await service.ApplyAsync(process, selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.ProcessExited, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - Assert.False(result.UsedLegacyAffinity); - } - - [Fact] - public async Task ApplyCpuSelectionAsync_WhenProcessIsNull_ReturnsProcessExitedWithoutDelegating() - { - var processService = new Mock(MockBehavior.Strict); - var service = CreateService(processService); - - var result = await service.ApplyAsync(null!, CreateSelection(new ProcessorRef(0, 0, 0))); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.ProcessExited, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - processService.Verify( - service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyCpuSelectionAsync_WhenSelectionIsNull_ReturnsInvalidSelectionWithoutDelegating() - { - var process = new ProcessModel { ProcessId = 42, Name = "Game" }; - var processService = new Mock(MockBehavior.Strict); - var service = CreateService(processService); - - var result = await service.ApplyAsync(process, null!); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); - processService.Verify( - service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), - Times.Never); - } - - private static AffinityApplyService CreateService(Mock processService) - { - var topologyService = new Mock(MockBehavior.Loose); - topologyService.Setup(service => service.IsAffinityMaskValid(It.IsAny())).Returns(true); - - return CreateService(processService, topologyService); - } - - private static AffinityApplyService CreateService( - Mock processService, - Mock topologyService) - { - return new AffinityApplyService( - processService.Object, - topologyService.Object, - NullLogger.Instance); - } - - private static CpuSelectionAffinityApplier CreateCpuSelectionApplier( - FakeCpuSetHandler cpuSets, - RecordingLegacyAffinityApplier legacy, - RecordingAffinityAudit? audit = null) => - new( - _ => cpuSets, - legacy.ApplyAsync, - NullLogger.Instance, - null, - audit is null ? null : audit.Record); - - private static Mock CreateProcessService(bool processStillRunning) - { - var processService = new Mock(MockBehavior.Strict); - processService - .Setup(service => service.IsProcessStillRunning(It.IsAny())) - .ReturnsAsync(processStillRunning); - return processService; - } - - private static CpuSelection CreateSelection(params ProcessorRef[] processors) => - new() - { - LogicalProcessors = processors.ToList(), - GlobalLogicalProcessorIndexes = processors.Select(processor => processor.GlobalIndex).ToList(), - }; - - private sealed class RecordingLegacyAffinityApplier - { - public int CallCount { get; private set; } - - public long? LastMask { get; private set; } - - public Exception? ExceptionToThrow { get; init; } - - public Task ApplyAsync(ProcessModel process, long affinityMask) - { - this.CallCount++; - this.LastMask = affinityMask; - - if (this.ExceptionToThrow != null) - { - throw this.ExceptionToThrow; - } - - process.ProcessorAffinity = affinityMask; - return Task.FromResult(affinityMask); - } - } - - private sealed class RecordingAffinityAudit - { - public List<(ProcessModel Process, bool Success)> Calls { get; } = new(); - - public void Record(ProcessModel process, bool success) => - this.Calls.Add((process, success)); - } - - private sealed class FakeCpuSetHandler : IProcessCpuSetHandler - { - public uint ProcessId => 42; - - public string ExecutableName => "Game"; - - public bool IsValid { get; init; } = true; - - public bool ApplyCpuSelectionResult { get; init; } - - public Exception? ApplyCpuSelectionException { get; init; } - - public int ApplyCpuSelectionCalls { get; private set; } - - public CpuSelection? LastSelection { get; private set; } - - public bool ApplyCpuSetMask(long affinityMask, bool clearMask = false) => false; - - public CpuSetApplyResult ApplyCpuSetMaskDetailed(long affinityMask, bool clearMask = false) => - CpuSetApplyResult.Failed( - AffinityApplyErrorCodes.CpuSetsUnavailable, - ProcessOperationUserMessages.CpuSetsUnavailable, - "Fake CPU Sets handler rejected the legacy mask."); - - public bool ApplyCpuSelection(CpuSelection? selection, bool clearSelection = false) - { - this.ApplyCpuSelectionCalls++; - this.LastSelection = selection; - - if (this.ApplyCpuSelectionException != null) - { - throw this.ApplyCpuSelectionException; - } - - return this.ApplyCpuSelectionResult; - } - - public CpuSetApplyResult ApplyCpuSelectionDetailed(CpuSelection? selection, bool clearSelection = false) - { - this.ApplyCpuSelectionCalls++; - this.LastSelection = selection; - - if (this.ApplyCpuSelectionException != null) - { - throw this.ApplyCpuSelectionException; - } - - return this.ApplyCpuSelectionResult - ? CpuSetApplyResult.Succeeded("Fake CPU Sets handler applied the selection.") - : CpuSetApplyResult.Failed( - AffinityApplyErrorCodes.CpuSetsUnavailable, - ProcessOperationUserMessages.CpuSetsUnavailable, - "Fake CPU Sets handler rejected the selection."); - } - - public double GetAverageCpuUsage() => 0; - - public void Dispose() - { - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.ComponentModel; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Platforms.Windows; + using ThreadPilot.Services; + + public sealed class AffinityApplyServiceTests + { + [Fact] + public async Task ApplyAsync_WhenVerifiedMaskMatches_ReturnsSuccess() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .Returns(Task.CompletedTask); + processService + .Setup(service => service.RefreshProcessInfo(process)) + .Callback(() => process.ProcessorAffinity = 1) + .Returns(Task.CompletedTask); + + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.True(result.Success); + Assert.Equal(1, result.RequestedMask); + Assert.Equal(1, result.VerifiedMask); + Assert.Equal(AffinityApplyFailureReason.None, result.FailureReason); + } + + [Fact] + public async Task ApplyAsync_WhenProcessIsTerminated_ReturnsFailureWithoutApplying() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: false); + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.ProcessTerminated, result.FailureReason); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + processService.Verify( + service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyAsync_WhenAccessDenied_ReturnsAccessDeniedFailure() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .ThrowsAsync(new InvalidOperationException("Access denied while setting processor affinity.")); + + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.AccessDenied, result.FailureReason); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + Assert.True(result.IsAccessDenied); + Assert.False(result.UserMessage.Contains("bypass", StringComparison.OrdinalIgnoreCase)); + Assert.Equal(3, result.VerifiedMask); + } + + [Fact] + public async Task ApplyAsync_WhenAntiCheatProtected_ReturnsProtectedMessageWithoutBypassSuggestion() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .ThrowsAsync(new InvalidOperationException("Protected by anti-cheat.")); + + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AntiCheatProtectedLikely, result.UserMessage); + Assert.True(result.IsAccessDenied); + Assert.True(result.IsAntiCheatLikely); + Assert.Equal( + "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to bypass it.", + ProcessOperationUserMessages.AntiCheatProtectedLikely); + Assert.DoesNotContain("disable anti-cheat", result.UserMessage, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("administrator", result.UserMessage, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public async Task ApplyAsync_WhenVerifiedMaskDiffers_ReturnsMismatchFailure() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .Returns(Task.CompletedTask); + processService + .Setup(service => service.RefreshProcessInfo(process)) + .Callback(() => process.ProcessorAffinity = 2) + .Returns(Task.CompletedTask); + + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.VerificationMismatch, result.FailureReason); + Assert.Equal(1, result.RequestedMask); + Assert.Equal(2, result.VerifiedMask); + } + + [Fact] + public async Task ApplyAsync_WhenMaskIsZero_ReturnsInvalidMaskFailure() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 0); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.InvalidMask, result.FailureReason); + Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); + } + + [Fact] + public async Task ApplyAsync_WhenTopologyRejectsMask_ReturnsInvalidMaskFailure() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + var topologyService = new Mock(MockBehavior.Strict); + topologyService.Setup(service => service.IsAffinityMaskValid(8)).Returns(false); + var service = CreateService(processService, topologyService); + + var result = await service.ApplyAsync(process, 8); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.InvalidMask, result.FailureReason); + Assert.Equal(AffinityApplyErrorCodes.InvalidTopology, result.ErrorCode); + Assert.True(result.IsInvalidTopology); + Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); + processService.Verify( + service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public void AdminClarification_DoesNotPromiseAntiCheatBypass() + { + Assert.Contains("Administrator mode may help", ProcessOperationUserMessages.AdminClarification); + Assert.Contains("cannot bypass anti-cheat", ProcessOperationUserMessages.AdminClarification); + } + + [Fact] + public async Task ApplyAsync_WhenProcessStateCheckIsAccessDenied_StillAttemptsApply() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = new Mock(MockBehavior.Strict); + processService + .Setup(service => service.IsProcessStillRunning(process)) + .ThrowsAsync(new UnauthorizedAccessException("Access denied.")); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .Returns(Task.CompletedTask); + processService + .Setup(service => service.RefreshProcessInfo(process)) + .Callback(() => process.ProcessorAffinity = 1) + .Returns(Task.CompletedTask); + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.True(result.Success); + processService.Verify(service => service.SetProcessorAffinity(process, 1), Times.Once); + } + + [Fact] + public async Task ApplyAsync_WhenRefreshAfterApplyIsAccessDenied_ReportsVerificationMismatch() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .Returns(Task.CompletedTask); + processService + .Setup(service => service.RefreshProcessInfo(process)) + .ThrowsAsync(new UnauthorizedAccessException("Access denied.")); + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.VerificationMismatch, result.FailureReason); + Assert.Equal(3, result.VerifiedMask); + } + + [Fact] + public async Task ApplyAsync_WhenApplyThrowsUnexpectedError_ReturnsApplyFailed() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game", ProcessorAffinity = 3 }; + var processService = CreateProcessService(processStillRunning: true); + processService + .Setup(service => service.SetProcessorAffinity(process, 1)) + .ThrowsAsync(new InvalidOperationException("Driver rejected request.")); + processService + .Setup(service => service.RefreshProcessInfo(process)) + .Returns(Task.CompletedTask); + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, 1); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyFailureReason.ApplyFailed, result.FailureReason); + Assert.Equal(3, result.VerifiedMask); + } + + [Fact] + public async Task CpuSelectionApply_WhenCpuSetsFailAndSelectionIsSingleGroupBelow64_UsesLegacyFallback() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier(); + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = CreateSelection( + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 2, 2)); + + var result = await service.ApplyAsync(process, selection); + + Assert.True(result.Success); + Assert.Equal(AffinityApplyErrorCodes.None, result.ErrorCode); + Assert.False(result.UsedCpuSets); + Assert.True(result.UsedLegacyAffinity); + Assert.Equal(0x05, legacy.LastMask); + Assert.Equal(1, legacy.CallCount); + Assert.Equal(1, cpuSets.ApplyCpuSelectionCalls); + } + + [Fact] + public async Task CpuSelectionApply_WhenCpuSetsFailAndSelectionHasMultipleGroups_BlocksLegacyFallback() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier(); + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = CreateSelection( + new ProcessorRef(0, 0, 0), + new ProcessorRef(1, 0, 1)); + + var result = await service.ApplyAsync(process, selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.LegacyFallbackUnsafe, result.ErrorCode); + Assert.True(result.IsLegacyFallbackBlocked); + Assert.Equal(ProcessOperationUserMessages.LegacyFallbackBlocked, result.UserMessage); + Assert.False(result.UsedLegacyAffinity); + Assert.Equal(0, legacy.CallCount); + } + + [Fact] + public async Task CpuSelectionApply_WhenCpuSetsFailAndSelectionContainsCpu64_BlocksLegacyFallback() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier(); + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = CreateSelection(new ProcessorRef(0, 64, 64)); + + var result = await service.ApplyAsync(process, selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.LegacyFallbackUnsafe, result.ErrorCode); + Assert.True(result.IsLegacyFallbackBlocked); + Assert.Equal(0, legacy.CallCount); + } + + [Fact] + public async Task CpuSelectionApply_WhenSelectionHasExplicitCpuSetIds_TriesCpuSets() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = true }; + var legacy = new RecordingLegacyAffinityApplier(); + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = new CpuSelection { CpuSetIds = [101, 103] }; + + var result = await service.ApplyAsync(process, selection); + + Assert.True(result.Success); + Assert.True(result.UsedCpuSets); + Assert.False(result.UsedLegacyAffinity); + Assert.Same(selection, cpuSets.LastSelection); + Assert.Equal(0, legacy.CallCount); + } + + [Fact] + public async Task CpuSelectionApply_WhenCpuSetsSucceed_AuditsSuccessAndSkipsLegacyFallback() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = true }; + var legacy = new RecordingLegacyAffinityApplier(); + var audit = new RecordingAffinityAudit(); + var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); + var selection = CreateSelection(new ProcessorRef(0, 0, 0)); + + var result = await service.ApplyAsync(process, selection); + + Assert.True(result.Success); + Assert.True(result.UsedCpuSets); + Assert.False(result.UsedLegacyAffinity); + Assert.Equal(0, legacy.CallCount); + Assert.Equal([(process, true)], audit.Calls); + } + + [Fact] + public async Task CpuSelectionApply_WhenSelectionIsEmpty_ReturnsInvalidSelection() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler(); + var legacy = new RecordingLegacyAffinityApplier(); + var service = CreateCpuSelectionApplier(cpuSets, legacy); + + var result = await service.ApplyAsync(process, new CpuSelection()); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); + Assert.True(result.IsInvalidTopology); + Assert.False(result.UsedCpuSets); + Assert.False(result.UsedLegacyAffinity); + Assert.Equal(0, cpuSets.ApplyCpuSelectionCalls); + Assert.Equal(0, legacy.CallCount); + } + + [Fact] + public async Task CpuSelectionApply_WhenSelectionIsEmpty_AuditsFailure() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler(); + var legacy = new RecordingLegacyAffinityApplier(); + var audit = new RecordingAffinityAudit(); + var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); + + var result = await service.ApplyAsync(process, new CpuSelection()); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); + Assert.Equal([(process, false)], audit.Calls); + } + + [Fact] + public async Task CpuSelectionApply_WhenLegacyFallbackIsUnsafe_AuditsFailure() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier(); + var audit = new RecordingAffinityAudit(); + var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); + var selection = CreateSelection(new ProcessorRef(1, 64, 64)); + + var result = await service.ApplyAsync(process, selection); + + Assert.False(result.Success); + Assert.True(result.IsLegacyFallbackBlocked); + Assert.Equal(0, legacy.CallCount); + Assert.Equal([(process, false)], audit.Calls); + } + + [Fact] + public async Task CpuSelectionApply_WhenLegacyFallbackSucceeds_DoesNotAuditTwice() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier(); + var audit = new RecordingAffinityAudit(); + var service = CreateCpuSelectionApplier(cpuSets, legacy, audit); + var selection = CreateSelection(new ProcessorRef(0, 0, 0)); + + var result = await service.ApplyAsync(process, selection); + + Assert.True(result.Success); + Assert.True(result.UsedLegacyAffinity); + Assert.Equal(1, legacy.CallCount); + Assert.Empty(audit.Calls); + } + + [Fact] + public async Task CpuSelectionApply_WhenCpuSetsThrowAccessDenied_ReturnsAccessDenied() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler + { + ApplyCpuSelectionException = new Win32Exception(5, "Access is denied."), + }; + var legacy = new RecordingLegacyAffinityApplier(); + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = CreateSelection(new ProcessorRef(0, 0, 0)); + + var result = await service.ApplyAsync(process, selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + Assert.True(result.IsAccessDenied); + Assert.Equal(0, legacy.CallCount); + } + + [Fact] + public async Task CpuSelectionApply_WhenFallbackThrowsAccessDenied_ReturnsAccessDenied() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier + { + ExceptionToThrow = new UnauthorizedAccessException("Access denied."), + }; + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = CreateSelection(new ProcessorRef(0, 0, 0)); + + var result = await service.ApplyAsync(process, selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.True(result.IsAccessDenied); + Assert.Equal(1, legacy.CallCount); + } + + [Fact] + public async Task CpuSelectionApply_WhenFallbackThrowsProcessExited_ReturnsProcessExited() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var cpuSets = new FakeCpuSetHandler { ApplyCpuSelectionResult = false }; + var legacy = new RecordingLegacyAffinityApplier + { + ExceptionToThrow = new ArgumentException("Process has exited."), + }; + var service = CreateCpuSelectionApplier(cpuSets, legacy); + var selection = CreateSelection(new ProcessorRef(0, 0, 0)); + + var result = await service.ApplyAsync(process, selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.ProcessExited, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + Assert.False(result.UsedLegacyAffinity); + } + + [Fact] + public async Task ApplyCpuSelectionAsync_WhenProcessIsNull_ReturnsProcessExitedWithoutDelegating() + { + var processService = new Mock(MockBehavior.Strict); + var service = CreateService(processService); + + var result = await service.ApplyAsync(null!, CreateSelection(new ProcessorRef(0, 0, 0))); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.ProcessExited, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + processService.Verify( + service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyCpuSelectionAsync_WhenSelectionIsNull_ReturnsInvalidSelectionWithoutDelegating() + { + var process = new ProcessModel { ProcessId = 42, Name = "Game" }; + var processService = new Mock(MockBehavior.Strict); + var service = CreateService(processService); + + var result = await service.ApplyAsync(process, null!); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); + processService.Verify( + service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), + Times.Never); + } + + private static AffinityApplyService CreateService(Mock processService) + { + var topologyService = new Mock(MockBehavior.Loose); + topologyService.Setup(service => service.IsAffinityMaskValid(It.IsAny())).Returns(true); + + return CreateService(processService, topologyService); + } + + private static AffinityApplyService CreateService( + Mock processService, + Mock topologyService) + { + return new AffinityApplyService( + processService.Object, + topologyService.Object, + NullLogger.Instance); + } + + private static CpuSelectionAffinityApplier CreateCpuSelectionApplier( + FakeCpuSetHandler cpuSets, + RecordingLegacyAffinityApplier legacy, + RecordingAffinityAudit? audit = null) => + new( + _ => cpuSets, + legacy.ApplyAsync, + NullLogger.Instance, + null, + audit is null ? null : audit.Record); + + private static Mock CreateProcessService(bool processStillRunning) + { + var processService = new Mock(MockBehavior.Strict); + processService + .Setup(service => service.IsProcessStillRunning(It.IsAny())) + .ReturnsAsync(processStillRunning); + return processService; + } + + private static CpuSelection CreateSelection(params ProcessorRef[] processors) => + new() + { + LogicalProcessors = processors.ToList(), + GlobalLogicalProcessorIndexes = processors.Select(processor => processor.GlobalIndex).ToList(), + }; + + private sealed class RecordingLegacyAffinityApplier + { + public int CallCount { get; private set; } + + public long? LastMask { get; private set; } + + public Exception? ExceptionToThrow { get; init; } + + public Task ApplyAsync(ProcessModel process, long affinityMask) + { + this.CallCount++; + this.LastMask = affinityMask; + + if (this.ExceptionToThrow != null) + { + throw this.ExceptionToThrow; + } + + process.ProcessorAffinity = affinityMask; + return Task.FromResult(affinityMask); + } + } + + private sealed class RecordingAffinityAudit + { + public List<(ProcessModel Process, bool Success)> Calls { get; } = new(); + + public void Record(ProcessModel process, bool success) => + this.Calls.Add((process, success)); + } + + private sealed class FakeCpuSetHandler : IProcessCpuSetHandler + { + public uint ProcessId => 42; + + public string ExecutableName => "Game"; + + public bool IsValid { get; init; } = true; + + public bool ApplyCpuSelectionResult { get; init; } + + public Exception? ApplyCpuSelectionException { get; init; } + + public int ApplyCpuSelectionCalls { get; private set; } + + public CpuSelection? LastSelection { get; private set; } + + public bool ApplyCpuSetMask(long affinityMask, bool clearMask = false) => false; + + public CpuSetApplyResult ApplyCpuSetMaskDetailed(long affinityMask, bool clearMask = false) => + CpuSetApplyResult.Failed( + AffinityApplyErrorCodes.CpuSetsUnavailable, + ProcessOperationUserMessages.CpuSetsUnavailable, + "Fake CPU Sets handler rejected the legacy mask."); + + public bool ApplyCpuSelection(CpuSelection? selection, bool clearSelection = false) + { + this.ApplyCpuSelectionCalls++; + this.LastSelection = selection; + + if (this.ApplyCpuSelectionException != null) + { + throw this.ApplyCpuSelectionException; + } + + return this.ApplyCpuSelectionResult; + } + + public CpuSetApplyResult ApplyCpuSelectionDetailed(CpuSelection? selection, bool clearSelection = false) + { + this.ApplyCpuSelectionCalls++; + this.LastSelection = selection; + + if (this.ApplyCpuSelectionException != null) + { + throw this.ApplyCpuSelectionException; + } + + return this.ApplyCpuSelectionResult + ? CpuSetApplyResult.Succeeded("Fake CPU Sets handler applied the selection.") + : CpuSetApplyResult.Failed( + AffinityApplyErrorCodes.CpuSetsUnavailable, + ProcessOperationUserMessages.CpuSetsUnavailable, + "Fake CPU Sets handler rejected the selection."); + } + + public double GetAverageCpuUsage() => 0; + + public void Dispose() + { + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/AppRefreshPolicyTests.cs b/Tests/ThreadPilot.Core.Tests/AppRefreshPolicyTests.cs index 8c66ed0..494df32 100644 --- a/Tests/ThreadPilot.Core.Tests/AppRefreshPolicyTests.cs +++ b/Tests/ThreadPilot.Core.Tests/AppRefreshPolicyTests.cs @@ -1,63 +1,63 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Services; - - public sealed class AppRefreshPolicyTests - { - [Theory] - [InlineData(AppActivityState.ForegroundProcessView, true, true, true, false, true, true)] - [InlineData(AppActivityState.ForegroundDiagnosticsView, false, false, false, true, true, true)] - [InlineData(AppActivityState.ForegroundOtherTab, false, false, false, false, true, true)] - [InlineData(AppActivityState.Minimized, false, false, false, false, false, true)] - [InlineData(AppActivityState.TrayHidden, false, false, false, false, false, true)] - public void Evaluate_ReturnsExpectedRefreshDecision( - AppActivityState state, - bool processUiRefreshEnabled, - bool immediateProcessRefresh, - bool virtualizedPreloadEnabled, - bool performanceUiMonitoringEnabled, - bool powerPlanUiRefreshEnabled, - bool backgroundAutomationEnabled) - { - var decision = AppRefreshPolicy.Evaluate(state); - - Assert.Equal(processUiRefreshEnabled, decision.ProcessUiRefreshEnabled); - Assert.Equal(immediateProcessRefresh, decision.ImmediateProcessRefresh); - Assert.Equal(virtualizedPreloadEnabled, decision.VirtualizedPreloadEnabled); - Assert.Equal(performanceUiMonitoringEnabled, decision.PerformanceUiMonitoringEnabled); - Assert.Equal(powerPlanUiRefreshEnabled, decision.PowerPlanUiRefreshEnabled); - Assert.Equal(backgroundAutomationEnabled, decision.BackgroundAutomationEnabled); - } - - [Fact] - public void Evaluate_WhenStateIsUnknown_KeepsBackgroundAutomationOnly() - { - var decision = AppRefreshPolicy.Evaluate((AppActivityState)999); - - Assert.False(decision.ProcessUiRefreshEnabled); - Assert.False(decision.ImmediateProcessRefresh); - Assert.False(decision.VirtualizedPreloadEnabled); - Assert.False(decision.PerformanceUiMonitoringEnabled); - Assert.False(decision.PowerPlanUiRefreshEnabled); - Assert.True(decision.BackgroundAutomationEnabled); - } - - [Theory] - [InlineData(null, AppActivityState.ForegroundProcessView, true)] - [InlineData(AppActivityState.ForegroundProcessView, AppActivityState.ForegroundProcessView, false)] - [InlineData(AppActivityState.ForegroundDiagnosticsView, AppActivityState.ForegroundDiagnosticsView, false)] - [InlineData(AppActivityState.ForegroundOtherTab, AppActivityState.ForegroundOtherTab, false)] - [InlineData(AppActivityState.Minimized, AppActivityState.Minimized, false)] - [InlineData(AppActivityState.TrayHidden, AppActivityState.TrayHidden, false)] - [InlineData(AppActivityState.TrayHidden, AppActivityState.ForegroundProcessView, true)] - [InlineData(AppActivityState.ForegroundProcessView, AppActivityState.ForegroundOtherTab, true)] - [InlineData(AppActivityState.ForegroundOtherTab, AppActivityState.ForegroundDiagnosticsView, true)] - public void ShouldApplyTransition_SkipsRedundantStateTransitions( - AppActivityState? previousState, - AppActivityState nextState, - bool expected) - { - Assert.Equal(expected, AppRefreshPolicy.ShouldApplyTransition(previousState, nextState)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Services; + + public sealed class AppRefreshPolicyTests + { + [Theory] + [InlineData(AppActivityState.ForegroundProcessView, true, true, true, false, true, true)] + [InlineData(AppActivityState.ForegroundDiagnosticsView, false, false, false, true, true, true)] + [InlineData(AppActivityState.ForegroundOtherTab, false, false, false, false, true, true)] + [InlineData(AppActivityState.Minimized, false, false, false, false, false, true)] + [InlineData(AppActivityState.TrayHidden, false, false, false, false, false, true)] + public void Evaluate_ReturnsExpectedRefreshDecision( + AppActivityState state, + bool processUiRefreshEnabled, + bool immediateProcessRefresh, + bool virtualizedPreloadEnabled, + bool performanceUiMonitoringEnabled, + bool powerPlanUiRefreshEnabled, + bool backgroundAutomationEnabled) + { + var decision = AppRefreshPolicy.Evaluate(state); + + Assert.Equal(processUiRefreshEnabled, decision.ProcessUiRefreshEnabled); + Assert.Equal(immediateProcessRefresh, decision.ImmediateProcessRefresh); + Assert.Equal(virtualizedPreloadEnabled, decision.VirtualizedPreloadEnabled); + Assert.Equal(performanceUiMonitoringEnabled, decision.PerformanceUiMonitoringEnabled); + Assert.Equal(powerPlanUiRefreshEnabled, decision.PowerPlanUiRefreshEnabled); + Assert.Equal(backgroundAutomationEnabled, decision.BackgroundAutomationEnabled); + } + + [Fact] + public void Evaluate_WhenStateIsUnknown_KeepsBackgroundAutomationOnly() + { + var decision = AppRefreshPolicy.Evaluate((AppActivityState)999); + + Assert.False(decision.ProcessUiRefreshEnabled); + Assert.False(decision.ImmediateProcessRefresh); + Assert.False(decision.VirtualizedPreloadEnabled); + Assert.False(decision.PerformanceUiMonitoringEnabled); + Assert.False(decision.PowerPlanUiRefreshEnabled); + Assert.True(decision.BackgroundAutomationEnabled); + } + + [Theory] + [InlineData(null, AppActivityState.ForegroundProcessView, true)] + [InlineData(AppActivityState.ForegroundProcessView, AppActivityState.ForegroundProcessView, false)] + [InlineData(AppActivityState.ForegroundDiagnosticsView, AppActivityState.ForegroundDiagnosticsView, false)] + [InlineData(AppActivityState.ForegroundOtherTab, AppActivityState.ForegroundOtherTab, false)] + [InlineData(AppActivityState.Minimized, AppActivityState.Minimized, false)] + [InlineData(AppActivityState.TrayHidden, AppActivityState.TrayHidden, false)] + [InlineData(AppActivityState.TrayHidden, AppActivityState.ForegroundProcessView, true)] + [InlineData(AppActivityState.ForegroundProcessView, AppActivityState.ForegroundOtherTab, true)] + [InlineData(AppActivityState.ForegroundOtherTab, AppActivityState.ForegroundDiagnosticsView, true)] + public void ShouldApplyTransition_SkipsRedundantStateTransitions( + AppActivityState? previousState, + AppActivityState nextState, + bool expected) + { + Assert.Equal(expected, AppRefreshPolicy.ShouldApplyTransition(previousState, nextState)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/AppSmokeTestStartupTests.cs b/Tests/ThreadPilot.Core.Tests/AppSmokeTestStartupTests.cs index 882acdd..4a82bc8 100644 --- a/Tests/ThreadPilot.Core.Tests/AppSmokeTestStartupTests.cs +++ b/Tests/ThreadPilot.Core.Tests/AppSmokeTestStartupTests.cs @@ -1,78 +1,78 @@ -namespace ThreadPilot.Core.Tests -{ - public sealed class AppSmokeTestStartupTests - { - [Fact] - public void OnStartup_HandlesSmokeTestBeforeElevationSingleInstanceAndWindowStartup() - { - var source = File.ReadAllText(Path.Combine(GetRepositoryRoot(), "App.xaml.cs")); - - var smokeTestBranchIndex = source.IndexOf("if (startupMode.IsSmokeTest)", StringComparison.Ordinal); - var elevationIndex = source.IndexOf("GetRequiredService", StringComparison.Ordinal); - var mutexIndex = source.IndexOf("Global\\\\ThreadPilot_SingleInstance", StringComparison.Ordinal); - var baseStartupIndex = source.IndexOf("base.OnStartup(e);", StringComparison.Ordinal); - var mainWindowIndex = source.IndexOf("GetRequiredService", StringComparison.Ordinal); - - Assert.NotEqual(-1, smokeTestBranchIndex); - Assert.True(smokeTestBranchIndex < elevationIndex); - Assert.True(smokeTestBranchIndex < mutexIndex); - Assert.True(smokeTestBranchIndex < baseStartupIndex); - Assert.True(smokeTestBranchIndex < mainWindowIndex); - } - - [Fact] - public void SmokeTestMode_ExitsTheProcessAfterShutdownToAvoidDispatcherOrTimerHangs() - { - var source = File.ReadAllText(Path.Combine(GetRepositoryRoot(), "App.xaml.cs")); - - var smokeTestBranch = ExtractSection( - source, - "if (startupMode.IsSmokeTest)", - " // Set up global exception handlers first"); - - Assert.Contains("this.Shutdown(smokeTestResult);", smokeTestBranch, StringComparison.Ordinal); - Assert.Contains("Environment.Exit(smokeTestResult);", smokeTestBranch, StringComparison.Ordinal); - } - - [Fact] - public void RunSmokeTest_DoesNotResolveUiViewModelsOrMainWindow() - { - var source = File.ReadAllText(Path.Combine(GetRepositoryRoot(), "App.xaml.cs")); - var smokeTestMethod = ExtractSection( - source, - "private int RunSmokeTest", - "protected override void OnExit"); - - Assert.DoesNotContain("ProcessViewModel", smokeTestMethod, StringComparison.Ordinal); - Assert.DoesNotContain("PowerPlanViewModel", smokeTestMethod, StringComparison.Ordinal); - Assert.DoesNotContain("MainWindow", smokeTestMethod, StringComparison.Ordinal); - } - - private static string ExtractSection(string source, string startMarker, string endMarker) - { - var startIndex = source.IndexOf(startMarker, StringComparison.Ordinal); - Assert.NotEqual(-1, startIndex); - - var endIndex = source.IndexOf(endMarker, startIndex, StringComparison.Ordinal); - Assert.NotEqual(-1, endIndex); - - return source[startIndex..endIndex]; - } - - private static string GetRepositoryRoot() - { - var directory = new DirectoryInfo(AppContext.BaseDirectory); - while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj"))) - { - directory = directory.Parent; - } - - if (directory == null) - { - throw new InvalidOperationException("Repository root was not found."); - } - - return directory.FullName; - } - } -} +namespace ThreadPilot.Core.Tests +{ + public sealed class AppSmokeTestStartupTests + { + [Fact] + public void OnStartup_HandlesSmokeTestBeforeElevationSingleInstanceAndWindowStartup() + { + var source = File.ReadAllText(Path.Combine(GetRepositoryRoot(), "App.xaml.cs")); + + var smokeTestBranchIndex = source.IndexOf("if (startupMode.IsSmokeTest)", StringComparison.Ordinal); + var elevationIndex = source.IndexOf("GetRequiredService", StringComparison.Ordinal); + var mutexIndex = source.IndexOf("Global\\\\ThreadPilot_SingleInstance", StringComparison.Ordinal); + var baseStartupIndex = source.IndexOf("base.OnStartup(e);", StringComparison.Ordinal); + var mainWindowIndex = source.IndexOf("GetRequiredService", StringComparison.Ordinal); + + Assert.NotEqual(-1, smokeTestBranchIndex); + Assert.True(smokeTestBranchIndex < elevationIndex); + Assert.True(smokeTestBranchIndex < mutexIndex); + Assert.True(smokeTestBranchIndex < baseStartupIndex); + Assert.True(smokeTestBranchIndex < mainWindowIndex); + } + + [Fact] + public void SmokeTestMode_ExitsTheProcessAfterShutdownToAvoidDispatcherOrTimerHangs() + { + var source = File.ReadAllText(Path.Combine(GetRepositoryRoot(), "App.xaml.cs")); + + var smokeTestBranch = ExtractSection( + source, + "if (startupMode.IsSmokeTest)", + " // Set up global exception handlers first"); + + Assert.Contains("this.Shutdown(smokeTestResult);", smokeTestBranch, StringComparison.Ordinal); + Assert.Contains("Environment.Exit(smokeTestResult);", smokeTestBranch, StringComparison.Ordinal); + } + + [Fact] + public void RunSmokeTest_DoesNotResolveUiViewModelsOrMainWindow() + { + var source = File.ReadAllText(Path.Combine(GetRepositoryRoot(), "App.xaml.cs")); + var smokeTestMethod = ExtractSection( + source, + "private int RunSmokeTest", + "protected override void OnExit"); + + Assert.DoesNotContain("ProcessViewModel", smokeTestMethod, StringComparison.Ordinal); + Assert.DoesNotContain("PowerPlanViewModel", smokeTestMethod, StringComparison.Ordinal); + Assert.DoesNotContain("MainWindow", smokeTestMethod, StringComparison.Ordinal); + } + + private static string ExtractSection(string source, string startMarker, string endMarker) + { + var startIndex = source.IndexOf(startMarker, StringComparison.Ordinal); + Assert.NotEqual(-1, startIndex); + + var endIndex = source.IndexOf(endMarker, startIndex, StringComparison.Ordinal); + Assert.NotEqual(-1, endIndex); + + return source[startIndex..endIndex]; + } + + private static string GetRepositoryRoot() + { + var directory = new DirectoryInfo(AppContext.BaseDirectory); + while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj"))) + { + directory = directory.Parent; + } + + if (directory == null) + { + throw new InvalidOperationException("Repository root was not found."); + } + + return directory.FullName; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ApplicationSettingsModelTests.cs b/Tests/ThreadPilot.Core.Tests/ApplicationSettingsModelTests.cs index 6eed3cb..df1d848 100644 --- a/Tests/ThreadPilot.Core.Tests/ApplicationSettingsModelTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ApplicationSettingsModelTests.cs @@ -1,67 +1,67 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Models; - - public sealed class ApplicationSettingsModelTests - { - [Fact] - public void Constructor_StartMinimizedDefaultsFalse_ForManualLaunchVisibility() - { - var settings = new ApplicationSettingsModel(); - - Assert.True(settings.AutostartWithWindows); - Assert.False(settings.StartMinimized); - Assert.True(settings.ApplyPersistentRulesOnProcessStart); - Assert.False(settings.HasSeenStartupMinimizedSuggestion); - Assert.Equal("en-US", settings.Language); - Assert.True(settings.EnableAutomaticUpdateChecks); - Assert.Equal(7, settings.UpdateCheckIntervalDays); - Assert.False(settings.IncludePrereleaseUpdates); - Assert.Null(settings.LastUpdateCheckUtc); - } - - [Fact] - public void CopyFrom_CopiesLanguage() - { - var source = new ApplicationSettingsModel - { - Language = "zh-CN", - }; - var target = new ApplicationSettingsModel(); - - target.CopyFrom(source); - - Assert.Equal("zh-CN", target.Language); - } - - [Fact] - public void HasSameUserSettingsAs_ReturnsTrue_WhenChangedSettingIsRestored() - { - var savedSettings = new ApplicationSettingsModel - { - EnableNotifications = true, - }; - - var editableSettings = (ApplicationSettingsModel)savedSettings.Clone(); - editableSettings.EnableNotifications = false; - Assert.False(editableSettings.HasSameUserSettingsAs(savedSettings)); - - editableSettings.EnableNotifications = true; - - Assert.True(editableSettings.HasSameUserSettingsAs(savedSettings)); - } - - [Fact] - public void HasSameUserSettingsAs_IgnoresMetadataTimestamps() - { - var savedSettings = new ApplicationSettingsModel - { - UpdatedAt = new System.DateTime(2026, 5, 16, 10, 0, 0, System.DateTimeKind.Utc), - }; - var editableSettings = (ApplicationSettingsModel)savedSettings.Clone(); - editableSettings.UpdatedAt = savedSettings.UpdatedAt.AddMinutes(5); - - Assert.True(editableSettings.HasSameUserSettingsAs(savedSettings)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Models; + + public sealed class ApplicationSettingsModelTests + { + [Fact] + public void Constructor_StartMinimizedDefaultsFalse_ForManualLaunchVisibility() + { + var settings = new ApplicationSettingsModel(); + + Assert.True(settings.AutostartWithWindows); + Assert.False(settings.StartMinimized); + Assert.True(settings.ApplyPersistentRulesOnProcessStart); + Assert.False(settings.HasSeenStartupMinimizedSuggestion); + Assert.Equal("en-US", settings.Language); + Assert.True(settings.EnableAutomaticUpdateChecks); + Assert.Equal(7, settings.UpdateCheckIntervalDays); + Assert.False(settings.IncludePrereleaseUpdates); + Assert.Null(settings.LastUpdateCheckUtc); + } + + [Fact] + public void CopyFrom_CopiesLanguage() + { + var source = new ApplicationSettingsModel + { + Language = "zh-CN", + }; + var target = new ApplicationSettingsModel(); + + target.CopyFrom(source); + + Assert.Equal("zh-CN", target.Language); + } + + [Fact] + public void HasSameUserSettingsAs_ReturnsTrue_WhenChangedSettingIsRestored() + { + var savedSettings = new ApplicationSettingsModel + { + EnableNotifications = true, + }; + + var editableSettings = (ApplicationSettingsModel)savedSettings.Clone(); + editableSettings.EnableNotifications = false; + Assert.False(editableSettings.HasSameUserSettingsAs(savedSettings)); + + editableSettings.EnableNotifications = true; + + Assert.True(editableSettings.HasSameUserSettingsAs(savedSettings)); + } + + [Fact] + public void HasSameUserSettingsAs_IgnoresMetadataTimestamps() + { + var savedSettings = new ApplicationSettingsModel + { + UpdatedAt = new System.DateTime(2026, 5, 16, 10, 0, 0, System.DateTimeKind.Utc), + }; + var editableSettings = (ApplicationSettingsModel)savedSettings.Clone(); + editableSettings.UpdatedAt = savedSettings.UpdatedAt.AddMinutes(5); + + Assert.True(editableSettings.HasSameUserSettingsAs(savedSettings)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ApplicationSettingsServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ApplicationSettingsServiceTests.cs index eb712c4..ebd54b1 100644 --- a/Tests/ThreadPilot.Core.Tests/ApplicationSettingsServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ApplicationSettingsServiceTests.cs @@ -1,271 +1,271 @@ -namespace ThreadPilot.Core.Tests -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.Services.Abstractions; - - public sealed class ApplicationSettingsServiceTests - { - [Fact] - public async Task LoadSettingsAsync_CreatesDefaults_WhenFileIsMissing() - { - var storage = new FakeSettingsStorage(); - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.True(storage.Writes.ContainsKey(TestPaths.SettingsFilePath)); - Assert.Equal(3000, service.Settings.NotificationDisplayDurationMs); - Assert.Equal(5000, service.Settings.BalloonNotificationTimeoutMs); - Assert.True(service.Settings.EnableSelfLowImpactMode); - Assert.False(service.Settings.EnableSelfAffinityLimit); - Assert.True(service.Settings.AutostartWithWindows); - Assert.False(service.Settings.StartMinimized); - Assert.Equal("en-US", service.Settings.Language); - } - - [Fact] - public async Task LoadSettingsAsync_FallsBackToDefaults_WhenJsonIsMalformed() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = "{ invalid json"; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.Equal(3000, service.Settings.NotificationDisplayDurationMs); - Assert.Equal(string.Empty, service.Settings.CustomTrayIconPath); - Assert.True(service.Settings.EnableSelfLowImpactMode); - Assert.False(service.Settings.EnableSelfAffinityLimit); - } - - [Fact] - public async Task LoadSettingsAsync_EnablesSafeSelfLowImpactDefault_ForOlderSettingsJson() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "notificationDisplayDurationMs": 3000, - "balloonNotificationTimeoutMs": 5000 - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.True(service.Settings.EnableSelfLowImpactMode); - Assert.False(service.Settings.EnableSelfAffinityLimit); - } - - [Fact] - public async Task LoadSettingsAsync_PreservesExplicitSelfLowImpactOptOut() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "enableSelfLowImpactMode": false, - "enableSelfAffinityLimit": true - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.False(service.Settings.EnableSelfLowImpactMode); - Assert.True(service.Settings.EnableSelfAffinityLimit); - } - - [Fact] - public async Task LoadSettingsAsync_DefaultsStartMinimizedFalse_ForOlderAutostartSettingsJson() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "autostartWithWindows": true - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.True(service.Settings.AutostartWithWindows); - Assert.False(service.Settings.StartMinimized); - } - - [Fact] - public async Task LoadSettingsAsync_PreservesExplicitStartMinimizedOptOut() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "autostartWithWindows": true, - "startMinimized": false - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.True(service.Settings.AutostartWithWindows); - Assert.False(service.Settings.StartMinimized); - } - - [Fact] - public async Task LoadSettingsAsync_PreservesExplicitStartMinimizedOptIn() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "autostartWithWindows": true, - "startMinimized": true - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.True(service.Settings.AutostartWithWindows); - Assert.True(service.Settings.StartMinimized); - } - - [Fact] - public async Task LoadSettingsAsync_PreservesStartupMinimizedSuggestionDismissal() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "hasSeenStartupMinimizedSuggestion": true - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.True(service.Settings.HasSeenStartupMinimizedSuggestion); - } - - [Fact] - public async Task LoadSettingsAsync_PreservesSupportedLanguage() - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = """ - { - "language": "zh-CN" - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.Equal("zh-CN", service.Settings.Language); - } - - [Theory] - [InlineData("")] - [InlineData(" ")] - [InlineData("fr-FR")] - [InlineData("zh")] - public async Task LoadSettingsAsync_FallsBackToEnglish_WhenLanguageIsInvalid(string language) - { - var storage = new FakeSettingsStorage(); - storage.Files[TestPaths.SettingsFilePath] = $$""" - { - "language": "{{language}}" - } - """; - var service = CreateService(storage); - - await service.LoadSettingsAsync(); - - Assert.Equal("en-US", service.Settings.Language); - } - - [Fact] - public async Task ImportSettingsAsync_Throws_WhenFileIsMissing() - { - var storage = new FakeSettingsStorage(); - var service = CreateService(storage); - - await Assert.ThrowsAsync(() => service.ImportSettingsAsync("missing-settings.json")); - } - - [Fact] - public async Task ValidateAndFixSettings_DisablesMissingCustomTrayIcon() - { - var storage = new FakeSettingsStorage(); - var service = CreateService(storage); - var updatedSettings = new ApplicationSettingsModel - { - UseCustomTrayIcon = true, - CustomTrayIconPath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}.ico"), - }; - - await service.UpdateSettingsAsync(updatedSettings); - - Assert.False(service.Settings.UseCustomTrayIcon); - } - - private static ApplicationSettingsService CreateService(FakeSettingsStorage storage) - { - return new ApplicationSettingsService( - NullLogger.Instance, - storage, - TestPaths.SettingsFilePath, - legacySettingsPath: null); - } - - private static class TestPaths - { - public const string SettingsFilePath = "settings-under-test.json"; - } - - private sealed class FakeSettingsStorage : ISettingsStorage - { - public Dictionary Files { get; } = new(StringComparer.OrdinalIgnoreCase); - - public Dictionary Writes { get; } = new(StringComparer.OrdinalIgnoreCase); - - public void Copy(string sourcePath, string destinationPath, bool overwrite) - { - if (!this.Files.TryGetValue(sourcePath, out var content)) - { - throw new FileNotFoundException("Source file not found.", sourcePath); - } - - if (!overwrite && this.Files.ContainsKey(destinationPath)) - { - throw new IOException("Destination already exists."); - } - - this.Files[destinationPath] = content; - } - - public void EnsureDirectoryForFile(string path) - { - } - - public bool Exists(string path) - { - return this.Files.ContainsKey(path); - } - - public Task ReadAsync(string path) - { - this.Files.TryGetValue(path, out var content); - return Task.FromResult(content); - } - - public Task WriteAsync(string path, string content) - { - this.Files[path] = content; - this.Writes[path] = content; - return Task.CompletedTask; - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.Services.Abstractions; + + public sealed class ApplicationSettingsServiceTests + { + [Fact] + public async Task LoadSettingsAsync_CreatesDefaults_WhenFileIsMissing() + { + var storage = new FakeSettingsStorage(); + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.True(storage.Writes.ContainsKey(TestPaths.SettingsFilePath)); + Assert.Equal(3000, service.Settings.NotificationDisplayDurationMs); + Assert.Equal(5000, service.Settings.BalloonNotificationTimeoutMs); + Assert.True(service.Settings.EnableSelfLowImpactMode); + Assert.False(service.Settings.EnableSelfAffinityLimit); + Assert.True(service.Settings.AutostartWithWindows); + Assert.False(service.Settings.StartMinimized); + Assert.Equal("en-US", service.Settings.Language); + } + + [Fact] + public async Task LoadSettingsAsync_FallsBackToDefaults_WhenJsonIsMalformed() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = "{ invalid json"; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.Equal(3000, service.Settings.NotificationDisplayDurationMs); + Assert.Equal(string.Empty, service.Settings.CustomTrayIconPath); + Assert.True(service.Settings.EnableSelfLowImpactMode); + Assert.False(service.Settings.EnableSelfAffinityLimit); + } + + [Fact] + public async Task LoadSettingsAsync_EnablesSafeSelfLowImpactDefault_ForOlderSettingsJson() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "notificationDisplayDurationMs": 3000, + "balloonNotificationTimeoutMs": 5000 + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.True(service.Settings.EnableSelfLowImpactMode); + Assert.False(service.Settings.EnableSelfAffinityLimit); + } + + [Fact] + public async Task LoadSettingsAsync_PreservesExplicitSelfLowImpactOptOut() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "enableSelfLowImpactMode": false, + "enableSelfAffinityLimit": true + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.False(service.Settings.EnableSelfLowImpactMode); + Assert.True(service.Settings.EnableSelfAffinityLimit); + } + + [Fact] + public async Task LoadSettingsAsync_DefaultsStartMinimizedFalse_ForOlderAutostartSettingsJson() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "autostartWithWindows": true + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.True(service.Settings.AutostartWithWindows); + Assert.False(service.Settings.StartMinimized); + } + + [Fact] + public async Task LoadSettingsAsync_PreservesExplicitStartMinimizedOptOut() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "autostartWithWindows": true, + "startMinimized": false + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.True(service.Settings.AutostartWithWindows); + Assert.False(service.Settings.StartMinimized); + } + + [Fact] + public async Task LoadSettingsAsync_PreservesExplicitStartMinimizedOptIn() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "autostartWithWindows": true, + "startMinimized": true + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.True(service.Settings.AutostartWithWindows); + Assert.True(service.Settings.StartMinimized); + } + + [Fact] + public async Task LoadSettingsAsync_PreservesStartupMinimizedSuggestionDismissal() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "hasSeenStartupMinimizedSuggestion": true + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.True(service.Settings.HasSeenStartupMinimizedSuggestion); + } + + [Fact] + public async Task LoadSettingsAsync_PreservesSupportedLanguage() + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = """ + { + "language": "zh-CN" + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.Equal("zh-CN", service.Settings.Language); + } + + [Theory] + [InlineData("")] + [InlineData(" ")] + [InlineData("fr-FR")] + [InlineData("zh")] + public async Task LoadSettingsAsync_FallsBackToEnglish_WhenLanguageIsInvalid(string language) + { + var storage = new FakeSettingsStorage(); + storage.Files[TestPaths.SettingsFilePath] = $$""" + { + "language": "{{language}}" + } + """; + var service = CreateService(storage); + + await service.LoadSettingsAsync(); + + Assert.Equal("en-US", service.Settings.Language); + } + + [Fact] + public async Task ImportSettingsAsync_Throws_WhenFileIsMissing() + { + var storage = new FakeSettingsStorage(); + var service = CreateService(storage); + + await Assert.ThrowsAsync(() => service.ImportSettingsAsync("missing-settings.json")); + } + + [Fact] + public async Task ValidateAndFixSettings_DisablesMissingCustomTrayIcon() + { + var storage = new FakeSettingsStorage(); + var service = CreateService(storage); + var updatedSettings = new ApplicationSettingsModel + { + UseCustomTrayIcon = true, + CustomTrayIconPath = Path.Combine(Path.GetTempPath(), $"{Guid.NewGuid():N}.ico"), + }; + + await service.UpdateSettingsAsync(updatedSettings); + + Assert.False(service.Settings.UseCustomTrayIcon); + } + + private static ApplicationSettingsService CreateService(FakeSettingsStorage storage) + { + return new ApplicationSettingsService( + NullLogger.Instance, + storage, + TestPaths.SettingsFilePath, + legacySettingsPath: null); + } + + private static class TestPaths + { + public const string SettingsFilePath = "settings-under-test.json"; + } + + private sealed class FakeSettingsStorage : ISettingsStorage + { + public Dictionary Files { get; } = new(StringComparer.OrdinalIgnoreCase); + + public Dictionary Writes { get; } = new(StringComparer.OrdinalIgnoreCase); + + public void Copy(string sourcePath, string destinationPath, bool overwrite) + { + if (!this.Files.TryGetValue(sourcePath, out var content)) + { + throw new FileNotFoundException("Source file not found.", sourcePath); + } + + if (!overwrite && this.Files.ContainsKey(destinationPath)) + { + throw new IOException("Destination already exists."); + } + + this.Files[destinationPath] = content; + } + + public void EnsureDirectoryForFile(string path) + { + } + + public bool Exists(string path) + { + return this.Files.ContainsKey(path); + } + + public Task ReadAsync(string path) + { + this.Files.TryGetValue(path, out var content); + return Task.FromResult(content); + } + + public Task WriteAsync(string path, string content) + { + this.Files[path] = content; + this.Writes[path] = content; + return Task.CompletedTask; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/AutostartServiceTests.cs b/Tests/ThreadPilot.Core.Tests/AutostartServiceTests.cs index b67f814..91307f7 100644 --- a/Tests/ThreadPilot.Core.Tests/AutostartServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/AutostartServiceTests.cs @@ -1,119 +1,110 @@ -/* - * ThreadPilot - autostart service unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Services; - - /// - /// Unit tests for non-registry behavior in . - /// - public sealed class AutostartServiceTests - { - /// - /// Ensures autostart arguments include both autostart and start-minimized flags when requested. - /// - [Fact] - public void GetAutostartArguments_IncludesStartMinimized_WhenRequested() - { - var service = CreateService(); - - var args = service.GetAutostartArguments(startMinimized: true); - - Assert.Contains("--start-minimized", args, StringComparison.Ordinal); - Assert.Contains("--autostart", args, StringComparison.Ordinal); - } - - /// - /// Ensures start-minimized is omitted when not requested. - /// - [Fact] - public void GetAutostartArguments_OmitsStartMinimized_WhenNotRequested() - { - var service = CreateService(); - - var args = service.GetAutostartArguments(startMinimized: false); - - Assert.DoesNotContain("--start-minimized", args, StringComparison.Ordinal); - Assert.Equal("--autostart", args); - } - - [Fact] - public async Task EnableAutostartAsync_WhenNotAdmin_RequestsElevation_AndReturnsFalse() - { - var elevationService = new Mock(MockBehavior.Strict); - elevationService.Setup(x => x.IsRunningAsAdministrator()).Returns(false); - elevationService.Setup(x => x.RequestElevationIfNeeded()).ReturnsAsync(true); - - var elevatedTaskService = new Mock(MockBehavior.Loose); - elevatedTaskService.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); - - var service = CreateService(elevationService, elevatedTaskService); - - var result = await service.EnableAutostartAsync(startMinimized: true); - - Assert.False(result); - elevationService.Verify(x => x.RequestElevationIfNeeded(), Times.Once); - elevatedTaskService.Verify( - x => x.EnsureAutostartTaskAsync(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task EnableAutostartAsync_WhenAdmin_EnsuresScheduledTask() - { - var elevationService = new Mock(MockBehavior.Strict); - elevationService.Setup(x => x.IsRunningAsAdministrator()).Returns(true); - - var elevatedTaskService = new Mock(MockBehavior.Strict); - elevatedTaskService.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); - elevatedTaskService - .Setup(x => x.EnsureAutostartTaskAsync(It.IsAny(), It.Is(args => args.Contains("--autostart", StringComparison.Ordinal)))) - .ReturnsAsync(true); - - var service = CreateService(elevationService, elevatedTaskService); - - var result = await service.EnableAutostartAsync(startMinimized: true); - - Assert.True(result); - elevatedTaskService.Verify( - x => x.EnsureAutostartTaskAsync( - It.IsAny(), - It.Is(args => - args.Contains("--autostart", StringComparison.Ordinal) && - args.Contains("--start-minimized", StringComparison.Ordinal))), - Times.Once); - } - - [Fact] - public async Task DisableAutostartAsync_WhenAdmin_RemovesScheduledTask() - { - var elevationService = new Mock(MockBehavior.Strict); - elevationService.Setup(x => x.IsRunningAsAdministrator()).Returns(true); - - var elevatedTaskService = new Mock(MockBehavior.Strict); - elevatedTaskService.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); - elevatedTaskService.Setup(x => x.RemoveAutostartTaskAsync()).ReturnsAsync(true); - - var service = CreateService(elevationService, elevatedTaskService); - - var result = await service.DisableAutostartAsync(); - - Assert.True(result); - elevatedTaskService.Verify(x => x.RemoveAutostartTaskAsync(), Times.Once); - } - - private static AutostartService CreateService( - Mock? elevationService = null, - Mock? elevatedTaskService = null) - { - var elevation = elevationService ?? new Mock(MockBehavior.Loose); - var elevatedTask = elevatedTaskService ?? new Mock(MockBehavior.Loose); - elevatedTask.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); - - return new AutostartService(NullLogger.Instance, elevation.Object, elevatedTask.Object); - } - } -} +/* + * ThreadPilot - autostart service unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Services; + + public sealed class AutostartServiceTests + { + [Fact] + public void GetAutostartArguments_IncludesStartMinimized_WhenRequested() + { + var service = CreateService(); + + var args = service.GetAutostartArguments(startMinimized: true); + + Assert.Contains("--start-minimized", args, StringComparison.Ordinal); + Assert.Contains("--autostart", args, StringComparison.Ordinal); + } + + [Fact] + public void GetAutostartArguments_OmitsStartMinimized_WhenNotRequested() + { + var service = CreateService(); + + var args = service.GetAutostartArguments(startMinimized: false); + + Assert.DoesNotContain("--start-minimized", args, StringComparison.Ordinal); + Assert.Equal("--autostart", args); + } + + [Fact] + public async Task EnableAutostartAsync_WhenNotAdmin_RequestsElevation_AndReturnsFalse() + { + var elevationService = new Mock(MockBehavior.Strict); + elevationService.Setup(x => x.IsRunningAsAdministrator()).Returns(false); + elevationService.Setup(x => x.RequestElevationIfNeeded()).ReturnsAsync(true); + + var elevatedTaskService = new Mock(MockBehavior.Loose); + elevatedTaskService.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); + + var service = CreateService(elevationService, elevatedTaskService); + + var result = await service.EnableAutostartAsync(startMinimized: true); + + Assert.False(result); + elevationService.Verify(x => x.RequestElevationIfNeeded(), Times.Once); + elevatedTaskService.Verify( + x => x.EnsureAutostartTaskAsync(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task EnableAutostartAsync_WhenAdmin_EnsuresScheduledTask() + { + var elevationService = new Mock(MockBehavior.Strict); + elevationService.Setup(x => x.IsRunningAsAdministrator()).Returns(true); + + var elevatedTaskService = new Mock(MockBehavior.Strict); + elevatedTaskService.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); + elevatedTaskService + .Setup(x => x.EnsureAutostartTaskAsync(It.IsAny(), It.Is(args => args.Contains("--autostart", StringComparison.Ordinal)))) + .ReturnsAsync(true); + + var service = CreateService(elevationService, elevatedTaskService); + + var result = await service.EnableAutostartAsync(startMinimized: true); + + Assert.True(result); + elevatedTaskService.Verify( + x => x.EnsureAutostartTaskAsync( + It.IsAny(), + It.Is(args => + args.Contains("--autostart", StringComparison.Ordinal) && + args.Contains("--start-minimized", StringComparison.Ordinal))), + Times.Once); + } + + [Fact] + public async Task DisableAutostartAsync_WhenAdmin_RemovesScheduledTask() + { + var elevationService = new Mock(MockBehavior.Strict); + elevationService.Setup(x => x.IsRunningAsAdministrator()).Returns(true); + + var elevatedTaskService = new Mock(MockBehavior.Strict); + elevatedTaskService.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); + elevatedTaskService.Setup(x => x.RemoveAutostartTaskAsync()).ReturnsAsync(true); + + var service = CreateService(elevationService, elevatedTaskService); + + var result = await service.DisableAutostartAsync(); + + Assert.True(result); + elevatedTaskService.Verify(x => x.RemoveAutostartTaskAsync(), Times.Once); + } + + private static AutostartService CreateService( + Mock? elevationService = null, + Mock? elevatedTaskService = null) + { + var elevation = elevationService ?? new Mock(MockBehavior.Loose); + var elevatedTask = elevatedTaskService ?? new Mock(MockBehavior.Loose); + elevatedTask.Setup(x => x.IsAutostartTaskRegisteredAsync()).ReturnsAsync(false); + + return new AutostartService(NullLogger.Instance, elevation.Object, elevatedTask.Object); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/BaseViewModelStatusTests.cs b/Tests/ThreadPilot.Core.Tests/BaseViewModelStatusTests.cs index cc923af..b60a09f 100644 --- a/Tests/ThreadPilot.Core.Tests/BaseViewModelStatusTests.cs +++ b/Tests/ThreadPilot.Core.Tests/BaseViewModelStatusTests.cs @@ -1,32 +1,32 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.ViewModels; - - public sealed class BaseViewModelStatusTests - { - [Fact] - public void ClearStatus_DoesNotClearCriticalStatus() - { - var viewModel = new TestViewModel(); - - viewModel.SetCritical("Realtime priority is blocked."); - viewModel.Clear(); - - Assert.Equal("Realtime priority is blocked.", viewModel.StatusMessage); - Assert.False(viewModel.IsBusy); - } - - private sealed class TestViewModel : BaseViewModel - { - public TestViewModel() - : base(NullLogger.Instance) - { - } - - public void SetCritical(string message) => this.SetCriticalStatus(message); - - public void Clear() => this.ClearStatus(); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.ViewModels; + + public sealed class BaseViewModelStatusTests + { + [Fact] + public void ClearStatus_DoesNotClearCriticalStatus() + { + var viewModel = new TestViewModel(); + + viewModel.SetCritical("Realtime priority is blocked."); + viewModel.Clear(); + + Assert.Equal("Realtime priority is blocked.", viewModel.StatusMessage); + Assert.False(viewModel.IsBusy); + } + + private sealed class TestViewModel : BaseViewModel + { + public TestViewModel() + : base(NullLogger.Instance) + { + } + + public void SetCritical(string message) => this.SetCriticalStatus(message); + + public void Clear() => this.ClearStatus(); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/CoreMaskServiceTests.cs b/Tests/ThreadPilot.Core.Tests/CoreMaskServiceTests.cs index 94fa0dc..7324bb0 100644 --- a/Tests/ThreadPilot.Core.Tests/CoreMaskServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/CoreMaskServiceTests.cs @@ -1,225 +1,225 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Text.Json; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class CoreMaskServiceTests - { - private static readonly JsonSerializerOptions JsonOptions = new() - { - WriteIndented = true, - }; - - [Fact] - public async Task InitializeAsync_WhenNoMaskFile_CreatesAllCoresAndNoCoreZero() - { - var masksFilePath = CreateTempMasksPath(); - var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); - - await service.InitializeAsync(); - - Assert.Contains(service.AvailableMasks, mask => mask.Name == "All Cores"); - var noCoreZero = Assert.Single(service.AvailableMasks, mask => mask.Name == "No Core 0"); - Assert.Equal(new[] { false, true, true, true }, noCoreZero.BoolMask); - } - - [Fact] - public async Task InitializeAsync_WithSmtTopology_CreatesAllNoSmt() - { - var masksFilePath = CreateTempMasksPath(); - var service = CreateService(CreateAmdSmtTopology(physicalCoreCount: 8, threadsPerCore: 2), masksFilePath); - - await service.InitializeAsync(); - - var allNoSmt = Assert.Single(service.AvailableMasks, mask => mask.Name == "All no SMT"); - Assert.Equal(16, allNoSmt.BoolMask.Count); - Assert.Equal(8, allNoSmt.SelectedCoreCount); - Assert.Equal( - Enumerable.Range(0, 16).Select(index => index % 2 == 0), - allNoSmt.BoolMask); - } - - [Fact] - public async Task InitializeAsync_WhenExistingFileHasOnlyAllCores_BackfillsMissingBuiltIns() - { - var masksFilePath = CreateTempMasksPath(); - var existingId = "existing-all-cores"; - await WriteMasksAsync( - masksFilePath, - CreateStoredMask(existingId, "All Cores", [true, true, true, true], isDefault: true)); - var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); - - await service.InitializeAsync(); - - Assert.Equal(existingId, Assert.Single(service.AvailableMasks, mask => mask.Name == "All Cores").Id); - Assert.Contains(service.AvailableMasks, mask => mask.Name == "No Core 0"); - } - - [Fact] - public async Task InitializeAsync_BackfillDoesNotDuplicateBuiltIns() - { - var masksFilePath = CreateTempMasksPath(); - await WriteMasksAsync( - masksFilePath, - CreateStoredMask("all-cores", "All Cores", [true, true, true, true], isDefault: true), - CreateStoredMask("no-core-zero", "No Core 0", [false, true, true, true])); - var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); - - await service.InitializeAsync(); - await service.InitializeAsync(); - - Assert.Equal(1, service.AvailableMasks.Count(mask => mask.Name == "All Cores")); - Assert.Equal(1, service.AvailableMasks.Count(mask => mask.Name == "No Core 0")); - } - - [Fact] - public async Task InitializeAsync_BackfillPreservesUserMasks() - { - var masksFilePath = CreateTempMasksPath(); - await WriteMasksAsync( - masksFilePath, - CreateStoredMask("all-cores", "All Cores", [true, true, true, true], isDefault: true), - CreateStoredMask("custom-mask", "My Game Mask", [false, true, true, false])); - var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); - - await service.InitializeAsync(); - - var customMask = Assert.Single(service.AvailableMasks, mask => mask.Id == "custom-mask"); - Assert.Equal("My Game Mask", customMask.Name); - Assert.Equal(new[] { false, true, true, false }, customMask.BoolMask); - Assert.Contains(service.AvailableMasks, mask => mask.Name == "No Core 0"); - } - - [Fact] - public async Task TopologyDetected_AfterInitialLoad_BackfillsSmtDefaults() - { - var masksFilePath = CreateTempMasksPath(); - await WriteMasksAsync( - masksFilePath, - CreateStoredMask("all-cores", "All Cores", [true, true, true, true], isDefault: true)); - CpuTopologyModel? currentTopology = null; - var topologyService = new Mock(MockBehavior.Strict); - topologyService.SetupGet(service => service.CurrentTopology).Returns(() => currentTopology); - var service = new CoreMaskService( - NullLogger.Instance, - topologyService.Object, - Mock.Of(), - masksFilePath: masksFilePath); - - await service.InitializeAsync(); - Assert.DoesNotContain(service.AvailableMasks, mask => mask.Name == "All no SMT"); - - currentTopology = CreateAmdSmtTopology(physicalCoreCount: 8, threadsPerCore: 2); - topologyService.Raise( - mock => mock.TopologyDetected += null, - new CpuTopologyDetectedEventArgs(currentTopology, successful: true)); - - Assert.True(SpinWait.SpinUntil( - () => service.AvailableMasks.Any(mask => mask.Name == "All no SMT"), - TimeSpan.FromSeconds(3))); - Assert.Equal(1, service.AvailableMasks.Count(mask => mask.Name == "All no SMT")); - } - - private static CoreMaskService CreateService(CpuTopologyModel topology, string masksFilePath) - { - var topologyService = new Mock(MockBehavior.Strict); - topologyService.SetupGet(service => service.CurrentTopology).Returns(topology); - - return new CoreMaskService( - NullLogger.Instance, - topologyService.Object, - Mock.Of(), - masksFilePath: masksFilePath); - } - - private static CpuTopologyModel CreateTopology(int logicalCoreCount) - { - var topology = new CpuTopologyModel - { - CpuBrand = "Generic CPU", - TopologyDetectionSuccessful = true, - }; - - for (var index = 0; index < logicalCoreCount; index++) - { - topology.LogicalCores.Add(new CpuCoreModel - { - LogicalCoreId = index, - PhysicalCoreId = index, - SocketId = 0, - LogicalProcessorName = $"CPU{index}", - }); - } - - return topology; - } - - private static CpuTopologyModel CreateAmdSmtTopology(int physicalCoreCount, int threadsPerCore) - { - var topology = new CpuTopologyModel - { - CpuBrand = "AMD Ryzen", - TopologyDetectionSuccessful = true, - }; - - for (var physicalCore = 0; physicalCore < physicalCoreCount; physicalCore++) - { - var firstLogicalCore = physicalCore * threadsPerCore; - for (var thread = 0; thread < threadsPerCore; thread++) - { - var logicalCore = firstLogicalCore + thread; - topology.LogicalCores.Add(new CpuCoreModel - { - LogicalCoreId = logicalCore, - PhysicalCoreId = physicalCore, - SocketId = 0, - CoreType = CpuCoreType.Zen4, - IsHyperThreaded = threadsPerCore > 1, - HyperThreadSibling = threadsPerCore > 1 - ? firstLogicalCore + ((thread + 1) % threadsPerCore) - : null, - LogicalProcessorName = $"CPU{physicalCore}_T{thread}", - }); - } - } - - return topology; - } - - private static string CreateTempMasksPath() - { - var directory = Path.Combine(Path.GetTempPath(), "ThreadPilot-CoreMaskServiceTests", Guid.NewGuid().ToString("N")); - Directory.CreateDirectory(directory); - return Path.Combine(directory, "core_masks.json"); - } - - private static object CreateStoredMask( - string id, - string name, - IEnumerable boolMask, - bool isDefault = false) => - new - { - id, - name, - description = $"{name} description", - boolMask = boolMask.ToList(), - profileSchemaVersion = CpuAffinityProfileSchemaVersions.Legacy, - cpuSelection = (CpuSelection?)null, - cpuSelectionMigration = (CpuSelectionMigrationMetadata?)null, - isDefault, - isEnabled = true, - createdAt = DateTime.UtcNow.AddDays(-1), - updatedAt = DateTime.UtcNow.AddDays(-1), - }; - - private static Task WriteMasksAsync(string masksFilePath, params object[] masks) - { - var json = JsonSerializer.Serialize(masks, JsonOptions); - return File.WriteAllTextAsync(masksFilePath, json); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Text.Json; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class CoreMaskServiceTests + { + private static readonly JsonSerializerOptions JsonOptions = new() + { + WriteIndented = true, + }; + + [Fact] + public async Task InitializeAsync_WhenNoMaskFile_CreatesAllCoresAndNoCoreZero() + { + var masksFilePath = CreateTempMasksPath(); + var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); + + await service.InitializeAsync(); + + Assert.Contains(service.AvailableMasks, mask => mask.Name == "All Cores"); + var noCoreZero = Assert.Single(service.AvailableMasks, mask => mask.Name == "No Core 0"); + Assert.Equal(new[] { false, true, true, true }, noCoreZero.BoolMask); + } + + [Fact] + public async Task InitializeAsync_WithSmtTopology_CreatesAllNoSmt() + { + var masksFilePath = CreateTempMasksPath(); + var service = CreateService(CreateAmdSmtTopology(physicalCoreCount: 8, threadsPerCore: 2), masksFilePath); + + await service.InitializeAsync(); + + var allNoSmt = Assert.Single(service.AvailableMasks, mask => mask.Name == "All no SMT"); + Assert.Equal(16, allNoSmt.BoolMask.Count); + Assert.Equal(8, allNoSmt.SelectedCoreCount); + Assert.Equal( + Enumerable.Range(0, 16).Select(index => index % 2 == 0), + allNoSmt.BoolMask); + } + + [Fact] + public async Task InitializeAsync_WhenExistingFileHasOnlyAllCores_BackfillsMissingBuiltIns() + { + var masksFilePath = CreateTempMasksPath(); + var existingId = "existing-all-cores"; + await WriteMasksAsync( + masksFilePath, + CreateStoredMask(existingId, "All Cores", [true, true, true, true], isDefault: true)); + var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); + + await service.InitializeAsync(); + + Assert.Equal(existingId, Assert.Single(service.AvailableMasks, mask => mask.Name == "All Cores").Id); + Assert.Contains(service.AvailableMasks, mask => mask.Name == "No Core 0"); + } + + [Fact] + public async Task InitializeAsync_BackfillDoesNotDuplicateBuiltIns() + { + var masksFilePath = CreateTempMasksPath(); + await WriteMasksAsync( + masksFilePath, + CreateStoredMask("all-cores", "All Cores", [true, true, true, true], isDefault: true), + CreateStoredMask("no-core-zero", "No Core 0", [false, true, true, true])); + var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); + + await service.InitializeAsync(); + await service.InitializeAsync(); + + Assert.Equal(1, service.AvailableMasks.Count(mask => mask.Name == "All Cores")); + Assert.Equal(1, service.AvailableMasks.Count(mask => mask.Name == "No Core 0")); + } + + [Fact] + public async Task InitializeAsync_BackfillPreservesUserMasks() + { + var masksFilePath = CreateTempMasksPath(); + await WriteMasksAsync( + masksFilePath, + CreateStoredMask("all-cores", "All Cores", [true, true, true, true], isDefault: true), + CreateStoredMask("custom-mask", "My Game Mask", [false, true, true, false])); + var service = CreateService(CreateTopology(logicalCoreCount: 4), masksFilePath); + + await service.InitializeAsync(); + + var customMask = Assert.Single(service.AvailableMasks, mask => mask.Id == "custom-mask"); + Assert.Equal("My Game Mask", customMask.Name); + Assert.Equal(new[] { false, true, true, false }, customMask.BoolMask); + Assert.Contains(service.AvailableMasks, mask => mask.Name == "No Core 0"); + } + + [Fact] + public async Task TopologyDetected_AfterInitialLoad_BackfillsSmtDefaults() + { + var masksFilePath = CreateTempMasksPath(); + await WriteMasksAsync( + masksFilePath, + CreateStoredMask("all-cores", "All Cores", [true, true, true, true], isDefault: true)); + CpuTopologyModel? currentTopology = null; + var topologyService = new Mock(MockBehavior.Strict); + topologyService.SetupGet(service => service.CurrentTopology).Returns(() => currentTopology); + var service = new CoreMaskService( + NullLogger.Instance, + topologyService.Object, + Mock.Of(), + masksFilePath: masksFilePath); + + await service.InitializeAsync(); + Assert.DoesNotContain(service.AvailableMasks, mask => mask.Name == "All no SMT"); + + currentTopology = CreateAmdSmtTopology(physicalCoreCount: 8, threadsPerCore: 2); + topologyService.Raise( + mock => mock.TopologyDetected += null, + new CpuTopologyDetectedEventArgs(currentTopology, successful: true)); + + Assert.True(SpinWait.SpinUntil( + () => service.AvailableMasks.Any(mask => mask.Name == "All no SMT"), + TimeSpan.FromSeconds(3))); + Assert.Equal(1, service.AvailableMasks.Count(mask => mask.Name == "All no SMT")); + } + + private static CoreMaskService CreateService(CpuTopologyModel topology, string masksFilePath) + { + var topologyService = new Mock(MockBehavior.Strict); + topologyService.SetupGet(service => service.CurrentTopology).Returns(topology); + + return new CoreMaskService( + NullLogger.Instance, + topologyService.Object, + Mock.Of(), + masksFilePath: masksFilePath); + } + + private static CpuTopologyModel CreateTopology(int logicalCoreCount) + { + var topology = new CpuTopologyModel + { + CpuBrand = "Generic CPU", + TopologyDetectionSuccessful = true, + }; + + for (var index = 0; index < logicalCoreCount; index++) + { + topology.LogicalCores.Add(new CpuCoreModel + { + LogicalCoreId = index, + PhysicalCoreId = index, + SocketId = 0, + LogicalProcessorName = $"CPU{index}", + }); + } + + return topology; + } + + private static CpuTopologyModel CreateAmdSmtTopology(int physicalCoreCount, int threadsPerCore) + { + var topology = new CpuTopologyModel + { + CpuBrand = "AMD Ryzen", + TopologyDetectionSuccessful = true, + }; + + for (var physicalCore = 0; physicalCore < physicalCoreCount; physicalCore++) + { + var firstLogicalCore = physicalCore * threadsPerCore; + for (var thread = 0; thread < threadsPerCore; thread++) + { + var logicalCore = firstLogicalCore + thread; + topology.LogicalCores.Add(new CpuCoreModel + { + LogicalCoreId = logicalCore, + PhysicalCoreId = physicalCore, + SocketId = 0, + CoreType = CpuCoreType.Zen4, + IsHyperThreaded = threadsPerCore > 1, + HyperThreadSibling = threadsPerCore > 1 + ? firstLogicalCore + ((thread + 1) % threadsPerCore) + : null, + LogicalProcessorName = $"CPU{physicalCore}_T{thread}", + }); + } + } + + return topology; + } + + private static string CreateTempMasksPath() + { + var directory = Path.Combine(Path.GetTempPath(), "ThreadPilot-CoreMaskServiceTests", Guid.NewGuid().ToString("N")); + Directory.CreateDirectory(directory); + return Path.Combine(directory, "core_masks.json"); + } + + private static object CreateStoredMask( + string id, + string name, + IEnumerable boolMask, + bool isDefault = false) => + new + { + id, + name, + description = $"{name} description", + boolMask = boolMask.ToList(), + profileSchemaVersion = CpuAffinityProfileSchemaVersions.Legacy, + cpuSelection = (CpuSelection?)null, + cpuSelectionMigration = (CpuSelectionMigrationMetadata?)null, + isDefault, + isEnabled = true, + createdAt = DateTime.UtcNow.AddDays(-1), + updatedAt = DateTime.UtcNow.AddDays(-1), + }; + + private static Task WriteMasksAsync(string masksFilePath, params object[] masks) + { + var json = JsonSerializer.Serialize(masks, JsonOptions); + return File.WriteAllTextAsync(masksFilePath, json); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/CpuPresetGeneratorTests.cs b/Tests/ThreadPilot.Core.Tests/CpuPresetGeneratorTests.cs index 674eaf0..bc06dcf 100644 --- a/Tests/ThreadPilot.Core.Tests/CpuPresetGeneratorTests.cs +++ b/Tests/ThreadPilot.Core.Tests/CpuPresetGeneratorTests.cs @@ -1,359 +1,359 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class CpuPresetGeneratorTests - { - [Fact] - public void Generate_WithFourCoreEightThreadSmt_GeneratesSafeBasePresets() - { - var topology = CreateSmtTopology(physicalCoreCount: 4, threadsPerCore: 2); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - AssertPresetIdsContain( - presets, - "all-cores", - "all-physical-cores", - "all-except-cpu0", - "best-gaming", - "safe-compatibility"); - Assert.Equal(4, GetPreset(presets, "all-physical-cores").Selection.LogicalProcessors.Count); - AssertBestGamingSource(GetPreset(presets, "best-gaming"), "all-physical-cores"); - AssertValidPresets(presets, topology); - AssertStableIdsAndOrder(generator, topology, presets); - } - - [Fact] - public void Generate_WithEightCoreEightThreadSmtOff_KeepsBestGamingValid() - { - var topology = CreateSmtTopology(physicalCoreCount: 8, threadsPerCore: 1); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - var allCores = GetPreset(presets, "all-cores"); - var physical = presets.SingleOrDefault(preset => preset.PresetId == "all-physical-cores"); - if (physical != null) - { - AssertSameSelection(allCores, physical); - Assert.NotEqual(allCores.Reason, physical.Reason); - } - - var bestGaming = GetPreset(presets, "best-gaming"); - Assert.NotEmpty(bestGaming.Selection.LogicalProcessors); - AssertBestGamingSource(bestGaming, "all-physical-cores"); - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_WithHybridPAndECoresWithHt_GeneratesHybridPresets() - { - var topology = CreateHybridTopology(pCoreCount: 4, eCoreCount: 4, pCoreThreads: 2); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - AssertPresetIdsContain(presets, "p-cores-only", "p-cores-no-smt", "e-cores-only"); - Assert.Equal(8, GetPreset(presets, "p-cores-only").Selection.LogicalProcessors.Count); - Assert.Equal(4, GetPreset(presets, "p-cores-no-smt").Selection.LogicalProcessors.Count); - Assert.Equal(4, GetPreset(presets, "e-cores-only").Selection.LogicalProcessors.Count); - AssertBestGamingSource(GetPreset(presets, "best-gaming"), "p-cores-no-smt"); - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_WithHybridPAndECoresWithoutHt_HandlesNoSmtDuplicate() - { - var topology = CreateHybridTopology(pCoreCount: 4, eCoreCount: 4, pCoreThreads: 1); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - var pCoresOnly = GetPreset(presets, "p-cores-only"); - var pCoresNoSmt = presets.SingleOrDefault(preset => preset.PresetId == "p-cores-no-smt"); - if (pCoresNoSmt != null) - { - AssertSameSelection(pCoresOnly, pCoresNoSmt); - Assert.NotEqual(pCoresOnly.Reason, pCoresNoSmt.Reason); - } - - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_WithRyzenDualCcdSixPlusSix_GeneratesL3PhysicalPresets() - { - var topology = CreateDualCcdTopology(physicalCoresPerCcd: 6); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - AssertPresetIdsContain(presets, "l3-group-0-physical", "l3-group-1-physical"); - Assert.Equal(6, GetPreset(presets, "l3-group-0-physical").Selection.LogicalProcessors.Count); - Assert.Equal(6, GetPreset(presets, "l3-group-1-physical").Selection.LogicalProcessors.Count); - AssertBestGamingSource(GetPreset(presets, "best-gaming"), "l3-group-0-physical"); - Assert.Contains("L3", GetPreset(presets, "l3-group-0-physical").Reason, StringComparison.OrdinalIgnoreCase); - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_WithRyzenDualCcdEightPlusEight_GeneratesEightPhysicalPerL3Preset() - { - var topology = CreateDualCcdTopology(physicalCoresPerCcd: 8); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - Assert.Equal(8, GetPreset(presets, "l3-group-0-physical").Selection.LogicalProcessors.Count); - Assert.Equal(8, GetPreset(presets, "l3-group-1-physical").Selection.LogicalProcessors.Count); - AssertBestGamingSource(GetPreset(presets, "best-gaming"), "l3-group-0-physical"); - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_WithMoreThan64LogicalProcessors_UsesCpuSelectionWithoutCpu64Alias() - { - var topology = CreateSmtTopology(physicalCoreCount: 40, threadsPerCore: 2); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - var allCores = GetPreset(presets, "all-cores"); - Assert.Contains(allCores.Selection.LogicalProcessors, processor => processor.GlobalIndex == 64); - Assert.NotEqual( - allCores.Selection.LogicalProcessors.Single(processor => processor.GlobalIndex == 64), - allCores.Selection.LogicalProcessors.Single(processor => processor.GlobalIndex == 0)); - Assert.Null(CpuSelection.ToLegacyAffinityMaskOrNull(allCores.Selection)); - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_WhenGeneratedPresetWasDeleted_DoesNotRegenerateIt() - { - var topology = CreateSmtTopology(physicalCoreCount: 4, threadsPerCore: 2); - var generator = new CpuPresetGenerator(); - var options = new CpuPresetGenerationOptions - { - DeletedGeneratedPresetIds = new HashSet(StringComparer.Ordinal) - { - "best-gaming", - }, - }; - - var presets = generator.Generate(topology, options); - - Assert.DoesNotContain(presets, preset => preset.PresetId == "best-gaming"); - AssertPresetIdsContain(presets, "all-cores", "safe-compatibility"); - } - - [Fact] - public void Generate_WithoutCoreIndex_SkipsPhysicalPresets() - { - var topology = CpuTopologySnapshot.Create( - CreateProcessorRefs(8), - signature: CreateSignature(logicalProcessorCount: 8, physicalCoreCount: 0)); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - Assert.DoesNotContain(presets, preset => preset.PresetId == "all-physical-cores"); - Assert.DoesNotContain(presets, preset => preset.PresetId == "p-cores-no-smt"); - Assert.DoesNotContain(presets, preset => preset.PresetId.StartsWith("l3-group-", StringComparison.Ordinal)); - AssertPresetIdsContain(presets, "all-cores", "all-except-cpu0", "best-gaming", "safe-compatibility"); - AssertBestGamingSource(GetPreset(presets, "best-gaming"), "all-except-cpu0"); - AssertValidPresets(presets, topology); - } - - [Fact] - public void Generate_DoesNotReturnEmptySelections() - { - var topology = CreateHybridTopology(pCoreCount: 2, eCoreCount: 2, pCoreThreads: 2); - var generator = new CpuPresetGenerator(); - - var presets = generator.Generate(topology); - - Assert.All(presets, preset => Assert.NotEmpty(preset.Selection.LogicalProcessors)); - } - - private static CpuPreset GetPreset(IReadOnlyList presets, string presetId) => - presets.Single(preset => preset.PresetId == presetId); - - private static void AssertPresetIdsContain(IReadOnlyList presets, params string[] presetIds) - { - foreach (var presetId in presetIds) - { - Assert.Contains(presets, preset => preset.PresetId == presetId); - } - } - - private static void AssertSameSelection(CpuPreset expected, CpuPreset actual) => - Assert.Equal( - expected.Selection.GlobalLogicalProcessorIndexes, - actual.Selection.GlobalLogicalProcessorIndexes); - - private static void AssertBestGamingSource(CpuPreset bestGaming, string expectedSourcePresetId) - { - Assert.Equal("best-gaming", bestGaming.PresetId); - Assert.Equal(expectedSourcePresetId, bestGaming.SourcePresetId); - Assert.NotEqual(bestGaming.SourcePresetId, bestGaming.Reason); - Assert.False(string.IsNullOrWhiteSpace(bestGaming.Reason)); - } - - private static void AssertStableIdsAndOrder( - CpuPresetGenerator generator, - CpuTopologySnapshot topology, - IReadOnlyList firstRun) - { - var secondRun = generator.Generate(topology); - Assert.Equal( - firstRun.Select(preset => preset.PresetId), - secondRun.Select(preset => preset.PresetId)); - } - - private static void AssertValidPresets(IReadOnlyList presets, CpuTopologySnapshot topology) - { - Assert.NotEmpty(presets); - Assert.Equal(presets.Count, presets.Select(preset => preset.PresetId).Distinct(StringComparer.Ordinal).Count()); - - var topologyProcessors = topology.LogicalProcessors.ToHashSet(); - foreach (var preset in presets) - { - Assert.False(string.IsNullOrWhiteSpace(preset.PresetId)); - Assert.False(string.IsNullOrWhiteSpace(preset.Name)); - Assert.False(string.IsNullOrWhiteSpace(preset.Description)); - Assert.False(string.IsNullOrWhiteSpace(preset.Reason)); - Assert.True(preset.IsGenerated); - Assert.True(preset.IsUserEditable); - Assert.NotEmpty(preset.Selection.LogicalProcessors); - Assert.Equal(topology.Signature, preset.GeneratedByTopologySignature); - Assert.Equal(topology.Signature, preset.Selection.Metadata.TopologySignature); - Assert.All(preset.Selection.LogicalProcessors, processor => Assert.Contains(processor, topologyProcessors)); - } - } - - private static CpuTopologySnapshot CreateSmtTopology(int physicalCoreCount, int threadsPerCore) - { - var processors = new List(); - var coreIndexes = new Dictionary(); - var siblings = new Dictionary>(); - - for (var core = 0; core < physicalCoreCount; core++) - { - var coreProcessors = new List(); - for (var thread = 0; thread < threadsPerCore; thread++) - { - var globalIndex = (core * threadsPerCore) + thread; - var processor = CreateProcessorRef(globalIndex); - processors.Add(processor); - coreIndexes[processor] = core; - coreProcessors.Add(processor); - } - - foreach (var processor in coreProcessors) - { - siblings[processor] = coreProcessors - .Where(sibling => sibling != processor) - .Select(sibling => sibling.GlobalIndex) - .ToList(); - } - } - - return CpuTopologySnapshot.Create( - processors, - signature: CreateSignature(processors.Count, physicalCoreCount), - coreIndexes: coreIndexes, - smtSiblingGlobalIndexes: siblings); - } - - private static CpuTopologySnapshot CreateHybridTopology(int pCoreCount, int eCoreCount, int pCoreThreads) - { - var processors = new List(); - var coreIndexes = new Dictionary(); - var siblings = new Dictionary>(); - var efficiency = new Dictionary(); - - for (var core = 0; core < pCoreCount; core++) - { - var coreProcessors = new List(); - for (var thread = 0; thread < pCoreThreads; thread++) - { - var processor = CreateProcessorRef(processors.Count); - processors.Add(processor); - coreIndexes[processor] = core; - efficiency[processor] = 2; - coreProcessors.Add(processor); - } - - foreach (var processor in coreProcessors) - { - siblings[processor] = coreProcessors - .Where(sibling => sibling != processor) - .Select(sibling => sibling.GlobalIndex) - .ToList(); - } - } - - for (var core = 0; core < eCoreCount; core++) - { - var processor = CreateProcessorRef(processors.Count); - processors.Add(processor); - coreIndexes[processor] = pCoreCount + core; - efficiency[processor] = 0; - siblings[processor] = []; - } - - return CpuTopologySnapshot.Create( - processors, - efficiencyClasses: efficiency, - signature: CreateSignature(processors.Count, pCoreCount + eCoreCount), - coreIndexes: coreIndexes, - smtSiblingGlobalIndexes: siblings); - } - - private static CpuTopologySnapshot CreateDualCcdTopology(int physicalCoresPerCcd) - { - var processorCount = physicalCoresPerCcd * 2; - var processors = CreateProcessorRefs(processorCount).ToList(); - var coreIndexes = processors.ToDictionary(processor => processor, processor => processor.GlobalIndex); - var siblings = processors.ToDictionary( - processor => processor, - _ => (IReadOnlyList)[]); - var l3Indexes = processors.ToDictionary( - processor => processor, - processor => processor.GlobalIndex < physicalCoresPerCcd ? 0 : 1); - - return CpuTopologySnapshot.Create( - processors, - signature: CreateSignature( - logicalProcessorCount: processorCount, - physicalCoreCount: processorCount, - lastLevelCacheGroupCount: 2), - coreIndexes: coreIndexes, - lastLevelCacheIndexes: l3Indexes, - smtSiblingGlobalIndexes: siblings); - } - - private static IEnumerable CreateProcessorRefs(int count) => - Enumerable.Range(0, count).Select(CreateProcessorRef); - - private static ProcessorRef CreateProcessorRef(int globalIndex) => - new((ushort)(globalIndex / 64), (byte)(globalIndex % 64), globalIndex); - - private static CpuTopologySignature CreateSignature( - int logicalProcessorCount, - int physicalCoreCount, - int lastLevelCacheGroupCount = 0) => - new() - { - CpuBrand = "Synthetic CPU", - LogicalProcessorCount = logicalProcessorCount, - PhysicalCoreCount = physicalCoreCount, - ProcessorGroupCount = Math.Max(1, (logicalProcessorCount + 63) / 64), - LastLevelCacheGroupCount = lastLevelCacheGroupCount, - Source = "Test", - }; - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class CpuPresetGeneratorTests + { + [Fact] + public void Generate_WithFourCoreEightThreadSmt_GeneratesSafeBasePresets() + { + var topology = CreateSmtTopology(physicalCoreCount: 4, threadsPerCore: 2); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + AssertPresetIdsContain( + presets, + "all-cores", + "all-physical-cores", + "all-except-cpu0", + "best-gaming", + "safe-compatibility"); + Assert.Equal(4, GetPreset(presets, "all-physical-cores").Selection.LogicalProcessors.Count); + AssertBestGamingSource(GetPreset(presets, "best-gaming"), "all-physical-cores"); + AssertValidPresets(presets, topology); + AssertStableIdsAndOrder(generator, topology, presets); + } + + [Fact] + public void Generate_WithEightCoreEightThreadSmtOff_KeepsBestGamingValid() + { + var topology = CreateSmtTopology(physicalCoreCount: 8, threadsPerCore: 1); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + var allCores = GetPreset(presets, "all-cores"); + var physical = presets.SingleOrDefault(preset => preset.PresetId == "all-physical-cores"); + if (physical != null) + { + AssertSameSelection(allCores, physical); + Assert.NotEqual(allCores.Reason, physical.Reason); + } + + var bestGaming = GetPreset(presets, "best-gaming"); + Assert.NotEmpty(bestGaming.Selection.LogicalProcessors); + AssertBestGamingSource(bestGaming, "all-physical-cores"); + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_WithHybridPAndECoresWithHt_GeneratesHybridPresets() + { + var topology = CreateHybridTopology(pCoreCount: 4, eCoreCount: 4, pCoreThreads: 2); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + AssertPresetIdsContain(presets, "p-cores-only", "p-cores-no-smt", "e-cores-only"); + Assert.Equal(8, GetPreset(presets, "p-cores-only").Selection.LogicalProcessors.Count); + Assert.Equal(4, GetPreset(presets, "p-cores-no-smt").Selection.LogicalProcessors.Count); + Assert.Equal(4, GetPreset(presets, "e-cores-only").Selection.LogicalProcessors.Count); + AssertBestGamingSource(GetPreset(presets, "best-gaming"), "p-cores-no-smt"); + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_WithHybridPAndECoresWithoutHt_HandlesNoSmtDuplicate() + { + var topology = CreateHybridTopology(pCoreCount: 4, eCoreCount: 4, pCoreThreads: 1); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + var pCoresOnly = GetPreset(presets, "p-cores-only"); + var pCoresNoSmt = presets.SingleOrDefault(preset => preset.PresetId == "p-cores-no-smt"); + if (pCoresNoSmt != null) + { + AssertSameSelection(pCoresOnly, pCoresNoSmt); + Assert.NotEqual(pCoresOnly.Reason, pCoresNoSmt.Reason); + } + + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_WithRyzenDualCcdSixPlusSix_GeneratesL3PhysicalPresets() + { + var topology = CreateDualCcdTopology(physicalCoresPerCcd: 6); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + AssertPresetIdsContain(presets, "l3-group-0-physical", "l3-group-1-physical"); + Assert.Equal(6, GetPreset(presets, "l3-group-0-physical").Selection.LogicalProcessors.Count); + Assert.Equal(6, GetPreset(presets, "l3-group-1-physical").Selection.LogicalProcessors.Count); + AssertBestGamingSource(GetPreset(presets, "best-gaming"), "l3-group-0-physical"); + Assert.Contains("L3", GetPreset(presets, "l3-group-0-physical").Reason, StringComparison.OrdinalIgnoreCase); + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_WithRyzenDualCcdEightPlusEight_GeneratesEightPhysicalPerL3Preset() + { + var topology = CreateDualCcdTopology(physicalCoresPerCcd: 8); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + Assert.Equal(8, GetPreset(presets, "l3-group-0-physical").Selection.LogicalProcessors.Count); + Assert.Equal(8, GetPreset(presets, "l3-group-1-physical").Selection.LogicalProcessors.Count); + AssertBestGamingSource(GetPreset(presets, "best-gaming"), "l3-group-0-physical"); + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_WithMoreThan64LogicalProcessors_UsesCpuSelectionWithoutCpu64Alias() + { + var topology = CreateSmtTopology(physicalCoreCount: 40, threadsPerCore: 2); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + var allCores = GetPreset(presets, "all-cores"); + Assert.Contains(allCores.Selection.LogicalProcessors, processor => processor.GlobalIndex == 64); + Assert.NotEqual( + allCores.Selection.LogicalProcessors.Single(processor => processor.GlobalIndex == 64), + allCores.Selection.LogicalProcessors.Single(processor => processor.GlobalIndex == 0)); + Assert.Null(CpuSelection.ToLegacyAffinityMaskOrNull(allCores.Selection)); + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_WhenGeneratedPresetWasDeleted_DoesNotRegenerateIt() + { + var topology = CreateSmtTopology(physicalCoreCount: 4, threadsPerCore: 2); + var generator = new CpuPresetGenerator(); + var options = new CpuPresetGenerationOptions + { + DeletedGeneratedPresetIds = new HashSet(StringComparer.Ordinal) + { + "best-gaming", + }, + }; + + var presets = generator.Generate(topology, options); + + Assert.DoesNotContain(presets, preset => preset.PresetId == "best-gaming"); + AssertPresetIdsContain(presets, "all-cores", "safe-compatibility"); + } + + [Fact] + public void Generate_WithoutCoreIndex_SkipsPhysicalPresets() + { + var topology = CpuTopologySnapshot.Create( + CreateProcessorRefs(8), + signature: CreateSignature(logicalProcessorCount: 8, physicalCoreCount: 0)); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + Assert.DoesNotContain(presets, preset => preset.PresetId == "all-physical-cores"); + Assert.DoesNotContain(presets, preset => preset.PresetId == "p-cores-no-smt"); + Assert.DoesNotContain(presets, preset => preset.PresetId.StartsWith("l3-group-", StringComparison.Ordinal)); + AssertPresetIdsContain(presets, "all-cores", "all-except-cpu0", "best-gaming", "safe-compatibility"); + AssertBestGamingSource(GetPreset(presets, "best-gaming"), "all-except-cpu0"); + AssertValidPresets(presets, topology); + } + + [Fact] + public void Generate_DoesNotReturnEmptySelections() + { + var topology = CreateHybridTopology(pCoreCount: 2, eCoreCount: 2, pCoreThreads: 2); + var generator = new CpuPresetGenerator(); + + var presets = generator.Generate(topology); + + Assert.All(presets, preset => Assert.NotEmpty(preset.Selection.LogicalProcessors)); + } + + private static CpuPreset GetPreset(IReadOnlyList presets, string presetId) => + presets.Single(preset => preset.PresetId == presetId); + + private static void AssertPresetIdsContain(IReadOnlyList presets, params string[] presetIds) + { + foreach (var presetId in presetIds) + { + Assert.Contains(presets, preset => preset.PresetId == presetId); + } + } + + private static void AssertSameSelection(CpuPreset expected, CpuPreset actual) => + Assert.Equal( + expected.Selection.GlobalLogicalProcessorIndexes, + actual.Selection.GlobalLogicalProcessorIndexes); + + private static void AssertBestGamingSource(CpuPreset bestGaming, string expectedSourcePresetId) + { + Assert.Equal("best-gaming", bestGaming.PresetId); + Assert.Equal(expectedSourcePresetId, bestGaming.SourcePresetId); + Assert.NotEqual(bestGaming.SourcePresetId, bestGaming.Reason); + Assert.False(string.IsNullOrWhiteSpace(bestGaming.Reason)); + } + + private static void AssertStableIdsAndOrder( + CpuPresetGenerator generator, + CpuTopologySnapshot topology, + IReadOnlyList firstRun) + { + var secondRun = generator.Generate(topology); + Assert.Equal( + firstRun.Select(preset => preset.PresetId), + secondRun.Select(preset => preset.PresetId)); + } + + private static void AssertValidPresets(IReadOnlyList presets, CpuTopologySnapshot topology) + { + Assert.NotEmpty(presets); + Assert.Equal(presets.Count, presets.Select(preset => preset.PresetId).Distinct(StringComparer.Ordinal).Count()); + + var topologyProcessors = topology.LogicalProcessors.ToHashSet(); + foreach (var preset in presets) + { + Assert.False(string.IsNullOrWhiteSpace(preset.PresetId)); + Assert.False(string.IsNullOrWhiteSpace(preset.Name)); + Assert.False(string.IsNullOrWhiteSpace(preset.Description)); + Assert.False(string.IsNullOrWhiteSpace(preset.Reason)); + Assert.True(preset.IsGenerated); + Assert.True(preset.IsUserEditable); + Assert.NotEmpty(preset.Selection.LogicalProcessors); + Assert.Equal(topology.Signature, preset.GeneratedByTopologySignature); + Assert.Equal(topology.Signature, preset.Selection.Metadata.TopologySignature); + Assert.All(preset.Selection.LogicalProcessors, processor => Assert.Contains(processor, topologyProcessors)); + } + } + + private static CpuTopologySnapshot CreateSmtTopology(int physicalCoreCount, int threadsPerCore) + { + var processors = new List(); + var coreIndexes = new Dictionary(); + var siblings = new Dictionary>(); + + for (var core = 0; core < physicalCoreCount; core++) + { + var coreProcessors = new List(); + for (var thread = 0; thread < threadsPerCore; thread++) + { + var globalIndex = (core * threadsPerCore) + thread; + var processor = CreateProcessorRef(globalIndex); + processors.Add(processor); + coreIndexes[processor] = core; + coreProcessors.Add(processor); + } + + foreach (var processor in coreProcessors) + { + siblings[processor] = coreProcessors + .Where(sibling => sibling != processor) + .Select(sibling => sibling.GlobalIndex) + .ToList(); + } + } + + return CpuTopologySnapshot.Create( + processors, + signature: CreateSignature(processors.Count, physicalCoreCount), + coreIndexes: coreIndexes, + smtSiblingGlobalIndexes: siblings); + } + + private static CpuTopologySnapshot CreateHybridTopology(int pCoreCount, int eCoreCount, int pCoreThreads) + { + var processors = new List(); + var coreIndexes = new Dictionary(); + var siblings = new Dictionary>(); + var efficiency = new Dictionary(); + + for (var core = 0; core < pCoreCount; core++) + { + var coreProcessors = new List(); + for (var thread = 0; thread < pCoreThreads; thread++) + { + var processor = CreateProcessorRef(processors.Count); + processors.Add(processor); + coreIndexes[processor] = core; + efficiency[processor] = 2; + coreProcessors.Add(processor); + } + + foreach (var processor in coreProcessors) + { + siblings[processor] = coreProcessors + .Where(sibling => sibling != processor) + .Select(sibling => sibling.GlobalIndex) + .ToList(); + } + } + + for (var core = 0; core < eCoreCount; core++) + { + var processor = CreateProcessorRef(processors.Count); + processors.Add(processor); + coreIndexes[processor] = pCoreCount + core; + efficiency[processor] = 0; + siblings[processor] = []; + } + + return CpuTopologySnapshot.Create( + processors, + efficiencyClasses: efficiency, + signature: CreateSignature(processors.Count, pCoreCount + eCoreCount), + coreIndexes: coreIndexes, + smtSiblingGlobalIndexes: siblings); + } + + private static CpuTopologySnapshot CreateDualCcdTopology(int physicalCoresPerCcd) + { + var processorCount = physicalCoresPerCcd * 2; + var processors = CreateProcessorRefs(processorCount).ToList(); + var coreIndexes = processors.ToDictionary(processor => processor, processor => processor.GlobalIndex); + var siblings = processors.ToDictionary( + processor => processor, + _ => (IReadOnlyList)[]); + var l3Indexes = processors.ToDictionary( + processor => processor, + processor => processor.GlobalIndex < physicalCoresPerCcd ? 0 : 1); + + return CpuTopologySnapshot.Create( + processors, + signature: CreateSignature( + logicalProcessorCount: processorCount, + physicalCoreCount: processorCount, + lastLevelCacheGroupCount: 2), + coreIndexes: coreIndexes, + lastLevelCacheIndexes: l3Indexes, + smtSiblingGlobalIndexes: siblings); + } + + private static IEnumerable CreateProcessorRefs(int count) => + Enumerable.Range(0, count).Select(CreateProcessorRef); + + private static ProcessorRef CreateProcessorRef(int globalIndex) => + new((ushort)(globalIndex / 64), (byte)(globalIndex % 64), globalIndex); + + private static CpuTopologySignature CreateSignature( + int logicalProcessorCount, + int physicalCoreCount, + int lastLevelCacheGroupCount = 0) => + new() + { + CpuBrand = "Synthetic CPU", + LogicalProcessorCount = logicalProcessorCount, + PhysicalCoreCount = physicalCoreCount, + ProcessorGroupCount = Math.Max(1, (logicalProcessorCount + 63) / 64), + LastLevelCacheGroupCount = lastLevelCacheGroupCount, + Source = "Test", + }; + } +} diff --git a/Tests/ThreadPilot.Core.Tests/CpuSelectionMigrationServiceTests.cs b/Tests/ThreadPilot.Core.Tests/CpuSelectionMigrationServiceTests.cs index fef721d..25188de 100644 --- a/Tests/ThreadPilot.Core.Tests/CpuSelectionMigrationServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/CpuSelectionMigrationServiceTests.cs @@ -1,261 +1,261 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Diagnostics; - using System.Text.Json; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class CpuSelectionMigrationServiceTests - { - private static readonly JsonSerializerOptions JsonOptions = new() - { - PropertyNameCaseInsensitive = true, - ReadCommentHandling = JsonCommentHandling.Skip, - AllowTrailingCommas = true, - }; - - [Fact] - public void MigrateFromLegacyAffinityMask_WithSingleGroupBelow64_SelectsExpectedProcessors() - { - var topology = CreateTopology(8); - var service = new CpuSelectionMigrationService(); - - var result = service.MigrateFromLegacyAffinityMask(0b0101, topology); - - Assert.Equal([0, 2], result.Selection.GlobalLogicalProcessorIndexes); - Assert.True(result.Metadata.CreatedFromLegacyAffinityMask); - Assert.False(result.Metadata.ReviewRequired); - Assert.Equal(0b0101, service.BuildLegacyAffinityMaskIfRepresentable(result.Selection)); - } - - [Fact] - public void MigrateFromLegacyAffinityMask_OnTopologyAbove64_DoesNotAliasCpu64ToCpu0() - { - var topology = CreateTopology(65); - var service = new CpuSelectionMigrationService(); - - var result = service.MigrateFromLegacyAffinityMask(1, topology); - var cpu64Selection = CpuSelection.FromProcessors( - [topology.LogicalProcessors.Single(processor => processor.GlobalIndex == 64)], - topology); - - Assert.Equal([0], result.Selection.GlobalLogicalProcessorIndexes); - Assert.DoesNotContain(result.Selection.LogicalProcessors, processor => processor.GlobalIndex == 64); - Assert.Null(service.BuildLegacyAffinityMaskIfRepresentable(cpu64Selection)); - } - - [Fact] - public void BuildLegacyAffinityMaskIfRepresentable_WithGroupOneCpuZero_ReturnsNull() - { - var group1Cpu0 = new ProcessorRef(1, 0, 64); - var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0), group1Cpu0]); - var selection = CpuSelection.FromProcessors([group1Cpu0], topology); - var service = new CpuSelectionMigrationService(); - - var legacyMask = service.BuildLegacyAffinityMaskIfRepresentable(selection); - - Assert.Null(legacyMask); - } - - [Fact] - public void MigrateFromLegacyCoreMask_WhenShorterThanTopology_SelectsPresentIndexesAndRequiresReview() - { - var topology = CreateTopology(4); - var service = new CpuSelectionMigrationService(); - - var result = service.MigrateFromLegacyCoreMask([true, false], topology); - - Assert.Equal([0], result.Selection.GlobalLogicalProcessorIndexes); - Assert.True(result.Metadata.CreatedFromLegacyCoreMask); - Assert.True(result.Metadata.ReviewRequired); - } - - [Fact] - public void MigrateFromLegacyCoreMask_WhenLongerThanTopology_IgnoresExtrasAndRequiresReview() - { - var topology = CreateTopology(2); - var service = new CpuSelectionMigrationService(); - - var result = service.MigrateFromLegacyCoreMask([false, true, true, true], topology); - - Assert.Equal([1], result.Selection.GlobalLogicalProcessorIndexes); - Assert.True(result.Metadata.ReviewRequired); - } - - [Fact] - public void MigrateProcessProfile_WithExistingCpuSelection_DoesNotOverwriteFromLegacyMask() - { - var topology = CreateTopology(4); - var existingSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[1]], topology); - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.High, - ProcessorAffinity = 0b0101, - CpuSelection = existingSelection, - }; - var service = new CpuSelectionMigrationService(); - - var migrated = service.MigrateProcessProfile(profile, topology); - - Assert.Equal([1], migrated.CpuSelection!.GlobalLogicalProcessorIndexes); - Assert.Equal(0b0101, migrated.ProcessorAffinity); - } - - [Fact] - public void ShouldRequireReview_TracksTopologySignatureChanges() - { - var topology = CreateTopology(4); - var changedTopology = CreateTopology(6); - var selection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology); - var service = new CpuSelectionMigrationService(); - - Assert.False(service.ShouldRequireReview(selection, topology.Signature, topology)); - Assert.True(service.ShouldRequireReview(selection, topology.Signature, changedTopology)); - } - - [Fact] - public void PrepareProcessProfileForSave_WithSingleGroupBelow64_SavesLegacyMask() - { - var topology = CreateTopology(4); - var selection = CpuSelection.FromProcessors([topology.LogicalProcessors[0], topology.LogicalProcessors[2]], topology); - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 0, - CpuSelection = selection, - }; - var service = new CpuSelectionMigrationService(); - - var prepared = service.PrepareProcessProfileForSave(profile, topology); - - Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, prepared.ProfileSchemaVersion); - Assert.Equal(0b0101, prepared.ProcessorAffinity); - Assert.NotNull(prepared.CpuSelection); - } - - [Fact] - public void PrepareProcessProfileForSave_WithCpu64_DoesNotProduceLegacyMask() - { - var topology = CreateTopology(65); - var selection = CpuSelection.FromProcessors([topology.LogicalProcessors[64]], topology); - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 0b11, - CpuSelection = selection, - }; - var service = new CpuSelectionMigrationService(); - - var prepared = service.PrepareProcessProfileForSave(profile, topology); - - Assert.Equal(0b11, prepared.ProcessorAffinity); - Assert.Null(service.BuildLegacyAffinityMaskIfRepresentable(prepared.CpuSelection!)); - } - - [Fact] - public void LegacyProcessProfileWithoutSchemaVersion_DeserializesAsVersionOne() - { - const string json = """ - { - "processName": "game.exe", - "priority": 2, - "processorAffinity": 5 - } - """; - - var profile = JsonSerializer.Deserialize(json, JsonOptions); - - Assert.NotNull(profile); - Assert.Equal(CpuAffinityProfileSchemaVersions.Legacy, profile.ProfileSchemaVersion); - Assert.Equal(5, profile.ProcessorAffinity); - } - - [Fact] - public void ProcessProfileWithCpuSelection_DeserializesAsVersionTwo() - { - var topology = CreateTopology(2); - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.High, - ProcessorAffinity = 1, - ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, - CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology), - }; - - var json = JsonSerializer.Serialize(profile); - var deserialized = JsonSerializer.Deserialize(json, JsonOptions); - - Assert.NotNull(deserialized); - Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, deserialized.ProfileSchemaVersion); - Assert.NotNull(deserialized.CpuSelection); - Assert.Equal([0], deserialized.CpuSelection!.GlobalLogicalProcessorIndexes); - } - - [Fact] - public void LegacyCoreMaskWithoutSchemaVersion_DeserializesAsVersionOne() - { - const string json = """ - { - "id": "mask-1", - "name": "Legacy mask", - "description": "legacy", - "boolMask": [true, false, true], - "isDefault": false, - "isEnabled": true - } - """; - - var mask = JsonSerializer.Deserialize(json, JsonOptions); - - Assert.NotNull(mask); - Assert.Equal(CpuAffinityProfileSchemaVersions.Legacy, mask.ProfileSchemaVersion); - Assert.Equal([true, false, true], mask.BoolMask.ToArray()); - } - - [Fact] - public void CoreMaskWithCpuSelection_DeserializesAsVersionTwo() - { - var topology = CreateTopology(2); - var mask = new CoreMask - { - Name = "V2 mask", - ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, - CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[1]], topology), - }; - mask.BoolMask.Add(false); - mask.BoolMask.Add(true); - - var json = JsonSerializer.Serialize(mask); - var deserialized = JsonSerializer.Deserialize(json, JsonOptions); - - Assert.NotNull(deserialized); - Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, deserialized.ProfileSchemaVersion); - Assert.NotNull(deserialized.CpuSelection); - Assert.Equal([1], deserialized.CpuSelection!.GlobalLogicalProcessorIndexes); - Assert.Equal([false, true], deserialized.BoolMask.ToArray()); - } - - private static CpuTopologySnapshot CreateTopology(int processorCount) - { - var processors = Enumerable - .Range(0, processorCount) - .Select(index => new ProcessorRef((ushort)(index / 64), (byte)(index % 64), index)) - .ToList(); - - return CpuTopologySnapshot.Create( - processors, - signature: new CpuTopologySignature - { - CpuBrand = "Synthetic CPU", - LogicalProcessorCount = processorCount, - PhysicalCoreCount = processorCount, - ProcessorGroupCount = Math.Max(1, (processorCount + 63) / 64), - Source = "Test", - }); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Diagnostics; + using System.Text.Json; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class CpuSelectionMigrationServiceTests + { + private static readonly JsonSerializerOptions JsonOptions = new() + { + PropertyNameCaseInsensitive = true, + ReadCommentHandling = JsonCommentHandling.Skip, + AllowTrailingCommas = true, + }; + + [Fact] + public void MigrateFromLegacyAffinityMask_WithSingleGroupBelow64_SelectsExpectedProcessors() + { + var topology = CreateTopology(8); + var service = new CpuSelectionMigrationService(); + + var result = service.MigrateFromLegacyAffinityMask(0b0101, topology); + + Assert.Equal([0, 2], result.Selection.GlobalLogicalProcessorIndexes); + Assert.True(result.Metadata.CreatedFromLegacyAffinityMask); + Assert.False(result.Metadata.ReviewRequired); + Assert.Equal(0b0101, service.BuildLegacyAffinityMaskIfRepresentable(result.Selection)); + } + + [Fact] + public void MigrateFromLegacyAffinityMask_OnTopologyAbove64_DoesNotAliasCpu64ToCpu0() + { + var topology = CreateTopology(65); + var service = new CpuSelectionMigrationService(); + + var result = service.MigrateFromLegacyAffinityMask(1, topology); + var cpu64Selection = CpuSelection.FromProcessors( + [topology.LogicalProcessors.Single(processor => processor.GlobalIndex == 64)], + topology); + + Assert.Equal([0], result.Selection.GlobalLogicalProcessorIndexes); + Assert.DoesNotContain(result.Selection.LogicalProcessors, processor => processor.GlobalIndex == 64); + Assert.Null(service.BuildLegacyAffinityMaskIfRepresentable(cpu64Selection)); + } + + [Fact] + public void BuildLegacyAffinityMaskIfRepresentable_WithGroupOneCpuZero_ReturnsNull() + { + var group1Cpu0 = new ProcessorRef(1, 0, 64); + var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0), group1Cpu0]); + var selection = CpuSelection.FromProcessors([group1Cpu0], topology); + var service = new CpuSelectionMigrationService(); + + var legacyMask = service.BuildLegacyAffinityMaskIfRepresentable(selection); + + Assert.Null(legacyMask); + } + + [Fact] + public void MigrateFromLegacyCoreMask_WhenShorterThanTopology_SelectsPresentIndexesAndRequiresReview() + { + var topology = CreateTopology(4); + var service = new CpuSelectionMigrationService(); + + var result = service.MigrateFromLegacyCoreMask([true, false], topology); + + Assert.Equal([0], result.Selection.GlobalLogicalProcessorIndexes); + Assert.True(result.Metadata.CreatedFromLegacyCoreMask); + Assert.True(result.Metadata.ReviewRequired); + } + + [Fact] + public void MigrateFromLegacyCoreMask_WhenLongerThanTopology_IgnoresExtrasAndRequiresReview() + { + var topology = CreateTopology(2); + var service = new CpuSelectionMigrationService(); + + var result = service.MigrateFromLegacyCoreMask([false, true, true, true], topology); + + Assert.Equal([1], result.Selection.GlobalLogicalProcessorIndexes); + Assert.True(result.Metadata.ReviewRequired); + } + + [Fact] + public void MigrateProcessProfile_WithExistingCpuSelection_DoesNotOverwriteFromLegacyMask() + { + var topology = CreateTopology(4); + var existingSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[1]], topology); + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.High, + ProcessorAffinity = 0b0101, + CpuSelection = existingSelection, + }; + var service = new CpuSelectionMigrationService(); + + var migrated = service.MigrateProcessProfile(profile, topology); + + Assert.Equal([1], migrated.CpuSelection!.GlobalLogicalProcessorIndexes); + Assert.Equal(0b0101, migrated.ProcessorAffinity); + } + + [Fact] + public void ShouldRequireReview_TracksTopologySignatureChanges() + { + var topology = CreateTopology(4); + var changedTopology = CreateTopology(6); + var selection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology); + var service = new CpuSelectionMigrationService(); + + Assert.False(service.ShouldRequireReview(selection, topology.Signature, topology)); + Assert.True(service.ShouldRequireReview(selection, topology.Signature, changedTopology)); + } + + [Fact] + public void PrepareProcessProfileForSave_WithSingleGroupBelow64_SavesLegacyMask() + { + var topology = CreateTopology(4); + var selection = CpuSelection.FromProcessors([topology.LogicalProcessors[0], topology.LogicalProcessors[2]], topology); + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 0, + CpuSelection = selection, + }; + var service = new CpuSelectionMigrationService(); + + var prepared = service.PrepareProcessProfileForSave(profile, topology); + + Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, prepared.ProfileSchemaVersion); + Assert.Equal(0b0101, prepared.ProcessorAffinity); + Assert.NotNull(prepared.CpuSelection); + } + + [Fact] + public void PrepareProcessProfileForSave_WithCpu64_DoesNotProduceLegacyMask() + { + var topology = CreateTopology(65); + var selection = CpuSelection.FromProcessors([topology.LogicalProcessors[64]], topology); + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 0b11, + CpuSelection = selection, + }; + var service = new CpuSelectionMigrationService(); + + var prepared = service.PrepareProcessProfileForSave(profile, topology); + + Assert.Equal(0b11, prepared.ProcessorAffinity); + Assert.Null(service.BuildLegacyAffinityMaskIfRepresentable(prepared.CpuSelection!)); + } + + [Fact] + public void LegacyProcessProfileWithoutSchemaVersion_DeserializesAsVersionOne() + { + const string json = """ + { + "processName": "game.exe", + "priority": 2, + "processorAffinity": 5 + } + """; + + var profile = JsonSerializer.Deserialize(json, JsonOptions); + + Assert.NotNull(profile); + Assert.Equal(CpuAffinityProfileSchemaVersions.Legacy, profile.ProfileSchemaVersion); + Assert.Equal(5, profile.ProcessorAffinity); + } + + [Fact] + public void ProcessProfileWithCpuSelection_DeserializesAsVersionTwo() + { + var topology = CreateTopology(2); + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.High, + ProcessorAffinity = 1, + ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, + CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology), + }; + + var json = JsonSerializer.Serialize(profile); + var deserialized = JsonSerializer.Deserialize(json, JsonOptions); + + Assert.NotNull(deserialized); + Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, deserialized.ProfileSchemaVersion); + Assert.NotNull(deserialized.CpuSelection); + Assert.Equal([0], deserialized.CpuSelection!.GlobalLogicalProcessorIndexes); + } + + [Fact] + public void LegacyCoreMaskWithoutSchemaVersion_DeserializesAsVersionOne() + { + const string json = """ + { + "id": "mask-1", + "name": "Legacy mask", + "description": "legacy", + "boolMask": [true, false, true], + "isDefault": false, + "isEnabled": true + } + """; + + var mask = JsonSerializer.Deserialize(json, JsonOptions); + + Assert.NotNull(mask); + Assert.Equal(CpuAffinityProfileSchemaVersions.Legacy, mask.ProfileSchemaVersion); + Assert.Equal([true, false, true], mask.BoolMask.ToArray()); + } + + [Fact] + public void CoreMaskWithCpuSelection_DeserializesAsVersionTwo() + { + var topology = CreateTopology(2); + var mask = new CoreMask + { + Name = "V2 mask", + ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, + CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[1]], topology), + }; + mask.BoolMask.Add(false); + mask.BoolMask.Add(true); + + var json = JsonSerializer.Serialize(mask); + var deserialized = JsonSerializer.Deserialize(json, JsonOptions); + + Assert.NotNull(deserialized); + Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, deserialized.ProfileSchemaVersion); + Assert.NotNull(deserialized.CpuSelection); + Assert.Equal([1], deserialized.CpuSelection!.GlobalLogicalProcessorIndexes); + Assert.Equal([false, true], deserialized.BoolMask.ToArray()); + } + + private static CpuTopologySnapshot CreateTopology(int processorCount) + { + var processors = Enumerable + .Range(0, processorCount) + .Select(index => new ProcessorRef((ushort)(index / 64), (byte)(index % 64), index)) + .ToList(); + + return CpuTopologySnapshot.Create( + processors, + signature: new CpuTopologySignature + { + CpuBrand = "Synthetic CPU", + LogicalProcessorCount = processorCount, + PhysicalCoreCount = processorCount, + ProcessorGroupCount = Math.Max(1, (processorCount + 63) / 64), + Source = "Test", + }); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/CpuSelectionTests.cs b/Tests/ThreadPilot.Core.Tests/CpuSelectionTests.cs index 2ea8da7..8dc2399 100644 --- a/Tests/ThreadPilot.Core.Tests/CpuSelectionTests.cs +++ b/Tests/ThreadPilot.Core.Tests/CpuSelectionTests.cs @@ -1,230 +1,230 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Models; - - public sealed class CpuSelectionTests - { - [Fact] - public void CpuSelection_WithGlobalIndex64_DoesNotAliasCpu0InLegacyMask() - { - var topology = CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(1, 0, 64), - ]); - - var selection = CpuSelection.FromProcessors( - [new ProcessorRef(1, 0, 64)], - topology); - - var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); - - Assert.Null(legacyMask); - Assert.Contains(selection.LogicalProcessors, p => p.GlobalIndex == 64); - Assert.DoesNotContain(selection.LogicalProcessors, p => p.GlobalIndex == 0); - } - - [Fact] - public void CoreMask_ToProcessorAffinity_WithCpu64Only_DocumentsLegacyAliasBug() - { - var mask = new CoreMask { Name = "CPU64 Only" }; - for (var i = 0; i < 65; i++) - { - mask.BoolMask.Add(i == 64); - } - - var legacyAffinity = mask.ToProcessorAffinity(); - - Assert.Equal(1, legacyAffinity); - Assert.True((legacyAffinity & 1L) != 0); - } - - [Fact] - public void CpuTopologySnapshot_KeepsProcessorsWithSameLogicalIndexInDifferentGroupsDistinct() - { - var group0Cpu0 = new ProcessorRef(0, 0, 0); - var group1Cpu0 = new ProcessorRef(1, 0, 64); - var topology = CpuTopologySnapshot.Create( - [group0Cpu0, group1Cpu0], - new Dictionary - { - [group0Cpu0] = 100, - [group1Cpu0] = 200, - }); - - Assert.True(topology.TryGetCpuSetId(group0Cpu0, out var group0CpuSetId)); - Assert.True(topology.TryGetCpuSetId(group1Cpu0, out var group1CpuSetId)); - Assert.Equal(100U, group0CpuSetId); - Assert.Equal(200U, group1CpuSetId); - Assert.Equal(2, topology.LogicalProcessors.Count); - } - - [Fact] - public void CpuTopologySnapshot_Create_ThrowsWhenGlobalIndexIsDuplicated() - { - var processors = new[] - { - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 1, 0), - }; - - var exception = Assert.Throws(() => CpuTopologySnapshot.Create(processors)); - Assert.Contains("GlobalIndex", exception.Message, StringComparison.Ordinal); - } - - [Fact] - public void CpuTopologySnapshot_Create_ThrowsWhenLogicalProcessorsIsNull() - { - Assert.Throws(() => - CpuTopologySnapshot.Create(null!)); - } - - [Fact] - public void CpuTopologySnapshot_PerformanceEfficiencyClass_IsHighestNumericValue() - { - var eCore = new ProcessorRef(0, 8, 8); - var pCore = new ProcessorRef(0, 0, 0); - var topology = CpuTopologySnapshot.Create( - [pCore, eCore], - efficiencyClasses: new Dictionary - { - [pCore] = 2, - [eCore] = 0, - }); - - Assert.Equal(2, topology.GetPerformanceEfficiencyClass()); - } - - [Fact] - public void CpuTopologySnapshot_GetPerformanceEfficiencyClass_ReturnsNullWhenNoEfficiencyClassesExist() - { - var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0)]); - - var performanceClass = topology.GetPerformanceEfficiencyClass(); - - Assert.Null(performanceClass); - } - - [Fact] - public void FromLegacyAffinityMask_SelectsOnlyRepresentableProcessors() - { - var topology = CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 1, 1), - new ProcessorRef(1, 0, 64), - ]); - - var selection = CpuSelection.FromLegacyAffinityMask(0b11, topology); - - Assert.Equal([0, 1], selection.GlobalLogicalProcessorIndexes); - Assert.DoesNotContain(selection.LogicalProcessors, p => p.GlobalIndex == 64); - } - - [Fact] - public void FromLegacyAffinityMask_WithCpuSetId_SetsMigrationMetadataAndIndexes() - { - var cpu0 = new ProcessorRef(0, 0, 0); - var cpu2 = new ProcessorRef(0, 2, 2); - var topology = CpuTopologySnapshot.Create( - [cpu0, cpu2], - new Dictionary - { - [cpu0] = 300, - [cpu2] = 100, - }); - - var selection = CpuSelection.FromLegacyAffinityMask(0b101, topology); - - Assert.True(selection.Metadata.CreatedFromLegacyAffinityMask); - Assert.Equal("Migrated from legacy affinity mask", selection.Metadata.SelectionReason); - Assert.Equal([0, 2], selection.GlobalLogicalProcessorIndexes); - Assert.Equal([100U, 300U], selection.CpuSetIds); - } - - [Fact] - public void ToLegacyAffinityMaskOrNull_ReturnsMaskForSingleGroupBelow64() - { - var topology = CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 3, 3), - ]); - var selection = CpuSelection.FromProcessors(topology.LogicalProcessors, topology); - - var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); - - Assert.Equal(0b1001, legacyMask); - } - - [Fact] - public void FromProcessors_ThrowsWhenProcessorsIsNull() - { - var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0)]); - - Assert.Throws(() => - CpuSelection.FromProcessors(null!, topology)); - } - - [Fact] - public void FromProcessors_ThrowsWhenTopologyIsNull() - { - Assert.Throws(() => - CpuSelection.FromProcessors([new ProcessorRef(0, 0, 0)], null!)); - } - - [Fact] - public void FromProcessors_ThrowsWhenProcessorIsNotInTopology() - { - var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0)]); - var missingProcessor = new ProcessorRef(0, 1, 1); - - var exception = Assert.Throws(() => - CpuSelection.FromProcessors([missingProcessor], topology)); - - Assert.Contains("topology", exception.Message, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public void FromProcessors_WithCpuSetIds_PopulatesDistinctOrderedCpuSetIds() - { - var cpu0 = new ProcessorRef(0, 0, 0); - var cpu1 = new ProcessorRef(0, 1, 1); - var cpu2 = new ProcessorRef(0, 2, 2); - var topology = CpuTopologySnapshot.Create( - [cpu0, cpu1, cpu2], - new Dictionary - { - [cpu0] = 200, - [cpu1] = 100, - [cpu2] = 200, - }); - - var selection = CpuSelection.FromProcessors([cpu0, cpu1, cpu2], topology); - - Assert.Equal([100U, 200U], selection.CpuSetIds); - } - - [Fact] - public void ToLegacyAffinityMaskOrNull_ThrowsWhenSelectionIsNull() - { - Assert.Throws(() => - CpuSelection.ToLegacyAffinityMaskOrNull(null!)); - } - - [Fact] - public void ToLegacyAffinityMaskOrNull_ReturnsNullForMultipleProcessorGroups() - { - var topology = CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(1, 0, 64), - ]); - var selection = CpuSelection.FromProcessors(topology.LogicalProcessors, topology); - - var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); - - Assert.Null(legacyMask); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Models; + + public sealed class CpuSelectionTests + { + [Fact] + public void CpuSelection_WithGlobalIndex64_DoesNotAliasCpu0InLegacyMask() + { + var topology = CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(1, 0, 64), + ]); + + var selection = CpuSelection.FromProcessors( + [new ProcessorRef(1, 0, 64)], + topology); + + var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); + + Assert.Null(legacyMask); + Assert.Contains(selection.LogicalProcessors, p => p.GlobalIndex == 64); + Assert.DoesNotContain(selection.LogicalProcessors, p => p.GlobalIndex == 0); + } + + [Fact] + public void CoreMask_ToProcessorAffinity_WithCpu64Only_DocumentsLegacyAliasBug() + { + var mask = new CoreMask { Name = "CPU64 Only" }; + for (var i = 0; i < 65; i++) + { + mask.BoolMask.Add(i == 64); + } + + var legacyAffinity = mask.ToProcessorAffinity(); + + Assert.Equal(1, legacyAffinity); + Assert.True((legacyAffinity & 1L) != 0); + } + + [Fact] + public void CpuTopologySnapshot_KeepsProcessorsWithSameLogicalIndexInDifferentGroupsDistinct() + { + var group0Cpu0 = new ProcessorRef(0, 0, 0); + var group1Cpu0 = new ProcessorRef(1, 0, 64); + var topology = CpuTopologySnapshot.Create( + [group0Cpu0, group1Cpu0], + new Dictionary + { + [group0Cpu0] = 100, + [group1Cpu0] = 200, + }); + + Assert.True(topology.TryGetCpuSetId(group0Cpu0, out var group0CpuSetId)); + Assert.True(topology.TryGetCpuSetId(group1Cpu0, out var group1CpuSetId)); + Assert.Equal(100U, group0CpuSetId); + Assert.Equal(200U, group1CpuSetId); + Assert.Equal(2, topology.LogicalProcessors.Count); + } + + [Fact] + public void CpuTopologySnapshot_Create_ThrowsWhenGlobalIndexIsDuplicated() + { + var processors = new[] + { + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 1, 0), + }; + + var exception = Assert.Throws(() => CpuTopologySnapshot.Create(processors)); + Assert.Contains("GlobalIndex", exception.Message, StringComparison.Ordinal); + } + + [Fact] + public void CpuTopologySnapshot_Create_ThrowsWhenLogicalProcessorsIsNull() + { + Assert.Throws(() => + CpuTopologySnapshot.Create(null!)); + } + + [Fact] + public void CpuTopologySnapshot_PerformanceEfficiencyClass_IsHighestNumericValue() + { + var eCore = new ProcessorRef(0, 8, 8); + var pCore = new ProcessorRef(0, 0, 0); + var topology = CpuTopologySnapshot.Create( + [pCore, eCore], + efficiencyClasses: new Dictionary + { + [pCore] = 2, + [eCore] = 0, + }); + + Assert.Equal(2, topology.GetPerformanceEfficiencyClass()); + } + + [Fact] + public void CpuTopologySnapshot_GetPerformanceEfficiencyClass_ReturnsNullWhenNoEfficiencyClassesExist() + { + var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0)]); + + var performanceClass = topology.GetPerformanceEfficiencyClass(); + + Assert.Null(performanceClass); + } + + [Fact] + public void FromLegacyAffinityMask_SelectsOnlyRepresentableProcessors() + { + var topology = CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 1, 1), + new ProcessorRef(1, 0, 64), + ]); + + var selection = CpuSelection.FromLegacyAffinityMask(0b11, topology); + + Assert.Equal([0, 1], selection.GlobalLogicalProcessorIndexes); + Assert.DoesNotContain(selection.LogicalProcessors, p => p.GlobalIndex == 64); + } + + [Fact] + public void FromLegacyAffinityMask_WithCpuSetId_SetsMigrationMetadataAndIndexes() + { + var cpu0 = new ProcessorRef(0, 0, 0); + var cpu2 = new ProcessorRef(0, 2, 2); + var topology = CpuTopologySnapshot.Create( + [cpu0, cpu2], + new Dictionary + { + [cpu0] = 300, + [cpu2] = 100, + }); + + var selection = CpuSelection.FromLegacyAffinityMask(0b101, topology); + + Assert.True(selection.Metadata.CreatedFromLegacyAffinityMask); + Assert.Equal("Migrated from legacy affinity mask", selection.Metadata.SelectionReason); + Assert.Equal([0, 2], selection.GlobalLogicalProcessorIndexes); + Assert.Equal([100U, 300U], selection.CpuSetIds); + } + + [Fact] + public void ToLegacyAffinityMaskOrNull_ReturnsMaskForSingleGroupBelow64() + { + var topology = CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 3, 3), + ]); + var selection = CpuSelection.FromProcessors(topology.LogicalProcessors, topology); + + var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); + + Assert.Equal(0b1001, legacyMask); + } + + [Fact] + public void FromProcessors_ThrowsWhenProcessorsIsNull() + { + var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0)]); + + Assert.Throws(() => + CpuSelection.FromProcessors(null!, topology)); + } + + [Fact] + public void FromProcessors_ThrowsWhenTopologyIsNull() + { + Assert.Throws(() => + CpuSelection.FromProcessors([new ProcessorRef(0, 0, 0)], null!)); + } + + [Fact] + public void FromProcessors_ThrowsWhenProcessorIsNotInTopology() + { + var topology = CpuTopologySnapshot.Create([new ProcessorRef(0, 0, 0)]); + var missingProcessor = new ProcessorRef(0, 1, 1); + + var exception = Assert.Throws(() => + CpuSelection.FromProcessors([missingProcessor], topology)); + + Assert.Contains("topology", exception.Message, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public void FromProcessors_WithCpuSetIds_PopulatesDistinctOrderedCpuSetIds() + { + var cpu0 = new ProcessorRef(0, 0, 0); + var cpu1 = new ProcessorRef(0, 1, 1); + var cpu2 = new ProcessorRef(0, 2, 2); + var topology = CpuTopologySnapshot.Create( + [cpu0, cpu1, cpu2], + new Dictionary + { + [cpu0] = 200, + [cpu1] = 100, + [cpu2] = 200, + }); + + var selection = CpuSelection.FromProcessors([cpu0, cpu1, cpu2], topology); + + Assert.Equal([100U, 200U], selection.CpuSetIds); + } + + [Fact] + public void ToLegacyAffinityMaskOrNull_ThrowsWhenSelectionIsNull() + { + Assert.Throws(() => + CpuSelection.ToLegacyAffinityMaskOrNull(null!)); + } + + [Fact] + public void ToLegacyAffinityMaskOrNull_ReturnsNullForMultipleProcessorGroups() + { + var topology = CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(1, 0, 64), + ]); + var selection = CpuSelection.FromProcessors(topology.LogicalProcessors, topology); + + var legacyMask = CpuSelection.ToLegacyAffinityMaskOrNull(selection); + + Assert.Null(legacyMask); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/CpuTopologyProviderTests.cs b/Tests/ThreadPilot.Core.Tests/CpuTopologyProviderTests.cs index c85b52b..0c97420 100644 --- a/Tests/ThreadPilot.Core.Tests/CpuTopologyProviderTests.cs +++ b/Tests/ThreadPilot.Core.Tests/CpuTopologyProviderTests.cs @@ -1,310 +1,310 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Runtime.InteropServices; - using System.Threading; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class CpuTopologyProviderTests - { - [Fact] - public async Task FakeProvider_ReturnsSingleGroupEightLogicalProcessors() - { - var processors = CreateSequentialProcessors(8).ToList(); - var topology = CpuTopologySnapshot.Create(processors); - var provider = new FakeCpuTopologyProvider(topology); - - var snapshot = await provider.GetTopologySnapshotAsync(CancellationToken.None); - - Assert.Equal(8, snapshot.LogicalProcessors.Count); - Assert.All(snapshot.LogicalProcessors, processor => Assert.Equal(0, processor.Group)); - Assert.Equal(1, snapshot.Signature.ProcessorGroupCount); - } - - [Fact] - public void Snapshot_MultiGroupCpuZeroEntriesRemainDistinct() - { - var group0Cpu0 = new ProcessorRef(0, 0, 0); - var group1Cpu0 = new ProcessorRef(1, 0, 64); - - var topology = CpuTopologySnapshot.Create( - [group0Cpu0, group1Cpu0], - cpuSetIds: new Dictionary - { - [group0Cpu0] = 100, - [group1Cpu0] = 200, - }); - - Assert.True(topology.TryGetCpuSetId(group0Cpu0, out var group0CpuSetId)); - Assert.True(topology.TryGetCpuSetId(group1Cpu0, out var group1CpuSetId)); - Assert.Equal(100U, group0CpuSetId); - Assert.Equal(200U, group1CpuSetId); - Assert.Equal(2, topology.Signature.ProcessorGroupCount); - } - - [Fact] - public void Snapshot_PerformanceEfficiencyClass_UsesHighestClass() - { - var pCore = new ProcessorRef(0, 0, 0); - var eCore = new ProcessorRef(0, 1, 1); - - var topology = CpuTopologySnapshot.Create( - [pCore, eCore], - efficiencyClasses: new Dictionary - { - [pCore] = 2, - [eCore] = 0, - }); - - Assert.Equal(2, topology.GetPerformanceEfficiencyClass()); - Assert.True(topology.TryGetEfficiencyClass(pCore, out var pCoreClass)); - Assert.Equal(2, pCoreClass); - } - - [Fact] - public void Snapshot_WithoutEfficiencyClasses_IsValid() - { - var topology = CpuTopologySnapshot.Create(CreateSequentialProcessors(4)); - - Assert.Null(topology.GetPerformanceEfficiencyClass()); - Assert.False(topology.TryGetEfficiencyClass(new ProcessorRef(0, 0, 0), out _)); - Assert.Equal(4, topology.Signature.LogicalProcessorCount); - } - - [Fact] - public void Snapshot_WithSmtOn_MapsSiblingGroupsByCore() - { - var cpu0 = new ProcessorRef(0, 0, 0); - var cpu1 = new ProcessorRef(0, 1, 1); - var cpu2 = new ProcessorRef(0, 2, 2); - var cpu3 = new ProcessorRef(0, 3, 3); - - var topology = CpuTopologySnapshot.Create( - [cpu0, cpu1, cpu2, cpu3], - coreIndexes: new Dictionary - { - [cpu0] = 0, - [cpu1] = 0, - [cpu2] = 1, - [cpu3] = 1, - }, - smtSiblingGlobalIndexes: new Dictionary> - { - [cpu0] = [1], - [cpu1] = [0], - [cpu2] = [3], - [cpu3] = [2], - }, - signature: new CpuTopologySignature - { - LogicalProcessorCount = 4, - PhysicalCoreCount = 2, - ProcessorGroupCount = 1, - Source = "Test", - }); - - Assert.Equal(2, topology.Signature.PhysicalCoreCount); - Assert.True(topology.TryGetCoreIndex(cpu0, out var cpu0CoreIndex)); - Assert.True(topology.TryGetCoreIndex(cpu1, out var cpu1CoreIndex)); - Assert.Equal(0, cpu0CoreIndex); - Assert.Equal(cpu0CoreIndex, cpu1CoreIndex); - Assert.Equal([1], topology.GetSmtSiblingGlobalIndexes(cpu0)); - Assert.Equal([0], topology.GetSmtSiblingGlobalIndexes(cpu1)); - } - - [Fact] - public void Snapshot_WithSmtOff_HasOneLogicalProcessorPerCore() - { - var processors = CreateSequentialProcessors(8).ToList(); - var coreIndexes = processors.ToDictionary(processor => processor, processor => processor.GlobalIndex); - - var topology = CpuTopologySnapshot.Create( - processors, - coreIndexes: coreIndexes, - signature: new CpuTopologySignature - { - LogicalProcessorCount = 8, - PhysicalCoreCount = 8, - ProcessorGroupCount = 1, - Source = "Test", - }); - - Assert.Equal(8, topology.Signature.PhysicalCoreCount); - Assert.All(processors, processor => - { - Assert.True(topology.TryGetCoreIndex(processor, out var coreIndex)); - Assert.Equal(processor.GlobalIndex, coreIndex); - Assert.Empty(topology.GetSmtSiblingGlobalIndexes(processor)); - }); - } - - [Fact] - public void Snapshot_DualCcdCacheGroups_AreRepresentedByLastLevelCacheIndex() - { - var processors = CreateSequentialProcessors(12).ToList(); - var l3Indexes = processors.ToDictionary( - processor => processor, - processor => processor.GlobalIndex < 6 ? 0 : 1); - - var topology = CpuTopologySnapshot.Create( - processors, - lastLevelCacheIndexes: l3Indexes, - signature: new CpuTopologySignature - { - LogicalProcessorCount = 12, - PhysicalCoreCount = 12, - ProcessorGroupCount = 1, - LastLevelCacheGroupCount = 2, - Source = "Test", - }); - - Assert.Equal(2, topology.Signature.LastLevelCacheGroupCount); - Assert.All(processors.Take(6), processor => - { - Assert.True(topology.TryGetLastLevelCacheIndex(processor, out var cacheIndex)); - Assert.Equal(0, cacheIndex); - }); - Assert.All(processors.Skip(6), processor => - { - Assert.True(topology.TryGetLastLevelCacheIndex(processor, out var cacheIndex)); - Assert.Equal(1, cacheIndex); - }); - } - - [Fact] - public void Snapshot_WithMoreThan64LogicalProcessors_IsValid() - { - var processors = Enumerable.Range(0, 72) - .Select(index => new ProcessorRef((ushort)(index / 64), (byte)(index % 64), index)) - .ToList(); - - var topology = CpuTopologySnapshot.Create(processors); - - Assert.Equal(72, topology.LogicalProcessors.Count); - Assert.Equal(2, topology.Signature.ProcessorGroupCount); - Assert.Contains(topology.LogicalProcessors, processor => processor.GlobalIndex == 64 && processor.Group == 1); - } - - [Fact] - public void NativeLayout_CacheRelationshipOffsets_MatchWin32Layout() - { - Assert.Equal(12, WindowsCpuTopologyNativeLayout.CacheReservedOffset); - Assert.Equal(30, WindowsCpuTopologyNativeLayout.CacheGroupCountOffset); - Assert.Equal(32, WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset); - } - - [Fact] - public void NativeLayout_NumaNodeRelationshipOffsets_MatchWin32Layout() - { - Assert.Equal(4, WindowsCpuTopologyNativeLayout.NumaReservedOffset); - Assert.Equal(22, WindowsCpuTopologyNativeLayout.NumaGroupCountOffset); - Assert.Equal(24, WindowsCpuTopologyNativeLayout.NumaGroupMaskOffset); - } - - [Fact] - public void NativeLayout_NumaNodeWithZeroGroupCount_UsesSingleGroupMask() - { - using var buffer = NativeRelationshipBuffer.Allocate(WindowsCpuTopologyNativeLayout.NumaGroupMaskOffset + WindowsCpuTopologyNativeLayout.GroupAffinitySize); - buffer.WriteUInt32(0, 7); - buffer.WriteUInt16(WindowsCpuTopologyNativeLayout.NumaGroupCountOffset, 0); - buffer.WriteGroupAffinity(WindowsCpuTopologyNativeLayout.NumaGroupMaskOffset, group: 1, mask: 0b101UL); - - var processors = WindowsCpuTopologyNativeLayout.ReadNumaNodeProcessors(buffer.Pointer, out var nodeNumber); - - Assert.Equal(7, nodeNumber); - Assert.Equal( - [new ProcessorRef(1, 0, 64), new ProcessorRef(1, 2, 66)], - processors); - } - - [Fact] - public void NativeLayout_L3CacheWithGroupCount_ReadsAllGroupMasks() - { - var size = WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset + (WindowsCpuTopologyNativeLayout.GroupAffinitySize * 2); - using var buffer = NativeRelationshipBuffer.Allocate(size); - buffer.WriteByte(0, 3); - buffer.WriteUInt16(WindowsCpuTopologyNativeLayout.CacheGroupCountOffset, 2); - buffer.WriteGroupAffinity(WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset, group: 0, mask: 0b11UL); - buffer.WriteGroupAffinity( - WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset + WindowsCpuTopologyNativeLayout.GroupAffinitySize, - group: 1, - mask: 0b1UL); - - var wasRead = WindowsCpuTopologyNativeLayout.TryReadL3CacheProcessors(buffer.Pointer, out var processors); - - Assert.True(wasRead); - Assert.Equal( - [new ProcessorRef(0, 0, 0), new ProcessorRef(0, 1, 1), new ProcessorRef(1, 0, 64)], - processors); - } - - [Fact] - public void NativeLayout_CreateFallbackProcessors_UsesProcessorGroupsBeyond64() - { - var processors = WindowsCpuTopologyNativeLayout.CreateFallbackProcessors(66).ToList(); - - Assert.Equal(new ProcessorRef(0, 63, 63), processors[63]); - Assert.Equal(new ProcessorRef(1, 0, 64), processors[64]); - Assert.Equal(new ProcessorRef(1, 1, 65), processors[65]); - } - - private static IEnumerable CreateSequentialProcessors(int count) - { - return Enumerable.Range(0, count) - .Select(index => new ProcessorRef(0, (byte)index, index)); - } - - private sealed class FakeCpuTopologyProvider(CpuTopologySnapshot snapshot) : ICpuTopologyProvider - { - public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(snapshot); - } - } - - private sealed class NativeRelationshipBuffer : IDisposable - { - private NativeRelationshipBuffer(IntPtr pointer) - { - this.Pointer = pointer; - } - - public IntPtr Pointer { get; } - - public static NativeRelationshipBuffer Allocate(int size) - { - var pointer = Marshal.AllocHGlobal(size); - var bytes = new byte[size]; - Marshal.Copy(bytes, 0, pointer, bytes.Length); - return new NativeRelationshipBuffer(pointer); - } - - public void WriteByte(int offset, byte value) - { - Marshal.WriteByte(this.Pointer, offset, value); - } - - public void WriteUInt16(int offset, ushort value) - { - Marshal.WriteInt16(this.Pointer, offset, unchecked((short)value)); - } - - public void WriteUInt32(int offset, uint value) - { - Marshal.WriteInt32(this.Pointer, offset, unchecked((int)value)); - } - - public void WriteGroupAffinity(int offset, ushort group, ulong mask) - { - Marshal.WriteIntPtr(this.Pointer, offset, unchecked((nint)mask)); - this.WriteUInt16(offset + IntPtr.Size, group); - } - - public void Dispose() - { - Marshal.FreeHGlobal(this.Pointer); - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Runtime.InteropServices; + using System.Threading; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class CpuTopologyProviderTests + { + [Fact] + public async Task FakeProvider_ReturnsSingleGroupEightLogicalProcessors() + { + var processors = CreateSequentialProcessors(8).ToList(); + var topology = CpuTopologySnapshot.Create(processors); + var provider = new FakeCpuTopologyProvider(topology); + + var snapshot = await provider.GetTopologySnapshotAsync(CancellationToken.None); + + Assert.Equal(8, snapshot.LogicalProcessors.Count); + Assert.All(snapshot.LogicalProcessors, processor => Assert.Equal(0, processor.Group)); + Assert.Equal(1, snapshot.Signature.ProcessorGroupCount); + } + + [Fact] + public void Snapshot_MultiGroupCpuZeroEntriesRemainDistinct() + { + var group0Cpu0 = new ProcessorRef(0, 0, 0); + var group1Cpu0 = new ProcessorRef(1, 0, 64); + + var topology = CpuTopologySnapshot.Create( + [group0Cpu0, group1Cpu0], + cpuSetIds: new Dictionary + { + [group0Cpu0] = 100, + [group1Cpu0] = 200, + }); + + Assert.True(topology.TryGetCpuSetId(group0Cpu0, out var group0CpuSetId)); + Assert.True(topology.TryGetCpuSetId(group1Cpu0, out var group1CpuSetId)); + Assert.Equal(100U, group0CpuSetId); + Assert.Equal(200U, group1CpuSetId); + Assert.Equal(2, topology.Signature.ProcessorGroupCount); + } + + [Fact] + public void Snapshot_PerformanceEfficiencyClass_UsesHighestClass() + { + var pCore = new ProcessorRef(0, 0, 0); + var eCore = new ProcessorRef(0, 1, 1); + + var topology = CpuTopologySnapshot.Create( + [pCore, eCore], + efficiencyClasses: new Dictionary + { + [pCore] = 2, + [eCore] = 0, + }); + + Assert.Equal(2, topology.GetPerformanceEfficiencyClass()); + Assert.True(topology.TryGetEfficiencyClass(pCore, out var pCoreClass)); + Assert.Equal(2, pCoreClass); + } + + [Fact] + public void Snapshot_WithoutEfficiencyClasses_IsValid() + { + var topology = CpuTopologySnapshot.Create(CreateSequentialProcessors(4)); + + Assert.Null(topology.GetPerformanceEfficiencyClass()); + Assert.False(topology.TryGetEfficiencyClass(new ProcessorRef(0, 0, 0), out _)); + Assert.Equal(4, topology.Signature.LogicalProcessorCount); + } + + [Fact] + public void Snapshot_WithSmtOn_MapsSiblingGroupsByCore() + { + var cpu0 = new ProcessorRef(0, 0, 0); + var cpu1 = new ProcessorRef(0, 1, 1); + var cpu2 = new ProcessorRef(0, 2, 2); + var cpu3 = new ProcessorRef(0, 3, 3); + + var topology = CpuTopologySnapshot.Create( + [cpu0, cpu1, cpu2, cpu3], + coreIndexes: new Dictionary + { + [cpu0] = 0, + [cpu1] = 0, + [cpu2] = 1, + [cpu3] = 1, + }, + smtSiblingGlobalIndexes: new Dictionary> + { + [cpu0] = [1], + [cpu1] = [0], + [cpu2] = [3], + [cpu3] = [2], + }, + signature: new CpuTopologySignature + { + LogicalProcessorCount = 4, + PhysicalCoreCount = 2, + ProcessorGroupCount = 1, + Source = "Test", + }); + + Assert.Equal(2, topology.Signature.PhysicalCoreCount); + Assert.True(topology.TryGetCoreIndex(cpu0, out var cpu0CoreIndex)); + Assert.True(topology.TryGetCoreIndex(cpu1, out var cpu1CoreIndex)); + Assert.Equal(0, cpu0CoreIndex); + Assert.Equal(cpu0CoreIndex, cpu1CoreIndex); + Assert.Equal([1], topology.GetSmtSiblingGlobalIndexes(cpu0)); + Assert.Equal([0], topology.GetSmtSiblingGlobalIndexes(cpu1)); + } + + [Fact] + public void Snapshot_WithSmtOff_HasOneLogicalProcessorPerCore() + { + var processors = CreateSequentialProcessors(8).ToList(); + var coreIndexes = processors.ToDictionary(processor => processor, processor => processor.GlobalIndex); + + var topology = CpuTopologySnapshot.Create( + processors, + coreIndexes: coreIndexes, + signature: new CpuTopologySignature + { + LogicalProcessorCount = 8, + PhysicalCoreCount = 8, + ProcessorGroupCount = 1, + Source = "Test", + }); + + Assert.Equal(8, topology.Signature.PhysicalCoreCount); + Assert.All(processors, processor => + { + Assert.True(topology.TryGetCoreIndex(processor, out var coreIndex)); + Assert.Equal(processor.GlobalIndex, coreIndex); + Assert.Empty(topology.GetSmtSiblingGlobalIndexes(processor)); + }); + } + + [Fact] + public void Snapshot_DualCcdCacheGroups_AreRepresentedByLastLevelCacheIndex() + { + var processors = CreateSequentialProcessors(12).ToList(); + var l3Indexes = processors.ToDictionary( + processor => processor, + processor => processor.GlobalIndex < 6 ? 0 : 1); + + var topology = CpuTopologySnapshot.Create( + processors, + lastLevelCacheIndexes: l3Indexes, + signature: new CpuTopologySignature + { + LogicalProcessorCount = 12, + PhysicalCoreCount = 12, + ProcessorGroupCount = 1, + LastLevelCacheGroupCount = 2, + Source = "Test", + }); + + Assert.Equal(2, topology.Signature.LastLevelCacheGroupCount); + Assert.All(processors.Take(6), processor => + { + Assert.True(topology.TryGetLastLevelCacheIndex(processor, out var cacheIndex)); + Assert.Equal(0, cacheIndex); + }); + Assert.All(processors.Skip(6), processor => + { + Assert.True(topology.TryGetLastLevelCacheIndex(processor, out var cacheIndex)); + Assert.Equal(1, cacheIndex); + }); + } + + [Fact] + public void Snapshot_WithMoreThan64LogicalProcessors_IsValid() + { + var processors = Enumerable.Range(0, 72) + .Select(index => new ProcessorRef((ushort)(index / 64), (byte)(index % 64), index)) + .ToList(); + + var topology = CpuTopologySnapshot.Create(processors); + + Assert.Equal(72, topology.LogicalProcessors.Count); + Assert.Equal(2, topology.Signature.ProcessorGroupCount); + Assert.Contains(topology.LogicalProcessors, processor => processor.GlobalIndex == 64 && processor.Group == 1); + } + + [Fact] + public void NativeLayout_CacheRelationshipOffsets_MatchWin32Layout() + { + Assert.Equal(12, WindowsCpuTopologyNativeLayout.CacheReservedOffset); + Assert.Equal(30, WindowsCpuTopologyNativeLayout.CacheGroupCountOffset); + Assert.Equal(32, WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset); + } + + [Fact] + public void NativeLayout_NumaNodeRelationshipOffsets_MatchWin32Layout() + { + Assert.Equal(4, WindowsCpuTopologyNativeLayout.NumaReservedOffset); + Assert.Equal(22, WindowsCpuTopologyNativeLayout.NumaGroupCountOffset); + Assert.Equal(24, WindowsCpuTopologyNativeLayout.NumaGroupMaskOffset); + } + + [Fact] + public void NativeLayout_NumaNodeWithZeroGroupCount_UsesSingleGroupMask() + { + using var buffer = NativeRelationshipBuffer.Allocate(WindowsCpuTopologyNativeLayout.NumaGroupMaskOffset + WindowsCpuTopologyNativeLayout.GroupAffinitySize); + buffer.WriteUInt32(0, 7); + buffer.WriteUInt16(WindowsCpuTopologyNativeLayout.NumaGroupCountOffset, 0); + buffer.WriteGroupAffinity(WindowsCpuTopologyNativeLayout.NumaGroupMaskOffset, group: 1, mask: 0b101UL); + + var processors = WindowsCpuTopologyNativeLayout.ReadNumaNodeProcessors(buffer.Pointer, out var nodeNumber); + + Assert.Equal(7, nodeNumber); + Assert.Equal( + [new ProcessorRef(1, 0, 64), new ProcessorRef(1, 2, 66)], + processors); + } + + [Fact] + public void NativeLayout_L3CacheWithGroupCount_ReadsAllGroupMasks() + { + var size = WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset + (WindowsCpuTopologyNativeLayout.GroupAffinitySize * 2); + using var buffer = NativeRelationshipBuffer.Allocate(size); + buffer.WriteByte(0, 3); + buffer.WriteUInt16(WindowsCpuTopologyNativeLayout.CacheGroupCountOffset, 2); + buffer.WriteGroupAffinity(WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset, group: 0, mask: 0b11UL); + buffer.WriteGroupAffinity( + WindowsCpuTopologyNativeLayout.CacheGroupMaskOffset + WindowsCpuTopologyNativeLayout.GroupAffinitySize, + group: 1, + mask: 0b1UL); + + var wasRead = WindowsCpuTopologyNativeLayout.TryReadL3CacheProcessors(buffer.Pointer, out var processors); + + Assert.True(wasRead); + Assert.Equal( + [new ProcessorRef(0, 0, 0), new ProcessorRef(0, 1, 1), new ProcessorRef(1, 0, 64)], + processors); + } + + [Fact] + public void NativeLayout_CreateFallbackProcessors_UsesProcessorGroupsBeyond64() + { + var processors = WindowsCpuTopologyNativeLayout.CreateFallbackProcessors(66).ToList(); + + Assert.Equal(new ProcessorRef(0, 63, 63), processors[63]); + Assert.Equal(new ProcessorRef(1, 0, 64), processors[64]); + Assert.Equal(new ProcessorRef(1, 1, 65), processors[65]); + } + + private static IEnumerable CreateSequentialProcessors(int count) + { + return Enumerable.Range(0, count) + .Select(index => new ProcessorRef(0, (byte)index, index)); + } + + private sealed class FakeCpuTopologyProvider(CpuTopologySnapshot snapshot) : ICpuTopologyProvider + { + public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) + { + cancellationToken.ThrowIfCancellationRequested(); + return Task.FromResult(snapshot); + } + } + + private sealed class NativeRelationshipBuffer : IDisposable + { + private NativeRelationshipBuffer(IntPtr pointer) + { + this.Pointer = pointer; + } + + public IntPtr Pointer { get; } + + public static NativeRelationshipBuffer Allocate(int size) + { + var pointer = Marshal.AllocHGlobal(size); + var bytes = new byte[size]; + Marshal.Copy(bytes, 0, pointer, bytes.Length); + return new NativeRelationshipBuffer(pointer); + } + + public void WriteByte(int offset, byte value) + { + Marshal.WriteByte(this.Pointer, offset, value); + } + + public void WriteUInt16(int offset, ushort value) + { + Marshal.WriteInt16(this.Pointer, offset, unchecked((short)value)); + } + + public void WriteUInt32(int offset, uint value) + { + Marshal.WriteInt32(this.Pointer, offset, unchecked((int)value)); + } + + public void WriteGroupAffinity(int offset, ushort group, ulong mask) + { + Marshal.WriteIntPtr(this.Pointer, offset, unchecked((nint)mask)); + this.WriteUInt16(offset + IntPtr.Size, group); + } + + public void Dispose() + { + Marshal.FreeHGlobal(this.Pointer); + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/DiagnosticsViewModelProviderTests.cs b/Tests/ThreadPilot.Core.Tests/DiagnosticsViewModelProviderTests.cs deleted file mode 100644 index 5621521..0000000 --- a/Tests/ThreadPilot.Core.Tests/DiagnosticsViewModelProviderTests.cs +++ /dev/null @@ -1,70 +0,0 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class DiagnosticsViewModelProviderTests - { - [Fact] - public void Constructor_DoesNotCreatePerformanceViewModel() - { - var factoryCalls = 0; - var provider = new DiagnosticsViewModelProvider( - new Lazy(() => - { - factoryCalls++; - throw new InvalidOperationException("PerformanceViewModel should be lazy."); - })); - - Assert.False(provider.IsCreated); - Assert.Equal(0, factoryCalls); - } - - [Fact] - public void GetOrCreate_CreatesPerformanceViewModelOnce() - { - var performanceViewModel = CreatePerformanceViewModel(); - var factoryCalls = 0; - var provider = new DiagnosticsViewModelProvider( - new Lazy(() => - { - factoryCalls++; - return performanceViewModel; - })); - - var first = provider.GetOrCreate(); - var second = provider.GetOrCreate(); - - Assert.Same(performanceViewModel, first); - Assert.Same(first, second); - Assert.True(provider.IsCreated); - Assert.Equal(1, factoryCalls); - } - - private static PerformanceViewModel CreatePerformanceViewModel() - { - var performance = new Mock(MockBehavior.Strict); - var process = new Mock(MockBehavior.Strict); - var associations = new Mock(MockBehavior.Strict); - var powerPlan = new Mock(MockBehavior.Strict); - var processMonitorManager = new Mock(MockBehavior.Strict); - var systemTweaks = new Mock(MockBehavior.Strict); - - associations - .Setup(x => x.GetAssociationsAsync()) - .ReturnsAsync(Array.Empty()); - - return new PerformanceViewModel( - performance.Object, - process.Object, - associations.Object, - powerPlan.Object, - processMonitorManager.Object, - systemTweaks.Object, - NullLogger.Instance); - } - } -} diff --git a/Tests/ThreadPilot.Core.Tests/ElevatedTaskServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ElevatedTaskServiceTests.cs index 061362f..89dfe0e 100644 --- a/Tests/ThreadPilot.Core.Tests/ElevatedTaskServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ElevatedTaskServiceTests.cs @@ -1,130 +1,127 @@ -/* - * ThreadPilot - scheduled task service unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Text; - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Services; - using ThreadPilot.Services.Abstractions; - - /// - /// Unit tests for scheduled task orchestration in . - /// - public sealed class ElevatedTaskServiceTests - { - [Fact] - public async Task EnsureAutostartTaskAsync_ReturnsFalse_WhenExecutablePathIsInvalid() - { - var runner = new RecordingProcessRunner(); - var service = CreateService(runner); - - var result = await service.EnsureAutostartTaskAsync(@"C:\temp\ThreadPilot.txt", "--autostart"); - - Assert.False(result); - Assert.Empty(runner.Invocations); - } - - [Fact] - public async Task TryRunLaunchTaskAsync_ReturnsFalse_WhenSchTasksTimesOut() - { - var runner = new RecordingProcessRunner - { - ResultFactory = _ => new ProcessRunResult(-1, string.Empty, "schtasks timeout after 20 seconds"), - }; - var service = CreateService(runner); - - var result = await service.TryRunLaunchTaskAsync(); - - Assert.False(result); - - var invocation = Assert.Single(runner.Invocations); - Assert.Equal(Path.Combine(Environment.SystemDirectory, "schtasks.exe"), invocation.FileName); - Assert.Equal(TimeSpan.FromSeconds(20), invocation.Timeout); - Assert.Equal(new[] { "/Run", "/TN", service.LaunchTaskName }, invocation.Arguments); - } - - [Fact] - public async Task EnsureLaunchTaskAsync_WritesExpectedLaunchTaskDefinition() - { - var executablePath = CreateTemporaryExecutablePath(); - string? xmlPath = null; - string? xmlContent = null; - var runner = new RecordingProcessRunner - { - ResultFactory = invocation => - { - var xmlIndex = invocation.Arguments.IndexOf("/XML"); - Assert.True(xmlIndex >= 0); - xmlPath = invocation.Arguments[xmlIndex + 1]; - xmlContent = File.ReadAllText(xmlPath, Encoding.Unicode); - return new ProcessRunResult(0, string.Empty, string.Empty); - }, - }; - - try - { - var service = CreateService( - runner, - executablePathProvider: () => executablePath, - currentUserProvider: () => @"TEST\User"); - - var result = await service.EnsureLaunchTaskAsync(); - - Assert.True(result); - Assert.NotNull(xmlPath); - Assert.NotNull(xmlContent); - Assert.Contains("TEST\\User", xmlContent, StringComparison.Ordinal); - Assert.Contains($"{executablePath}", xmlContent, StringComparison.Ordinal); - Assert.Contains("--launched-via-task", xmlContent, StringComparison.Ordinal); - Assert.Contains( - $"{Path.GetDirectoryName(executablePath)}", - xmlContent, - StringComparison.Ordinal); - Assert.False(File.Exists(xmlPath)); - } - finally - { - if (File.Exists(executablePath)) - { - File.Delete(executablePath); - } - } - } - - private static ElevatedTaskService CreateService( - IProcessRunner runner, - Func? executablePathProvider = null, - Func? currentUserProvider = null) - { - return new ElevatedTaskService( - NullLogger.Instance, - runner, - executablePathProvider, - currentUserProvider); - } - - private static string CreateTemporaryExecutablePath() - { - var executablePath = Path.Combine(Path.GetTempPath(), $"threadpilot-test-{Guid.NewGuid():N}.exe"); - File.WriteAllText(executablePath, "stub"); - return executablePath; - } - - private sealed class RecordingProcessRunner : IProcessRunner - { - public List Invocations { get; } = new(); - - public Func? ResultFactory { get; init; } - - public Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout) - { - var invocation = new ProcessInvocation(fileName, arguments.ToList(), timeout); - this.Invocations.Add(invocation); - return Task.FromResult(this.ResultFactory?.Invoke(invocation) ?? new ProcessRunResult(0, string.Empty, string.Empty)); - } - } - - private sealed record ProcessInvocation(string FileName, List Arguments, TimeSpan Timeout); - } -} +/* + * ThreadPilot - scheduled task service unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Text; + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Services; + using ThreadPilot.Services.Abstractions; + + public sealed class ElevatedTaskServiceTests + { + [Fact] + public async Task EnsureAutostartTaskAsync_ReturnsFalse_WhenExecutablePathIsInvalid() + { + var runner = new RecordingProcessRunner(); + var service = CreateService(runner); + + var result = await service.EnsureAutostartTaskAsync(@"C:\temp\ThreadPilot.txt", "--autostart"); + + Assert.False(result); + Assert.Empty(runner.Invocations); + } + + [Fact] + public async Task TryRunLaunchTaskAsync_ReturnsFalse_WhenSchTasksTimesOut() + { + var runner = new RecordingProcessRunner + { + ResultFactory = _ => new ProcessRunResult(-1, string.Empty, "schtasks timeout after 20 seconds"), + }; + var service = CreateService(runner); + + var result = await service.TryRunLaunchTaskAsync(); + + Assert.False(result); + + var invocation = Assert.Single(runner.Invocations); + Assert.Equal(Path.Combine(Environment.SystemDirectory, "schtasks.exe"), invocation.FileName); + Assert.Equal(TimeSpan.FromSeconds(20), invocation.Timeout); + Assert.Equal(new[] { "/Run", "/TN", service.LaunchTaskName }, invocation.Arguments); + } + + [Fact] + public async Task EnsureLaunchTaskAsync_WritesExpectedLaunchTaskDefinition() + { + var executablePath = CreateTemporaryExecutablePath(); + string? xmlPath = null; + string? xmlContent = null; + var runner = new RecordingProcessRunner + { + ResultFactory = invocation => + { + var xmlIndex = invocation.Arguments.IndexOf("/XML"); + Assert.True(xmlIndex >= 0); + xmlPath = invocation.Arguments[xmlIndex + 1]; + xmlContent = File.ReadAllText(xmlPath, Encoding.Unicode); + return new ProcessRunResult(0, string.Empty, string.Empty); + }, + }; + + try + { + var service = CreateService( + runner, + executablePathProvider: () => executablePath, + currentUserProvider: () => @"TEST\User"); + + var result = await service.EnsureLaunchTaskAsync(); + + Assert.True(result); + Assert.NotNull(xmlPath); + Assert.NotNull(xmlContent); + Assert.Contains("TEST\\User", xmlContent, StringComparison.Ordinal); + Assert.Contains($"{executablePath}", xmlContent, StringComparison.Ordinal); + Assert.Contains("--launched-via-task", xmlContent, StringComparison.Ordinal); + Assert.Contains( + $"{Path.GetDirectoryName(executablePath)}", + xmlContent, + StringComparison.Ordinal); + Assert.False(File.Exists(xmlPath)); + } + finally + { + if (File.Exists(executablePath)) + { + File.Delete(executablePath); + } + } + } + + private static ElevatedTaskService CreateService( + IProcessRunner runner, + Func? executablePathProvider = null, + Func? currentUserProvider = null) + { + return new ElevatedTaskService( + NullLogger.Instance, + runner, + executablePathProvider, + currentUserProvider); + } + + private static string CreateTemporaryExecutablePath() + { + var executablePath = Path.Combine(Path.GetTempPath(), $"threadpilot-test-{Guid.NewGuid():N}.exe"); + File.WriteAllText(executablePath, "stub"); + return executablePath; + } + + private sealed class RecordingProcessRunner : IProcessRunner + { + public List Invocations { get; } = new(); + + public Func? ResultFactory { get; init; } + + public Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout) + { + var invocation = new ProcessInvocation(fileName, arguments.ToList(), timeout); + this.Invocations.Add(invocation); + return Task.FromResult(this.ResultFactory?.Invoke(invocation) ?? new ProcessRunResult(0, string.Empty, string.Empty)); + } + } + + private sealed record ProcessInvocation(string FileName, List Arguments, TimeSpan Timeout); + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ForegroundProcessServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ForegroundProcessServiceTests.cs index ec31202..7b858fe 100644 --- a/Tests/ThreadPilot.Core.Tests/ForegroundProcessServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ForegroundProcessServiceTests.cs @@ -1,68 +1,68 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Services; - - public sealed class ForegroundProcessServiceTests - { - [Fact] - public void TryGetForegroundProcessId_ReturnsPidFromVisibleForegroundWindow() - { - var provider = new FakeForegroundWindowProvider( - new ForegroundWindowSnapshot(new IntPtr(42), 1234, true, false)); - var service = new ForegroundProcessService(provider, NullLogger.Instance); - - var result = service.TryGetForegroundProcessId(); - - Assert.Equal(1234, result); - } - - [Theory] - [InlineData(0, true, false)] - [InlineData(1234, false, false)] - [InlineData(1234, true, true)] - public void TryGetForegroundProcessId_ReturnsNullForInvalidForegroundWindow(int processId, bool isVisible, bool isCloaked) - { - var provider = new FakeForegroundWindowProvider( - new ForegroundWindowSnapshot(new IntPtr(42), processId, isVisible, isCloaked)); - var service = new ForegroundProcessService(provider, NullLogger.Instance); - - var result = service.TryGetForegroundProcessId(); - - Assert.Null(result); - } - - [Fact] - public void TryGetForegroundProcessId_ReturnsNullWhenProviderFails() - { - var provider = new FakeForegroundWindowProvider(null); - var service = new ForegroundProcessService(provider, NullLogger.Instance); - - var result = service.TryGetForegroundProcessId(); - - Assert.Null(result); - } - - private sealed class FakeForegroundWindowProvider : IForegroundWindowProvider - { - private readonly ForegroundWindowSnapshot? snapshot; - - public FakeForegroundWindowProvider(ForegroundWindowSnapshot? snapshot) - { - this.snapshot = snapshot; - } - - public bool TryGetForegroundWindow(out ForegroundWindowSnapshot snapshot) - { - if (this.snapshot == null) - { - snapshot = default; - return false; - } - - snapshot = this.snapshot.Value; - return true; - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Services; + + public sealed class ForegroundProcessServiceTests + { + [Fact] + public void TryGetForegroundProcessId_ReturnsPidFromVisibleForegroundWindow() + { + var provider = new FakeForegroundWindowProvider( + new ForegroundWindowSnapshot(new IntPtr(42), 1234, true, false)); + var service = new ForegroundProcessService(provider, NullLogger.Instance); + + var result = service.TryGetForegroundProcessId(); + + Assert.Equal(1234, result); + } + + [Theory] + [InlineData(0, true, false)] + [InlineData(1234, false, false)] + [InlineData(1234, true, true)] + public void TryGetForegroundProcessId_ReturnsNullForInvalidForegroundWindow(int processId, bool isVisible, bool isCloaked) + { + var provider = new FakeForegroundWindowProvider( + new ForegroundWindowSnapshot(new IntPtr(42), processId, isVisible, isCloaked)); + var service = new ForegroundProcessService(provider, NullLogger.Instance); + + var result = service.TryGetForegroundProcessId(); + + Assert.Null(result); + } + + [Fact] + public void TryGetForegroundProcessId_ReturnsNullWhenProviderFails() + { + var provider = new FakeForegroundWindowProvider(null); + var service = new ForegroundProcessService(provider, NullLogger.Instance); + + var result = service.TryGetForegroundProcessId(); + + Assert.Null(result); + } + + private sealed class FakeForegroundWindowProvider : IForegroundWindowProvider + { + private readonly ForegroundWindowSnapshot? snapshot; + + public FakeForegroundWindowProvider(ForegroundWindowSnapshot? snapshot) + { + this.snapshot = snapshot; + } + + public bool TryGetForegroundWindow(out ForegroundWindowSnapshot snapshot) + { + if (this.snapshot == null) + { + snapshot = default; + return false; + } + + snapshot = this.snapshot.Value; + return true; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/GitHubUpdateCheckerTests.cs b/Tests/ThreadPilot.Core.Tests/GitHubUpdateCheckerTests.cs index 51143bc..8f5b5f0 100644 --- a/Tests/ThreadPilot.Core.Tests/GitHubUpdateCheckerTests.cs +++ b/Tests/ThreadPilot.Core.Tests/GitHubUpdateCheckerTests.cs @@ -76,15 +76,15 @@ public FakeGitHubReleaseClient(string responseJson) this.responseJson = responseJson; } - public Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) - { - return Task.FromResult(this.responseJson); - } - - public Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) - { - return Task.FromResult($"[{this.responseJson}]"); - } - } - } -} + public Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) + { + return Task.FromResult(this.responseJson); + } + + public Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) + { + return Task.FromResult($"[{this.responseJson}]"); + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/LocalizationServiceTests.cs b/Tests/ThreadPilot.Core.Tests/LocalizationServiceTests.cs index 4764132..862cadb 100644 --- a/Tests/ThreadPilot.Core.Tests/LocalizationServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/LocalizationServiceTests.cs @@ -1,302 +1,302 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Reflection; - using System.Text.RegularExpressions; - using System.Windows; - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Services; - - public sealed partial class LocalizationServiceTests - { - [Fact] - public void Constructor_DefaultsToEnglish() - { - var service = CreateService(); - - Assert.Equal("en-US", service.CurrentLanguage); - } - - [Fact] - public void ApplyLanguage_AppliesChinese_WhenSupported() - { - var service = CreateService(); - - service.ApplyLanguage("zh-CN"); - - Assert.Equal("zh-CN", service.CurrentLanguage); - } - - [Fact] - public void ApplyLanguage_FiresLanguageChangedWithNormalizedLanguage() - { - var service = CreateService(); - var observedLanguages = new List(); - service.LanguageChanged += (_, language) => observedLanguages.Add(language); - - service.ApplyLanguage("zh-cn"); - service.ApplyLanguage("unsupported"); - - Assert.Equal(new[] { "zh-CN", "en-US" }, observedLanguages); - } - - [Fact] - public void ApplyLanguage_RemovesDuplicateAndOldLocaleDictionaries() - { - var resources = new ResourceDictionary(); - var nonLocaleDictionary = CreateDictionaryWithSource("Themes/FluentDark.xaml"); - var oldEnglishDictionary = CreateDictionaryWithSource("Locales/en-US.xaml"); - var duplicateChineseDictionary = CreateDictionaryWithSource("Locales/zh-CN.xaml"); - var matchingChineseDictionary = CreateDictionaryWithSource("Locales/zh-CN.xaml"); - resources.MergedDictionaries.Add(nonLocaleDictionary); - resources.MergedDictionaries.Add(oldEnglishDictionary); - resources.MergedDictionaries.Add(duplicateChineseDictionary); - resources.MergedDictionaries.Add(matchingChineseDictionary); - var service = CreateService(); - - InvokeApplyLanguageDictionary(service, resources, new Uri("Locales/zh-CN.xaml", UriKind.Relative)); - - Assert.Equal(2, resources.MergedDictionaries.Count); - Assert.Same(matchingChineseDictionary, resources.MergedDictionaries[0]); - Assert.Same(nonLocaleDictionary, resources.MergedDictionaries[1]); - Assert.DoesNotContain(resources.MergedDictionaries, dictionary => ReferenceEquals(dictionary, oldEnglishDictionary)); - Assert.DoesNotContain(resources.MergedDictionaries, dictionary => ReferenceEquals(dictionary, duplicateChineseDictionary)); - } - - [Fact] - public void GetString_UsesCurrentLanguageOverrideBeforeEnglishFallback() - { - var service = CreateService( - new Dictionary - { - ["Shared_Key"] = "English", - }, - new Dictionary - { - ["Shared_Key"] = "Chinese", - }); - service.ApplyLanguage("zh-CN"); - - var result = service.GetString("Shared_Key"); - - Assert.Equal("Chinese", result); - } - - [Theory] - [InlineData(null)] - [InlineData("")] - [InlineData(" ")] - [InlineData("fr-FR")] - [InlineData("zh")] - public void ApplyLanguage_FallsBackToEnglish_WhenLanguageIsInvalid(string? language) - { - var service = CreateService(); - service.ApplyLanguage("zh-CN"); - - service.ApplyLanguage(language); - - Assert.Equal("en-US", service.CurrentLanguage); - } - - [Fact] - public void GetString_UsesEnglishFallback_WhenActiveLanguageMissesKey() - { - var service = CreateService( - new Dictionary - { - ["Shared_Key"] = "English fallback", - }, - new Dictionary()); - service.ApplyLanguage("zh-CN"); - - var result = service.GetString("Shared_Key"); - - Assert.Equal("English fallback", result); - } - - [Fact] - public void GetString_ReturnsKey_WhenNoTranslationExists() - { - var service = CreateService(); - - var result = service.GetString("Missing_Key"); - - Assert.Equal("Missing_Key", result); - } - - [Fact] - public void GetString_ReturnsEmpty_WhenKeyIsBlank() - { - var service = CreateService(); - - Assert.Equal(string.Empty, service.GetString(string.Empty)); - Assert.Equal(string.Empty, service.GetString(" ")); - } - - [Fact] - public void LocaleFiles_DefineEnglishDefaultAndOptionalChineseLanguageLabels() - { - var root = FindRepositoryRoot(); - var english = File.ReadAllText(Path.Combine(root, "Locales", "en-US.xaml")); - var chinese = File.ReadAllText(Path.Combine(root, "Locales", "zh-CN.xaml")); - var appXaml = File.ReadAllText(Path.Combine(root, "App.xaml")); - - Assert.Contains("Source=\"Locales/en-US.xaml\"", appXaml, StringComparison.Ordinal); - Assert.DoesNotContain("Source=\"Locales/zh-CN.xaml\"", appXaml, StringComparison.Ordinal); - Assert.Contains("x:Key=\"SettingsView_LanguageEnUs\"", english, StringComparison.Ordinal); - Assert.Contains("x:Key=\"SettingsView_LanguageZhCn\"", english, StringComparison.Ordinal); - Assert.Contains("x:Key=\"SettingsView_LanguageEnUs\"", chinese, StringComparison.Ordinal); - Assert.Contains("x:Key=\"SettingsView_LanguageZhCn\"", chinese, StringComparison.Ordinal); - } - - [Fact] - public void LocaleFiles_DefineTheSameResourceKeys() - { - var root = FindRepositoryRoot(); - var english = ReadLocaleKeys(Path.Combine(root, "Locales", "en-US.xaml")); - var chinese = ReadLocaleKeys(Path.Combine(root, "Locales", "zh-CN.xaml")); - - Assert.Empty(english.Except(chinese).Order(StringComparer.Ordinal)); - Assert.Empty(chinese.Except(english).Order(StringComparer.Ordinal)); - } - - [Fact] - public void ImportantViews_DoNotUseHardcodedEnglishUiText() - { - var root = FindRepositoryRoot(); - var viewPaths = new[] - { - "MainWindow.xaml", - Path.Combine("Views", "ProcessView.xaml"), - Path.Combine("Views", "MasksView.xaml"), - Path.Combine("Views", "PowerPlanView.xaml"), - Path.Combine("Views", "ProcessPowerPlanAssociationView.xaml"), - Path.Combine("Views", "PerformanceView.xaml"), - Path.Combine("Views", "LogViewerView.xaml"), - Path.Combine("Views", "SystemTweaksView.xaml"), - Path.Combine("Views", "SettingsView.xaml"), - Path.Combine("Views", "SettingsWindow.xaml"), - }; - - var failures = new List(); - foreach (var relativePath in viewPaths) - { - var fullPath = Path.Combine(root, relativePath); - var xaml = File.ReadAllText(fullPath); - foreach (Match match in HardcodedUiAttributeRegex().Matches(xaml)) - { - var attribute = match.Groups["attribute"].Value; - var value = match.Groups["value"].Value; - if (IsAllowedHardcodedUiValue(attribute, value)) - { - continue; - } - - failures.Add($"{relativePath}: {attribute}=\"{value}\""); - } - } - - Assert.Empty(failures); - } - - private static LocalizationService CreateService( - IReadOnlyDictionary? englishStrings = null, - IReadOnlyDictionary? chineseStrings = null) - { - return new LocalizationService( - NullLogger.Instance, - englishStrings, - chineseStrings); - } - - private static string FindRepositoryRoot() - { - var directory = new DirectoryInfo(AppContext.BaseDirectory); - while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot_1.sln"))) - { - directory = directory.Parent; - } - - return directory?.FullName ?? throw new InvalidOperationException("Repository root was not found."); - } - - private static ResourceDictionary CreateDictionaryWithSource(string source) - { - var dictionary = new ResourceDictionary(); - var sourceField = typeof(ResourceDictionary).GetField("_source", BindingFlags.Instance | BindingFlags.NonPublic); - if (sourceField == null) - { - throw new InvalidOperationException("ResourceDictionary source field was not found."); - } - - sourceField.SetValue(dictionary, new Uri(source, UriKind.Relative)); - return dictionary; - } - - private static void InvokeApplyLanguageDictionary( - LocalizationService service, - ResourceDictionary resources, - Uri targetUri) - { - var method = typeof(LocalizationService).GetMethod( - "ApplyLanguageDictionary", - BindingFlags.Instance | BindingFlags.NonPublic); - if (method == null) - { - throw new InvalidOperationException("ApplyLanguageDictionary method was not found."); - } - - method.Invoke(service, new object[] { resources, targetUri }); - } - - private static SortedSet ReadLocaleKeys(string path) - { - var keys = new SortedSet(StringComparer.Ordinal); - var xaml = File.ReadAllText(path); - foreach (Match match in Regex.Matches(xaml, "x:Key=\"(?[^\"]+)\"", RegexOptions.CultureInvariant)) - { - keys.Add(match.Groups["key"].Value); - } - - return keys; - } - - private static bool IsAllowedHardcodedUiValue(string attribute, string value) - { - if (value.Contains('{', StringComparison.Ordinal) || - value.Contains("DynamicResource", StringComparison.Ordinal) || - value.Contains("StaticResource", StringComparison.Ordinal) || - value.Contains("Binding", StringComparison.Ordinal) || - value.Contains("x:Static", StringComparison.Ordinal)) - { - return true; - } - - if (string.Equals(attribute, "Tag", StringComparison.Ordinal) || - string.Equals(attribute, "TargetPageTag", StringComparison.Ordinal) || - string.Equals(attribute, "Name", StringComparison.Ordinal) || - string.Equals(attribute, "x:Name", StringComparison.Ordinal) || - string.Equals(attribute, "SelectedValuePath", StringComparison.Ordinal) || - string.Equals(attribute, "DisplayMemberPath", StringComparison.Ordinal)) - { - return true; - } - - var trimmedValue = value.Trim(); - - if (value.Contains("ThreadPilot", StringComparison.Ordinal) || - value.Contains("Segoe", StringComparison.Ordinal) || - value.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) || - value.EndsWith(".pow", StringComparison.OrdinalIgnoreCase) || - value.EndsWith(".json", StringComparison.OrdinalIgnoreCase) || - trimmedValue is "CPU" or "PID" or "ID" or "MB" or "AGPLv3" or "Windows" or "WMI" or "HPET" or "SMT" or "CPU %") - { - return true; - } - - return !Regex.IsMatch(value, "[A-Za-z]{3,}", RegexOptions.CultureInvariant); - } - - [GeneratedRegex("(?Text|Content|Header|Title|ToolTip|PlaceholderText|AutomationProperties\\.Name|AutomationProperties\\.HelpText)=\"(?[^\"]*[A-Za-z][^\"]*)\"", RegexOptions.CultureInvariant)] - private static partial Regex HardcodedUiAttributeRegex(); - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Reflection; + using System.Text.RegularExpressions; + using System.Windows; + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Services; + + public sealed partial class LocalizationServiceTests + { + [Fact] + public void Constructor_DefaultsToEnglish() + { + var service = CreateService(); + + Assert.Equal("en-US", service.CurrentLanguage); + } + + [Fact] + public void ApplyLanguage_AppliesChinese_WhenSupported() + { + var service = CreateService(); + + service.ApplyLanguage("zh-CN"); + + Assert.Equal("zh-CN", service.CurrentLanguage); + } + + [Fact] + public void ApplyLanguage_FiresLanguageChangedWithNormalizedLanguage() + { + var service = CreateService(); + var observedLanguages = new List(); + service.LanguageChanged += (_, language) => observedLanguages.Add(language); + + service.ApplyLanguage("zh-cn"); + service.ApplyLanguage("unsupported"); + + Assert.Equal(new[] { "zh-CN", "en-US" }, observedLanguages); + } + + [Fact] + public void ApplyLanguage_RemovesDuplicateAndOldLocaleDictionaries() + { + var resources = new ResourceDictionary(); + var nonLocaleDictionary = CreateDictionaryWithSource("Themes/FluentDark.xaml"); + var oldEnglishDictionary = CreateDictionaryWithSource("Locales/en-US.xaml"); + var duplicateChineseDictionary = CreateDictionaryWithSource("Locales/zh-CN.xaml"); + var matchingChineseDictionary = CreateDictionaryWithSource("Locales/zh-CN.xaml"); + resources.MergedDictionaries.Add(nonLocaleDictionary); + resources.MergedDictionaries.Add(oldEnglishDictionary); + resources.MergedDictionaries.Add(duplicateChineseDictionary); + resources.MergedDictionaries.Add(matchingChineseDictionary); + var service = CreateService(); + + InvokeApplyLanguageDictionary(service, resources, new Uri("Locales/zh-CN.xaml", UriKind.Relative)); + + Assert.Equal(2, resources.MergedDictionaries.Count); + Assert.Same(matchingChineseDictionary, resources.MergedDictionaries[0]); + Assert.Same(nonLocaleDictionary, resources.MergedDictionaries[1]); + Assert.DoesNotContain(resources.MergedDictionaries, dictionary => ReferenceEquals(dictionary, oldEnglishDictionary)); + Assert.DoesNotContain(resources.MergedDictionaries, dictionary => ReferenceEquals(dictionary, duplicateChineseDictionary)); + } + + [Fact] + public void GetString_UsesCurrentLanguageOverrideBeforeEnglishFallback() + { + var service = CreateService( + new Dictionary + { + ["Shared_Key"] = "English", + }, + new Dictionary + { + ["Shared_Key"] = "Chinese", + }); + service.ApplyLanguage("zh-CN"); + + var result = service.GetString("Shared_Key"); + + Assert.Equal("Chinese", result); + } + + [Theory] + [InlineData(null)] + [InlineData("")] + [InlineData(" ")] + [InlineData("fr-FR")] + [InlineData("zh")] + public void ApplyLanguage_FallsBackToEnglish_WhenLanguageIsInvalid(string? language) + { + var service = CreateService(); + service.ApplyLanguage("zh-CN"); + + service.ApplyLanguage(language); + + Assert.Equal("en-US", service.CurrentLanguage); + } + + [Fact] + public void GetString_UsesEnglishFallback_WhenActiveLanguageMissesKey() + { + var service = CreateService( + new Dictionary + { + ["Shared_Key"] = "English fallback", + }, + new Dictionary()); + service.ApplyLanguage("zh-CN"); + + var result = service.GetString("Shared_Key"); + + Assert.Equal("English fallback", result); + } + + [Fact] + public void GetString_ReturnsKey_WhenNoTranslationExists() + { + var service = CreateService(); + + var result = service.GetString("Missing_Key"); + + Assert.Equal("Missing_Key", result); + } + + [Fact] + public void GetString_ReturnsEmpty_WhenKeyIsBlank() + { + var service = CreateService(); + + Assert.Equal(string.Empty, service.GetString(string.Empty)); + Assert.Equal(string.Empty, service.GetString(" ")); + } + + [Fact] + public void LocaleFiles_DefineEnglishDefaultAndOptionalChineseLanguageLabels() + { + var root = FindRepositoryRoot(); + var english = File.ReadAllText(Path.Combine(root, "Locales", "en-US.xaml")); + var chinese = File.ReadAllText(Path.Combine(root, "Locales", "zh-CN.xaml")); + var appXaml = File.ReadAllText(Path.Combine(root, "App.xaml")); + + Assert.Contains("Source=\"Locales/en-US.xaml\"", appXaml, StringComparison.Ordinal); + Assert.DoesNotContain("Source=\"Locales/zh-CN.xaml\"", appXaml, StringComparison.Ordinal); + Assert.Contains("x:Key=\"SettingsView_LanguageEnUs\"", english, StringComparison.Ordinal); + Assert.Contains("x:Key=\"SettingsView_LanguageZhCn\"", english, StringComparison.Ordinal); + Assert.Contains("x:Key=\"SettingsView_LanguageEnUs\"", chinese, StringComparison.Ordinal); + Assert.Contains("x:Key=\"SettingsView_LanguageZhCn\"", chinese, StringComparison.Ordinal); + } + + [Fact] + public void LocaleFiles_DefineTheSameResourceKeys() + { + var root = FindRepositoryRoot(); + var english = ReadLocaleKeys(Path.Combine(root, "Locales", "en-US.xaml")); + var chinese = ReadLocaleKeys(Path.Combine(root, "Locales", "zh-CN.xaml")); + + Assert.Empty(english.Except(chinese).Order(StringComparer.Ordinal)); + Assert.Empty(chinese.Except(english).Order(StringComparer.Ordinal)); + } + + [Fact] + public void ImportantViews_DoNotUseHardcodedEnglishUiText() + { + var root = FindRepositoryRoot(); + var viewPaths = new[] + { + "MainWindow.xaml", + Path.Combine("Views", "ProcessView.xaml"), + Path.Combine("Views", "MasksView.xaml"), + Path.Combine("Views", "PowerPlanView.xaml"), + Path.Combine("Views", "ProcessPowerPlanAssociationView.xaml"), + Path.Combine("Views", "PerformanceView.xaml"), + Path.Combine("Views", "LogViewerView.xaml"), + Path.Combine("Views", "SystemTweaksView.xaml"), + Path.Combine("Views", "SettingsView.xaml"), + Path.Combine("Views", "SettingsWindow.xaml"), + }; + + var failures = new List(); + foreach (var relativePath in viewPaths) + { + var fullPath = Path.Combine(root, relativePath); + var xaml = File.ReadAllText(fullPath); + foreach (Match match in HardcodedUiAttributeRegex().Matches(xaml)) + { + var attribute = match.Groups["attribute"].Value; + var value = match.Groups["value"].Value; + if (IsAllowedHardcodedUiValue(attribute, value)) + { + continue; + } + + failures.Add($"{relativePath}: {attribute}=\"{value}\""); + } + } + + Assert.Empty(failures); + } + + private static LocalizationService CreateService( + IReadOnlyDictionary? englishStrings = null, + IReadOnlyDictionary? chineseStrings = null) + { + return new LocalizationService( + NullLogger.Instance, + englishStrings, + chineseStrings); + } + + private static string FindRepositoryRoot() + { + var directory = new DirectoryInfo(AppContext.BaseDirectory); + while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot_1.sln"))) + { + directory = directory.Parent; + } + + return directory?.FullName ?? throw new InvalidOperationException("Repository root was not found."); + } + + private static ResourceDictionary CreateDictionaryWithSource(string source) + { + var dictionary = new ResourceDictionary(); + var sourceField = typeof(ResourceDictionary).GetField("_source", BindingFlags.Instance | BindingFlags.NonPublic); + if (sourceField == null) + { + throw new InvalidOperationException("ResourceDictionary source field was not found."); + } + + sourceField.SetValue(dictionary, new Uri(source, UriKind.Relative)); + return dictionary; + } + + private static void InvokeApplyLanguageDictionary( + LocalizationService service, + ResourceDictionary resources, + Uri targetUri) + { + var method = typeof(LocalizationService).GetMethod( + "ApplyLanguageDictionary", + BindingFlags.Instance | BindingFlags.NonPublic); + if (method == null) + { + throw new InvalidOperationException("ApplyLanguageDictionary method was not found."); + } + + method.Invoke(service, new object[] { resources, targetUri }); + } + + private static SortedSet ReadLocaleKeys(string path) + { + var keys = new SortedSet(StringComparer.Ordinal); + var xaml = File.ReadAllText(path); + foreach (Match match in Regex.Matches(xaml, "x:Key=\"(?[^\"]+)\"", RegexOptions.CultureInvariant)) + { + keys.Add(match.Groups["key"].Value); + } + + return keys; + } + + private static bool IsAllowedHardcodedUiValue(string attribute, string value) + { + if (value.Contains('{', StringComparison.Ordinal) || + value.Contains("DynamicResource", StringComparison.Ordinal) || + value.Contains("StaticResource", StringComparison.Ordinal) || + value.Contains("Binding", StringComparison.Ordinal) || + value.Contains("x:Static", StringComparison.Ordinal)) + { + return true; + } + + if (string.Equals(attribute, "Tag", StringComparison.Ordinal) || + string.Equals(attribute, "TargetPageTag", StringComparison.Ordinal) || + string.Equals(attribute, "Name", StringComparison.Ordinal) || + string.Equals(attribute, "x:Name", StringComparison.Ordinal) || + string.Equals(attribute, "SelectedValuePath", StringComparison.Ordinal) || + string.Equals(attribute, "DisplayMemberPath", StringComparison.Ordinal)) + { + return true; + } + + var trimmedValue = value.Trim(); + + if (value.Contains("ThreadPilot", StringComparison.Ordinal) || + value.Contains("Segoe", StringComparison.Ordinal) || + value.EndsWith(".exe", StringComparison.OrdinalIgnoreCase) || + value.EndsWith(".pow", StringComparison.OrdinalIgnoreCase) || + value.EndsWith(".json", StringComparison.OrdinalIgnoreCase) || + trimmedValue is "CPU" or "PID" or "ID" or "MB" or "AGPLv3" or "Windows" or "WMI" or "HPET" or "SMT" or "CPU %") + { + return true; + } + + return !Regex.IsMatch(value, "[A-Za-z]{3,}", RegexOptions.CultureInvariant); + } + + [GeneratedRegex("(?Text|Content|Header|Title|ToolTip|PlaceholderText|AutomationProperties\\.Name|AutomationProperties\\.HelpText)=\"(?[^\"]*[A-Za-z][^\"]*)\"", RegexOptions.CultureInvariant)] + private static partial Regex HardcodedUiAttributeRegex(); + } +} diff --git a/Tests/ThreadPilot.Core.Tests/LogViewerActivityAuditTests.cs b/Tests/ThreadPilot.Core.Tests/LogViewerActivityAuditTests.cs index dee81b8..00d1c83 100644 --- a/Tests/ThreadPilot.Core.Tests/LogViewerActivityAuditTests.cs +++ b/Tests/ThreadPilot.Core.Tests/LogViewerActivityAuditTests.cs @@ -1,61 +1,61 @@ -namespace ThreadPilot.Core.Tests -{ - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class LogViewerActivityAuditTests - { - [Fact] - public async Task InitializeAsync_LoadsVisibleThreadPilotActivityEntries() - { - var audit = new ActivityAuditService(NullLogger.Instance); - await audit.LogSuccessAsync("Power Plans", "Applied power plan Gaming", "Guid: game"); - var viewModel = CreateViewModel(audit); - - await viewModel.InitializeAsync(); - - var entry = Assert.Single(viewModel.LogEntries); - Assert.Equal("Power Plans", entry.Category); - Assert.Equal("Applied power plan Gaming", entry.Message); - Assert.Equal(LogLevel.Information, entry.Level); - Assert.Equal("Guid: game", entry.Details); - } - - [Fact] - public async Task ClearLogsCommand_ClearsOnlyVisibleActivityDisplayWithoutAddingNoise() - { - var audit = new ActivityAuditService(NullLogger.Instance); - await audit.LogSuccessAsync("Power Plans", "Applied power plan Gaming"); - var viewModel = CreateViewModel(audit); - await viewModel.InitializeAsync(); - - await ((IAsyncRelayCommand)viewModel.ClearLogsCommand).ExecuteAsync(null); - - Assert.Empty(viewModel.LogEntries); - Assert.Single(await audit.GetEntriesAsync()); - } - - private static LogViewerViewModel CreateViewModel(IActivityAuditService audit) - { - var logging = new Mock(MockBehavior.Loose); - logging - .Setup(service => service.GetLogStatisticsAsync()) - .ReturnsAsync(new LogFileStatistics()); - var settings = new Mock(MockBehavior.Loose); - settings - .SetupGet(service => service.Settings) - .Returns(new ApplicationSettingsModel()); - - return new LogViewerViewModel( - audit, - logging.Object, - settings.Object, - NullLogger.Instance); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class LogViewerActivityAuditTests + { + [Fact] + public async Task InitializeAsync_LoadsVisibleThreadPilotActivityEntries() + { + var audit = new ActivityAuditService(NullLogger.Instance); + await audit.LogSuccessAsync("Power Plans", "Applied power plan Gaming", "Guid: game"); + var viewModel = CreateViewModel(audit); + + await viewModel.InitializeAsync(); + + var entry = Assert.Single(viewModel.LogEntries); + Assert.Equal("Power Plans", entry.Category); + Assert.Equal("Applied power plan Gaming", entry.Message); + Assert.Equal(LogLevel.Information, entry.Level); + Assert.Equal("Guid: game", entry.Details); + } + + [Fact] + public async Task ClearLogsCommand_ClearsOnlyVisibleActivityDisplayWithoutAddingNoise() + { + var audit = new ActivityAuditService(NullLogger.Instance); + await audit.LogSuccessAsync("Power Plans", "Applied power plan Gaming"); + var viewModel = CreateViewModel(audit); + await viewModel.InitializeAsync(); + + await ((IAsyncRelayCommand)viewModel.ClearLogsCommand).ExecuteAsync(null); + + Assert.Empty(viewModel.LogEntries); + Assert.Single(await audit.GetEntriesAsync()); + } + + private static LogViewerViewModel CreateViewModel(IActivityAuditService audit) + { + var logging = new Mock(MockBehavior.Loose); + logging + .Setup(service => service.GetLogStatisticsAsync()) + .ReturnsAsync(new LogFileStatistics()); + var settings = new Mock(MockBehavior.Loose); + settings + .SetupGet(service => service.Settings) + .Returns(new ApplicationSettingsModel()); + + return new LogViewerViewModel( + audit, + logging.Object, + settings.Object, + NullLogger.Instance); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/MasksViewModelTests.cs b/Tests/ThreadPilot.Core.Tests/MasksViewModelTests.cs index 2cedcf0..5f0ea58 100644 --- a/Tests/ThreadPilot.Core.Tests/MasksViewModelTests.cs +++ b/Tests/ThreadPilot.Core.Tests/MasksViewModelTests.cs @@ -1,161 +1,161 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Reflection; - using System.Text.RegularExpressions; - using System.Xml.Linq; - using Moq; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class MasksViewModelTests - { - [Fact] - public void MasksView_SubtitleClarifiesPerProcessUse() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - var locale = LoadEnglishLocale(); - - Assert.Contains("MasksView_Subtitle", serialized, StringComparison.Ordinal); - Assert.Contains("per-process use", locale, StringComparison.Ordinal); - } - - [Fact] - public void MasksView_ContainsEditingOnlyClarification() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.Contains("does not change CPU affinity", serialized, StringComparison.Ordinal); - Assert.Contains("until you apply it to a process", serialized, StringComparison.Ordinal); - } - - [Fact] - public void MasksView_DefaultPresetTooltipWarnsNoAutoApply() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - var locale = LoadEnglishLocale(); - - Assert.Contains("MasksView_DefaultPresetTip", serialized, StringComparison.Ordinal); - Assert.Contains("does not apply CPU affinity automatically", locale, StringComparison.Ordinal); - Assert.Contains("Pre-selected when ThreadPilot", locale, StringComparison.Ordinal); - } - - [Fact] - public void MasksView_NoGlobalAffinityControls() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.DoesNotContain("apply globally", serialized, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("global affinity", serialized, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("disable SMT", serialized, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("HyperThreading", serialized, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public void MasksView_ToggleCpuTextClarifiesNoRunningProcessImpact() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - var locale = LoadEnglishLocale(); - - Assert.Contains("MasksView_SelectCpusTip", serialized, StringComparison.Ordinal); - Assert.Contains("do not affect running processes", locale, StringComparison.Ordinal); - } - - [Fact] - public void MasksView_DeleteWarningRefersToProcessesAndRules_NotGlobal() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.DoesNotContain("all processes", serialized, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("system-wide", serialized, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("globally", serialized, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public void MasksViewModel_ExposesOnlyCrudCommands() - { - var commandNames = typeof(MasksViewModel) - .GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) - .Where(p => p.PropertyType.Name.Contains("ommand", StringComparison.OrdinalIgnoreCase)) - .Select(p => p.Name) - .ToList(); - - Assert.Contains("CreateMaskCommand", commandNames); - Assert.Contains("DeleteMaskCommand", commandNames); - Assert.Contains("DuplicateMaskCommand", commandNames); - } - - [Fact] - public void MasksViewModel_HasNoAffinityApplyDependencies() - { - var constructorDependencies = typeof(MasksViewModel) - .GetConstructors() - .SelectMany(c => c.GetParameters()) - .Select(p => p.ParameterType.FullName ?? p.ParameterType.Name) - .ToList(); - - Assert.DoesNotContain("AffinityApplyService", constructorDependencies, StringComparer.OrdinalIgnoreCase); - Assert.DoesNotContain("ProcessAffinityApplyCoordinator", constructorDependencies, StringComparer.OrdinalIgnoreCase); - Assert.DoesNotContain("IProcessService", constructorDependencies, StringComparer.OrdinalIgnoreCase); - } - - [Fact] - public void MasksViewModel_HasNoAffinityApplyMethods() - { - var methods = typeof(MasksViewModel) - .GetMethods(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) - .Select(m => m.Name) - .ToList(); - - Assert.DoesNotContain(methods, m => Regex.IsMatch(m, "Apply.*Affinity", RegexOptions.IgnoreCase)); - Assert.DoesNotContain(methods, m => Regex.IsMatch(m, "Set.*Affinity", RegexOptions.IgnoreCase)); - Assert.DoesNotContain(methods, m => Regex.IsMatch(m, "Apply.*Cpu.*Selection", RegexOptions.IgnoreCase)); - } - - [Fact] - public void MasksView_AllCoresProtectedDefaultInText() - { - var document = LoadMasksViewXaml(); - var serialized = document.ToString(SaveOptions.DisableFormatting); - var locale = LoadEnglishLocale(); - - Assert.Contains("MasksView_SelectCpusTip", serialized, StringComparison.Ordinal); - Assert.Contains("All Cores is the protected default preset", locale, StringComparison.Ordinal); - } - - private static XDocument LoadMasksViewXaml() - { - var repoRoot = GetRepositoryRoot(); - var path = Path.Combine(repoRoot, "Views", "MasksView.xaml"); - return XDocument.Load(path, LoadOptions.PreserveWhitespace); - } - - private static string LoadEnglishLocale() - { - var repoRoot = GetRepositoryRoot(); - return File.ReadAllText(Path.Combine(repoRoot, "Locales", "en-US.xaml")); - } - - private static string GetRepositoryRoot() - { - var currentDir = AppContext.BaseDirectory; - var dir = new DirectoryInfo(currentDir); - while (dir != null && !File.Exists(Path.Combine(dir.FullName, "ThreadPilot_1.sln"))) - { - dir = dir.Parent; - } - - if (dir == null) - { - throw new InvalidOperationException("Could not find repository root from " + currentDir); - } - - return dir.FullName; - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Reflection; + using System.Text.RegularExpressions; + using System.Xml.Linq; + using Moq; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class MasksViewModelTests + { + [Fact] + public void MasksView_SubtitleClarifiesPerProcessUse() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + var locale = LoadEnglishLocale(); + + Assert.Contains("MasksView_Subtitle", serialized, StringComparison.Ordinal); + Assert.Contains("per-process use", locale, StringComparison.Ordinal); + } + + [Fact] + public void MasksView_ContainsEditingOnlyClarification() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.Contains("does not change CPU affinity", serialized, StringComparison.Ordinal); + Assert.Contains("until you apply it to a process", serialized, StringComparison.Ordinal); + } + + [Fact] + public void MasksView_DefaultPresetTooltipWarnsNoAutoApply() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + var locale = LoadEnglishLocale(); + + Assert.Contains("MasksView_DefaultPresetTip", serialized, StringComparison.Ordinal); + Assert.Contains("does not apply CPU affinity automatically", locale, StringComparison.Ordinal); + Assert.Contains("Pre-selected when ThreadPilot", locale, StringComparison.Ordinal); + } + + [Fact] + public void MasksView_NoGlobalAffinityControls() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.DoesNotContain("apply globally", serialized, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("global affinity", serialized, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("disable SMT", serialized, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("HyperThreading", serialized, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public void MasksView_ToggleCpuTextClarifiesNoRunningProcessImpact() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + var locale = LoadEnglishLocale(); + + Assert.Contains("MasksView_SelectCpusTip", serialized, StringComparison.Ordinal); + Assert.Contains("do not affect running processes", locale, StringComparison.Ordinal); + } + + [Fact] + public void MasksView_DeleteWarningRefersToProcessesAndRules_NotGlobal() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.DoesNotContain("all processes", serialized, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("system-wide", serialized, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("globally", serialized, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public void MasksViewModel_ExposesOnlyCrudCommands() + { + var commandNames = typeof(MasksViewModel) + .GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) + .Where(p => p.PropertyType.Name.Contains("ommand", StringComparison.OrdinalIgnoreCase)) + .Select(p => p.Name) + .ToList(); + + Assert.Contains("CreateMaskCommand", commandNames); + Assert.Contains("DeleteMaskCommand", commandNames); + Assert.Contains("DuplicateMaskCommand", commandNames); + } + + [Fact] + public void MasksViewModel_HasNoAffinityApplyDependencies() + { + var constructorDependencies = typeof(MasksViewModel) + .GetConstructors() + .SelectMany(c => c.GetParameters()) + .Select(p => p.ParameterType.FullName ?? p.ParameterType.Name) + .ToList(); + + Assert.DoesNotContain("AffinityApplyService", constructorDependencies, StringComparer.OrdinalIgnoreCase); + Assert.DoesNotContain("ProcessAffinityApplyCoordinator", constructorDependencies, StringComparer.OrdinalIgnoreCase); + Assert.DoesNotContain("IProcessService", constructorDependencies, StringComparer.OrdinalIgnoreCase); + } + + [Fact] + public void MasksViewModel_HasNoAffinityApplyMethods() + { + var methods = typeof(MasksViewModel) + .GetMethods(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) + .Select(m => m.Name) + .ToList(); + + Assert.DoesNotContain(methods, m => Regex.IsMatch(m, "Apply.*Affinity", RegexOptions.IgnoreCase)); + Assert.DoesNotContain(methods, m => Regex.IsMatch(m, "Set.*Affinity", RegexOptions.IgnoreCase)); + Assert.DoesNotContain(methods, m => Regex.IsMatch(m, "Apply.*Cpu.*Selection", RegexOptions.IgnoreCase)); + } + + [Fact] + public void MasksView_AllCoresProtectedDefaultInText() + { + var document = LoadMasksViewXaml(); + var serialized = document.ToString(SaveOptions.DisableFormatting); + var locale = LoadEnglishLocale(); + + Assert.Contains("MasksView_SelectCpusTip", serialized, StringComparison.Ordinal); + Assert.Contains("All Cores is the protected default preset", locale, StringComparison.Ordinal); + } + + private static XDocument LoadMasksViewXaml() + { + var repoRoot = GetRepositoryRoot(); + var path = Path.Combine(repoRoot, "Views", "MasksView.xaml"); + return XDocument.Load(path, LoadOptions.PreserveWhitespace); + } + + private static string LoadEnglishLocale() + { + var repoRoot = GetRepositoryRoot(); + return File.ReadAllText(Path.Combine(repoRoot, "Locales", "en-US.xaml")); + } + + private static string GetRepositoryRoot() + { + var currentDir = AppContext.BaseDirectory; + var dir = new DirectoryInfo(currentDir); + while (dir != null && !File.Exists(Path.Combine(dir.FullName, "ThreadPilot_1.sln"))) + { + dir = dir.Parent; + } + + if (dir == null) + { + throw new InvalidOperationException("Could not find repository root from " + currentDir); + } + + return dir.FullName; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/NotificationServiceLocalizationTests.cs b/Tests/ThreadPilot.Core.Tests/NotificationServiceLocalizationTests.cs index 0383448..9fd7989 100644 --- a/Tests/ThreadPilot.Core.Tests/NotificationServiceLocalizationTests.cs +++ b/Tests/ThreadPilot.Core.Tests/NotificationServiceLocalizationTests.cs @@ -1,161 +1,161 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class NotificationServiceLocalizationTests - { - [Fact] - public async Task ShowPowerPlanChangeNotificationAsync_UsesLocalizedTitleAndFormat() - { - var harness = new Harness(new Dictionary - { - ["Notification_PowerPlanChangedTitle"] = "Localized power title", - ["Notification_PowerPlanChangedFormat"] = "Changed {0} -> {1}", - }); - var service = harness.CreateService(); - - await service.ShowPowerPlanChangeNotificationAsync("Balanced", "Performance"); - - var notification = Assert.Single(service.NotificationHistory); - Assert.Equal("Localized power title", notification.Title); - Assert.Equal("Changed Balanced -> Performance", notification.Message); - harness.Tray.Verify( - tray => tray.ShowTrayNotification( - "Localized power title", - "Changed Balanced -> Performance", - NotificationType.PowerPlanChange, - It.IsAny()), - Times.Once); - } - - [Fact] - public async Task ShowPowerPlanChangeNotificationAsync_UsesLocalizedProcessFormat() - { - var harness = new Harness(new Dictionary - { - ["Notification_PowerPlanChangedTitle"] = "Power", - ["Notification_PowerPlanChangedProcessFormat"] = "{1}: {0}", - }); - var service = harness.CreateService(); - - await service.ShowPowerPlanChangeNotificationAsync("Balanced", "Performance", "game.exe"); - - var notification = Assert.Single(service.NotificationHistory); - Assert.Equal("Power", notification.Title); - Assert.Equal("game.exe: Performance", notification.Message); - } - - [Theory] - [InlineData(true, "Enabled localized", NotificationType.Success)] - [InlineData(false, "Disabled localized", NotificationType.Warning)] - public async Task ShowProcessMonitoringNotificationAsync_UsesLocalizedTitle(bool isEnabled, string expectedTitle, NotificationType expectedType) - { - var harness = new Harness(new Dictionary - { - ["Notification_ProcessMonitoringEnabled"] = "Enabled localized", - ["Notification_ProcessMonitoringDisabled"] = "Disabled localized", - }); - var service = harness.CreateService(); - - await service.ShowProcessMonitoringNotificationAsync("Monitoring changed", isEnabled); - - var notification = Assert.Single(service.NotificationHistory); - Assert.Equal(expectedTitle, notification.Title); - Assert.Equal("Monitoring changed", notification.Message); - Assert.Equal(expectedType, notification.Type); - } - - [Fact] - public async Task ShowCpuAffinityNotificationAsync_UsesLocalizedTitleAndFormat() - { - var harness = new Harness(new Dictionary - { - ["Notification_CpuAffinityAppliedTitle"] = "Affinity localized", - ["Notification_CpuAffinityAppliedFormat"] = "{0} uses {1}", - }); - var service = harness.CreateService(); - - await service.ShowCpuAffinityNotificationAsync("game.exe", "CPU 0, 1"); - - var notification = Assert.Single(service.NotificationHistory); - Assert.Equal("Affinity localized", notification.Title); - Assert.Equal("game.exe uses CPU 0, 1", notification.Message); - } - - [Fact] - public async Task ShowNotificationAsync_LocalizesKnownAndDynamicGameBoostStrings() - { - var harness = new Harness(new Dictionary - { - ["Notification_GameBoostActivatedTitle"] = "Boost title", - ["Notification_GameBoostActivatedFormat"] = "Boosted {0}", - }); - var service = harness.CreateService(); - - await service.ShowNotificationAsync( - "Game Boost Activated", - "Game Boost mode activated for game.exe", - NotificationType.Information); - - var notification = Assert.Single(service.NotificationHistory); - Assert.Equal("Boost title", notification.Title); - Assert.Equal("Boosted game.exe", notification.Message); - } - - [Fact] - public async Task ShowNotificationAsync_KeepsOriginalText_WhenLocalizationKeyIsMissing() - { - var harness = new Harness(new Dictionary()); - var service = harness.CreateService(); - - await service.ShowNotificationAsync( - "Affinity blocked", - "Unmapped notification message", - NotificationType.Warning); - - var notification = Assert.Single(service.NotificationHistory); - Assert.Equal("Affinity blocked", notification.Title); - Assert.Equal("Unmapped notification message", notification.Message); - } - - private sealed class Harness - { - private readonly IReadOnlyDictionary localizedStrings; - - public Mock Settings { get; } = new(MockBehavior.Loose); - - public Mock Tray { get; } = new(MockBehavior.Loose); - - public Mock Localization { get; } = new(MockBehavior.Loose); - - public Harness(IReadOnlyDictionary localizedStrings) - { - this.localizedStrings = localizedStrings; - this.Settings.SetupGet(service => service.Settings).Returns(new ApplicationSettingsModel - { - EnableToastNotifications = false, - }); - this.Localization - .Setup(service => service.GetString(It.IsAny())) - .Returns(this.GetLocalizedString); - } - - public NotificationService CreateService() - { - return new NotificationService( - NullLogger.Instance, - this.Settings.Object, - this.Tray.Object, - this.Localization.Object); - } - - private string GetLocalizedString(string key) - { - return this.localizedStrings.TryGetValue(key, out var value) ? value : key; - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class NotificationServiceLocalizationTests + { + [Fact] + public async Task ShowPowerPlanChangeNotificationAsync_UsesLocalizedTitleAndFormat() + { + var harness = new Harness(new Dictionary + { + ["Notification_PowerPlanChangedTitle"] = "Localized power title", + ["Notification_PowerPlanChangedFormat"] = "Changed {0} -> {1}", + }); + var service = harness.CreateService(); + + await service.ShowPowerPlanChangeNotificationAsync("Balanced", "Performance"); + + var notification = Assert.Single(service.NotificationHistory); + Assert.Equal("Localized power title", notification.Title); + Assert.Equal("Changed Balanced -> Performance", notification.Message); + harness.Tray.Verify( + tray => tray.ShowTrayNotification( + "Localized power title", + "Changed Balanced -> Performance", + NotificationType.PowerPlanChange, + It.IsAny()), + Times.Once); + } + + [Fact] + public async Task ShowPowerPlanChangeNotificationAsync_UsesLocalizedProcessFormat() + { + var harness = new Harness(new Dictionary + { + ["Notification_PowerPlanChangedTitle"] = "Power", + ["Notification_PowerPlanChangedProcessFormat"] = "{1}: {0}", + }); + var service = harness.CreateService(); + + await service.ShowPowerPlanChangeNotificationAsync("Balanced", "Performance", "game.exe"); + + var notification = Assert.Single(service.NotificationHistory); + Assert.Equal("Power", notification.Title); + Assert.Equal("game.exe: Performance", notification.Message); + } + + [Theory] + [InlineData(true, "Enabled localized", NotificationType.Success)] + [InlineData(false, "Disabled localized", NotificationType.Warning)] + public async Task ShowProcessMonitoringNotificationAsync_UsesLocalizedTitle(bool isEnabled, string expectedTitle, NotificationType expectedType) + { + var harness = new Harness(new Dictionary + { + ["Notification_ProcessMonitoringEnabled"] = "Enabled localized", + ["Notification_ProcessMonitoringDisabled"] = "Disabled localized", + }); + var service = harness.CreateService(); + + await service.ShowProcessMonitoringNotificationAsync("Monitoring changed", isEnabled); + + var notification = Assert.Single(service.NotificationHistory); + Assert.Equal(expectedTitle, notification.Title); + Assert.Equal("Monitoring changed", notification.Message); + Assert.Equal(expectedType, notification.Type); + } + + [Fact] + public async Task ShowCpuAffinityNotificationAsync_UsesLocalizedTitleAndFormat() + { + var harness = new Harness(new Dictionary + { + ["Notification_CpuAffinityAppliedTitle"] = "Affinity localized", + ["Notification_CpuAffinityAppliedFormat"] = "{0} uses {1}", + }); + var service = harness.CreateService(); + + await service.ShowCpuAffinityNotificationAsync("game.exe", "CPU 0, 1"); + + var notification = Assert.Single(service.NotificationHistory); + Assert.Equal("Affinity localized", notification.Title); + Assert.Equal("game.exe uses CPU 0, 1", notification.Message); + } + + [Fact] + public async Task ShowNotificationAsync_LocalizesKnownAndDynamicGameBoostStrings() + { + var harness = new Harness(new Dictionary + { + ["Notification_GameBoostActivatedTitle"] = "Boost title", + ["Notification_GameBoostActivatedFormat"] = "Boosted {0}", + }); + var service = harness.CreateService(); + + await service.ShowNotificationAsync( + "Game Boost Activated", + "Game Boost mode activated for game.exe", + NotificationType.Information); + + var notification = Assert.Single(service.NotificationHistory); + Assert.Equal("Boost title", notification.Title); + Assert.Equal("Boosted game.exe", notification.Message); + } + + [Fact] + public async Task ShowNotificationAsync_KeepsOriginalText_WhenLocalizationKeyIsMissing() + { + var harness = new Harness(new Dictionary()); + var service = harness.CreateService(); + + await service.ShowNotificationAsync( + "Affinity blocked", + "Unmapped notification message", + NotificationType.Warning); + + var notification = Assert.Single(service.NotificationHistory); + Assert.Equal("Affinity blocked", notification.Title); + Assert.Equal("Unmapped notification message", notification.Message); + } + + private sealed class Harness + { + private readonly IReadOnlyDictionary localizedStrings; + + public Mock Settings { get; } = new(MockBehavior.Loose); + + public Mock Tray { get; } = new(MockBehavior.Loose); + + public Mock Localization { get; } = new(MockBehavior.Loose); + + public Harness(IReadOnlyDictionary localizedStrings) + { + this.localizedStrings = localizedStrings; + this.Settings.SetupGet(service => service.Settings).Returns(new ApplicationSettingsModel + { + EnableToastNotifications = false, + }); + this.Localization + .Setup(service => service.GetString(It.IsAny())) + .Returns(this.GetLocalizedString); + } + + public NotificationService CreateService() + { + return new NotificationService( + NullLogger.Instance, + this.Settings.Object, + this.Tray.Object, + this.Localization.Object); + } + + private string GetLocalizedString(string key) + { + return this.localizedStrings.TryGetValue(key, out var value) ? value : key; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PackagingMetadataTests.cs b/Tests/ThreadPilot.Core.Tests/PackagingMetadataTests.cs index d28b98f..f575782 100644 --- a/Tests/ThreadPilot.Core.Tests/PackagingMetadataTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PackagingMetadataTests.cs @@ -1,106 +1,106 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Text.RegularExpressions; - - public sealed partial class PackagingMetadataTests - { - private const string ReleaseVersion = "1.4.0"; - private const string ReleaseAssemblyVersion = "1.4.0.0"; - - [Fact] - public void InnoInstallers_UseStableDisplayNameAndSeparateVersionMetadata() - { - var root = FindRepositoryRoot(); - var installerScripts = new[] - { - Path.Combine(root, "Installer", "setup.iss"), - Path.Combine(root, "Installer", "Installer.iss"), - }; - - foreach (var scriptPath in installerScripts) - { - var script = File.ReadAllText(scriptPath); - - Assert.Contains("AppName={#MyAppName}", script, StringComparison.Ordinal); - Assert.Contains("AppVersion={#MyAppVersion}", script, StringComparison.Ordinal); - Assert.Contains("AppVerName={#MyAppName}", script, StringComparison.Ordinal); - Assert.DoesNotContain("AppVerName={#MyAppName} {#MyAppVersion}", script, StringComparison.Ordinal); - Assert.Matches(MyAppVersionRegex(), script); - } - } - - [Fact] - public void PrimaryInstaller_RemovesThreadPilotOwnedDataOnlyDuringUninstall() - { - var root = FindRepositoryRoot(); - var script = File.ReadAllText(Path.Combine(root, "Installer", "setup.iss")); - - Assert.Contains("[UninstallDelete]", script, StringComparison.Ordinal); - Assert.Contains("Name: \"{userappdata}\\ThreadPilot\"", script, StringComparison.Ordinal); - Assert.Contains("ThreadPilot user data is preserved during install/update", script, StringComparison.Ordinal); - Assert.DoesNotContain("[InstallDelete]", script, StringComparison.Ordinal); - Assert.DoesNotContain("Name: \"{userappdata}\"", script, StringComparison.Ordinal); - } - - [Fact] - public void PrimaryInstaller_CleansOnlyRecognizedLegacyBetaUninstallRegistryEntries() - { - var root = FindRepositoryRoot(); - var script = File.ReadAllText(Path.Combine(root, "Installer", "setup.iss")); - - Assert.Contains("ThreadPilot 0.1.0-beta", script, StringComparison.Ordinal); - Assert.Contains("DeleteLegacyBetaUninstallEntry", script, StringComparison.Ordinal); - Assert.Contains("DisplayName", script, StringComparison.Ordinal); - Assert.Contains("InstallLocation", script, StringComparison.Ordinal); - Assert.Contains("{autopf}\\ThreadPilot", script, StringComparison.Ordinal); - Assert.DoesNotContain(@"DeleteKeyIncludingSubkeys(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall')", script, StringComparison.Ordinal); - } - - [Fact] - public void VersionMetadata_IsBumpedToReleaseVersion() - { - var root = FindRepositoryRoot(); - - AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseVersion}"); - AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseAssemblyVersion}"); - AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseAssemblyVersion}"); - AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseVersion}"); - AssertFileContains(Path.Combine(root, "app.manifest"), $"version=\"{ReleaseAssemblyVersion}\""); - AssertFileContains(Path.Combine(root, "Installer", "ThreadPilot.wxs"), $"Version=\"{ReleaseAssemblyVersion}\""); - AssertFileContains(Path.Combine(root, "chocolatey", "threadpilot.nuspec"), $"{ReleaseVersion}"); - AssertFileContains(Path.Combine(root, "chocolatey", "threadpilot.nuspec"), $"releases/tag/v{ReleaseVersion}"); - AssertFileContains(Path.Combine(root, "sonar-project.properties"), $"sonar.projectVersion={ReleaseVersion}"); - AssertFileContains(Path.Combine(root, "build", "build-release.ps1"), $"[string]$Version = \"{ReleaseVersion}\""); - AssertFileContains(Path.Combine(root, "build", "build-installer.ps1"), $"[string]$Version = \"{ReleaseVersion}\""); - AssertFileContains(Path.Combine(root, "build", "package-release-zips.ps1"), $"[string]$Version = \"{ReleaseVersion}\""); - Assert.True(File.Exists(Path.Combine(root, "docs", "releases", $"v{ReleaseVersion}.md"))); - AssertFileContains(Path.Combine(root, "docs", "release", "RELEASE_NOTES.md"), $"v{ReleaseVersion}"); - } - - private static void AssertFileContains(string path, string expected) - { - var content = File.ReadAllText(path); - Assert.Contains(expected, content, StringComparison.Ordinal); - } - - private static string FindRepositoryRoot() - { - var directory = new DirectoryInfo(AppContext.BaseDirectory); - while (directory != null) - { - if (File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj")) && - Directory.Exists(Path.Combine(directory.FullName, "Installer"))) - { - return directory.FullName; - } - - directory = directory.Parent; - } - - throw new InvalidOperationException("Repository root could not be located."); - } - - [GeneratedRegex("#define MyAppVersion \"1\\.4\\.0\"", RegexOptions.CultureInvariant)] - private static partial Regex MyAppVersionRegex(); - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Text.RegularExpressions; + + public sealed partial class PackagingMetadataTests + { + private const string ReleaseVersion = "1.4.0"; + private const string ReleaseAssemblyVersion = "1.4.0.0"; + + [Fact] + public void InnoInstallers_UseStableDisplayNameAndSeparateVersionMetadata() + { + var root = FindRepositoryRoot(); + var installerScripts = new[] + { + Path.Combine(root, "Installer", "setup.iss"), + Path.Combine(root, "Installer", "Installer.iss"), + }; + + foreach (var scriptPath in installerScripts) + { + var script = File.ReadAllText(scriptPath); + + Assert.Contains("AppName={#MyAppName}", script, StringComparison.Ordinal); + Assert.Contains("AppVersion={#MyAppVersion}", script, StringComparison.Ordinal); + Assert.Contains("AppVerName={#MyAppName}", script, StringComparison.Ordinal); + Assert.DoesNotContain("AppVerName={#MyAppName} {#MyAppVersion}", script, StringComparison.Ordinal); + Assert.Matches(MyAppVersionRegex(), script); + } + } + + [Fact] + public void PrimaryInstaller_RemovesThreadPilotOwnedDataOnlyDuringUninstall() + { + var root = FindRepositoryRoot(); + var script = File.ReadAllText(Path.Combine(root, "Installer", "setup.iss")); + + Assert.Contains("[UninstallDelete]", script, StringComparison.Ordinal); + Assert.Contains("Name: \"{userappdata}\\ThreadPilot\"", script, StringComparison.Ordinal); + Assert.Contains("ThreadPilot user data is preserved during install/update", script, StringComparison.Ordinal); + Assert.DoesNotContain("[InstallDelete]", script, StringComparison.Ordinal); + Assert.DoesNotContain("Name: \"{userappdata}\"", script, StringComparison.Ordinal); + } + + [Fact] + public void PrimaryInstaller_CleansOnlyRecognizedLegacyBetaUninstallRegistryEntries() + { + var root = FindRepositoryRoot(); + var script = File.ReadAllText(Path.Combine(root, "Installer", "setup.iss")); + + Assert.Contains("ThreadPilot 0.1.0-beta", script, StringComparison.Ordinal); + Assert.Contains("DeleteLegacyBetaUninstallEntry", script, StringComparison.Ordinal); + Assert.Contains("DisplayName", script, StringComparison.Ordinal); + Assert.Contains("InstallLocation", script, StringComparison.Ordinal); + Assert.Contains("{autopf}\\ThreadPilot", script, StringComparison.Ordinal); + Assert.DoesNotContain(@"DeleteKeyIncludingSubkeys(HKLM, 'Software\Microsoft\Windows\CurrentVersion\Uninstall')", script, StringComparison.Ordinal); + } + + [Fact] + public void VersionMetadata_IsBumpedToReleaseVersion() + { + var root = FindRepositoryRoot(); + + AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseVersion}"); + AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseAssemblyVersion}"); + AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseAssemblyVersion}"); + AssertFileContains(Path.Combine(root, "ThreadPilot.csproj"), $"{ReleaseVersion}"); + AssertFileContains(Path.Combine(root, "app.manifest"), $"version=\"{ReleaseAssemblyVersion}\""); + AssertFileContains(Path.Combine(root, "Installer", "ThreadPilot.wxs"), $"Version=\"{ReleaseAssemblyVersion}\""); + AssertFileContains(Path.Combine(root, "chocolatey", "threadpilot.nuspec"), $"{ReleaseVersion}"); + AssertFileContains(Path.Combine(root, "chocolatey", "threadpilot.nuspec"), $"releases/tag/v{ReleaseVersion}"); + AssertFileContains(Path.Combine(root, "sonar-project.properties"), $"sonar.projectVersion={ReleaseVersion}"); + AssertFileContains(Path.Combine(root, "build", "build-release.ps1"), $"[string]$Version = \"{ReleaseVersion}\""); + AssertFileContains(Path.Combine(root, "build", "build-installer.ps1"), $"[string]$Version = \"{ReleaseVersion}\""); + AssertFileContains(Path.Combine(root, "build", "package-release-zips.ps1"), $"[string]$Version = \"{ReleaseVersion}\""); + Assert.True(File.Exists(Path.Combine(root, "docs", "releases", $"v{ReleaseVersion}.md"))); + AssertFileContains(Path.Combine(root, "docs", "release", "RELEASE_NOTES.md"), $"v{ReleaseVersion}"); + } + + private static void AssertFileContains(string path, string expected) + { + var content = File.ReadAllText(path); + Assert.Contains(expected, content, StringComparison.Ordinal); + } + + private static string FindRepositoryRoot() + { + var directory = new DirectoryInfo(AppContext.BaseDirectory); + while (directory != null) + { + if (File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj")) && + Directory.Exists(Path.Combine(directory.FullName, "Installer"))) + { + return directory.FullName; + } + + directory = directory.Parent; + } + + throw new InvalidOperationException("Repository root could not be located."); + } + + [GeneratedRegex("#define MyAppVersion \"1\\.4\\.0\"", RegexOptions.CultureInvariant)] + private static partial Regex MyAppVersionRegex(); + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PassiveProcessErrorThrottleTests.cs b/Tests/ThreadPilot.Core.Tests/PassiveProcessErrorThrottleTests.cs index 26ce17f..b5b26ff 100644 --- a/Tests/ThreadPilot.Core.Tests/PassiveProcessErrorThrottleTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PassiveProcessErrorThrottleTests.cs @@ -1,59 +1,59 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Services; - - public sealed class PassiveProcessErrorThrottleTests - { - [Fact] - public void ShouldLog_ReturnsFalseForRepeatedErrorInsideTtl() - { - var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); - var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); - - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); - Assert.False(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); - } - - [Fact] - public void ShouldLog_ReturnsTrueAfterTtlExpires() - { - var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); - var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); - - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); - now = now.AddMinutes(2); - - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); - } - - [Fact] - public void ShouldLog_TracksPidAndErrorKindSeparately() - { - var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); - var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); - - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.Terminated)); - Assert.True(throttle.ShouldLog(43, PassiveProcessErrorKind.AccessDenied)); - } - - [Fact] - public void ShouldLog_WhenElapsedTimeEqualsTtl_ReturnsTrue() - { - var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); - var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); - - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.Unknown)); - now = now.AddMinutes(1); - - Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.Unknown)); - } - - [Fact] - public void Constructor_WhenTtlIsZero_Throws() - { - Assert.Throws(() => - new PassiveProcessErrorThrottle(TimeSpan.Zero, () => DateTimeOffset.UtcNow)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Services; + + public sealed class PassiveProcessErrorThrottleTests + { + [Fact] + public void ShouldLog_ReturnsFalseForRepeatedErrorInsideTtl() + { + var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); + var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); + + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); + Assert.False(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); + } + + [Fact] + public void ShouldLog_ReturnsTrueAfterTtlExpires() + { + var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); + var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); + + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); + now = now.AddMinutes(2); + + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); + } + + [Fact] + public void ShouldLog_TracksPidAndErrorKindSeparately() + { + var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); + var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); + + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.AccessDenied)); + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.Terminated)); + Assert.True(throttle.ShouldLog(43, PassiveProcessErrorKind.AccessDenied)); + } + + [Fact] + public void ShouldLog_WhenElapsedTimeEqualsTtl_ReturnsTrue() + { + var now = new DateTimeOffset(2026, 5, 9, 12, 0, 0, TimeSpan.Zero); + var throttle = new PassiveProcessErrorThrottle(TimeSpan.FromMinutes(1), () => now); + + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.Unknown)); + now = now.AddMinutes(1); + + Assert.True(throttle.ShouldLog(42, PassiveProcessErrorKind.Unknown)); + } + + [Fact] + public void Constructor_WhenTtlIsZero_Throws() + { + Assert.Throws(() => + new PassiveProcessErrorThrottle(TimeSpan.Zero, () => DateTimeOffset.UtcNow)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PerformanceViewModelDiagnosticsTests.cs b/Tests/ThreadPilot.Core.Tests/PerformanceViewModelDiagnosticsTests.cs index 4d43f20..777b7f0 100644 --- a/Tests/ThreadPilot.Core.Tests/PerformanceViewModelDiagnosticsTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PerformanceViewModelDiagnosticsTests.cs @@ -1,255 +1,255 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class PerformanceViewModelDiagnosticsTests - { - [Fact] - public async Task InitializeAsync_DoesNotStartLiveMonitoringOrScanProcesses() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.InitializeAsync(); - - harness.Performance.Verify(x => x.StartMonitoringAsync(), Times.Never); - harness.Performance.Verify(x => x.GetSystemMetricsAsync(It.IsAny()), Times.Never); - harness.Performance.Verify(x => x.GetTopCpuProcessesAsync(It.IsAny()), Times.Never); - harness.Performance.Verify(x => x.GetTopMemoryProcessesAsync(It.IsAny()), Times.Never); - harness.PowerPlan.Verify(x => x.GetActivePowerPlan(), Times.Never); - } - - [Fact] - public async Task ActivateDiagnosticsAsync_LoadsSnapshotWithoutStartingLiveMonitoring() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.ActivateDiagnosticsAsync(); - - harness.Performance.Verify(x => x.GetSystemMetricsAsync(false), Times.Once); - harness.Performance.Verify(x => x.GetHistoricalDataAsync(TimeSpan.FromHours(1)), Times.Once); - harness.Performance.Verify(x => x.GetTopCpuProcessesAsync(25), Times.Once); - harness.Performance.Verify(x => x.GetTopMemoryProcessesAsync(25), Times.Once); - harness.PowerPlan.Verify(x => x.GetActivePowerPlan(), Times.Once); - harness.Performance.Verify(x => x.StartMonitoringAsync(), Times.Never); - Assert.False(viewModel.IsMonitoring); - Assert.Empty(await harness.Audit.GetEntriesAsync()); - } - - [Fact] - public async Task SuspendBackgroundMonitoringAsync_StopsLiveMonitoringAndDoesNotAutoResume() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.StartMonitoringCommand.ExecuteAsync(null); - await viewModel.SuspendBackgroundMonitoringAsync(); - await viewModel.ResumeBackgroundMonitoringAsync(); - - harness.Performance.Verify(x => x.StartMonitoringAsync(), Times.Once); - harness.Performance.Verify(x => x.StopMonitoringAsync(), Times.Once); - Assert.False(viewModel.IsMonitoring); - Assert.Equal("Stopped", viewModel.MonitoringStateText); - } - - [Fact] - public async Task StartMonitoringCommand_LogsSuccess_WhenServiceStarts() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.StartMonitoringCommand.ExecuteAsync(null); - - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "OptimizationMonitoringStarted", - "Performance monitoring started", - null), - Times.Once); - var entry = Assert.Single( - await harness.Audit.GetEntriesAsync(), - entry => entry.Message == "Performance monitoring started"); - Assert.Equal("Optimization", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - } - - [Fact] - public async Task StartMonitoringCommand_LogsFailure_WhenServiceFails() - { - var harness = new Harness(startMonitoringThrows: true); - var viewModel = harness.CreateViewModel(); - - await viewModel.StartMonitoringCommand.ExecuteAsync(null); - - Assert.True(viewModel.HasError); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "OptimizationActionFailed", - It.Is(details => details.Contains("Failed to start performance monitoring")), - null), - Times.Once); - var entry = Assert.Single( - await harness.Audit.GetEntriesAsync(), - entry => entry.Message.Contains("Failed to start performance monitoring")); - Assert.Equal("Optimization", entry.Category); - Assert.Equal(ActivityAuditSeverity.Error, entry.Severity); - } - - [Fact] - public async Task StopMonitoringCommand_StopsServiceAndLogsSuccess() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.StopMonitoringCommand.ExecuteAsync(null); - - harness.Performance.Verify(service => service.StopMonitoringAsync(), Times.Once); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "OptimizationMonitoringStopped", - "Performance monitoring stopped", - null), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Optimization", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal("Performance monitoring stopped", viewModel.StatusMessage); - } - - [Fact] - public async Task RefreshMetricsCommand_WhenMetricsFails_LogsFailureSafely() - { - var harness = new Harness(metricsThrows: true); - var viewModel = harness.CreateViewModel(); - - await viewModel.RefreshMetricsCommand.ExecuteAsync(null); - - Assert.True(viewModel.HasError); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "OptimizationActionFailed", - It.Is(details => details.Contains("Failed to refresh performance snapshot")), - null), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Optimization", entry.Category); - Assert.Equal(ActivityAuditSeverity.Error, entry.Severity); - } - - [Fact] - public async Task ClearHistoricalDataCommand_ClearsServiceAndLogsSuccess() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.ClearHistoricalDataCommand.ExecuteAsync(null); - - harness.Performance.Verify(service => service.ClearHistoricalDataAsync(), Times.Once); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "OptimizationHistoryCleared", - "Historical metrics cleared", - null), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Optimization", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal("Historical data cleared", viewModel.StatusMessage); - } - - [Fact] - public void ShowAdvancedDiagnostics_DefaultsToHidden() - { - Assert.False(AppNavigationOptions.ShowAdvancedDiagnostics); - } - - private sealed class Harness - { - public Mock Performance { get; } = new(MockBehavior.Strict); - - public Mock Process { get; } = new(MockBehavior.Strict); - - public Mock Associations { get; } = new(MockBehavior.Strict); - - public Mock PowerPlan { get; } = new(MockBehavior.Strict); - - public Mock ProcessMonitorManager { get; } = new(MockBehavior.Strict); - - public Mock SystemTweaks { get; } = new(MockBehavior.Strict); - - public Mock Logging { get; } = new(MockBehavior.Loose); - - public ActivityAuditService Audit { get; } = new(NullLogger.Instance); - - public Harness(bool startMonitoringThrows = false, bool metricsThrows = false) - { - if (metricsThrows) - { - this.Performance - .Setup(x => x.GetSystemMetricsAsync(It.IsAny())) - .ThrowsAsync(new InvalidOperationException("metrics unavailable")); - } - else - { - this.Performance - .Setup(x => x.GetSystemMetricsAsync(It.IsAny())) - .ReturnsAsync(new SystemPerformanceMetrics()); - } - - this.Performance - .Setup(x => x.GetHistoricalDataAsync(It.IsAny())) - .ReturnsAsync(new List()); - this.Performance - .Setup(x => x.GetTopCpuProcessesAsync(It.IsAny())) - .ReturnsAsync(new List()); - this.Performance - .Setup(x => x.GetTopMemoryProcessesAsync(It.IsAny())) - .ReturnsAsync(new List()); - if (startMonitoringThrows) - { - this.Performance - .Setup(x => x.StartMonitoringAsync()) - .ThrowsAsync(new InvalidOperationException("monitoring unavailable")); - } - else - { - this.Performance - .Setup(x => x.StartMonitoringAsync()) - .Returns(Task.CompletedTask); - } - - this.Performance - .Setup(x => x.StopMonitoringAsync()) - .Returns(Task.CompletedTask); - this.Performance - .Setup(x => x.ClearHistoricalDataAsync()) - .Returns(Task.CompletedTask); - - this.Associations - .Setup(x => x.GetAssociationsAsync()) - .ReturnsAsync(Array.Empty()); - - this.PowerPlan - .Setup(x => x.GetActivePowerPlan()) - .ReturnsAsync(new PowerPlanModel { Guid = "balanced", Name = "Balanced" }); - } - - public PerformanceViewModel CreateViewModel() => - new( - this.Performance.Object, - this.Process.Object, - this.Associations.Object, - this.PowerPlan.Object, - this.ProcessMonitorManager.Object, - this.SystemTweaks.Object, - NullLogger.Instance, - this.Logging.Object, - this.Audit); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class PerformanceViewModelDiagnosticsTests + { + [Fact] + public async Task InitializeAsync_DoesNotStartLiveMonitoringOrScanProcesses() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.InitializeAsync(); + + harness.Performance.Verify(x => x.StartMonitoringAsync(), Times.Never); + harness.Performance.Verify(x => x.GetSystemMetricsAsync(It.IsAny()), Times.Never); + harness.Performance.Verify(x => x.GetTopCpuProcessesAsync(It.IsAny()), Times.Never); + harness.Performance.Verify(x => x.GetTopMemoryProcessesAsync(It.IsAny()), Times.Never); + harness.PowerPlan.Verify(x => x.GetActivePowerPlan(), Times.Never); + } + + [Fact] + public async Task ActivateDiagnosticsAsync_LoadsSnapshotWithoutStartingLiveMonitoring() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.ActivateDiagnosticsAsync(); + + harness.Performance.Verify(x => x.GetSystemMetricsAsync(false), Times.Once); + harness.Performance.Verify(x => x.GetHistoricalDataAsync(TimeSpan.FromHours(1)), Times.Once); + harness.Performance.Verify(x => x.GetTopCpuProcessesAsync(25), Times.Once); + harness.Performance.Verify(x => x.GetTopMemoryProcessesAsync(25), Times.Once); + harness.PowerPlan.Verify(x => x.GetActivePowerPlan(), Times.Once); + harness.Performance.Verify(x => x.StartMonitoringAsync(), Times.Never); + Assert.False(viewModel.IsMonitoring); + Assert.Empty(await harness.Audit.GetEntriesAsync()); + } + + [Fact] + public async Task SuspendBackgroundMonitoringAsync_StopsLiveMonitoringAndDoesNotAutoResume() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.StartMonitoringCommand.ExecuteAsync(null); + await viewModel.SuspendBackgroundMonitoringAsync(); + await viewModel.ResumeBackgroundMonitoringAsync(); + + harness.Performance.Verify(x => x.StartMonitoringAsync(), Times.Once); + harness.Performance.Verify(x => x.StopMonitoringAsync(), Times.Once); + Assert.False(viewModel.IsMonitoring); + Assert.Equal("Stopped", viewModel.MonitoringStateText); + } + + [Fact] + public async Task StartMonitoringCommand_LogsSuccess_WhenServiceStarts() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.StartMonitoringCommand.ExecuteAsync(null); + + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "OptimizationMonitoringStarted", + "Performance monitoring started", + null), + Times.Once); + var entry = Assert.Single( + await harness.Audit.GetEntriesAsync(), + entry => entry.Message == "Performance monitoring started"); + Assert.Equal("Optimization", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + } + + [Fact] + public async Task StartMonitoringCommand_LogsFailure_WhenServiceFails() + { + var harness = new Harness(startMonitoringThrows: true); + var viewModel = harness.CreateViewModel(); + + await viewModel.StartMonitoringCommand.ExecuteAsync(null); + + Assert.True(viewModel.HasError); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "OptimizationActionFailed", + It.Is(details => details.Contains("Failed to start performance monitoring")), + null), + Times.Once); + var entry = Assert.Single( + await harness.Audit.GetEntriesAsync(), + entry => entry.Message.Contains("Failed to start performance monitoring")); + Assert.Equal("Optimization", entry.Category); + Assert.Equal(ActivityAuditSeverity.Error, entry.Severity); + } + + [Fact] + public async Task StopMonitoringCommand_StopsServiceAndLogsSuccess() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.StopMonitoringCommand.ExecuteAsync(null); + + harness.Performance.Verify(service => service.StopMonitoringAsync(), Times.Once); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "OptimizationMonitoringStopped", + "Performance monitoring stopped", + null), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Optimization", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal("Performance monitoring stopped", viewModel.StatusMessage); + } + + [Fact] + public async Task RefreshMetricsCommand_WhenMetricsFails_LogsFailureSafely() + { + var harness = new Harness(metricsThrows: true); + var viewModel = harness.CreateViewModel(); + + await viewModel.RefreshMetricsCommand.ExecuteAsync(null); + + Assert.True(viewModel.HasError); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "OptimizationActionFailed", + It.Is(details => details.Contains("Failed to refresh performance snapshot")), + null), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Optimization", entry.Category); + Assert.Equal(ActivityAuditSeverity.Error, entry.Severity); + } + + [Fact] + public async Task ClearHistoricalDataCommand_ClearsServiceAndLogsSuccess() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.ClearHistoricalDataCommand.ExecuteAsync(null); + + harness.Performance.Verify(service => service.ClearHistoricalDataAsync(), Times.Once); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "OptimizationHistoryCleared", + "Historical metrics cleared", + null), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Optimization", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal("Historical data cleared", viewModel.StatusMessage); + } + + [Fact] + public void ShowAdvancedDiagnostics_DefaultsToHidden() + { + Assert.False(AppNavigationOptions.ShowAdvancedDiagnostics); + } + + private sealed class Harness + { + public Mock Performance { get; } = new(MockBehavior.Strict); + + public Mock Process { get; } = new(MockBehavior.Strict); + + public Mock Associations { get; } = new(MockBehavior.Strict); + + public Mock PowerPlan { get; } = new(MockBehavior.Strict); + + public Mock ProcessMonitorManager { get; } = new(MockBehavior.Strict); + + public Mock SystemTweaks { get; } = new(MockBehavior.Strict); + + public Mock Logging { get; } = new(MockBehavior.Loose); + + public ActivityAuditService Audit { get; } = new(NullLogger.Instance); + + public Harness(bool startMonitoringThrows = false, bool metricsThrows = false) + { + if (metricsThrows) + { + this.Performance + .Setup(x => x.GetSystemMetricsAsync(It.IsAny())) + .ThrowsAsync(new InvalidOperationException("metrics unavailable")); + } + else + { + this.Performance + .Setup(x => x.GetSystemMetricsAsync(It.IsAny())) + .ReturnsAsync(new SystemPerformanceMetrics()); + } + + this.Performance + .Setup(x => x.GetHistoricalDataAsync(It.IsAny())) + .ReturnsAsync(new List()); + this.Performance + .Setup(x => x.GetTopCpuProcessesAsync(It.IsAny())) + .ReturnsAsync(new List()); + this.Performance + .Setup(x => x.GetTopMemoryProcessesAsync(It.IsAny())) + .ReturnsAsync(new List()); + if (startMonitoringThrows) + { + this.Performance + .Setup(x => x.StartMonitoringAsync()) + .ThrowsAsync(new InvalidOperationException("monitoring unavailable")); + } + else + { + this.Performance + .Setup(x => x.StartMonitoringAsync()) + .Returns(Task.CompletedTask); + } + + this.Performance + .Setup(x => x.StopMonitoringAsync()) + .Returns(Task.CompletedTask); + this.Performance + .Setup(x => x.ClearHistoricalDataAsync()) + .Returns(Task.CompletedTask); + + this.Associations + .Setup(x => x.GetAssociationsAsync()) + .ReturnsAsync(Array.Empty()); + + this.PowerPlan + .Setup(x => x.GetActivePowerPlan()) + .ReturnsAsync(new PowerPlanModel { Guid = "balanced", Name = "Balanced" }); + } + + public PerformanceViewModel CreateViewModel() => + new( + this.Performance.Object, + this.Process.Object, + this.Associations.Object, + this.PowerPlan.Object, + this.ProcessMonitorManager.Object, + this.SystemTweaks.Object, + NullLogger.Instance, + this.Logging.Object, + this.Audit); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleJsonStoreTests.cs b/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleJsonStoreTests.cs index 5fb13e3..94529e1 100644 --- a/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleJsonStoreTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleJsonStoreTests.cs @@ -1,103 +1,103 @@ -/* - * ThreadPilot - persistent process rule JSON store tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Diagnostics; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class PersistentProcessRuleJsonStoreTests - { - [Fact] - public async Task LoadAsync_WithMissingFile_ReturnsEmptyList() - { - var filePath = CreateTemporaryFilePath(); - var store = new PersistentProcessRuleJsonStore(() => filePath); - - var rules = await store.LoadAsync(); - - Assert.Empty(rules); - } - - [Fact] - public async Task SaveAndLoadAsync_RoundTripsCpuSelectionAndLegacyAffinityMask() - { - var filePath = CreateTemporaryFilePath(); - var store = new PersistentProcessRuleJsonStore(() => filePath); - var rule = new PersistentProcessRule - { - Id = "rule-a", - Name = "Game", - IsEnabled = true, - ProcessName = "game.exe", - CpuSelection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(0, 0, 0)], - GlobalLogicalProcessorIndexes = [0], - }, - LegacyAffinityMask = 3, - Priority = ProcessPriorityClass.AboveNormal, - MemoryPriority = ProcessMemoryPriority.BelowNormal, - ApplyAffinityOnStart = true, - ApplyPriorityOnStart = true, - ApplyMemoryPriorityOnStart = true, - CreatedAt = DateTime.UtcNow, - UpdatedAt = DateTime.UtcNow, - Description = ProcessOperationUserMessages.PersistentRulesDescription, - }; - - try - { - await store.SaveAsync([rule]); - - var loaded = await store.LoadAsync(); - - var loadedRule = Assert.Single(loaded); - Assert.Equal("rule-a", loadedRule.Id); - Assert.Equal(3, loadedRule.LegacyAffinityMask); - Assert.Equal(ProcessPriorityClass.AboveNormal, loadedRule.Priority); - Assert.Equal(ProcessMemoryPriority.BelowNormal, loadedRule.MemoryPriority); - Assert.True(loadedRule.ApplyMemoryPriorityOnStart); - Assert.NotNull(loadedRule.CpuSelection); - Assert.Equal(0, loadedRule.CpuSelection.GlobalLogicalProcessorIndexes.Single()); - } - finally - { - DeleteFile(filePath); - } - } - - [Fact] - public async Task LoadAsync_WithCorruptJson_ReturnsEmptyList() - { - var filePath = CreateTemporaryFilePath(); - Directory.CreateDirectory(Path.GetDirectoryName(filePath)!); - await File.WriteAllTextAsync(filePath, "{ not json"); - var store = new PersistentProcessRuleJsonStore(() => filePath); - - try - { - var rules = await store.LoadAsync(); - - Assert.Empty(rules); - } - finally - { - DeleteFile(filePath); - } - } - - private static string CreateTemporaryFilePath() => - Path.Combine(Path.GetTempPath(), $"threadpilot-rules-{Guid.NewGuid():N}", "rules.json"); - - private static void DeleteFile(string filePath) - { - var directory = Path.GetDirectoryName(filePath); - if (directory != null && Directory.Exists(directory)) - { - Directory.Delete(directory, recursive: true); - } - } - } -} +/* + * ThreadPilot - persistent process rule JSON store tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Diagnostics; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class PersistentProcessRuleJsonStoreTests + { + [Fact] + public async Task LoadAsync_WithMissingFile_ReturnsEmptyList() + { + var filePath = CreateTemporaryFilePath(); + var store = new PersistentProcessRuleJsonStore(() => filePath); + + var rules = await store.LoadAsync(); + + Assert.Empty(rules); + } + + [Fact] + public async Task SaveAndLoadAsync_RoundTripsCpuSelectionAndLegacyAffinityMask() + { + var filePath = CreateTemporaryFilePath(); + var store = new PersistentProcessRuleJsonStore(() => filePath); + var rule = new PersistentProcessRule + { + Id = "rule-a", + Name = "Game", + IsEnabled = true, + ProcessName = "game.exe", + CpuSelection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(0, 0, 0)], + GlobalLogicalProcessorIndexes = [0], + }, + LegacyAffinityMask = 3, + Priority = ProcessPriorityClass.AboveNormal, + MemoryPriority = ProcessMemoryPriority.BelowNormal, + ApplyAffinityOnStart = true, + ApplyPriorityOnStart = true, + ApplyMemoryPriorityOnStart = true, + CreatedAt = DateTime.UtcNow, + UpdatedAt = DateTime.UtcNow, + Description = ProcessOperationUserMessages.PersistentRulesDescription, + }; + + try + { + await store.SaveAsync([rule]); + + var loaded = await store.LoadAsync(); + + var loadedRule = Assert.Single(loaded); + Assert.Equal("rule-a", loadedRule.Id); + Assert.Equal(3, loadedRule.LegacyAffinityMask); + Assert.Equal(ProcessPriorityClass.AboveNormal, loadedRule.Priority); + Assert.Equal(ProcessMemoryPriority.BelowNormal, loadedRule.MemoryPriority); + Assert.True(loadedRule.ApplyMemoryPriorityOnStart); + Assert.NotNull(loadedRule.CpuSelection); + Assert.Equal(0, loadedRule.CpuSelection.GlobalLogicalProcessorIndexes.Single()); + } + finally + { + DeleteFile(filePath); + } + } + + [Fact] + public async Task LoadAsync_WithCorruptJson_ReturnsEmptyList() + { + var filePath = CreateTemporaryFilePath(); + Directory.CreateDirectory(Path.GetDirectoryName(filePath)!); + await File.WriteAllTextAsync(filePath, "{ not json"); + var store = new PersistentProcessRuleJsonStore(() => filePath); + + try + { + var rules = await store.LoadAsync(); + + Assert.Empty(rules); + } + finally + { + DeleteFile(filePath); + } + } + + private static string CreateTemporaryFilePath() => + Path.Combine(Path.GetTempPath(), $"threadpilot-rules-{Guid.NewGuid():N}", "rules.json"); + + private static void DeleteFile(string filePath) + { + var directory = Path.GetDirectoryName(filePath); + if (directory != null && Directory.Exists(directory)) + { + Directory.Delete(directory, recursive: true); + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleMatcherTests.cs b/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleMatcherTests.cs index dd76b77..40c689f 100644 --- a/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleMatcherTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PersistentProcessRuleMatcherTests.cs @@ -1,97 +1,97 @@ -/* - * ThreadPilot - persistent process rule matcher tests. - */ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class PersistentProcessRuleMatcherTests - { - private readonly PersistentProcessRuleMatcher matcher = new(); - - [Fact] - public void IsMatch_WithProcessName_MatchesCaseInsensitive() - { - var rule = CreateRule(processName: "GAME.EXE"); - var process = CreateProcess(name: "game.exe"); - - var result = this.matcher.IsMatch(rule, process); - - Assert.True(result); - } - - [Fact] - public void IsMatch_WithExecutablePath_MatchesCaseInsensitive() - { - var rule = CreateRule(executablePath: @"C:\Games\App\Game.exe"); - var process = CreateProcess(executablePath: @"c:\games\app\game.exe"); - - var result = this.matcher.IsMatch(rule, process); - - Assert.True(result); - } - - [Fact] - public void IsMatch_WithNameAndPath_UsesExecutablePathPriority() - { - var rule = CreateRule(processName: "game.exe", executablePath: @"C:\Games\App\Game.exe"); - var process = CreateProcess(name: "game.exe", executablePath: @"C:\Other\Game.exe"); - - var result = this.matcher.IsMatch(rule, process); - - Assert.False(result); - } - - [Fact] - public void IsMatch_WithDisabledRule_ReturnsFalse() - { - var rule = CreateRule(processName: "game.exe") with { IsEnabled = false }; - var process = CreateProcess(name: "game.exe"); - - var result = this.matcher.IsMatch(rule, process); - - Assert.False(result); - } - - [Fact] - public void IsMatch_WithProcessWithoutExecutablePath_CanMatchProcessName() - { - var rule = CreateRule(processName: "game.exe"); - var process = CreateProcess(name: "GAME.EXE", executablePath: string.Empty); - - var result = this.matcher.IsMatch(rule, process); - - Assert.True(result); - } - - [Fact] - public void IsMatch_WithNullPaths_DoesNotThrow() - { - var rule = CreateRule(processName: null, executablePath: null); - var process = CreateProcess(name: "game.exe", executablePath: null); - - var exception = Record.Exception(() => this.matcher.IsMatch(rule, process)); - - Assert.Null(exception); - } - - private static PersistentProcessRule CreateRule(string? processName = null, string? executablePath = null) => - new() - { - Id = Guid.NewGuid().ToString("N"), - Name = "Rule", - IsEnabled = true, - ProcessName = processName, - ExecutablePath = executablePath, - }; - - private static ProcessModel CreateProcess(string name = "game.exe", string? executablePath = @"C:\Games\Game.exe") => - new() - { - ProcessId = 42, - Name = name, - ExecutablePath = executablePath ?? string.Empty, - }; - } -} +/* + * ThreadPilot - persistent process rule matcher tests. + */ +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class PersistentProcessRuleMatcherTests + { + private readonly PersistentProcessRuleMatcher matcher = new(); + + [Fact] + public void IsMatch_WithProcessName_MatchesCaseInsensitive() + { + var rule = CreateRule(processName: "GAME.EXE"); + var process = CreateProcess(name: "game.exe"); + + var result = this.matcher.IsMatch(rule, process); + + Assert.True(result); + } + + [Fact] + public void IsMatch_WithExecutablePath_MatchesCaseInsensitive() + { + var rule = CreateRule(executablePath: @"C:\Games\App\Game.exe"); + var process = CreateProcess(executablePath: @"c:\games\app\game.exe"); + + var result = this.matcher.IsMatch(rule, process); + + Assert.True(result); + } + + [Fact] + public void IsMatch_WithNameAndPath_UsesExecutablePathPriority() + { + var rule = CreateRule(processName: "game.exe", executablePath: @"C:\Games\App\Game.exe"); + var process = CreateProcess(name: "game.exe", executablePath: @"C:\Other\Game.exe"); + + var result = this.matcher.IsMatch(rule, process); + + Assert.False(result); + } + + [Fact] + public void IsMatch_WithDisabledRule_ReturnsFalse() + { + var rule = CreateRule(processName: "game.exe") with { IsEnabled = false }; + var process = CreateProcess(name: "game.exe"); + + var result = this.matcher.IsMatch(rule, process); + + Assert.False(result); + } + + [Fact] + public void IsMatch_WithProcessWithoutExecutablePath_CanMatchProcessName() + { + var rule = CreateRule(processName: "game.exe"); + var process = CreateProcess(name: "GAME.EXE", executablePath: string.Empty); + + var result = this.matcher.IsMatch(rule, process); + + Assert.True(result); + } + + [Fact] + public void IsMatch_WithNullPaths_DoesNotThrow() + { + var rule = CreateRule(processName: null, executablePath: null); + var process = CreateProcess(name: "game.exe", executablePath: null); + + var exception = Record.Exception(() => this.matcher.IsMatch(rule, process)); + + Assert.Null(exception); + } + + private static PersistentProcessRule CreateRule(string? processName = null, string? executablePath = null) => + new() + { + Id = Guid.NewGuid().ToString("N"), + Name = "Rule", + IsEnabled = true, + ProcessName = processName, + ExecutablePath = executablePath, + }; + + private static ProcessModel CreateProcess(string name = "game.exe", string? executablePath = @"C:\Games\Game.exe") => + new() + { + ProcessId = 42, + Name = name, + ExecutablePath = executablePath ?? string.Empty, + }; + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PersistentRuleAutoApplyServiceTests.cs b/Tests/ThreadPilot.Core.Tests/PersistentRuleAutoApplyServiceTests.cs index a2e2913..494d46d 100644 --- a/Tests/ThreadPilot.Core.Tests/PersistentRuleAutoApplyServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PersistentRuleAutoApplyServiceTests.cs @@ -1,512 +1,512 @@ -/* - * ThreadPilot - persistent rule auto-apply coordinator tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Diagnostics; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class PersistentRuleAutoApplyServiceTests - { - [Fact] - public async Task ApplyForProcessStartAsync_WhenMatchingEnabledRuleExists_CallsRulesEngine() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var audit = new ActivityAuditService(NullLogger.Instance); - var service = CreateService([rule], engine.Object, audit: audit); - - var results = await service.ApplyForProcessStartAsync(process); - - Assert.Single(results); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Rules", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Contains("Auto-applied saved rule", entry.Message); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Once); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WhenRuleIsDisabled_DoesNotCallRulesEngine() - { - var process = CreateProcess(); - var rule = CreateRule() with { IsEnabled = false }; - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - var results = await service.ApplyForProcessStartAsync(process); - - Assert.Empty(results); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WhenNoRuleMatches_DoesNotCallRulesEngine() - { - var process = CreateProcess("editor.exe"); - var rule = CreateRule(processName: "game.exe"); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - var results = await service.ApplyForProcessStartAsync(process); - - Assert.Empty(results); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyForProcessStartAsync_DoesNotReapplySameRuleDuringCooldown() - { - var now = DateTimeOffset.UtcNow; - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var audit = new ActivityAuditService(NullLogger.Instance); - var service = CreateService([rule], engine.Object, nowProvider: () => now, audit: audit); - - await service.ApplyForProcessStartAsync(process); - await service.ApplyForProcessStartAsync(process); - - Assert.Single(await audit.GetEntriesAsync()); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Once); - } - - [Fact] - public async Task ApplyForProcessStartAsync_AfterCooldown_RetriesRule() - { - var now = DateTimeOffset.UtcNow; - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object, nowProvider: () => now); - - await service.ApplyForProcessStartAsync(process); - now = now.AddSeconds(31); - await service.ApplyForProcessStartAsync(process); - - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Exactly(2)); - } - - [Fact] - public async Task ApplyForProcessStartAsync_AfterProcessExit_DoesNotSuppressReusedPid() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - await service.ApplyForProcessStartAsync(process); - service.MarkProcessExited(process.ProcessId); - await service.ApplyForProcessStartAsync(process); - - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Exactly(2)); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WithAccessDeniedFailure_ReturnsFailureWithoutThrowing() - { - var process = CreateProcess(); - var rule = CreateRule(); - var failure = CreateFailure(rule, process, ProcessOperationUserMessages.AccessDenied, isAccessDenied: true); - var engine = CreateEngine(rule, failure); - var audit = new ActivityAuditService(NullLogger.Instance); - var service = CreateService([rule], engine.Object, audit: audit); - - var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); - - Assert.False(result.Success); - Assert.True(result.IsAccessDenied); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Rules", entry.Category); - Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); - Assert.Contains("Failed to auto-apply saved rule", entry.Message); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WithProcessExitedFailure_ReturnsFailureWithoutThrowing() - { - var process = CreateProcess(); - var rule = CreateRule(); - var failure = CreateFailure(rule, process, ProcessOperationUserMessages.ProcessExited, isProcessExited: true); - var engine = CreateEngine(rule, failure); - var service = CreateService([rule], engine.Object); - - var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); - - Assert.False(result.Success); - Assert.True(result.IsProcessExited); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WithProtectedProcessFailure_ReturnsSafeFailureWithoutThrowing() - { - var process = CreateProcess(); - var rule = CreateRule(); - var failure = CreateFailure( - rule, - process, - ProcessOperationUserMessages.AntiCheatProtectedLikely, - isAccessDenied: true, - isAntiCheatLikely: true); - var engine = CreateEngine(rule, failure); - var service = CreateService([rule], engine.Object); - - var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); - - Assert.False(result.Success); - Assert.True(result.IsAntiCheatLikely); - Assert.DoesNotContain("bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WhenRulesEngineCancels_PropagatesCancellation() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngineThatCancels(); - var service = CreateService([rule], engine.Object); - - await Assert.ThrowsAsync(() => - service.ApplyForProcessStartAsync(process)); - } - - [Fact] - public async Task ApplyForProcessStartAsync_FeatureFlagDisabled_DoesNotCallRulesEngine() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService( - [rule], - engine.Object, - settings: new ApplicationSettingsModel { ApplyPersistentRulesOnProcessStart = false }); - - var results = await service.ApplyForProcessStartAsync(process); - - Assert.Empty(results); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny()), - Times.Never); - } - - [Theory] - [InlineData(0, "game.exe")] - [InlineData(42, "")] - [InlineData(42, " ")] - public async Task ApplyForProcessStartAsync_WithInvalidProcess_DoesNotCallRulesEngine(int processId, string processName) - { - var process = CreateProcess(processName); - process.ProcessId = processId; - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - var results = await service.ApplyForProcessStartAsync(process); - - Assert.Empty(results); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyForDiscoveredProcessesAsync_FeatureFlagDisabled_DoesNotCallRulesEngine() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService( - [rule], - engine.Object, - settings: new ApplicationSettingsModel { ApplyPersistentRulesOnProcessStart = false }); - - var results = await service.ApplyForDiscoveredProcessesAsync([process]); - - Assert.Empty(results); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyForDiscoveredProcessesAsync_GroupsDuplicateProcessesByProcessId() - { - var process = CreateProcess(); - var duplicate = CreateProcess("game.exe"); - duplicate.ExecutablePath = @"C:\Games\GameCopy.exe"; - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - await service.ApplyForDiscoveredProcessesAsync([process, duplicate]); - - engine.Verify( - x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny()), - Times.Once); - } - - [Fact] - public async Task ApplyForDiscoveredProcessesAsync_ClearsCooldownForProcessesNoLongerPresent() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - await service.ApplyForDiscoveredProcessesAsync([process]); - await service.ApplyForDiscoveredProcessesAsync([]); - await service.ApplyForDiscoveredProcessesAsync([process]); - - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Exactly(2)); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WhenRuleUpdatedDuringCooldown_AllowsReapply() - { - var process = CreateProcess(); - var rule = CreateRule(); - var rules = new List { rule }; - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService(rules, engine.Object); - - await service.ApplyForProcessStartAsync(process); - rules[0] = rule with { UpdatedAt = rule.UpdatedAt.AddSeconds(1) }; - await service.ApplyForProcessStartAsync(process); - - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Exactly(2)); - } - - [Fact] - public async Task ApplyForProcessStartAsync_WhenRulesEngineThrows_ReturnsControlledFailure() - { - var process = CreateProcess(); - var rule = CreateRule(); - var engine = CreateEngineThatThrows(new InvalidOperationException("native apply failed")); - var service = CreateService([rule], engine.Object); - - var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); - - Assert.False(result.Success); - Assert.Equal(rule.Id, result.RuleId); - Assert.Equal(process.ProcessId, result.ProcessId); - Assert.Equal("ThreadPilot could not apply the saved rule.", result.UserMessage); - Assert.Equal("native apply failed", result.TechnicalMessage); - } - - [Fact] - public async Task MarkProcessExited_RemovesOnlyMatchingProcessAttempts() - { - var process = CreateProcess(); - var otherProcess = CreateProcess("game.exe"); - otherProcess.ProcessId = 84; - var rule = CreateRule(); - var engine = CreateEngine(rule, CreateSuccess(rule, process)); - var service = CreateService([rule], engine.Object); - - await service.ApplyForProcessStartAsync(process); - await service.ApplyForProcessStartAsync(otherProcess); - service.MarkProcessExited(process.ProcessId); - await service.ApplyForProcessStartAsync(process); - await service.ApplyForProcessStartAsync(otherProcess); - - engine.Verify( - x => x.ApplyMatchingRulesAsync( - process, - It.IsAny?>(), - It.IsAny()), - Times.Exactly(2)); - engine.Verify( - x => x.ApplyMatchingRulesAsync( - otherProcess, - It.IsAny?>(), - It.IsAny()), - Times.Once); - } - - private static PersistentRuleAutoApplyService CreateService( - IReadOnlyList rules, - IPersistentRulesEngine engine, - ApplicationSettingsModel? settings = null, - Func? nowProvider = null, - IActivityAuditService? audit = null) => - new( - new FakePersistentProcessRuleStore(rules), - new PersistentProcessRuleMatcher(), - engine, - CreateSettingsService(settings ?? new ApplicationSettingsModel()), - NullLogger.Instance, - nowProvider ?? (() => DateTimeOffset.UtcNow), - TimeSpan.FromSeconds(30), - audit); - - private static Mock CreateEngine( - PersistentProcessRule rule, - PersistentRuleApplyResult result) - { - var engine = new Mock(MockBehavior.Strict); - engine - .Setup(x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny())) - .ReturnsAsync((ProcessModel _, Predicate? predicate, CancellationToken _) => - predicate == null || predicate(rule) - ? new[] { result } - : Array.Empty()); - return engine; - } - - private static Mock CreateEngineThatCancels() - { - var engine = new Mock(MockBehavior.Strict); - engine - .Setup(x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny())) - .ThrowsAsync(new OperationCanceledException()); - return engine; - } - - private static Mock CreateEngineThatThrows(Exception exception) - { - var engine = new Mock(MockBehavior.Strict); - engine - .Setup(x => x.ApplyMatchingRulesAsync( - It.IsAny(), - It.IsAny?>(), - It.IsAny())) - .ThrowsAsync(exception); - return engine; - } - - private static IApplicationSettingsService CreateSettingsService(ApplicationSettingsModel settings) - { - var settingsService = new Mock(MockBehavior.Loose); - settingsService.SetupGet(x => x.Settings).Returns(settings); - return settingsService.Object; - } - - private static ProcessModel CreateProcess(string name = "game.exe") => - new() - { - ProcessId = 42, - Name = name, - ExecutablePath = @"C:\Games\Game.exe", - Priority = ProcessPriorityClass.Normal, - }; - - private static PersistentProcessRule CreateRule(string id = "rule", string processName = "game.exe") => - new() - { - Id = id, - Name = id, - IsEnabled = true, - ProcessName = processName, - LegacyAffinityMask = 3, - ApplyAffinityOnStart = true, - CreatedAt = DateTime.UtcNow, - UpdatedAt = DateTime.UtcNow, - }; - - private static PersistentRuleApplyResult CreateSuccess(PersistentProcessRule rule, ProcessModel process) => - new() - { - Success = true, - RuleId = rule.Id, - ProcessId = process.ProcessId, - ProcessName = process.Name, - AffinityApplied = true, - UserMessage = "Persistent rule applied.", - TechnicalMessage = "ok", - }; - - private static PersistentRuleApplyResult CreateFailure( - PersistentProcessRule rule, - ProcessModel process, - string userMessage, - bool isAccessDenied = false, - bool isAntiCheatLikely = false, - bool isProcessExited = false) => - new() - { - Success = false, - RuleId = rule.Id, - ProcessId = process.ProcessId, - ProcessName = process.Name, - UserMessage = userMessage, - TechnicalMessage = userMessage, - IsAccessDenied = isAccessDenied, - IsAntiCheatLikely = isAntiCheatLikely, - IsProcessExited = isProcessExited, - }; - - private sealed class FakePersistentProcessRuleStore(IReadOnlyList rules) - : IPersistentProcessRuleStore - { - public Task> LoadAsync() => - Task.FromResult(rules); - - public Task SaveAsync(IReadOnlyList rules) => - Task.CompletedTask; - } - } -} +/* + * ThreadPilot - persistent rule auto-apply coordinator tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Diagnostics; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class PersistentRuleAutoApplyServiceTests + { + [Fact] + public async Task ApplyForProcessStartAsync_WhenMatchingEnabledRuleExists_CallsRulesEngine() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var audit = new ActivityAuditService(NullLogger.Instance); + var service = CreateService([rule], engine.Object, audit: audit); + + var results = await service.ApplyForProcessStartAsync(process); + + Assert.Single(results); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Rules", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Contains("Auto-applied saved rule", entry.Message); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Once); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WhenRuleIsDisabled_DoesNotCallRulesEngine() + { + var process = CreateProcess(); + var rule = CreateRule() with { IsEnabled = false }; + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + var results = await service.ApplyForProcessStartAsync(process); + + Assert.Empty(results); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WhenNoRuleMatches_DoesNotCallRulesEngine() + { + var process = CreateProcess("editor.exe"); + var rule = CreateRule(processName: "game.exe"); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + var results = await service.ApplyForProcessStartAsync(process); + + Assert.Empty(results); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyForProcessStartAsync_DoesNotReapplySameRuleDuringCooldown() + { + var now = DateTimeOffset.UtcNow; + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var audit = new ActivityAuditService(NullLogger.Instance); + var service = CreateService([rule], engine.Object, nowProvider: () => now, audit: audit); + + await service.ApplyForProcessStartAsync(process); + await service.ApplyForProcessStartAsync(process); + + Assert.Single(await audit.GetEntriesAsync()); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Once); + } + + [Fact] + public async Task ApplyForProcessStartAsync_AfterCooldown_RetriesRule() + { + var now = DateTimeOffset.UtcNow; + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object, nowProvider: () => now); + + await service.ApplyForProcessStartAsync(process); + now = now.AddSeconds(31); + await service.ApplyForProcessStartAsync(process); + + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Exactly(2)); + } + + [Fact] + public async Task ApplyForProcessStartAsync_AfterProcessExit_DoesNotSuppressReusedPid() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + await service.ApplyForProcessStartAsync(process); + service.MarkProcessExited(process.ProcessId); + await service.ApplyForProcessStartAsync(process); + + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Exactly(2)); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WithAccessDeniedFailure_ReturnsFailureWithoutThrowing() + { + var process = CreateProcess(); + var rule = CreateRule(); + var failure = CreateFailure(rule, process, ProcessOperationUserMessages.AccessDenied, isAccessDenied: true); + var engine = CreateEngine(rule, failure); + var audit = new ActivityAuditService(NullLogger.Instance); + var service = CreateService([rule], engine.Object, audit: audit); + + var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); + + Assert.False(result.Success); + Assert.True(result.IsAccessDenied); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Rules", entry.Category); + Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); + Assert.Contains("Failed to auto-apply saved rule", entry.Message); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WithProcessExitedFailure_ReturnsFailureWithoutThrowing() + { + var process = CreateProcess(); + var rule = CreateRule(); + var failure = CreateFailure(rule, process, ProcessOperationUserMessages.ProcessExited, isProcessExited: true); + var engine = CreateEngine(rule, failure); + var service = CreateService([rule], engine.Object); + + var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); + + Assert.False(result.Success); + Assert.True(result.IsProcessExited); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WithProtectedProcessFailure_ReturnsSafeFailureWithoutThrowing() + { + var process = CreateProcess(); + var rule = CreateRule(); + var failure = CreateFailure( + rule, + process, + ProcessOperationUserMessages.AntiCheatProtectedLikely, + isAccessDenied: true, + isAntiCheatLikely: true); + var engine = CreateEngine(rule, failure); + var service = CreateService([rule], engine.Object); + + var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); + + Assert.False(result.Success); + Assert.True(result.IsAntiCheatLikely); + Assert.DoesNotContain("bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WhenRulesEngineCancels_PropagatesCancellation() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngineThatCancels(); + var service = CreateService([rule], engine.Object); + + await Assert.ThrowsAsync(() => + service.ApplyForProcessStartAsync(process)); + } + + [Fact] + public async Task ApplyForProcessStartAsync_FeatureFlagDisabled_DoesNotCallRulesEngine() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService( + [rule], + engine.Object, + settings: new ApplicationSettingsModel { ApplyPersistentRulesOnProcessStart = false }); + + var results = await service.ApplyForProcessStartAsync(process); + + Assert.Empty(results); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny()), + Times.Never); + } + + [Theory] + [InlineData(0, "game.exe")] + [InlineData(42, "")] + [InlineData(42, " ")] + public async Task ApplyForProcessStartAsync_WithInvalidProcess_DoesNotCallRulesEngine(int processId, string processName) + { + var process = CreateProcess(processName); + process.ProcessId = processId; + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + var results = await service.ApplyForProcessStartAsync(process); + + Assert.Empty(results); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyForDiscoveredProcessesAsync_FeatureFlagDisabled_DoesNotCallRulesEngine() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService( + [rule], + engine.Object, + settings: new ApplicationSettingsModel { ApplyPersistentRulesOnProcessStart = false }); + + var results = await service.ApplyForDiscoveredProcessesAsync([process]); + + Assert.Empty(results); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyForDiscoveredProcessesAsync_GroupsDuplicateProcessesByProcessId() + { + var process = CreateProcess(); + var duplicate = CreateProcess("game.exe"); + duplicate.ExecutablePath = @"C:\Games\GameCopy.exe"; + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + await service.ApplyForDiscoveredProcessesAsync([process, duplicate]); + + engine.Verify( + x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny()), + Times.Once); + } + + [Fact] + public async Task ApplyForDiscoveredProcessesAsync_ClearsCooldownForProcessesNoLongerPresent() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + await service.ApplyForDiscoveredProcessesAsync([process]); + await service.ApplyForDiscoveredProcessesAsync([]); + await service.ApplyForDiscoveredProcessesAsync([process]); + + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Exactly(2)); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WhenRuleUpdatedDuringCooldown_AllowsReapply() + { + var process = CreateProcess(); + var rule = CreateRule(); + var rules = new List { rule }; + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService(rules, engine.Object); + + await service.ApplyForProcessStartAsync(process); + rules[0] = rule with { UpdatedAt = rule.UpdatedAt.AddSeconds(1) }; + await service.ApplyForProcessStartAsync(process); + + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Exactly(2)); + } + + [Fact] + public async Task ApplyForProcessStartAsync_WhenRulesEngineThrows_ReturnsControlledFailure() + { + var process = CreateProcess(); + var rule = CreateRule(); + var engine = CreateEngineThatThrows(new InvalidOperationException("native apply failed")); + var service = CreateService([rule], engine.Object); + + var result = Assert.Single(await service.ApplyForProcessStartAsync(process)); + + Assert.False(result.Success); + Assert.Equal(rule.Id, result.RuleId); + Assert.Equal(process.ProcessId, result.ProcessId); + Assert.Equal("ThreadPilot could not apply the saved rule.", result.UserMessage); + Assert.Equal("native apply failed", result.TechnicalMessage); + } + + [Fact] + public async Task MarkProcessExited_RemovesOnlyMatchingProcessAttempts() + { + var process = CreateProcess(); + var otherProcess = CreateProcess("game.exe"); + otherProcess.ProcessId = 84; + var rule = CreateRule(); + var engine = CreateEngine(rule, CreateSuccess(rule, process)); + var service = CreateService([rule], engine.Object); + + await service.ApplyForProcessStartAsync(process); + await service.ApplyForProcessStartAsync(otherProcess); + service.MarkProcessExited(process.ProcessId); + await service.ApplyForProcessStartAsync(process); + await service.ApplyForProcessStartAsync(otherProcess); + + engine.Verify( + x => x.ApplyMatchingRulesAsync( + process, + It.IsAny?>(), + It.IsAny()), + Times.Exactly(2)); + engine.Verify( + x => x.ApplyMatchingRulesAsync( + otherProcess, + It.IsAny?>(), + It.IsAny()), + Times.Once); + } + + private static PersistentRuleAutoApplyService CreateService( + IReadOnlyList rules, + IPersistentRulesEngine engine, + ApplicationSettingsModel? settings = null, + Func? nowProvider = null, + IActivityAuditService? audit = null) => + new( + new FakePersistentProcessRuleStore(rules), + new PersistentProcessRuleMatcher(), + engine, + CreateSettingsService(settings ?? new ApplicationSettingsModel()), + NullLogger.Instance, + nowProvider ?? (() => DateTimeOffset.UtcNow), + TimeSpan.FromSeconds(30), + audit); + + private static Mock CreateEngine( + PersistentProcessRule rule, + PersistentRuleApplyResult result) + { + var engine = new Mock(MockBehavior.Strict); + engine + .Setup(x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny())) + .ReturnsAsync((ProcessModel _, Predicate? predicate, CancellationToken _) => + predicate == null || predicate(rule) + ? new[] { result } + : Array.Empty()); + return engine; + } + + private static Mock CreateEngineThatCancels() + { + var engine = new Mock(MockBehavior.Strict); + engine + .Setup(x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny())) + .ThrowsAsync(new OperationCanceledException()); + return engine; + } + + private static Mock CreateEngineThatThrows(Exception exception) + { + var engine = new Mock(MockBehavior.Strict); + engine + .Setup(x => x.ApplyMatchingRulesAsync( + It.IsAny(), + It.IsAny?>(), + It.IsAny())) + .ThrowsAsync(exception); + return engine; + } + + private static IApplicationSettingsService CreateSettingsService(ApplicationSettingsModel settings) + { + var settingsService = new Mock(MockBehavior.Loose); + settingsService.SetupGet(x => x.Settings).Returns(settings); + return settingsService.Object; + } + + private static ProcessModel CreateProcess(string name = "game.exe") => + new() + { + ProcessId = 42, + Name = name, + ExecutablePath = @"C:\Games\Game.exe", + Priority = ProcessPriorityClass.Normal, + }; + + private static PersistentProcessRule CreateRule(string id = "rule", string processName = "game.exe") => + new() + { + Id = id, + Name = id, + IsEnabled = true, + ProcessName = processName, + LegacyAffinityMask = 3, + ApplyAffinityOnStart = true, + CreatedAt = DateTime.UtcNow, + UpdatedAt = DateTime.UtcNow, + }; + + private static PersistentRuleApplyResult CreateSuccess(PersistentProcessRule rule, ProcessModel process) => + new() + { + Success = true, + RuleId = rule.Id, + ProcessId = process.ProcessId, + ProcessName = process.Name, + AffinityApplied = true, + UserMessage = "Persistent rule applied.", + TechnicalMessage = "ok", + }; + + private static PersistentRuleApplyResult CreateFailure( + PersistentProcessRule rule, + ProcessModel process, + string userMessage, + bool isAccessDenied = false, + bool isAntiCheatLikely = false, + bool isProcessExited = false) => + new() + { + Success = false, + RuleId = rule.Id, + ProcessId = process.ProcessId, + ProcessName = process.Name, + UserMessage = userMessage, + TechnicalMessage = userMessage, + IsAccessDenied = isAccessDenied, + IsAntiCheatLikely = isAntiCheatLikely, + IsProcessExited = isProcessExited, + }; + + private sealed class FakePersistentProcessRuleStore(IReadOnlyList rules) + : IPersistentProcessRuleStore + { + public Task> LoadAsync() => + Task.FromResult(rules); + + public Task SaveAsync(IReadOnlyList rules) => + Task.CompletedTask; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PersistentRulesEngineTests.cs b/Tests/ThreadPilot.Core.Tests/PersistentRulesEngineTests.cs index 71daf66..7d1103d 100644 --- a/Tests/ThreadPilot.Core.Tests/PersistentRulesEngineTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PersistentRulesEngineTests.cs @@ -1,482 +1,482 @@ -/* - * ThreadPilot - persistent rules engine tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Diagnostics; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class PersistentRulesEngineTests - { - [Fact] - public async Task ApplyMatchingRulesAsync_WithCpuSelection_AppliesCpuSelection() - { - var selection = CreateCpuSelection(); - var rule = CreateRule(cpuSelection: selection, applyAffinity: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - var process = CreateProcess(); - - var results = await engine.ApplyMatchingRulesAsync(process); - - Assert.Single(results); - Assert.True(results[0].Success); - Assert.True(results[0].AffinityApplied); - affinity.Verify(s => s.ApplyAsync(process, selection), Times.Once); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithLegacyAffinityMask_AppliesLegacyAffinity() - { - var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - var process = CreateProcess(); - - var results = await engine.ApplyMatchingRulesAsync(process); - - Assert.Single(results); - Assert.True(results[0].Success); - Assert.True(results[0].AffinityApplied); - affinity.Verify(s => s.ApplyAsync(process, 3), Times.Once); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithPriority_AppliesPriority() - { - var rule = CreateRule(priority: ProcessPriorityClass.High, applyPriority: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var memoryPriorityService = CreateMemoryPriorityService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); - var process = CreateProcess(); - - var results = await engine.ApplyMatchingRulesAsync(process); - - Assert.Single(results); - Assert.True(results[0].Success); - Assert.True(results[0].PriorityApplied); - processService.Verify(s => s.SetProcessPriority(process, ProcessPriorityClass.High), Times.Once); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithMemoryPriority_AppliesMemoryPriority() - { - var rule = CreateRule(memoryPriority: ProcessMemoryPriority.Low, applyMemoryPriority: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var memoryPriorityService = CreateMemoryPriorityService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); - var process = CreateProcess(); - - var results = await engine.ApplyMatchingRulesAsync(process); - - Assert.Single(results); - Assert.True(results[0].Success); - Assert.True(results[0].MemoryPriorityApplied); - memoryPriorityService.Verify( - s => s.SetMemoryPriorityAsync(process, ProcessMemoryPriority.Low), - Times.Once); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithRealtimePriority_ReturnsControlledFailure() - { - var rule = CreateRule(priority: ProcessPriorityClass.RealTime, applyPriority: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - processService - .Setup(s => s.SetProcessPriority(It.IsAny(), ProcessPriorityClass.RealTime)) - .ThrowsAsync(new InvalidOperationException(ProcessOperationUserMessages.RealtimePriorityBlocked)); - var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.False(result.PriorityApplied); - Assert.Equal(ProcessOperationUserMessages.RealtimePriorityBlocked, result.UserMessage); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithAccessDeniedAffinity_ReturnsAccessDeniedResult() - { - var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); - var affinity = CreateAffinityService(AffinityApplyResult.Failed( - AffinityApplyErrorCodes.AccessDenied, - ProcessOperationUserMessages.AccessDenied, - "Access is denied.", - isAccessDenied: true)); - var engine = CreateEngine([rule], affinity.Object, CreateProcessService().Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.True(result.IsAccessDenied); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithAntiCheatAffinity_ReturnsSafeProtectedResult() - { - var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); - var affinity = CreateAffinityService(AffinityApplyResult.Failed( - AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, - ProcessOperationUserMessages.AntiCheatProtectedLikely, - "Protected process.", - isAccessDenied: true, - isAntiCheatLikely: true)); - var engine = CreateEngine([rule], affinity.Object, CreateProcessService().Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.True(result.IsAntiCheatLikely); - Assert.DoesNotContain("bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithProcessExitedAffinity_ReturnsProcessExitedResult() - { - var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); - var affinity = CreateAffinityService(AffinityApplyResult.Failed( - AffinityApplyErrorCodes.ProcessExited, - ProcessOperationUserMessages.ProcessExited, - "Process exited.", - failureReason: AffinityApplyFailureReason.ProcessTerminated)); - var engine = CreateEngine([rule], affinity.Object, CreateProcessService().Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.True(result.IsProcessExited); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithDisabledRule_DoesNotApply() - { - var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true) with { IsEnabled = false }; - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var memoryPriorityService = CreateMemoryPriorityService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - Assert.Empty(results); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); - memoryPriorityService.Verify( - s => s.SetMemoryPriorityAsync(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithAffinityEnabledButNoAffinityPayload_ReturnsFailure() - { - var rule = CreateRule(applyAffinity: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.False(result.AffinityApplied); - Assert.False(result.PriorityApplied); - Assert.False(result.MemoryPriorityApplied); - Assert.Equal("PersistentRuleMissingAffinity", result.ErrorCode); - Assert.Equal("This saved rule has no affinity selection to apply.", result.UserMessage); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithPriorityEnabledButNoPriorityPayload_ReturnsFailure() - { - var rule = CreateRule(applyPriority: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.False(result.AffinityApplied); - Assert.False(result.PriorityApplied); - Assert.False(result.MemoryPriorityApplied); - Assert.Equal("PersistentRuleMissingPriority", result.ErrorCode); - Assert.Equal("This saved rule has no priority value to apply.", result.UserMessage); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithMemoryPriorityEnabledButNoMemoryPriorityPayload_ReturnsFailure() - { - var rule = CreateRule(applyMemoryPriority: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var memoryPriorityService = CreateMemoryPriorityService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.False(result.AffinityApplied); - Assert.False(result.PriorityApplied); - Assert.False(result.MemoryPriorityApplied); - Assert.Equal("PersistentRuleMissingMemoryPriority", result.ErrorCode); - Assert.Equal("This saved rule has no memory priority value to apply.", result.UserMessage); - memoryPriorityService.Verify( - s => s.SetMemoryPriorityAsync(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithAffinityPriorityAndMemoryPriority_AppliesAllFlags() - { - var rule = CreateRule( - legacyAffinityMask: 3, - priority: ProcessPriorityClass.AboveNormal, - memoryPriority: ProcessMemoryPriority.BelowNormal, - applyAffinity: true, - applyPriority: true, - applyMemoryPriority: true); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var memoryPriorityService = CreateMemoryPriorityService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); - - var result = Assert.Single(await engine.ApplyMatchingRulesAsync(CreateProcess())); - - Assert.True(result.Success); - Assert.True(result.AffinityApplied); - Assert.True(result.PriorityApplied); - Assert.True(result.MemoryPriorityApplied); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithMemoryPriorityAccessDenied_PropagatesAccessDeniedResult() - { - var rule = CreateRule(memoryPriority: ProcessMemoryPriority.Low, applyMemoryPriority: true); - var memoryPriorityService = CreateMemoryPriorityService(ProcessOperationResult.Failed( - AffinityApplyErrorCodes.AccessDenied, - ProcessOperationUserMessages.AccessDenied, - "Access is denied.", - isAccessDenied: true)); - var engine = CreateEngine( - [rule], - CreateAffinityService().Object, - CreateProcessService().Object, - memoryPriorityService.Object); - - var result = Assert.Single(await engine.ApplyMatchingRulesAsync(CreateProcess())); - - Assert.False(result.Success); - Assert.False(result.MemoryPriorityApplied); - Assert.True(result.IsAccessDenied); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithNoActions_ReturnsControlledFailure() - { - var rule = CreateRule(); - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - var result = Assert.Single(results); - Assert.False(result.Success); - Assert.False(result.AffinityApplied); - Assert.False(result.PriorityApplied); - Assert.False(result.MemoryPriorityApplied); - Assert.Equal("PersistentRuleNoActions", result.ErrorCode); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WithMultipleMatchingRules_ReturnsResultPerRuleWithoutRetry() - { - var rules = new[] - { - CreateRule(id: "rule-a", legacyAffinityMask: 1, applyAffinity: true), - CreateRule(id: "rule-b", priority: ProcessPriorityClass.AboveNormal, applyPriority: true), - }; - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine(rules, affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); - - Assert.Equal(2, results.Count); - Assert.Contains(results, result => result.RuleId == "rule-a"); - Assert.Contains(results, result => result.RuleId == "rule-b"); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Once); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Once); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WhenRuleFilterExcludesMatchingRule_DoesNotApplyIt() - { - var rules = new[] - { - CreateRule(id: "rule-a", legacyAffinityMask: 1, applyAffinity: true), - CreateRule(id: "rule-b", legacyAffinityMask: 2, applyAffinity: true), - }; - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine(rules, affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync( - CreateProcess(), - rule => rule.Id != "rule-a"); - - var result = Assert.Single(results); - Assert.Equal("rule-b", result.RuleId); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), 1L), Times.Never); - affinity.Verify(s => s.ApplyAsync(It.IsAny(), 2L), Times.Once); - } - - [Fact] - public async Task ApplyMatchingRulesAsync_WhenRuleFilterIncludesSelectedRule_AppliesOnlyThatRule() - { - var rules = new[] - { - CreateRule(id: "rule-a", priority: ProcessPriorityClass.AboveNormal, applyPriority: true), - CreateRule(id: "rule-b", priority: ProcessPriorityClass.High, applyPriority: true), - }; - var affinity = CreateAffinityService(); - var processService = CreateProcessService(); - var engine = CreateEngine(rules, affinity.Object, processService.Object, CreateMemoryPriorityService().Object); - - var results = await engine.ApplyMatchingRulesAsync( - CreateProcess(), - rule => rule.Id == "rule-b"); - - var result = Assert.Single(results); - Assert.Equal("rule-b", result.RuleId); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), ProcessPriorityClass.AboveNormal), Times.Never); - processService.Verify(s => s.SetProcessPriority(It.IsAny(), ProcessPriorityClass.High), Times.Once); - } - - private static PersistentRulesEngine CreateEngine( - IReadOnlyList rules, - IAffinityApplyService affinityApplyService, - IProcessService processService, - IProcessMemoryPriorityService memoryPriorityService) => - new( - new FakePersistentProcessRuleStore(rules), - new PersistentProcessRuleMatcher(), - affinityApplyService, - processService, - memoryPriorityService, - Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance); - - private static Mock CreateAffinityService(AffinityApplyResult? result = null) - { - var mock = new Mock(MockBehavior.Strict); - var resolved = result ?? AffinityApplyResult.Succeeded(1, 1); - mock - .Setup(s => s.ApplyAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(resolved); - mock - .Setup(s => s.ApplyAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(resolved); - return mock; - } - - private static Mock CreateProcessService() - { - var mock = new Mock(MockBehavior.Strict); - mock - .Setup(s => s.SetProcessPriority(It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - return mock; - } - - private static Mock CreateMemoryPriorityService(ProcessOperationResult? result = null) - { - var mock = new Mock(MockBehavior.Strict); - mock - .Setup(s => s.SetMemoryPriorityAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(result ?? ProcessOperationResult.Succeeded( - "Memory priority applied.", - "Memory priority applied in test.")); - return mock; - } - - private static PersistentProcessRule CreateRule( - string id = "rule", - CpuSelection? cpuSelection = null, - long? legacyAffinityMask = null, - ProcessPriorityClass? priority = null, - ProcessMemoryPriority? memoryPriority = null, - bool applyAffinity = false, - bool applyPriority = false, - bool applyMemoryPriority = false) => - new() - { - Id = id, - Name = id, - IsEnabled = true, - ProcessName = "game.exe", - CpuSelection = cpuSelection, - LegacyAffinityMask = legacyAffinityMask, - Priority = priority, - MemoryPriority = memoryPriority, - ApplyAffinityOnStart = applyAffinity, - ApplyPriorityOnStart = applyPriority, - ApplyMemoryPriorityOnStart = applyMemoryPriority, - CreatedAt = DateTime.UtcNow, - UpdatedAt = DateTime.UtcNow, - }; - - private static CpuSelection CreateCpuSelection() => - new() - { - LogicalProcessors = [new ProcessorRef(0, 0, 0)], - GlobalLogicalProcessorIndexes = [0], - }; - - private static ProcessModel CreateProcess() => - new() - { - ProcessId = 42, - Name = "game.exe", - ExecutablePath = @"C:\Games\Game.exe", - Priority = ProcessPriorityClass.Normal, - }; - - private sealed class FakePersistentProcessRuleStore(IReadOnlyList rules) - : IPersistentProcessRuleStore - { - public Task> LoadAsync() => - Task.FromResult(rules); - - public Task SaveAsync(IReadOnlyList rules) => - Task.CompletedTask; - } - } -} +/* + * ThreadPilot - persistent rules engine tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Diagnostics; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class PersistentRulesEngineTests + { + [Fact] + public async Task ApplyMatchingRulesAsync_WithCpuSelection_AppliesCpuSelection() + { + var selection = CreateCpuSelection(); + var rule = CreateRule(cpuSelection: selection, applyAffinity: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + var process = CreateProcess(); + + var results = await engine.ApplyMatchingRulesAsync(process); + + Assert.Single(results); + Assert.True(results[0].Success); + Assert.True(results[0].AffinityApplied); + affinity.Verify(s => s.ApplyAsync(process, selection), Times.Once); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithLegacyAffinityMask_AppliesLegacyAffinity() + { + var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + var process = CreateProcess(); + + var results = await engine.ApplyMatchingRulesAsync(process); + + Assert.Single(results); + Assert.True(results[0].Success); + Assert.True(results[0].AffinityApplied); + affinity.Verify(s => s.ApplyAsync(process, 3), Times.Once); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithPriority_AppliesPriority() + { + var rule = CreateRule(priority: ProcessPriorityClass.High, applyPriority: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var memoryPriorityService = CreateMemoryPriorityService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); + var process = CreateProcess(); + + var results = await engine.ApplyMatchingRulesAsync(process); + + Assert.Single(results); + Assert.True(results[0].Success); + Assert.True(results[0].PriorityApplied); + processService.Verify(s => s.SetProcessPriority(process, ProcessPriorityClass.High), Times.Once); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithMemoryPriority_AppliesMemoryPriority() + { + var rule = CreateRule(memoryPriority: ProcessMemoryPriority.Low, applyMemoryPriority: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var memoryPriorityService = CreateMemoryPriorityService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); + var process = CreateProcess(); + + var results = await engine.ApplyMatchingRulesAsync(process); + + Assert.Single(results); + Assert.True(results[0].Success); + Assert.True(results[0].MemoryPriorityApplied); + memoryPriorityService.Verify( + s => s.SetMemoryPriorityAsync(process, ProcessMemoryPriority.Low), + Times.Once); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithRealtimePriority_ReturnsControlledFailure() + { + var rule = CreateRule(priority: ProcessPriorityClass.RealTime, applyPriority: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + processService + .Setup(s => s.SetProcessPriority(It.IsAny(), ProcessPriorityClass.RealTime)) + .ThrowsAsync(new InvalidOperationException(ProcessOperationUserMessages.RealtimePriorityBlocked)); + var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.False(result.PriorityApplied); + Assert.Equal(ProcessOperationUserMessages.RealtimePriorityBlocked, result.UserMessage); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithAccessDeniedAffinity_ReturnsAccessDeniedResult() + { + var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); + var affinity = CreateAffinityService(AffinityApplyResult.Failed( + AffinityApplyErrorCodes.AccessDenied, + ProcessOperationUserMessages.AccessDenied, + "Access is denied.", + isAccessDenied: true)); + var engine = CreateEngine([rule], affinity.Object, CreateProcessService().Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.True(result.IsAccessDenied); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithAntiCheatAffinity_ReturnsSafeProtectedResult() + { + var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); + var affinity = CreateAffinityService(AffinityApplyResult.Failed( + AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, + ProcessOperationUserMessages.AntiCheatProtectedLikely, + "Protected process.", + isAccessDenied: true, + isAntiCheatLikely: true)); + var engine = CreateEngine([rule], affinity.Object, CreateProcessService().Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.True(result.IsAntiCheatLikely); + Assert.DoesNotContain("bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithProcessExitedAffinity_ReturnsProcessExitedResult() + { + var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true); + var affinity = CreateAffinityService(AffinityApplyResult.Failed( + AffinityApplyErrorCodes.ProcessExited, + ProcessOperationUserMessages.ProcessExited, + "Process exited.", + failureReason: AffinityApplyFailureReason.ProcessTerminated)); + var engine = CreateEngine([rule], affinity.Object, CreateProcessService().Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.True(result.IsProcessExited); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithDisabledRule_DoesNotApply() + { + var rule = CreateRule(legacyAffinityMask: 3, applyAffinity: true) with { IsEnabled = false }; + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var memoryPriorityService = CreateMemoryPriorityService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + Assert.Empty(results); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); + memoryPriorityService.Verify( + s => s.SetMemoryPriorityAsync(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithAffinityEnabledButNoAffinityPayload_ReturnsFailure() + { + var rule = CreateRule(applyAffinity: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.False(result.AffinityApplied); + Assert.False(result.PriorityApplied); + Assert.False(result.MemoryPriorityApplied); + Assert.Equal("PersistentRuleMissingAffinity", result.ErrorCode); + Assert.Equal("This saved rule has no affinity selection to apply.", result.UserMessage); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithPriorityEnabledButNoPriorityPayload_ReturnsFailure() + { + var rule = CreateRule(applyPriority: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.False(result.AffinityApplied); + Assert.False(result.PriorityApplied); + Assert.False(result.MemoryPriorityApplied); + Assert.Equal("PersistentRuleMissingPriority", result.ErrorCode); + Assert.Equal("This saved rule has no priority value to apply.", result.UserMessage); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithMemoryPriorityEnabledButNoMemoryPriorityPayload_ReturnsFailure() + { + var rule = CreateRule(applyMemoryPriority: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var memoryPriorityService = CreateMemoryPriorityService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.False(result.AffinityApplied); + Assert.False(result.PriorityApplied); + Assert.False(result.MemoryPriorityApplied); + Assert.Equal("PersistentRuleMissingMemoryPriority", result.ErrorCode); + Assert.Equal("This saved rule has no memory priority value to apply.", result.UserMessage); + memoryPriorityService.Verify( + s => s.SetMemoryPriorityAsync(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithAffinityPriorityAndMemoryPriority_AppliesAllFlags() + { + var rule = CreateRule( + legacyAffinityMask: 3, + priority: ProcessPriorityClass.AboveNormal, + memoryPriority: ProcessMemoryPriority.BelowNormal, + applyAffinity: true, + applyPriority: true, + applyMemoryPriority: true); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var memoryPriorityService = CreateMemoryPriorityService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, memoryPriorityService.Object); + + var result = Assert.Single(await engine.ApplyMatchingRulesAsync(CreateProcess())); + + Assert.True(result.Success); + Assert.True(result.AffinityApplied); + Assert.True(result.PriorityApplied); + Assert.True(result.MemoryPriorityApplied); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithMemoryPriorityAccessDenied_PropagatesAccessDeniedResult() + { + var rule = CreateRule(memoryPriority: ProcessMemoryPriority.Low, applyMemoryPriority: true); + var memoryPriorityService = CreateMemoryPriorityService(ProcessOperationResult.Failed( + AffinityApplyErrorCodes.AccessDenied, + ProcessOperationUserMessages.AccessDenied, + "Access is denied.", + isAccessDenied: true)); + var engine = CreateEngine( + [rule], + CreateAffinityService().Object, + CreateProcessService().Object, + memoryPriorityService.Object); + + var result = Assert.Single(await engine.ApplyMatchingRulesAsync(CreateProcess())); + + Assert.False(result.Success); + Assert.False(result.MemoryPriorityApplied); + Assert.True(result.IsAccessDenied); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithNoActions_ReturnsControlledFailure() + { + var rule = CreateRule(); + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine([rule], affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + var result = Assert.Single(results); + Assert.False(result.Success); + Assert.False(result.AffinityApplied); + Assert.False(result.PriorityApplied); + Assert.False(result.MemoryPriorityApplied); + Assert.Equal("PersistentRuleNoActions", result.ErrorCode); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Never); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WithMultipleMatchingRules_ReturnsResultPerRuleWithoutRetry() + { + var rules = new[] + { + CreateRule(id: "rule-a", legacyAffinityMask: 1, applyAffinity: true), + CreateRule(id: "rule-b", priority: ProcessPriorityClass.AboveNormal, applyPriority: true), + }; + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine(rules, affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync(CreateProcess()); + + Assert.Equal(2, results.Count); + Assert.Contains(results, result => result.RuleId == "rule-a"); + Assert.Contains(results, result => result.RuleId == "rule-b"); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), It.IsAny()), Times.Once); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), It.IsAny()), Times.Once); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WhenRuleFilterExcludesMatchingRule_DoesNotApplyIt() + { + var rules = new[] + { + CreateRule(id: "rule-a", legacyAffinityMask: 1, applyAffinity: true), + CreateRule(id: "rule-b", legacyAffinityMask: 2, applyAffinity: true), + }; + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine(rules, affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync( + CreateProcess(), + rule => rule.Id != "rule-a"); + + var result = Assert.Single(results); + Assert.Equal("rule-b", result.RuleId); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), 1L), Times.Never); + affinity.Verify(s => s.ApplyAsync(It.IsAny(), 2L), Times.Once); + } + + [Fact] + public async Task ApplyMatchingRulesAsync_WhenRuleFilterIncludesSelectedRule_AppliesOnlyThatRule() + { + var rules = new[] + { + CreateRule(id: "rule-a", priority: ProcessPriorityClass.AboveNormal, applyPriority: true), + CreateRule(id: "rule-b", priority: ProcessPriorityClass.High, applyPriority: true), + }; + var affinity = CreateAffinityService(); + var processService = CreateProcessService(); + var engine = CreateEngine(rules, affinity.Object, processService.Object, CreateMemoryPriorityService().Object); + + var results = await engine.ApplyMatchingRulesAsync( + CreateProcess(), + rule => rule.Id == "rule-b"); + + var result = Assert.Single(results); + Assert.Equal("rule-b", result.RuleId); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), ProcessPriorityClass.AboveNormal), Times.Never); + processService.Verify(s => s.SetProcessPriority(It.IsAny(), ProcessPriorityClass.High), Times.Once); + } + + private static PersistentRulesEngine CreateEngine( + IReadOnlyList rules, + IAffinityApplyService affinityApplyService, + IProcessService processService, + IProcessMemoryPriorityService memoryPriorityService) => + new( + new FakePersistentProcessRuleStore(rules), + new PersistentProcessRuleMatcher(), + affinityApplyService, + processService, + memoryPriorityService, + Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance); + + private static Mock CreateAffinityService(AffinityApplyResult? result = null) + { + var mock = new Mock(MockBehavior.Strict); + var resolved = result ?? AffinityApplyResult.Succeeded(1, 1); + mock + .Setup(s => s.ApplyAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(resolved); + mock + .Setup(s => s.ApplyAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(resolved); + return mock; + } + + private static Mock CreateProcessService() + { + var mock = new Mock(MockBehavior.Strict); + mock + .Setup(s => s.SetProcessPriority(It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + return mock; + } + + private static Mock CreateMemoryPriorityService(ProcessOperationResult? result = null) + { + var mock = new Mock(MockBehavior.Strict); + mock + .Setup(s => s.SetMemoryPriorityAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(result ?? ProcessOperationResult.Succeeded( + "Memory priority applied.", + "Memory priority applied in test.")); + return mock; + } + + private static PersistentProcessRule CreateRule( + string id = "rule", + CpuSelection? cpuSelection = null, + long? legacyAffinityMask = null, + ProcessPriorityClass? priority = null, + ProcessMemoryPriority? memoryPriority = null, + bool applyAffinity = false, + bool applyPriority = false, + bool applyMemoryPriority = false) => + new() + { + Id = id, + Name = id, + IsEnabled = true, + ProcessName = "game.exe", + CpuSelection = cpuSelection, + LegacyAffinityMask = legacyAffinityMask, + Priority = priority, + MemoryPriority = memoryPriority, + ApplyAffinityOnStart = applyAffinity, + ApplyPriorityOnStart = applyPriority, + ApplyMemoryPriorityOnStart = applyMemoryPriority, + CreatedAt = DateTime.UtcNow, + UpdatedAt = DateTime.UtcNow, + }; + + private static CpuSelection CreateCpuSelection() => + new() + { + LogicalProcessors = [new ProcessorRef(0, 0, 0)], + GlobalLogicalProcessorIndexes = [0], + }; + + private static ProcessModel CreateProcess() => + new() + { + ProcessId = 42, + Name = "game.exe", + ExecutablePath = @"C:\Games\Game.exe", + Priority = ProcessPriorityClass.Normal, + }; + + private sealed class FakePersistentProcessRuleStore(IReadOnlyList rules) + : IPersistentProcessRuleStore + { + public Task> LoadAsync() => + Task.FromResult(rules); + + public Task SaveAsync(IReadOnlyList rules) => + Task.CompletedTask; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PowerPlanServiceSecurityTests.cs b/Tests/ThreadPilot.Core.Tests/PowerPlanServiceSecurityTests.cs index 7942396..770cad0 100644 --- a/Tests/ThreadPilot.Core.Tests/PowerPlanServiceSecurityTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PowerPlanServiceSecurityTests.cs @@ -1,74 +1,62 @@ -/* - * ThreadPilot - Core security unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Services; - - /// - /// Unit tests for security-focused validation behavior in . - /// - public sealed class PowerPlanServiceSecurityTests - { - /// - /// Ensures relative import paths are rejected. - /// - [Fact] - public async Task ImportCustomPowerPlan_ReturnsFalse_ForRelativePath() - { - var service = CreateService(); - - var result = await service.ImportCustomPowerPlan("..\\evil.pow"); - - Assert.False(result); - } - - /// - /// Ensures non-.pow files are rejected. - /// - [Fact] - public async Task ImportCustomPowerPlan_ReturnsFalse_ForInvalidExtension() - { - var service = CreateService(); - var filePath = Path.Combine(Path.GetTempPath(), "threadpilot-test.txt"); - await File.WriteAllTextAsync(filePath, "content"); - - try - { - var result = await service.ImportCustomPowerPlan(filePath); - Assert.False(result); - } - finally - { - if (File.Exists(filePath)) - { - File.Delete(filePath); - } - } - } - - /// - /// Ensures invalid GUID values are rejected before invoking powercfg. - /// - [Theory] - [InlineData("")] - [InlineData("invalid-guid")] - [InlineData("1234")] - public async Task SetActivePowerPlanByGuidAsync_ReturnsFalse_ForInvalidGuid(string guid) - { - var service = CreateService(); - - var result = await service.SetActivePowerPlanByGuidAsync(guid); - - Assert.False(result); - } - - private static PowerPlanService CreateService() - { - var enhancedLogger = new Mock(MockBehavior.Loose); - return new PowerPlanService(NullLogger.Instance, enhancedLogger.Object); - } - } -} +/* + * ThreadPilot - Core security unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Services; + + public sealed class PowerPlanServiceSecurityTests + { + [Fact] + public async Task ImportCustomPowerPlan_ReturnsFalse_ForRelativePath() + { + var service = CreateService(); + + var result = await service.ImportCustomPowerPlan("..\\evil.pow"); + + Assert.False(result); + } + + [Fact] + public async Task ImportCustomPowerPlan_ReturnsFalse_ForInvalidExtension() + { + var service = CreateService(); + var filePath = Path.Combine(Path.GetTempPath(), "threadpilot-test.txt"); + await File.WriteAllTextAsync(filePath, "content"); + + try + { + var result = await service.ImportCustomPowerPlan(filePath); + Assert.False(result); + } + finally + { + if (File.Exists(filePath)) + { + File.Delete(filePath); + } + } + } + + [Theory] + [InlineData("")] + [InlineData("invalid-guid")] + [InlineData("1234")] + public async Task SetActivePowerPlanByGuidAsync_ReturnsFalse_ForInvalidGuid(string guid) + { + var service = CreateService(); + + var result = await service.SetActivePowerPlanByGuidAsync(guid); + + Assert.False(result); + } + + private static PowerPlanService CreateService() + { + var enhancedLogger = new Mock(MockBehavior.Loose); + return new PowerPlanService(NullLogger.Instance, enhancedLogger.Object); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PowerPlanServiceTests.cs b/Tests/ThreadPilot.Core.Tests/PowerPlanServiceTests.cs index 1c08dc2..67bc6d1 100644 --- a/Tests/ThreadPilot.Core.Tests/PowerPlanServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PowerPlanServiceTests.cs @@ -1,199 +1,196 @@ -/* - * ThreadPilot - power plan service unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Services; - using ThreadPilot.Services.Abstractions; - - /// - /// Unit tests for deterministic behavior in . - /// - public sealed class PowerPlanServiceTests - { - [Fact] - public async Task GetActivePowerPlan_ParsesPowerCfgOutput() - { - const string guid = "381b4222-f694-41f0-9685-ff5bb260df2e"; - var runner = new RecordingProcessRunner - { - ResultFactory = _ => new ProcessRunResult( - 0, - $"Power Scheme GUID: {guid} (Balanced)", - string.Empty), - }; - var service = CreateService(runner); - - var result = await service.GetActivePowerPlan(); - - Assert.NotNull(result); - Assert.Equal(guid, result.Guid); - Assert.Equal("Balanced", result.Name); - Assert.True(result.IsActive); - } - - [Fact] - public async Task SetActivePowerPlanByGuidAsync_SkipsChange_WhenAlreadyActive() - { - const string guid = "381b4222-f694-41f0-9685-ff5bb260df2e"; - var runner = new RecordingProcessRunner - { - ResultFactory = _ => new ProcessRunResult( - 0, - $"Power Scheme GUID: {guid} (Balanced)", - string.Empty), - }; - var service = CreateService(runner); - - var result = await service.SetActivePowerPlanByGuidAsync(guid, preventDuplicateChanges: true); - - Assert.True(result); - - var invocation = Assert.Single(runner.Invocations); - Assert.Equal(Path.Combine(Environment.SystemDirectory, "powercfg.exe"), invocation.FileName); - Assert.Equal(new[] { "/getactivescheme" }, invocation.Arguments); - } - - [Fact] - public async Task DeletePowerPlanAsync_InvokesPowerCfgDelete_WhenPlanIsNotActive() - { - const string activeGuid = "381b4222-f694-41f0-9685-ff5bb260df2e"; - const string deleteGuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"; - var runner = new RecordingProcessRunner - { - ResultFactory = invocation => - invocation.Arguments.SequenceEqual(new[] { "/getactivescheme" }) - ? new ProcessRunResult( - 0, - $"Power Scheme GUID: {activeGuid} (Balanced)", - string.Empty) - : new ProcessRunResult(0, string.Empty, string.Empty), - }; - var service = CreateService(runner); - - var result = await service.DeletePowerPlanAsync(deleteGuid); - - Assert.True(result); - Assert.Contains(runner.Invocations, invocation => - invocation.Arguments.SequenceEqual(new[] { "/delete", deleteGuid })); - } - - [Fact] - public async Task DeletePowerPlanAsync_DoesNotDeleteActivePlan() - { - const string activeGuid = "381b4222-f694-41f0-9685-ff5bb260df2e"; - var runner = new RecordingProcessRunner - { - ResultFactory = _ => new ProcessRunResult( - 0, - $"Power Scheme GUID: {activeGuid} (Balanced)", - string.Empty), - }; - var service = CreateService(runner); - - var result = await service.DeletePowerPlanAsync(activeGuid); - - Assert.False(result); - Assert.DoesNotContain(runner.Invocations, invocation => - invocation.Arguments.Contains("/delete", StringComparer.OrdinalIgnoreCase)); - } - - [Fact] - public async Task AddCustomPowerPlanFileAsync_RenamesOnCollision() - { - var tempRoot = Path.Combine(Path.GetTempPath(), $"threadpilot-powerplans-{Guid.NewGuid():N}"); - var managedDirectory = Path.Combine(tempRoot, "managed"); - var sourceDirectory = Path.Combine(tempRoot, "source"); - Directory.CreateDirectory(managedDirectory); - Directory.CreateDirectory(sourceDirectory); - - var sourcePath = Path.Combine(sourceDirectory, "gaming.pow"); - var existingPath = Path.Combine(managedDirectory, "gaming.pow"); - await File.WriteAllTextAsync(sourcePath, "source"); - await File.WriteAllTextAsync(existingPath, "existing"); - - try - { - var service = CreateService( - new RecordingProcessRunner(), - powerPlansPathProvider: () => managedDirectory); - - var result = await service.AddCustomPowerPlanFileAsync(sourcePath); - - Assert.True(result); - var renamedPath = Path.Combine(managedDirectory, "gaming_1.pow"); - Assert.True(File.Exists(renamedPath)); - Assert.Equal("source", await File.ReadAllTextAsync(renamedPath)); - } - finally - { - if (Directory.Exists(tempRoot)) - { - Directory.Delete(tempRoot, recursive: true); - } - } - } - - [Fact] - public async Task GetCustomPowerPlansAsync_DiscoversBundledPlansRecursively() - { - var tempRoot = Path.Combine(Path.GetTempPath(), $"threadpilot-powerplans-{Guid.NewGuid():N}"); - var nestedDirectory = Path.Combine(tempRoot, "nested"); - Directory.CreateDirectory(nestedDirectory); - - var rootPlanPath = Path.Combine(tempRoot, "root.pow"); - var nestedPlanPath = Path.Combine(nestedDirectory, "nested.pow"); - await File.WriteAllTextAsync(rootPlanPath, "root"); - await File.WriteAllTextAsync(nestedPlanPath, "nested"); - - try - { - var service = CreateService( - new RecordingProcessRunner(), - powerPlansPathProvider: () => tempRoot); - - var result = await service.GetCustomPowerPlansAsync(); - - Assert.Contains(result, plan => plan.Name == "root" && plan.FilePath == rootPlanPath); - Assert.Contains(result, plan => plan.Name == "nested" && plan.FilePath == nestedPlanPath); - } - finally - { - if (Directory.Exists(tempRoot)) - { - Directory.Delete(tempRoot, recursive: true); - } - } - } - - private static PowerPlanService CreateService( - IProcessRunner runner, - Func? powerPlansPathProvider = null) - { - var enhancedLogger = new Mock(MockBehavior.Loose); - return new PowerPlanService( - NullLogger.Instance, - enhancedLogger.Object, - runner, - powerPlansPathProvider); - } - - private sealed class RecordingProcessRunner : IProcessRunner - { - public List Invocations { get; } = new(); - - public Func? ResultFactory { get; init; } - - public Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout) - { - var invocation = new ProcessInvocation(fileName, arguments.ToList(), timeout); - this.Invocations.Add(invocation); - return Task.FromResult(this.ResultFactory?.Invoke(invocation) ?? new ProcessRunResult(0, string.Empty, string.Empty)); - } - } - - private sealed record ProcessInvocation(string FileName, List Arguments, TimeSpan Timeout); - } -} +/* + * ThreadPilot - power plan service unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Services; + using ThreadPilot.Services.Abstractions; + + public sealed class PowerPlanServiceTests + { + [Fact] + public async Task GetActivePowerPlan_ParsesPowerCfgOutput() + { + const string guid = "381b4222-f694-41f0-9685-ff5bb260df2e"; + var runner = new RecordingProcessRunner + { + ResultFactory = _ => new ProcessRunResult( + 0, + $"Power Scheme GUID: {guid} (Balanced)", + string.Empty), + }; + var service = CreateService(runner); + + var result = await service.GetActivePowerPlan(); + + Assert.NotNull(result); + Assert.Equal(guid, result.Guid); + Assert.Equal("Balanced", result.Name); + Assert.True(result.IsActive); + } + + [Fact] + public async Task SetActivePowerPlanByGuidAsync_SkipsChange_WhenAlreadyActive() + { + const string guid = "381b4222-f694-41f0-9685-ff5bb260df2e"; + var runner = new RecordingProcessRunner + { + ResultFactory = _ => new ProcessRunResult( + 0, + $"Power Scheme GUID: {guid} (Balanced)", + string.Empty), + }; + var service = CreateService(runner); + + var result = await service.SetActivePowerPlanByGuidAsync(guid, preventDuplicateChanges: true); + + Assert.True(result); + + var invocation = Assert.Single(runner.Invocations); + Assert.Equal(Path.Combine(Environment.SystemDirectory, "powercfg.exe"), invocation.FileName); + Assert.Equal(new[] { "/getactivescheme" }, invocation.Arguments); + } + + [Fact] + public async Task DeletePowerPlanAsync_InvokesPowerCfgDelete_WhenPlanIsNotActive() + { + const string activeGuid = "381b4222-f694-41f0-9685-ff5bb260df2e"; + const string deleteGuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"; + var runner = new RecordingProcessRunner + { + ResultFactory = invocation => + invocation.Arguments.SequenceEqual(new[] { "/getactivescheme" }) + ? new ProcessRunResult( + 0, + $"Power Scheme GUID: {activeGuid} (Balanced)", + string.Empty) + : new ProcessRunResult(0, string.Empty, string.Empty), + }; + var service = CreateService(runner); + + var result = await service.DeletePowerPlanAsync(deleteGuid); + + Assert.True(result); + Assert.Contains(runner.Invocations, invocation => + invocation.Arguments.SequenceEqual(new[] { "/delete", deleteGuid })); + } + + [Fact] + public async Task DeletePowerPlanAsync_DoesNotDeleteActivePlan() + { + const string activeGuid = "381b4222-f694-41f0-9685-ff5bb260df2e"; + var runner = new RecordingProcessRunner + { + ResultFactory = _ => new ProcessRunResult( + 0, + $"Power Scheme GUID: {activeGuid} (Balanced)", + string.Empty), + }; + var service = CreateService(runner); + + var result = await service.DeletePowerPlanAsync(activeGuid); + + Assert.False(result); + Assert.DoesNotContain(runner.Invocations, invocation => + invocation.Arguments.Contains("/delete", StringComparer.OrdinalIgnoreCase)); + } + + [Fact] + public async Task AddCustomPowerPlanFileAsync_RenamesOnCollision() + { + var tempRoot = Path.Combine(Path.GetTempPath(), $"threadpilot-powerplans-{Guid.NewGuid():N}"); + var managedDirectory = Path.Combine(tempRoot, "managed"); + var sourceDirectory = Path.Combine(tempRoot, "source"); + Directory.CreateDirectory(managedDirectory); + Directory.CreateDirectory(sourceDirectory); + + var sourcePath = Path.Combine(sourceDirectory, "gaming.pow"); + var existingPath = Path.Combine(managedDirectory, "gaming.pow"); + await File.WriteAllTextAsync(sourcePath, "source"); + await File.WriteAllTextAsync(existingPath, "existing"); + + try + { + var service = CreateService( + new RecordingProcessRunner(), + powerPlansPathProvider: () => managedDirectory); + + var result = await service.AddCustomPowerPlanFileAsync(sourcePath); + + Assert.True(result); + var renamedPath = Path.Combine(managedDirectory, "gaming_1.pow"); + Assert.True(File.Exists(renamedPath)); + Assert.Equal("source", await File.ReadAllTextAsync(renamedPath)); + } + finally + { + if (Directory.Exists(tempRoot)) + { + Directory.Delete(tempRoot, recursive: true); + } + } + } + + [Fact] + public async Task GetCustomPowerPlansAsync_DiscoversBundledPlansRecursively() + { + var tempRoot = Path.Combine(Path.GetTempPath(), $"threadpilot-powerplans-{Guid.NewGuid():N}"); + var nestedDirectory = Path.Combine(tempRoot, "nested"); + Directory.CreateDirectory(nestedDirectory); + + var rootPlanPath = Path.Combine(tempRoot, "root.pow"); + var nestedPlanPath = Path.Combine(nestedDirectory, "nested.pow"); + await File.WriteAllTextAsync(rootPlanPath, "root"); + await File.WriteAllTextAsync(nestedPlanPath, "nested"); + + try + { + var service = CreateService( + new RecordingProcessRunner(), + powerPlansPathProvider: () => tempRoot); + + var result = await service.GetCustomPowerPlansAsync(); + + Assert.Contains(result, plan => plan.Name == "root" && plan.FilePath == rootPlanPath); + Assert.Contains(result, plan => plan.Name == "nested" && plan.FilePath == nestedPlanPath); + } + finally + { + if (Directory.Exists(tempRoot)) + { + Directory.Delete(tempRoot, recursive: true); + } + } + } + + private static PowerPlanService CreateService( + IProcessRunner runner, + Func? powerPlansPathProvider = null) + { + var enhancedLogger = new Mock(MockBehavior.Loose); + return new PowerPlanService( + NullLogger.Instance, + enhancedLogger.Object, + runner, + powerPlansPathProvider); + } + + private sealed class RecordingProcessRunner : IProcessRunner + { + public List Invocations { get; } = new(); + + public Func? ResultFactory { get; init; } + + public Task RunAsync(string fileName, IReadOnlyList arguments, TimeSpan timeout) + { + var invocation = new ProcessInvocation(fileName, arguments.ToList(), timeout); + this.Invocations.Add(invocation); + return Task.FromResult(this.ResultFactory?.Invoke(invocation) ?? new ProcessRunResult(0, string.Empty, string.Empty)); + } + } + + private sealed record ProcessInvocation(string FileName, List Arguments, TimeSpan Timeout); + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PowerPlanTransitionGateTests.cs b/Tests/ThreadPilot.Core.Tests/PowerPlanTransitionGateTests.cs index 5c3071d..cda7fe6 100644 --- a/Tests/ThreadPilot.Core.Tests/PowerPlanTransitionGateTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PowerPlanTransitionGateTests.cs @@ -1,89 +1,89 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Services; - - public sealed class PowerPlanTransitionGateTests - { - [Fact] - public void ShouldApply_WhenTargetWasNotRequested_ReturnsTrue() - { - var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); - var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); - - var decision = gate.ShouldApply("plan-game", "balanced"); - - Assert.True(decision.ShouldApply); - Assert.Equal(PowerPlanTransitionSuppressionReason.None, decision.SuppressionReason); - } - - [Fact] - public void ShouldApply_WhenTargetIsAlreadyActive_ReturnsFalse() - { - var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); - var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); - - var decision = gate.ShouldApply("plan-game", "plan-game"); - - Assert.False(decision.ShouldApply); - Assert.Equal(PowerPlanTransitionSuppressionReason.AlreadyActive, decision.SuppressionReason); - } - - [Fact] - public void ShouldApply_WhenSameTargetWasRecentlyRequested_ReturnsFalse() - { - var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); - var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); - - Assert.True(gate.ShouldApply("plan-game", "balanced").ShouldApply); - gate.RecordAttempt("plan-game"); - now = now.AddMilliseconds(500); - - var decision = gate.ShouldApply("plan-game", "balanced"); - - Assert.False(decision.ShouldApply); - Assert.Equal(PowerPlanTransitionSuppressionReason.RecentDuplicateRequest, decision.SuppressionReason); - } - - [Fact] - public void ShouldApply_WhenDifferentTargetArrives_UsesLatestTarget() - { - var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); - var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); - - gate.RecordAttempt("plan-game"); - now = now.AddMilliseconds(500); - - var decision = gate.ShouldApply("plan-default", "plan-game"); - - Assert.True(decision.ShouldApply); - } - - [Fact] - public void ShouldApply_WhenDuplicateWindowExpires_ReturnsTrue() - { - var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); - var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); - - gate.RecordAttempt("plan-game"); - now = now.AddSeconds(3); - - var decision = gate.ShouldApply("plan-game", "balanced"); - - Assert.True(decision.ShouldApply); - Assert.Equal(PowerPlanTransitionSuppressionReason.None, decision.SuppressionReason); - } - - [Fact] - public void Constructor_WhenDuplicateWindowIsNegative_UsesZeroWindow() - { - var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); - var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(-1), () => now); - - gate.RecordAttempt("plan-game"); - - var decision = gate.ShouldApply("plan-game", "balanced"); - - Assert.True(decision.ShouldApply); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Services; + + public sealed class PowerPlanTransitionGateTests + { + [Fact] + public void ShouldApply_WhenTargetWasNotRequested_ReturnsTrue() + { + var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); + var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); + + var decision = gate.ShouldApply("plan-game", "balanced"); + + Assert.True(decision.ShouldApply); + Assert.Equal(PowerPlanTransitionSuppressionReason.None, decision.SuppressionReason); + } + + [Fact] + public void ShouldApply_WhenTargetIsAlreadyActive_ReturnsFalse() + { + var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); + var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); + + var decision = gate.ShouldApply("plan-game", "plan-game"); + + Assert.False(decision.ShouldApply); + Assert.Equal(PowerPlanTransitionSuppressionReason.AlreadyActive, decision.SuppressionReason); + } + + [Fact] + public void ShouldApply_WhenSameTargetWasRecentlyRequested_ReturnsFalse() + { + var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); + var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); + + Assert.True(gate.ShouldApply("plan-game", "balanced").ShouldApply); + gate.RecordAttempt("plan-game"); + now = now.AddMilliseconds(500); + + var decision = gate.ShouldApply("plan-game", "balanced"); + + Assert.False(decision.ShouldApply); + Assert.Equal(PowerPlanTransitionSuppressionReason.RecentDuplicateRequest, decision.SuppressionReason); + } + + [Fact] + public void ShouldApply_WhenDifferentTargetArrives_UsesLatestTarget() + { + var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); + var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); + + gate.RecordAttempt("plan-game"); + now = now.AddMilliseconds(500); + + var decision = gate.ShouldApply("plan-default", "plan-game"); + + Assert.True(decision.ShouldApply); + } + + [Fact] + public void ShouldApply_WhenDuplicateWindowExpires_ReturnsTrue() + { + var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); + var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => now); + + gate.RecordAttempt("plan-game"); + now = now.AddSeconds(3); + + var decision = gate.ShouldApply("plan-game", "balanced"); + + Assert.True(decision.ShouldApply); + Assert.Equal(PowerPlanTransitionSuppressionReason.None, decision.SuppressionReason); + } + + [Fact] + public void Constructor_WhenDuplicateWindowIsNegative_UsesZeroWindow() + { + var now = DateTimeOffset.Parse("2026-05-09T10:00:00Z"); + var gate = new PowerPlanTransitionGate(TimeSpan.FromSeconds(-1), () => now); + + gate.RecordAttempt("plan-game"); + + var decision = gate.ShouldApply("plan-game", "balanced"); + + Assert.True(decision.ShouldApply); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PowerPlanViewModelTests.cs b/Tests/ThreadPilot.Core.Tests/PowerPlanViewModelTests.cs index c637735..3fbd874 100644 --- a/Tests/ThreadPilot.Core.Tests/PowerPlanViewModelTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PowerPlanViewModelTests.cs @@ -1,152 +1,152 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.ObjectModel; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class PowerPlanViewModelTests - { - [Fact] - public async Task DeletePowerPlanCommand_CallsServiceRefreshesAndLogs_WhenPlanIsNotActive() - { - var harness = new Harness(); - var deletePlan = new PowerPlanModel { Guid = Harness.DeleteGuid, Name = "Gaming" }; - var viewModel = harness.CreateViewModel(); - - await viewModel.DeletePowerPlanCommand.ExecuteAsync(deletePlan); - - harness.PowerPlan.Verify(service => service.DeletePowerPlanAsync(Harness.DeleteGuid), Times.Once); - harness.PowerPlan.Verify(service => service.GetPowerPlansAsync(), Times.Once); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "PowerPlanDeleted", - "Deleted power plan Gaming", - $"Guid: {Harness.DeleteGuid}"), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Power Plans", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal("Deleted power plan Gaming", entry.Message); - Assert.Equal("Power plan deleted: Gaming.", viewModel.StatusMessage); - Assert.False(viewModel.HasError); - } - - [Fact] - public async Task DeletePowerPlanCommand_BlocksActivePlanBeforeCallingService() - { - var harness = new Harness(); - var activePlan = new PowerPlanModel { Guid = Harness.ActiveGuid, Name = "Balanced", IsActive = true }; - var viewModel = harness.CreateViewModel(); - - await viewModel.DeletePowerPlanCommand.ExecuteAsync(activePlan); - - harness.PowerPlan.Verify(service => service.DeletePowerPlanAsync(It.IsAny()), Times.Never); - Assert.Equal("Switch to another power plan before deleting the active plan.", viewModel.StatusMessage); - Assert.True(viewModel.HasError); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Power Plans", entry.Category); - Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); - Assert.Contains("Switch to another power plan", entry.Message); - } - - [Fact] - public async Task DeletePowerPlanCommand_ShowsFailureAndDoesNotCrash_WhenServiceFails() - { - var harness = new Harness(deleteSucceeds: false); - var deletePlan = new PowerPlanModel { Guid = Harness.DeleteGuid, Name = "Gaming" }; - var viewModel = harness.CreateViewModel(); - - await viewModel.DeletePowerPlanCommand.ExecuteAsync(deletePlan); - - Assert.Equal("Could not delete power plan Gaming. Windows may not allow this plan to be removed.", viewModel.StatusMessage); - Assert.True(viewModel.HasError); - } - - [Fact] - public async Task SetActivePlanCommand_ShowsSuccessStatusAndLogs() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - viewModel.SelectedPowerPlan = new PowerPlanModel { Guid = Harness.DeleteGuid, Name = "Gaming" }; - - await viewModel.SetActivePlanCommand.ExecuteAsync(null); - - Assert.Equal("Power plan applied: Gaming.", viewModel.StatusMessage); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "PowerPlanApplied", - "Applied power plan Gaming", - $"Guid: {Harness.DeleteGuid}"), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Power Plans", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal("Applied power plan Gaming", entry.Message); - } - - [Fact] - public async Task RefreshPowerPlansCommand_ShowsCompletionStatusAndLogs() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - await viewModel.RefreshPowerPlansCommand.ExecuteAsync(null); - - Assert.Equal("Power plans refreshed.", viewModel.StatusMessage); - harness.Logging.Verify( - logger => logger.LogUserActionAsync( - "PowerPlansRefreshed", - "Refreshed power plan list", - null), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Power Plans", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal("Refreshed power plan list", entry.Message); - } - - private sealed class Harness - { - public const string ActiveGuid = "381b4222-f694-41f0-9685-ff5bb260df2e"; - public const string DeleteGuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"; - - public Mock PowerPlan { get; } = new(MockBehavior.Strict); - - public Mock Logging { get; } = new(MockBehavior.Loose); - - public ActivityAuditService Audit { get; } = new(NullLogger.Instance); - - public Harness(bool deleteSucceeds = true) - { - var active = new PowerPlanModel { Guid = ActiveGuid, Name = "Balanced", IsActive = true }; - var delete = new PowerPlanModel { Guid = DeleteGuid, Name = "Gaming" }; - - this.PowerPlan - .Setup(service => service.GetPowerPlansAsync()) - .ReturnsAsync(new ObservableCollection { active, delete }); - this.PowerPlan - .Setup(service => service.GetCustomPowerPlansAsync()) - .ReturnsAsync(new ObservableCollection()); - this.PowerPlan - .Setup(service => service.GetActivePowerPlan()) - .ReturnsAsync(active); - this.PowerPlan - .Setup(service => service.SetActivePowerPlan(It.IsAny())) - .ReturnsAsync(true); - this.PowerPlan - .Setup(service => service.DeletePowerPlanAsync(DeleteGuid)) - .ReturnsAsync(deleteSucceeds); - } - - public PowerPlanViewModel CreateViewModel() => - new( - NullLogger.Instance, - this.PowerPlan.Object, - this.Logging.Object, - this.Audit); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Collections.ObjectModel; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class PowerPlanViewModelTests + { + [Fact] + public async Task DeletePowerPlanCommand_CallsServiceRefreshesAndLogs_WhenPlanIsNotActive() + { + var harness = new Harness(); + var deletePlan = new PowerPlanModel { Guid = Harness.DeleteGuid, Name = "Gaming" }; + var viewModel = harness.CreateViewModel(); + + await viewModel.DeletePowerPlanCommand.ExecuteAsync(deletePlan); + + harness.PowerPlan.Verify(service => service.DeletePowerPlanAsync(Harness.DeleteGuid), Times.Once); + harness.PowerPlan.Verify(service => service.GetPowerPlansAsync(), Times.Once); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "PowerPlanDeleted", + "Deleted power plan Gaming", + $"Guid: {Harness.DeleteGuid}"), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Power Plans", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal("Deleted power plan Gaming", entry.Message); + Assert.Equal("Power plan deleted: Gaming.", viewModel.StatusMessage); + Assert.False(viewModel.HasError); + } + + [Fact] + public async Task DeletePowerPlanCommand_BlocksActivePlanBeforeCallingService() + { + var harness = new Harness(); + var activePlan = new PowerPlanModel { Guid = Harness.ActiveGuid, Name = "Balanced", IsActive = true }; + var viewModel = harness.CreateViewModel(); + + await viewModel.DeletePowerPlanCommand.ExecuteAsync(activePlan); + + harness.PowerPlan.Verify(service => service.DeletePowerPlanAsync(It.IsAny()), Times.Never); + Assert.Equal("Switch to another power plan before deleting the active plan.", viewModel.StatusMessage); + Assert.True(viewModel.HasError); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Power Plans", entry.Category); + Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); + Assert.Contains("Switch to another power plan", entry.Message); + } + + [Fact] + public async Task DeletePowerPlanCommand_ShowsFailureAndDoesNotCrash_WhenServiceFails() + { + var harness = new Harness(deleteSucceeds: false); + var deletePlan = new PowerPlanModel { Guid = Harness.DeleteGuid, Name = "Gaming" }; + var viewModel = harness.CreateViewModel(); + + await viewModel.DeletePowerPlanCommand.ExecuteAsync(deletePlan); + + Assert.Equal("Could not delete power plan Gaming. Windows may not allow this plan to be removed.", viewModel.StatusMessage); + Assert.True(viewModel.HasError); + } + + [Fact] + public async Task SetActivePlanCommand_ShowsSuccessStatusAndLogs() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + viewModel.SelectedPowerPlan = new PowerPlanModel { Guid = Harness.DeleteGuid, Name = "Gaming" }; + + await viewModel.SetActivePlanCommand.ExecuteAsync(null); + + Assert.Equal("Power plan applied: Gaming.", viewModel.StatusMessage); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "PowerPlanApplied", + "Applied power plan Gaming", + $"Guid: {Harness.DeleteGuid}"), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Power Plans", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal("Applied power plan Gaming", entry.Message); + } + + [Fact] + public async Task RefreshPowerPlansCommand_ShowsCompletionStatusAndLogs() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + await viewModel.RefreshPowerPlansCommand.ExecuteAsync(null); + + Assert.Equal("Power plans refreshed.", viewModel.StatusMessage); + harness.Logging.Verify( + logger => logger.LogUserActionAsync( + "PowerPlansRefreshed", + "Refreshed power plan list", + null), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Power Plans", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal("Refreshed power plan list", entry.Message); + } + + private sealed class Harness + { + public const string ActiveGuid = "381b4222-f694-41f0-9685-ff5bb260df2e"; + public const string DeleteGuid = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"; + + public Mock PowerPlan { get; } = new(MockBehavior.Strict); + + public Mock Logging { get; } = new(MockBehavior.Loose); + + public ActivityAuditService Audit { get; } = new(NullLogger.Instance); + + public Harness(bool deleteSucceeds = true) + { + var active = new PowerPlanModel { Guid = ActiveGuid, Name = "Balanced", IsActive = true }; + var delete = new PowerPlanModel { Guid = DeleteGuid, Name = "Gaming" }; + + this.PowerPlan + .Setup(service => service.GetPowerPlansAsync()) + .ReturnsAsync(new ObservableCollection { active, delete }); + this.PowerPlan + .Setup(service => service.GetCustomPowerPlansAsync()) + .ReturnsAsync(new ObservableCollection()); + this.PowerPlan + .Setup(service => service.GetActivePowerPlan()) + .ReturnsAsync(active); + this.PowerPlan + .Setup(service => service.SetActivePowerPlan(It.IsAny())) + .ReturnsAsync(true); + this.PowerPlan + .Setup(service => service.DeletePowerPlanAsync(DeleteGuid)) + .ReturnsAsync(deleteSucceeds); + } + + public PowerPlanViewModel CreateViewModel() => + new( + NullLogger.Instance, + this.PowerPlan.Object, + this.Logging.Object, + this.Audit); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/PowerPlanViewXamlTests.cs b/Tests/ThreadPilot.Core.Tests/PowerPlanViewXamlTests.cs index de45109..81fdddd 100644 --- a/Tests/ThreadPilot.Core.Tests/PowerPlanViewXamlTests.cs +++ b/Tests/ThreadPilot.Core.Tests/PowerPlanViewXamlTests.cs @@ -1,58 +1,58 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Xml.Linq; - - public sealed class PowerPlanViewXamlTests - { - private static readonly string PowerPlanViewPath = Path.Combine( - AppContext.BaseDirectory, - "..", - "..", - "..", - "..", - "..", - "Views", - "PowerPlanView.xaml"); - - [Fact] - public void PowerPlanItems_ExposeDeleteContextMenu() - { - var document = XDocument.Load(PowerPlanViewPath, LoadOptions.PreserveWhitespace); - var deleteCommandBinding = document - .Descendants() - .SelectMany(element => element.Attributes()) - .SingleOrDefault(attribute => attribute.Value.Contains("DeletePowerPlanCommand", StringComparison.Ordinal)); - - Assert.NotNull(deleteCommandBinding); - } - - [Fact] - public void HeaderInstructionText_WrapsToAvoidButtonOverlap() - { - var document = XDocument.Load(PowerPlanViewPath, LoadOptions.PreserveWhitespace); - var instructionTextBlocks = document - .Descendants() - .Where(element => element.Name.LocalName == "TextBlock") - .Where(element => element.Attributes().Any(attribute => - attribute.Value.Contains("PowerPlanView_SelectActiveTip", StringComparison.Ordinal) || - attribute.Value.Contains("PowerPlanView_LocalPlansTip", StringComparison.Ordinal))) - .ToList(); - - Assert.Equal(2, instructionTextBlocks.Count); - Assert.All(instructionTextBlocks, textBlock => - Assert.Contains(textBlock.Attributes(), attribute => - attribute.Name.LocalName == "TextWrapping" && attribute.Value == "Wrap")); - } - - [Fact] - public void ActivePowerPlanTemplate_ContainsActiveBadgeAndAccentBorder() - { - var document = XDocument.Load(PowerPlanViewPath, LoadOptions.PreserveWhitespace); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.Contains("PowerPlanView_Active", serialized, StringComparison.Ordinal); - Assert.Contains("IsActive", serialized, StringComparison.Ordinal); - Assert.Contains("Accent", serialized, StringComparison.Ordinal); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Xml.Linq; + + public sealed class PowerPlanViewXamlTests + { + private static readonly string PowerPlanViewPath = Path.Combine( + AppContext.BaseDirectory, + "..", + "..", + "..", + "..", + "..", + "Views", + "PowerPlanView.xaml"); + + [Fact] + public void PowerPlanItems_ExposeDeleteContextMenu() + { + var document = XDocument.Load(PowerPlanViewPath, LoadOptions.PreserveWhitespace); + var deleteCommandBinding = document + .Descendants() + .SelectMany(element => element.Attributes()) + .SingleOrDefault(attribute => attribute.Value.Contains("DeletePowerPlanCommand", StringComparison.Ordinal)); + + Assert.NotNull(deleteCommandBinding); + } + + [Fact] + public void HeaderInstructionText_WrapsToAvoidButtonOverlap() + { + var document = XDocument.Load(PowerPlanViewPath, LoadOptions.PreserveWhitespace); + var instructionTextBlocks = document + .Descendants() + .Where(element => element.Name.LocalName == "TextBlock") + .Where(element => element.Attributes().Any(attribute => + attribute.Value.Contains("PowerPlanView_SelectActiveTip", StringComparison.Ordinal) || + attribute.Value.Contains("PowerPlanView_LocalPlansTip", StringComparison.Ordinal))) + .ToList(); + + Assert.Equal(2, instructionTextBlocks.Count); + Assert.All(instructionTextBlocks, textBlock => + Assert.Contains(textBlock.Attributes(), attribute => + attribute.Name.LocalName == "TextWrapping" && attribute.Value == "Wrap")); + } + + [Fact] + public void ActivePowerPlanTemplate_ContainsActiveBadgeAndAccentBorder() + { + var document = XDocument.Load(PowerPlanViewPath, LoadOptions.PreserveWhitespace); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.Contains("PowerPlanView_Active", serialized, StringComparison.Ordinal); + Assert.Contains("IsActive", serialized, StringComparison.Ordinal); + Assert.Contains("Accent", serialized, StringComparison.Ordinal); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessAffinityApplyCoordinatorTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessAffinityApplyCoordinatorTests.cs index 4c72b7e..1d92cb0 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessAffinityApplyCoordinatorTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessAffinityApplyCoordinatorTests.cs @@ -1,274 +1,274 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class ProcessAffinityApplyCoordinatorTests - { - [Fact] - public async Task ApplyCoreMaskAsync_WithCpuSelection_UsesCpuSelectionPath() - { - var process = CreateProcess(); - var selection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(0, 0, 0), new ProcessorRef(0, 2, 2)], - GlobalLogicalProcessorIndexes = [0, 2], - }; - var mask = CreateMask([true, false, true]); - mask.CpuSelection = selection; - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity); - - var result = await coordinator.ApplyCoreMaskAsync(process, mask); - - Assert.True(result.Success); - Assert.Equal(1, affinity.CpuSelectionApplyCalls); - Assert.Equal(0, affinity.LegacyApplyCalls); - Assert.Same(selection, affinity.LastSelection); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WithCpu64Selection_DoesNotUseLegacyMaskOrAliasCpu0() - { - var process = CreateProcess(); - var cpu64 = new ProcessorRef(1, 0, 64); - var mask = CreateMask(Enumerable.Range(0, 65).Select(index => index == 64).ToList()); - mask.CpuSelection = new CpuSelection - { - LogicalProcessors = [cpu64], - GlobalLogicalProcessorIndexes = [64], - }; - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity); - - var result = await coordinator.ApplyCoreMaskAsync(process, mask); - - Assert.True(result.Success); - Assert.Equal(0, affinity.LegacyApplyCalls); - var applied = Assert.Single(affinity.LastSelection!.LogicalProcessors); - Assert.Equal(cpu64, applied); - Assert.DoesNotContain(affinity.LastSelection.LogicalProcessors, processor => processor.GlobalIndex == 0); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WithMultiGroupSelection_DoesNotUseLegacyMask() - { - var process = CreateProcess(); - var selection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(0, 0, 0), new ProcessorRef(1, 0, 64)], - GlobalLogicalProcessorIndexes = [0, 64], - }; - var mask = CreateMask(Enumerable.Repeat(true, 65).ToList()); - mask.CpuSelection = selection; - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity); - - var result = await coordinator.ApplyCoreMaskAsync(process, mask); - - Assert.True(result.Success); - Assert.Equal(1, affinity.CpuSelectionApplyCalls); - Assert.Equal(0, affinity.LegacyApplyCalls); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WithoutCpuSelectionAndWithoutTopology_UsesLegacyForSingleGroupMask() - { - var process = CreateProcess(); - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity, topologyProvider: null); - - var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask([true, false, true])); - - Assert.True(result.Success); - Assert.Equal(1, affinity.LegacyApplyCalls); - Assert.Equal(0b101, affinity.LastLegacyMask); - Assert.Equal(0, affinity.CpuSelectionApplyCalls); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WithoutCpuSelection_MigratesToCpuSelectionWhenTopologyIsAvailable() - { - var process = CreateProcess(); - var topology = CpuTopologySnapshot.Create( - [new ProcessorRef(0, 0, 0), new ProcessorRef(0, 1, 1), new ProcessorRef(0, 2, 2)]); - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity, new FakeCpuTopologyProvider(topology)); - - var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask([true, false, true])); - - Assert.True(result.Success); - Assert.Equal(1, affinity.CpuSelectionApplyCalls); - Assert.Equal(0, affinity.LegacyApplyCalls); - Assert.Equal([0, 2], affinity.LastSelection!.GlobalLogicalProcessorIndexes); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WithCpu64BoolMaskAndTopology_UsesCpuSelectionPath() - { - var process = CreateProcess(); - var processors = Enumerable.Range(0, 65) - .Select(index => index < 64 - ? new ProcessorRef(0, (byte)index, index) - : new ProcessorRef(1, 0, index)) - .ToList(); - var topology = CpuTopologySnapshot.Create(processors); - var boolMask = Enumerable.Range(0, 65).Select(index => index == 64).ToList(); - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity, new FakeCpuTopologyProvider(topology)); - - var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask(boolMask)); - - Assert.True(result.Success); - Assert.Equal(1, affinity.CpuSelectionApplyCalls); - Assert.Equal(0, affinity.LegacyApplyCalls); - var applied = Assert.Single(affinity.LastSelection!.LogicalProcessors); - Assert.Equal(new ProcessorRef(1, 0, 64), applied); - Assert.DoesNotContain(affinity.LastSelection.LogicalProcessors, processor => processor.GlobalIndex == 0); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WhenTopologyUnavailableAndMaskIsUnsafe_BlocksLegacyFallback() - { - var process = CreateProcess(); - var boolMask = Enumerable.Range(0, 65).Select(index => index == 64).ToList(); - var affinity = new RecordingAffinityApplyService(); - var coordinator = CreateCoordinator(affinity, topologyProvider: null); - - var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask(boolMask)); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.LegacyFallbackUnsafe, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.LegacyFallbackBlocked, result.UserMessage); - Assert.Equal(0, affinity.LegacyApplyCalls); - Assert.Equal(0, affinity.CpuSelectionApplyCalls); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WhenCpuSelectionAccessDenied_ReturnsSafeAccessDeniedMessage() - { - var process = CreateProcess(); - var affinity = new RecordingAffinityApplyService - { - CpuSelectionResult = AffinityApplyResult.Failed( - AffinityApplyErrorCodes.AccessDenied, - ProcessOperationUserMessages.AccessDenied, - "Access is denied.", - isAccessDenied: true), - }; - var mask = CreateMask([true]); - mask.CpuSelection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(0, 0, 0)], - GlobalLogicalProcessorIndexes = [0], - }; - var coordinator = CreateCoordinator(affinity); - - var result = await coordinator.ApplyCoreMaskAsync(process, mask); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - Assert.DoesNotContain("bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); - } - - [Fact] - public async Task ApplyCoreMaskAsync_WhenCpuSelectionAntiCheatBlocked_ReturnsNoBypassMessage() - { - var process = CreateProcess(); - var affinity = new RecordingAffinityApplyService - { - CpuSelectionResult = AffinityApplyResult.Failed( - AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, - ProcessOperationUserMessages.AntiCheatProtectedLikely, - "Protected process.", - isAccessDenied: true, - isAntiCheatLikely: true), - }; - var mask = CreateMask([true]); - mask.CpuSelection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(0, 0, 0)], - GlobalLogicalProcessorIndexes = [0], - }; - var coordinator = CreateCoordinator(affinity); - - var result = await coordinator.ApplyCoreMaskAsync(process, mask); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AntiCheatProtectedLikely, result.UserMessage); - Assert.Contains("will not try to bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("disable anti-cheat", result.UserMessage, StringComparison.OrdinalIgnoreCase); - } - - private static ProcessAffinityApplyCoordinator CreateCoordinator( - RecordingAffinityApplyService affinity, - ICpuTopologyProvider? topologyProvider = null) => - new( - affinity, - topologyProvider, - new CpuSelectionMigrationService(), - NullLogger.Instance); - - private static ProcessModel CreateProcess() => - new() - { - ProcessId = 42, - Name = "game.exe", - ProcessorAffinity = 1, - }; - - private static CoreMask CreateMask(IReadOnlyList boolMask) - { - var mask = new CoreMask { Name = "Manual" }; - foreach (var bit in boolMask) - { - mask.BoolMask.Add(bit); - } - - return mask; - } - - private sealed class FakeCpuTopologyProvider(CpuTopologySnapshot snapshot) : ICpuTopologyProvider - { - public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) - { - cancellationToken.ThrowIfCancellationRequested(); - return Task.FromResult(snapshot); - } - } - - private sealed class RecordingAffinityApplyService : IAffinityApplyService - { - public int LegacyApplyCalls { get; private set; } - - public int CpuSelectionApplyCalls { get; private set; } - - public long? LastLegacyMask { get; private set; } - - public CpuSelection? LastSelection { get; private set; } - - public AffinityApplyResult LegacyResult { get; init; } = - AffinityApplyResult.SucceededWithLegacyFallback(1, 1); - - public AffinityApplyResult CpuSelectionResult { get; init; } = - AffinityApplyResult.SucceededWithCpuSets("CPU Sets applied."); - - public Task ApplyAsync(ProcessModel process, long requestedMask) - { - this.LegacyApplyCalls++; - this.LastLegacyMask = requestedMask; - return Task.FromResult(this.LegacyResult); - } - - public Task ApplyAsync(ProcessModel process, CpuSelection selection) - { - this.CpuSelectionApplyCalls++; - this.LastSelection = selection; - return Task.FromResult(this.CpuSelectionResult); - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessAffinityApplyCoordinatorTests + { + [Fact] + public async Task ApplyCoreMaskAsync_WithCpuSelection_UsesCpuSelectionPath() + { + var process = CreateProcess(); + var selection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(0, 0, 0), new ProcessorRef(0, 2, 2)], + GlobalLogicalProcessorIndexes = [0, 2], + }; + var mask = CreateMask([true, false, true]); + mask.CpuSelection = selection; + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity); + + var result = await coordinator.ApplyCoreMaskAsync(process, mask); + + Assert.True(result.Success); + Assert.Equal(1, affinity.CpuSelectionApplyCalls); + Assert.Equal(0, affinity.LegacyApplyCalls); + Assert.Same(selection, affinity.LastSelection); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WithCpu64Selection_DoesNotUseLegacyMaskOrAliasCpu0() + { + var process = CreateProcess(); + var cpu64 = new ProcessorRef(1, 0, 64); + var mask = CreateMask(Enumerable.Range(0, 65).Select(index => index == 64).ToList()); + mask.CpuSelection = new CpuSelection + { + LogicalProcessors = [cpu64], + GlobalLogicalProcessorIndexes = [64], + }; + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity); + + var result = await coordinator.ApplyCoreMaskAsync(process, mask); + + Assert.True(result.Success); + Assert.Equal(0, affinity.LegacyApplyCalls); + var applied = Assert.Single(affinity.LastSelection!.LogicalProcessors); + Assert.Equal(cpu64, applied); + Assert.DoesNotContain(affinity.LastSelection.LogicalProcessors, processor => processor.GlobalIndex == 0); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WithMultiGroupSelection_DoesNotUseLegacyMask() + { + var process = CreateProcess(); + var selection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(0, 0, 0), new ProcessorRef(1, 0, 64)], + GlobalLogicalProcessorIndexes = [0, 64], + }; + var mask = CreateMask(Enumerable.Repeat(true, 65).ToList()); + mask.CpuSelection = selection; + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity); + + var result = await coordinator.ApplyCoreMaskAsync(process, mask); + + Assert.True(result.Success); + Assert.Equal(1, affinity.CpuSelectionApplyCalls); + Assert.Equal(0, affinity.LegacyApplyCalls); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WithoutCpuSelectionAndWithoutTopology_UsesLegacyForSingleGroupMask() + { + var process = CreateProcess(); + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity, topologyProvider: null); + + var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask([true, false, true])); + + Assert.True(result.Success); + Assert.Equal(1, affinity.LegacyApplyCalls); + Assert.Equal(0b101, affinity.LastLegacyMask); + Assert.Equal(0, affinity.CpuSelectionApplyCalls); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WithoutCpuSelection_MigratesToCpuSelectionWhenTopologyIsAvailable() + { + var process = CreateProcess(); + var topology = CpuTopologySnapshot.Create( + [new ProcessorRef(0, 0, 0), new ProcessorRef(0, 1, 1), new ProcessorRef(0, 2, 2)]); + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity, new FakeCpuTopologyProvider(topology)); + + var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask([true, false, true])); + + Assert.True(result.Success); + Assert.Equal(1, affinity.CpuSelectionApplyCalls); + Assert.Equal(0, affinity.LegacyApplyCalls); + Assert.Equal([0, 2], affinity.LastSelection!.GlobalLogicalProcessorIndexes); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WithCpu64BoolMaskAndTopology_UsesCpuSelectionPath() + { + var process = CreateProcess(); + var processors = Enumerable.Range(0, 65) + .Select(index => index < 64 + ? new ProcessorRef(0, (byte)index, index) + : new ProcessorRef(1, 0, index)) + .ToList(); + var topology = CpuTopologySnapshot.Create(processors); + var boolMask = Enumerable.Range(0, 65).Select(index => index == 64).ToList(); + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity, new FakeCpuTopologyProvider(topology)); + + var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask(boolMask)); + + Assert.True(result.Success); + Assert.Equal(1, affinity.CpuSelectionApplyCalls); + Assert.Equal(0, affinity.LegacyApplyCalls); + var applied = Assert.Single(affinity.LastSelection!.LogicalProcessors); + Assert.Equal(new ProcessorRef(1, 0, 64), applied); + Assert.DoesNotContain(affinity.LastSelection.LogicalProcessors, processor => processor.GlobalIndex == 0); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WhenTopologyUnavailableAndMaskIsUnsafe_BlocksLegacyFallback() + { + var process = CreateProcess(); + var boolMask = Enumerable.Range(0, 65).Select(index => index == 64).ToList(); + var affinity = new RecordingAffinityApplyService(); + var coordinator = CreateCoordinator(affinity, topologyProvider: null); + + var result = await coordinator.ApplyCoreMaskAsync(process, CreateMask(boolMask)); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.LegacyFallbackUnsafe, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.LegacyFallbackBlocked, result.UserMessage); + Assert.Equal(0, affinity.LegacyApplyCalls); + Assert.Equal(0, affinity.CpuSelectionApplyCalls); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WhenCpuSelectionAccessDenied_ReturnsSafeAccessDeniedMessage() + { + var process = CreateProcess(); + var affinity = new RecordingAffinityApplyService + { + CpuSelectionResult = AffinityApplyResult.Failed( + AffinityApplyErrorCodes.AccessDenied, + ProcessOperationUserMessages.AccessDenied, + "Access is denied.", + isAccessDenied: true), + }; + var mask = CreateMask([true]); + mask.CpuSelection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(0, 0, 0)], + GlobalLogicalProcessorIndexes = [0], + }; + var coordinator = CreateCoordinator(affinity); + + var result = await coordinator.ApplyCoreMaskAsync(process, mask); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + Assert.DoesNotContain("bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); + } + + [Fact] + public async Task ApplyCoreMaskAsync_WhenCpuSelectionAntiCheatBlocked_ReturnsNoBypassMessage() + { + var process = CreateProcess(); + var affinity = new RecordingAffinityApplyService + { + CpuSelectionResult = AffinityApplyResult.Failed( + AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, + ProcessOperationUserMessages.AntiCheatProtectedLikely, + "Protected process.", + isAccessDenied: true, + isAntiCheatLikely: true), + }; + var mask = CreateMask([true]); + mask.CpuSelection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(0, 0, 0)], + GlobalLogicalProcessorIndexes = [0], + }; + var coordinator = CreateCoordinator(affinity); + + var result = await coordinator.ApplyCoreMaskAsync(process, mask); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AntiCheatProtectedLikely, result.UserMessage); + Assert.Contains("will not try to bypass", result.UserMessage, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("disable anti-cheat", result.UserMessage, StringComparison.OrdinalIgnoreCase); + } + + private static ProcessAffinityApplyCoordinator CreateCoordinator( + RecordingAffinityApplyService affinity, + ICpuTopologyProvider? topologyProvider = null) => + new( + affinity, + topologyProvider, + new CpuSelectionMigrationService(), + NullLogger.Instance); + + private static ProcessModel CreateProcess() => + new() + { + ProcessId = 42, + Name = "game.exe", + ProcessorAffinity = 1, + }; + + private static CoreMask CreateMask(IReadOnlyList boolMask) + { + var mask = new CoreMask { Name = "Manual" }; + foreach (var bit in boolMask) + { + mask.BoolMask.Add(bit); + } + + return mask; + } + + private sealed class FakeCpuTopologyProvider(CpuTopologySnapshot snapshot) : ICpuTopologyProvider + { + public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) + { + cancellationToken.ThrowIfCancellationRequested(); + return Task.FromResult(snapshot); + } + } + + private sealed class RecordingAffinityApplyService : IAffinityApplyService + { + public int LegacyApplyCalls { get; private set; } + + public int CpuSelectionApplyCalls { get; private set; } + + public long? LastLegacyMask { get; private set; } + + public CpuSelection? LastSelection { get; private set; } + + public AffinityApplyResult LegacyResult { get; init; } = + AffinityApplyResult.SucceededWithLegacyFallback(1, 1); + + public AffinityApplyResult CpuSelectionResult { get; init; } = + AffinityApplyResult.SucceededWithCpuSets("CPU Sets applied."); + + public Task ApplyAsync(ProcessModel process, long requestedMask) + { + this.LegacyApplyCalls++; + this.LastLegacyMask = requestedMask; + return Task.FromResult(this.LegacyResult); + } + + public Task ApplyAsync(ProcessModel process, CpuSelection selection) + { + this.CpuSelectionApplyCalls++; + this.LastSelection = selection; + return Task.FromResult(this.CpuSelectionResult); + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessClassifierTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessClassifierTests.cs index fe48f47..8145b20 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessClassifierTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessClassifierTests.cs @@ -1,149 +1,149 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class ProcessClassifierTests - { - [Fact] - public void Classify_ReturnsForegroundAppForForegroundPid() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "Game", - HasVisibleWindow = true, - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(10)); - - Assert.Equal(ProcessClassification.ForegroundApp, result); - } - - [Fact] - public void Classify_ReturnsVisibleWindowAppForVisibleNonForegroundProcess() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "Editor", - HasVisibleWindow = true, - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(20)); - - Assert.Equal(ProcessClassification.VisibleWindowApp, result); - } - - [Theory] - [InlineData("svchost")] - [InlineData("svchost.exe")] - public void Classify_ReturnsSystemForNormalizedSystemProcessNames(string processName) - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = processName, - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(null)); - - Assert.Equal(ProcessClassification.System, result); - } - - [Fact] - public void Classify_ReturnsProtectedOrAccessDeniedWhenAccessWasDenied() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "ProtectedProcess", - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(null, AccessDenied: true)); - - Assert.Equal(ProcessClassification.ProtectedOrAccessDenied, result); - } - - [Fact] - public void Classify_ReturnsTerminatedWhenProcessTerminated() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "ClosedProcess", - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(null, Terminated: true)); - - Assert.Equal(ProcessClassification.Terminated, result); - } - - [Fact] - public void Classify_ReturnsBackgroundUserForNonSystemProcessWithoutWindow() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "Worker", - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(null)); - - Assert.Equal(ProcessClassification.BackgroundUser, result); - } - - [Fact] - public void Classify_TerminatedTakesPrecedenceOverForegroundAndSystem() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "svchost", - HasVisibleWindow = true, - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(10, Terminated: true)); - - Assert.Equal(ProcessClassification.Terminated, result); - } - - [Fact] - public void Classify_AccessDeniedTakesPrecedenceOverForegroundAndWindow() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = "ProtectedWindow", - HasVisibleWindow = true, - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(10, AccessDenied: true)); - - Assert.Equal(ProcessClassification.ProtectedOrAccessDenied, result); - } - - [Fact] - public void Classify_ReturnsUnknownWhenNameIsMissing() - { - var classifier = new ProcessClassifier(new ProcessFilterService()); - var process = new ProcessModel - { - ProcessId = 10, - Name = string.Empty, - }; - - var result = classifier.Classify(process, new ProcessClassificationContext(null)); - - Assert.Equal(ProcessClassification.Unknown, result); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessClassifierTests + { + [Fact] + public void Classify_ReturnsForegroundAppForForegroundPid() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "Game", + HasVisibleWindow = true, + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(10)); + + Assert.Equal(ProcessClassification.ForegroundApp, result); + } + + [Fact] + public void Classify_ReturnsVisibleWindowAppForVisibleNonForegroundProcess() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "Editor", + HasVisibleWindow = true, + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(20)); + + Assert.Equal(ProcessClassification.VisibleWindowApp, result); + } + + [Theory] + [InlineData("svchost")] + [InlineData("svchost.exe")] + public void Classify_ReturnsSystemForNormalizedSystemProcessNames(string processName) + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = processName, + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(null)); + + Assert.Equal(ProcessClassification.System, result); + } + + [Fact] + public void Classify_ReturnsProtectedOrAccessDeniedWhenAccessWasDenied() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "ProtectedProcess", + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(null, AccessDenied: true)); + + Assert.Equal(ProcessClassification.ProtectedOrAccessDenied, result); + } + + [Fact] + public void Classify_ReturnsTerminatedWhenProcessTerminated() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "ClosedProcess", + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(null, Terminated: true)); + + Assert.Equal(ProcessClassification.Terminated, result); + } + + [Fact] + public void Classify_ReturnsBackgroundUserForNonSystemProcessWithoutWindow() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "Worker", + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(null)); + + Assert.Equal(ProcessClassification.BackgroundUser, result); + } + + [Fact] + public void Classify_TerminatedTakesPrecedenceOverForegroundAndSystem() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "svchost", + HasVisibleWindow = true, + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(10, Terminated: true)); + + Assert.Equal(ProcessClassification.Terminated, result); + } + + [Fact] + public void Classify_AccessDeniedTakesPrecedenceOverForegroundAndWindow() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = "ProtectedWindow", + HasVisibleWindow = true, + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(10, AccessDenied: true)); + + Assert.Equal(ProcessClassification.ProtectedOrAccessDenied, result); + } + + [Fact] + public void Classify_ReturnsUnknownWhenNameIsMissing() + { + var classifier = new ProcessClassifier(new ProcessFilterService()); + var process = new ProcessModel + { + ProcessId = 10, + Name = string.Empty, + }; + + var result = classifier.Classify(process, new ProcessClassificationContext(null)); + + Assert.Equal(ProcessClassification.Unknown, result); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessCpuSetHandlerTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessCpuSetHandlerTests.cs index 891b6ea..752f981 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessCpuSetHandlerTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessCpuSetHandlerTests.cs @@ -1,339 +1,339 @@ -namespace ThreadPilot.Core.Tests -{ - using System; - using Microsoft.Win32.SafeHandles; - using ThreadPilot.Models; - using ThreadPilot.Platforms.Windows; - using ThreadPilot.Services; - - public sealed class ProcessCpuSetHandlerTests - { - [Fact] - public void CpuSetMapping_KeepsSameLogicalProcessorIndexInDifferentGroupsDistinct() - { - var group0Cpu0 = new ProcessorRef(0, 0, 0); - var group1Cpu0 = new ProcessorRef(1, 0, 64); - var mapping = CpuSetMapping.Create(new Dictionary - { - [group0Cpu0] = 100, - [group1Cpu0] = 200, - }); - - Assert.True(mapping.TryGetCpuSetId(group0Cpu0, out var group0CpuSetId)); - Assert.True(mapping.TryGetCpuSetId(group1Cpu0, out var group1CpuSetId)); - Assert.Equal(100U, group0CpuSetId); - Assert.Equal(200U, group1CpuSetId); - Assert.True(mapping.TryGetProcessorRef(100, out var group0Processor)); - Assert.True(mapping.TryGetProcessorRef(200, out var group1Processor)); - Assert.Equal(group0Cpu0, group0Processor); - Assert.Equal(group1Cpu0, group1Processor); - } - - [Fact] - public void CpuSetMapping_Cpu64DoesNotSelectCpu0() - { - var group0Cpu0 = new ProcessorRef(0, 0, 0); - var group1Cpu0 = new ProcessorRef(1, 0, 64); - var topology = CpuTopologySnapshot.Create( - [group0Cpu0, group1Cpu0], - cpuSetIds: new Dictionary - { - [group0Cpu0] = 100, - [group1Cpu0] = 200, - }); - var selection = CpuSelection.FromProcessors([group1Cpu0], topology); - var mapping = CpuSetMapping.Create(new Dictionary - { - [group0Cpu0] = 100, - [group1Cpu0] = 200, - }); - - var cpuSetIds = mapping.ResolveCpuSetIds(selection); - - Assert.Equal([200U], cpuSetIds); - } - - [Fact] - public void CpuSetMapping_ResolveSelection_UsesExplicitCpuSetIds() - { - var mapping = CpuSetMapping.Create(new Dictionary - { - [new ProcessorRef(0, 0, 0)] = 100, - }); - var selection = new CpuSelection - { - CpuSetIds = [300, 100, 300], - LogicalProcessors = [new ProcessorRef(0, 0, 0)], - }; - - var cpuSetIds = mapping.ResolveCpuSetIds(selection); - - Assert.Equal([100U, 300U], cpuSetIds); - } - - [Fact] - public void CpuSetMapping_ResolveSelection_MapsProcessorRefsWhenCpuSetIdsAreMissing() - { - var cpu1 = new ProcessorRef(0, 1, 1); - var mapping = CpuSetMapping.Create(new Dictionary - { - [new ProcessorRef(0, 0, 0)] = 100, - [cpu1] = 101, - }); - var selection = new CpuSelection - { - LogicalProcessors = [cpu1], - }; - - var cpuSetIds = mapping.ResolveCpuSetIds(selection); - - Assert.Equal([101U], cpuSetIds); - } - - [Fact] - public void CpuSetMapping_ResolveSelection_ReturnsEmptyWhenNoMappingExists() - { - var mapping = CpuSetMapping.Empty; - var selection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(0, 1, 1)], - }; - - var cpuSetIds = mapping.ResolveCpuSetIds(selection); - - Assert.Empty(cpuSetIds); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelection_WithClearSelection_ClearsCpuSets() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - - var result = handler.ApplyCpuSelection(new CpuSelection(), clearSelection: true); - - Assert.True(result); - Assert.Null(nativeApi.LastAppliedCpuSetIds); - Assert.Equal(0U, nativeApi.LastAppliedCpuSetCount); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelection_WithClearSelectionAndNullSelection_ClearsCpuSets() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - - var result = handler.ApplyCpuSelection(null!, clearSelection: true); - - Assert.True(result); - Assert.Null(nativeApi.LastAppliedCpuSetIds); - Assert.Equal(0U, nativeApi.LastAppliedCpuSetCount); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelection_WithNullSelectionAndClearFalse_ThrowsArgumentNullException() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - - Assert.Throws(() => - handler.ApplyCpuSelection(null!, clearSelection: false)); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelection_WithExplicitCpuSetIds_AppliesThoseIds() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - var selection = new CpuSelection - { - CpuSetIds = [400, 200, 400], - }; - - var result = handler.ApplyCpuSelection(selection); - - Assert.True(result); - Assert.Equal([200U, 400U], nativeApi.LastAppliedCpuSetIds!); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelection_WithoutCpuSetIds_ResolvesProcessorRefs() - { - var cpu64 = new ProcessorRef(1, 0, 64); - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler( - nativeApi, - CpuSetMapping.Create(new Dictionary - { - [new ProcessorRef(0, 0, 0)] = 100, - [cpu64] = 200, - })); - var selection = new CpuSelection - { - LogicalProcessors = [cpu64], - }; - - var result = handler.ApplyCpuSelection(selection); - - Assert.True(result); - Assert.Equal([200U], nativeApi.LastAppliedCpuSetIds!); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelection_WithoutResolvableCpuSets_ReturnsFalse() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - var selection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(1, 0, 64)], - }; - - var result = handler.ApplyCpuSelection(selection); - - Assert.False(result); - Assert.False(nativeApi.WasSetProcessDefaultCpuSetsCalled); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelectionDetailed_WithoutResolvableCpuSets_ReturnsInvalidTopology() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - var selection = new CpuSelection - { - LogicalProcessors = [new ProcessorRef(1, 0, 64)], - }; - - var result = handler.ApplyCpuSelectionDetailed(selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.InvalidTopology, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); - Assert.False(nativeApi.WasSetProcessDefaultCpuSetsCalled); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSelectionDetailed_WhenNativeAccessDenied_ReturnsAccessDenied() - { - var nativeApi = new FakeProcessCpuSetNativeApi - { - SetProcessDefaultCpuSetsResult = false, - LastWin32Error = 5, - }; - using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); - var selection = new CpuSelection - { - CpuSetIds = [400], - }; - - var result = handler.ApplyCpuSelectionDetailed(selection); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.Equal(5, result.Win32ErrorCode); - Assert.True(result.IsAccessDenied); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSetMask_LegacySingleGroupMappingIsPreserved() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler( - nativeApi, - CpuSetMapping.Create(new Dictionary - { - [new ProcessorRef(0, 0, 0)] = 100, - [new ProcessorRef(0, 1, 1)] = 101, - [new ProcessorRef(1, 0, 64)] = 200, - })); - - var result = handler.ApplyCpuSetMask(0b11); - - Assert.True(result); - Assert.Equal([100U, 101U], nativeApi.LastAppliedCpuSetIds!); - } - - [Fact] - public void ProcessCpuSetHandler_ApplyCpuSetMask_LegacyCpu0BitDoesNotRepresentGroup1Cpu0() - { - var nativeApi = new FakeProcessCpuSetNativeApi(); - using var handler = CreateHandler( - nativeApi, - CpuSetMapping.Create(new Dictionary - { - [new ProcessorRef(0, 0, 0)] = 100, - [new ProcessorRef(1, 0, 64)] = 200, - })); - - var result = handler.ApplyCpuSetMask(0b1); - - Assert.True(result); - Assert.Equal([100U], nativeApi.LastAppliedCpuSetIds!); - } - - private static ProcessCpuSetHandler CreateHandler( - FakeProcessCpuSetNativeApi nativeApi, - CpuSetMapping mapping) - { - return new ProcessCpuSetHandler(1234, "test.exe", nativeApi, mapping); - } - - private sealed class FakeProcessCpuSetNativeApi : IProcessCpuSetNativeApi - { - public bool WasSetProcessDefaultCpuSetsCalled { get; private set; } - - public uint[]? LastAppliedCpuSetIds { get; private set; } - - public uint LastAppliedCpuSetCount { get; private set; } - - public int LastWin32Error { get; set; } - - public bool SetProcessDefaultCpuSetsResult { get; init; } = true; - - public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) - { - return new SafeProcessHandle(new IntPtr(1), ownsHandle: false); - } - - public bool SetProcessDefaultCpuSets(SafeProcessHandle process, uint[]? cpuSetIds, uint cpuSetIdCount) - { - this.WasSetProcessDefaultCpuSetsCalled = true; - this.LastAppliedCpuSetIds = cpuSetIds; - this.LastAppliedCpuSetCount = cpuSetIdCount; - return this.SetProcessDefaultCpuSetsResult; - } - - public bool GetProcessTimes( - SafeProcessHandle process, - out FILETIME creationTime, - out FILETIME exitTime, - out FILETIME kernelTime, - out FILETIME userTime) - { - creationTime = default; - exitTime = default; - kernelTime = default; - userTime = default; - return false; - } - - public bool GetSystemCpuSetInformation( - IntPtr information, - uint bufferLength, - ref uint returnedLength, - SafeProcessHandle process, - uint flags) - { - returnedLength = 0; - return false; - } - - public int GetLastWin32Error() - { - return this.LastWin32Error; - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System; + using Microsoft.Win32.SafeHandles; + using ThreadPilot.Models; + using ThreadPilot.Platforms.Windows; + using ThreadPilot.Services; + + public sealed class ProcessCpuSetHandlerTests + { + [Fact] + public void CpuSetMapping_KeepsSameLogicalProcessorIndexInDifferentGroupsDistinct() + { + var group0Cpu0 = new ProcessorRef(0, 0, 0); + var group1Cpu0 = new ProcessorRef(1, 0, 64); + var mapping = CpuSetMapping.Create(new Dictionary + { + [group0Cpu0] = 100, + [group1Cpu0] = 200, + }); + + Assert.True(mapping.TryGetCpuSetId(group0Cpu0, out var group0CpuSetId)); + Assert.True(mapping.TryGetCpuSetId(group1Cpu0, out var group1CpuSetId)); + Assert.Equal(100U, group0CpuSetId); + Assert.Equal(200U, group1CpuSetId); + Assert.True(mapping.TryGetProcessorRef(100, out var group0Processor)); + Assert.True(mapping.TryGetProcessorRef(200, out var group1Processor)); + Assert.Equal(group0Cpu0, group0Processor); + Assert.Equal(group1Cpu0, group1Processor); + } + + [Fact] + public void CpuSetMapping_Cpu64DoesNotSelectCpu0() + { + var group0Cpu0 = new ProcessorRef(0, 0, 0); + var group1Cpu0 = new ProcessorRef(1, 0, 64); + var topology = CpuTopologySnapshot.Create( + [group0Cpu0, group1Cpu0], + cpuSetIds: new Dictionary + { + [group0Cpu0] = 100, + [group1Cpu0] = 200, + }); + var selection = CpuSelection.FromProcessors([group1Cpu0], topology); + var mapping = CpuSetMapping.Create(new Dictionary + { + [group0Cpu0] = 100, + [group1Cpu0] = 200, + }); + + var cpuSetIds = mapping.ResolveCpuSetIds(selection); + + Assert.Equal([200U], cpuSetIds); + } + + [Fact] + public void CpuSetMapping_ResolveSelection_UsesExplicitCpuSetIds() + { + var mapping = CpuSetMapping.Create(new Dictionary + { + [new ProcessorRef(0, 0, 0)] = 100, + }); + var selection = new CpuSelection + { + CpuSetIds = [300, 100, 300], + LogicalProcessors = [new ProcessorRef(0, 0, 0)], + }; + + var cpuSetIds = mapping.ResolveCpuSetIds(selection); + + Assert.Equal([100U, 300U], cpuSetIds); + } + + [Fact] + public void CpuSetMapping_ResolveSelection_MapsProcessorRefsWhenCpuSetIdsAreMissing() + { + var cpu1 = new ProcessorRef(0, 1, 1); + var mapping = CpuSetMapping.Create(new Dictionary + { + [new ProcessorRef(0, 0, 0)] = 100, + [cpu1] = 101, + }); + var selection = new CpuSelection + { + LogicalProcessors = [cpu1], + }; + + var cpuSetIds = mapping.ResolveCpuSetIds(selection); + + Assert.Equal([101U], cpuSetIds); + } + + [Fact] + public void CpuSetMapping_ResolveSelection_ReturnsEmptyWhenNoMappingExists() + { + var mapping = CpuSetMapping.Empty; + var selection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(0, 1, 1)], + }; + + var cpuSetIds = mapping.ResolveCpuSetIds(selection); + + Assert.Empty(cpuSetIds); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelection_WithClearSelection_ClearsCpuSets() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + + var result = handler.ApplyCpuSelection(new CpuSelection(), clearSelection: true); + + Assert.True(result); + Assert.Null(nativeApi.LastAppliedCpuSetIds); + Assert.Equal(0U, nativeApi.LastAppliedCpuSetCount); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelection_WithClearSelectionAndNullSelection_ClearsCpuSets() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + + var result = handler.ApplyCpuSelection(null!, clearSelection: true); + + Assert.True(result); + Assert.Null(nativeApi.LastAppliedCpuSetIds); + Assert.Equal(0U, nativeApi.LastAppliedCpuSetCount); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelection_WithNullSelectionAndClearFalse_ThrowsArgumentNullException() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + + Assert.Throws(() => + handler.ApplyCpuSelection(null!, clearSelection: false)); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelection_WithExplicitCpuSetIds_AppliesThoseIds() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + var selection = new CpuSelection + { + CpuSetIds = [400, 200, 400], + }; + + var result = handler.ApplyCpuSelection(selection); + + Assert.True(result); + Assert.Equal([200U, 400U], nativeApi.LastAppliedCpuSetIds!); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelection_WithoutCpuSetIds_ResolvesProcessorRefs() + { + var cpu64 = new ProcessorRef(1, 0, 64); + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler( + nativeApi, + CpuSetMapping.Create(new Dictionary + { + [new ProcessorRef(0, 0, 0)] = 100, + [cpu64] = 200, + })); + var selection = new CpuSelection + { + LogicalProcessors = [cpu64], + }; + + var result = handler.ApplyCpuSelection(selection); + + Assert.True(result); + Assert.Equal([200U], nativeApi.LastAppliedCpuSetIds!); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelection_WithoutResolvableCpuSets_ReturnsFalse() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + var selection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(1, 0, 64)], + }; + + var result = handler.ApplyCpuSelection(selection); + + Assert.False(result); + Assert.False(nativeApi.WasSetProcessDefaultCpuSetsCalled); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelectionDetailed_WithoutResolvableCpuSets_ReturnsInvalidTopology() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + var selection = new CpuSelection + { + LogicalProcessors = [new ProcessorRef(1, 0, 64)], + }; + + var result = handler.ApplyCpuSelectionDetailed(selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.InvalidTopology, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.InvalidTopology, result.UserMessage); + Assert.False(nativeApi.WasSetProcessDefaultCpuSetsCalled); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSelectionDetailed_WhenNativeAccessDenied_ReturnsAccessDenied() + { + var nativeApi = new FakeProcessCpuSetNativeApi + { + SetProcessDefaultCpuSetsResult = false, + LastWin32Error = 5, + }; + using var handler = CreateHandler(nativeApi, CpuSetMapping.Empty); + var selection = new CpuSelection + { + CpuSetIds = [400], + }; + + var result = handler.ApplyCpuSelectionDetailed(selection); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.Equal(5, result.Win32ErrorCode); + Assert.True(result.IsAccessDenied); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSetMask_LegacySingleGroupMappingIsPreserved() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler( + nativeApi, + CpuSetMapping.Create(new Dictionary + { + [new ProcessorRef(0, 0, 0)] = 100, + [new ProcessorRef(0, 1, 1)] = 101, + [new ProcessorRef(1, 0, 64)] = 200, + })); + + var result = handler.ApplyCpuSetMask(0b11); + + Assert.True(result); + Assert.Equal([100U, 101U], nativeApi.LastAppliedCpuSetIds!); + } + + [Fact] + public void ProcessCpuSetHandler_ApplyCpuSetMask_LegacyCpu0BitDoesNotRepresentGroup1Cpu0() + { + var nativeApi = new FakeProcessCpuSetNativeApi(); + using var handler = CreateHandler( + nativeApi, + CpuSetMapping.Create(new Dictionary + { + [new ProcessorRef(0, 0, 0)] = 100, + [new ProcessorRef(1, 0, 64)] = 200, + })); + + var result = handler.ApplyCpuSetMask(0b1); + + Assert.True(result); + Assert.Equal([100U], nativeApi.LastAppliedCpuSetIds!); + } + + private static ProcessCpuSetHandler CreateHandler( + FakeProcessCpuSetNativeApi nativeApi, + CpuSetMapping mapping) + { + return new ProcessCpuSetHandler(1234, "test.exe", nativeApi, mapping); + } + + private sealed class FakeProcessCpuSetNativeApi : IProcessCpuSetNativeApi + { + public bool WasSetProcessDefaultCpuSetsCalled { get; private set; } + + public uint[]? LastAppliedCpuSetIds { get; private set; } + + public uint LastAppliedCpuSetCount { get; private set; } + + public int LastWin32Error { get; set; } + + public bool SetProcessDefaultCpuSetsResult { get; init; } = true; + + public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) + { + return new SafeProcessHandle(new IntPtr(1), ownsHandle: false); + } + + public bool SetProcessDefaultCpuSets(SafeProcessHandle process, uint[]? cpuSetIds, uint cpuSetIdCount) + { + this.WasSetProcessDefaultCpuSetsCalled = true; + this.LastAppliedCpuSetIds = cpuSetIds; + this.LastAppliedCpuSetCount = cpuSetIdCount; + return this.SetProcessDefaultCpuSetsResult; + } + + public bool GetProcessTimes( + SafeProcessHandle process, + out FILETIME creationTime, + out FILETIME exitTime, + out FILETIME kernelTime, + out FILETIME userTime) + { + creationTime = default; + exitTime = default; + kernelTime = default; + userTime = default; + return false; + } + + public bool GetSystemCpuSetInformation( + IntPtr information, + uint bufferLength, + ref uint returnedLength, + SafeProcessHandle process, + uint flags) + { + returnedLength = 0; + return false; + } + + public int GetLastWin32Error() + { + return this.LastWin32Error; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessFilterServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessFilterServiceTests.cs index 6ff88f0..997c9f8 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessFilterServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessFilterServiceTests.cs @@ -1,32 +1,32 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class ProcessFilterServiceTests - { - [Theory] - [InlineData("svchost")] - [InlineData("svchost.exe")] - [InlineData("csrss")] - [InlineData("csrss.exe")] - public void FilterAndSort_HidesSystemProcesses_WithOrWithoutExeSuffix(string processName) - { - var service = new ProcessFilterService(); - var processes = new[] - { - new ProcessModel { Name = processName, CpuUsage = 10 }, - new ProcessModel { Name = "UserApp", CpuUsage = 1 }, - }; - - var result = service.FilterAndSort(processes, new ProcessFilterCriteria - { - HideSystemProcesses = true, - SortMode = "Name", - }); - - var remaining = Assert.Single(result); - Assert.Equal("UserApp", remaining.Name); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessFilterServiceTests + { + [Theory] + [InlineData("svchost")] + [InlineData("svchost.exe")] + [InlineData("csrss")] + [InlineData("csrss.exe")] + public void FilterAndSort_HidesSystemProcesses_WithOrWithoutExeSuffix(string processName) + { + var service = new ProcessFilterService(); + var processes = new[] + { + new ProcessModel { Name = processName, CpuUsage = 10 }, + new ProcessModel { Name = "UserApp", CpuUsage = 1 }, + }; + + var result = service.FilterAndSort(processes, new ProcessFilterCriteria + { + HideSystemProcesses = true, + SortMode = "Name", + }); + + var remaining = Assert.Single(result); + Assert.Equal("UserApp", remaining.Name); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessListDeltaUpdaterTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessListDeltaUpdaterTests.cs index 2f203db..17c37f1 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessListDeltaUpdaterTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessListDeltaUpdaterTests.cs @@ -1,134 +1,134 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.ObjectModel; - using System.Diagnostics; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class ProcessListDeltaUpdaterTests - { - [Fact] - public void ApplyDelta_PreservesExistingInstancesAndUpdatesProperties() - { - var existing = new ProcessModel - { - ProcessId = 42, - Name = "ThreadPilot", - CpuUsage = 1, - MemoryUsage = 100, - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 1, - }; - var processes = new ObservableCollection { existing }; - var snapshot = new[] - { - new ProcessModel - { - ProcessId = 42, - Name = "ThreadPilot", - CpuUsage = 7, - MemoryUsage = 500, - Priority = ProcessPriorityClass.High, - ProcessorAffinity = 3, - HasVisibleWindow = true, - IsForeground = true, - Classification = ProcessClassification.ForegroundApp, - MainWindowTitle = "ThreadPilot - Processes", - }, - }; - - var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 42); - - Assert.Same(existing, processes[0]); - Assert.Same(existing, result.SelectedProcess); - Assert.False(result.SelectedProcessTerminated); - Assert.Equal(7, existing.CpuUsage); - Assert.Equal(500, existing.MemoryUsage); - Assert.Equal(ProcessPriorityClass.High, existing.Priority); - Assert.Equal(3, existing.ProcessorAffinity); - Assert.True(existing.HasVisibleWindow); - Assert.True(existing.IsForeground); - Assert.Equal(ProcessClassification.ForegroundApp, existing.Classification); - Assert.Equal("ThreadPilot - Processes", existing.MainWindowTitle); - } - - [Fact] - public void ApplyDelta_AddsNewProcessesAndRemovesDeadProcesses() - { - var removed = new ProcessModel { ProcessId = 10, Name = "Dead" }; - var kept = new ProcessModel { ProcessId = 20, Name = "Kept" }; - var processes = new ObservableCollection { removed, kept }; - var snapshot = new[] - { - new ProcessModel { ProcessId = 20, Name = "Kept" }, - new ProcessModel { ProcessId = 30, Name = "New" }, - }; - - var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 20); - - Assert.Equal(2, processes.Count); - Assert.DoesNotContain(processes, p => p.ProcessId == 10); - Assert.Contains(processes, p => p.ProcessId == 30); - Assert.Same(kept, result.SelectedProcess); - Assert.False(result.SelectedProcessTerminated); - } - - [Fact] - public void ApplyDelta_ReportsTerminatedSelection() - { - var selected = new ProcessModel { ProcessId = 10, Name = "Dead" }; - var processes = new ObservableCollection { selected }; - - var result = ProcessListDeltaUpdater.ApplyDelta(processes, Array.Empty(), 10); - - Assert.Empty(processes); - Assert.Null(result.SelectedProcess); - Assert.True(result.SelectedProcessTerminated); - } - - [Fact] - public void ApplyDelta_WhenSnapshotContainsDuplicatePid_UsesLatestSnapshot() - { - var existing = new ProcessModel { ProcessId = 42, Name = "Old" }; - var processes = new ObservableCollection { existing }; - var snapshot = new[] - { - new ProcessModel { ProcessId = 42, Name = "First", CpuUsage = 1 }, - new ProcessModel { ProcessId = 42, Name = "Latest", CpuUsage = 9 }, - }; - - var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 42); - - Assert.Single(processes); - Assert.Same(existing, processes[0]); - Assert.Same(existing, result.SelectedProcess); - Assert.Equal("Latest", existing.Name); - Assert.Equal(9, existing.CpuUsage); - } - - [Fact] - public void ApplyDelta_PreservesSelectionDuringAddRemoveChurn() - { - var selected = new ProcessModel { ProcessId = 20, Name = "Selected" }; - var processes = new ObservableCollection - { - new() { ProcessId = 10, Name = "Removed" }, - selected, - }; - - var snapshot = new[] - { - new ProcessModel { ProcessId = 20, Name = "Selected Updated" }, - new ProcessModel { ProcessId = 30, Name = "Added" }, - }; - - var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 20); - - Assert.Equal(2, processes.Count); - Assert.Same(selected, result.SelectedProcess); - Assert.False(result.SelectedProcessTerminated); - Assert.DoesNotContain(processes, process => process.ProcessId == 10); - Assert.Contains(processes, process => process.ProcessId == 30); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Collections.ObjectModel; + using System.Diagnostics; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessListDeltaUpdaterTests + { + [Fact] + public void ApplyDelta_PreservesExistingInstancesAndUpdatesProperties() + { + var existing = new ProcessModel + { + ProcessId = 42, + Name = "ThreadPilot", + CpuUsage = 1, + MemoryUsage = 100, + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 1, + }; + var processes = new ObservableCollection { existing }; + var snapshot = new[] + { + new ProcessModel + { + ProcessId = 42, + Name = "ThreadPilot", + CpuUsage = 7, + MemoryUsage = 500, + Priority = ProcessPriorityClass.High, + ProcessorAffinity = 3, + HasVisibleWindow = true, + IsForeground = true, + Classification = ProcessClassification.ForegroundApp, + MainWindowTitle = "ThreadPilot - Processes", + }, + }; + + var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 42); + + Assert.Same(existing, processes[0]); + Assert.Same(existing, result.SelectedProcess); + Assert.False(result.SelectedProcessTerminated); + Assert.Equal(7, existing.CpuUsage); + Assert.Equal(500, existing.MemoryUsage); + Assert.Equal(ProcessPriorityClass.High, existing.Priority); + Assert.Equal(3, existing.ProcessorAffinity); + Assert.True(existing.HasVisibleWindow); + Assert.True(existing.IsForeground); + Assert.Equal(ProcessClassification.ForegroundApp, existing.Classification); + Assert.Equal("ThreadPilot - Processes", existing.MainWindowTitle); + } + + [Fact] + public void ApplyDelta_AddsNewProcessesAndRemovesDeadProcesses() + { + var removed = new ProcessModel { ProcessId = 10, Name = "Dead" }; + var kept = new ProcessModel { ProcessId = 20, Name = "Kept" }; + var processes = new ObservableCollection { removed, kept }; + var snapshot = new[] + { + new ProcessModel { ProcessId = 20, Name = "Kept" }, + new ProcessModel { ProcessId = 30, Name = "New" }, + }; + + var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 20); + + Assert.Equal(2, processes.Count); + Assert.DoesNotContain(processes, p => p.ProcessId == 10); + Assert.Contains(processes, p => p.ProcessId == 30); + Assert.Same(kept, result.SelectedProcess); + Assert.False(result.SelectedProcessTerminated); + } + + [Fact] + public void ApplyDelta_ReportsTerminatedSelection() + { + var selected = new ProcessModel { ProcessId = 10, Name = "Dead" }; + var processes = new ObservableCollection { selected }; + + var result = ProcessListDeltaUpdater.ApplyDelta(processes, Array.Empty(), 10); + + Assert.Empty(processes); + Assert.Null(result.SelectedProcess); + Assert.True(result.SelectedProcessTerminated); + } + + [Fact] + public void ApplyDelta_WhenSnapshotContainsDuplicatePid_UsesLatestSnapshot() + { + var existing = new ProcessModel { ProcessId = 42, Name = "Old" }; + var processes = new ObservableCollection { existing }; + var snapshot = new[] + { + new ProcessModel { ProcessId = 42, Name = "First", CpuUsage = 1 }, + new ProcessModel { ProcessId = 42, Name = "Latest", CpuUsage = 9 }, + }; + + var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 42); + + Assert.Single(processes); + Assert.Same(existing, processes[0]); + Assert.Same(existing, result.SelectedProcess); + Assert.Equal("Latest", existing.Name); + Assert.Equal(9, existing.CpuUsage); + } + + [Fact] + public void ApplyDelta_PreservesSelectionDuringAddRemoveChurn() + { + var selected = new ProcessModel { ProcessId = 20, Name = "Selected" }; + var processes = new ObservableCollection + { + new() { ProcessId = 10, Name = "Removed" }, + selected, + }; + + var snapshot = new[] + { + new ProcessModel { ProcessId = 20, Name = "Selected Updated" }, + new ProcessModel { ProcessId = 30, Name = "Added" }, + }; + + var result = ProcessListDeltaUpdater.ApplyDelta(processes, snapshot, 20); + + Assert.Equal(2, processes.Count); + Assert.Same(selected, result.SelectedProcess); + Assert.False(result.SelectedProcessTerminated); + Assert.DoesNotContain(processes, process => process.ProcessId == 10); + Assert.Contains(processes, process => process.ProcessId == 30); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessMemoryPriorityServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessMemoryPriorityServiceTests.cs index 4988659..f1012fa 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessMemoryPriorityServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessMemoryPriorityServiceTests.cs @@ -1,248 +1,248 @@ -/* - * ThreadPilot - process memory priority service tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.ComponentModel; - using System.Runtime.InteropServices; - using Microsoft.Win32.SafeHandles; - using ThreadPilot.Models; - using ThreadPilot.Platforms.Windows; - using ThreadPilot.Services; - - public sealed class ProcessMemoryPriorityServiceTests - { - [Fact] - public async Task SetMemoryPriorityAsync_WithValidProcess_CallsNativeApi() - { - var nativeApi = new FakeProcessMemoryPriorityNativeApi(); - var service = CreateService(nativeApi); - var process = CreateProcess(); - - var result = await service.SetMemoryPriorityAsync(process, ProcessMemoryPriority.Low); - - Assert.True(result.Success); - Assert.Equal(ProcessMemoryPriority.Low, nativeApi.LastSetPriority); - Assert.Equal(ProcessAccessFlags.PROCESS_SET_INFORMATION, nativeApi.LastOpenAccess); - Assert.Equal("Memory priority applied.", result.UserMessage); - } - - [Fact] - public async Task GetMemoryPriorityAsync_WithValidProcess_ReadsNativeApi() - { - var nativeApi = new FakeProcessMemoryPriorityNativeApi - { - PriorityToReturn = ProcessMemoryPriority.BelowNormal, - }; - var service = CreateService(nativeApi); - - var priority = await service.GetMemoryPriorityAsync(CreateProcess()); - - Assert.Equal(ProcessMemoryPriority.BelowNormal, priority); - Assert.Equal(ProcessAccessFlags.PROCESS_QUERY_LIMITED_INFORMATION, nativeApi.LastOpenAccess); - } - - [Theory] - [InlineData(1, ProcessMemoryPriority.VeryLow)] - [InlineData(2, ProcessMemoryPriority.Low)] - [InlineData(3, ProcessMemoryPriority.Medium)] - [InlineData(4, ProcessMemoryPriority.BelowNormal)] - [InlineData(5, ProcessMemoryPriority.Normal)] - public void ProcessMemoryPriority_UsesDocumentedWindowsLevels(int windowsLevel, ProcessMemoryPriority priority) - { - Assert.Equal(windowsLevel, (int)priority); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WithNullProcess_ReturnsControlledFailure() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi()); - - var result = await service.SetMemoryPriorityAsync(null!, ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.Equal("InvalidProcess", result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - Assert.NotEqual(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); - Assert.False(result.IsAccessDenied); - Assert.False(result.IsProcessExited); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WithInvalidProcess_DoesNotReturnUnsupportedWindowsMessage() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi()); - - var result = await service.SetMemoryPriorityAsync(new ProcessModel { ProcessId = 0 }, ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.Equal("InvalidProcess", result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - Assert.NotEqual(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WithInvalidPriority_ReturnsInvalidPriorityMessage() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi()); - - var result = await service.SetMemoryPriorityAsync(CreateProcess(), (ProcessMemoryPriority)99); - - Assert.False(result.Success); - Assert.Equal("InvalidMemoryPriority", result.ErrorCode); - Assert.Equal("This memory priority value is not supported.", result.UserMessage); - Assert.NotEqual(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WhenProcessExited_ReturnsProcessExitedFailure() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi - { - OpenException = new InvalidOperationException("The process has exited."), - }); - - var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.True(result.IsProcessExited); - Assert.Equal(AffinityApplyErrorCodes.ProcessExited, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WhenAccessDenied_ReturnsSafeAccessDeniedFailure() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi - { - SetException = new Win32Exception(5, "Access is denied."), - }); - - var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.True(result.IsAccessDenied); - Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WhenProtectedByAntiCheat_ReturnsMessageWithoutBypassPromise() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi - { - SetException = new UnauthorizedAccessException("Protected anti-cheat process."), - }); - - var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.True(result.IsAccessDenied); - Assert.True(result.IsAntiCheatLikely); - Assert.Equal(AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, result.ErrorCode); - Assert.Equal(ProcessOperationUserMessages.AntiCheatProtectedLikely, result.UserMessage); - Assert.Equal( - "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to bypass it.", - ProcessOperationUserMessages.AntiCheatProtectedLikely); - Assert.DoesNotContain("disable anti-cheat", result.UserMessage, StringComparison.OrdinalIgnoreCase); - Assert.DoesNotContain("administrator", result.UserMessage, StringComparison.OrdinalIgnoreCase); - Assert.Contains("cannot bypass anti-cheat", ProcessOperationUserMessages.AdminClarification); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WhenUnsupported_ReturnsControlledFailure() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi { IsSupported = false }); - - var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.Equal("Unsupported", result.ErrorCode); - Assert.Equal(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); - } - - [Fact] - public async Task SetMemoryPriorityAsync_WhenNativeCallFails_ReturnsControlledFailure() - { - var service = CreateService(new FakeProcessMemoryPriorityNativeApi - { - SetResult = false, - LastError = 31, - }); - - var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.NativeApplyFailed, result.ErrorCode); - Assert.Contains("SetProcessInformation(ProcessMemoryPriority) failed", result.TechnicalMessage); - } - - private static ProcessMemoryPriorityService CreateService(IProcessMemoryPriorityNativeApi nativeApi) => - new(nativeApi, Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance); - - private static ProcessModel CreateProcess() => - new() - { - ProcessId = 42, - Name = "game.exe", - ExecutablePath = @"C:\Games\Game.exe", - }; - - private sealed class FakeProcessMemoryPriorityNativeApi : IProcessMemoryPriorityNativeApi - { - public bool IsSupported { get; init; } = true; - - public ProcessAccessFlags LastOpenAccess { get; private set; } - - public ProcessMemoryPriority? LastSetPriority { get; private set; } - - public ProcessMemoryPriority PriorityToReturn { get; init; } = ProcessMemoryPriority.Normal; - - public Exception? OpenException { get; init; } - - public Exception? SetException { get; init; } - - public bool SetResult { get; init; } = true; - - public int LastError { get; init; } - - public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) - { - this.LastOpenAccess = access; - if (this.OpenException != null) - { - throw this.OpenException; - } - - return new SafeProcessHandle(new IntPtr(1), ownsHandle: false); - } - - public bool GetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize) - { - processInformation.MemoryPriority = (uint)this.PriorityToReturn; - return true; - } - - public bool SetProcessInformation( - SafeProcessHandle process, - ProcessInformationClass processInformationClass, - ref MemoryPriorityInformation processInformation, - uint processInformationSize) - { - if (this.SetException != null) - { - throw this.SetException; - } - - this.LastSetPriority = (ProcessMemoryPriority)processInformation.MemoryPriority; - return this.SetResult; - } - - public int GetLastWin32Error() => this.LastError; - } - } -} +/* + * ThreadPilot - process memory priority service tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.ComponentModel; + using System.Runtime.InteropServices; + using Microsoft.Win32.SafeHandles; + using ThreadPilot.Models; + using ThreadPilot.Platforms.Windows; + using ThreadPilot.Services; + + public sealed class ProcessMemoryPriorityServiceTests + { + [Fact] + public async Task SetMemoryPriorityAsync_WithValidProcess_CallsNativeApi() + { + var nativeApi = new FakeProcessMemoryPriorityNativeApi(); + var service = CreateService(nativeApi); + var process = CreateProcess(); + + var result = await service.SetMemoryPriorityAsync(process, ProcessMemoryPriority.Low); + + Assert.True(result.Success); + Assert.Equal(ProcessMemoryPriority.Low, nativeApi.LastSetPriority); + Assert.Equal(ProcessAccessFlags.PROCESS_SET_INFORMATION, nativeApi.LastOpenAccess); + Assert.Equal("Memory priority applied.", result.UserMessage); + } + + [Fact] + public async Task GetMemoryPriorityAsync_WithValidProcess_ReadsNativeApi() + { + var nativeApi = new FakeProcessMemoryPriorityNativeApi + { + PriorityToReturn = ProcessMemoryPriority.BelowNormal, + }; + var service = CreateService(nativeApi); + + var priority = await service.GetMemoryPriorityAsync(CreateProcess()); + + Assert.Equal(ProcessMemoryPriority.BelowNormal, priority); + Assert.Equal(ProcessAccessFlags.PROCESS_QUERY_LIMITED_INFORMATION, nativeApi.LastOpenAccess); + } + + [Theory] + [InlineData(1, ProcessMemoryPriority.VeryLow)] + [InlineData(2, ProcessMemoryPriority.Low)] + [InlineData(3, ProcessMemoryPriority.Medium)] + [InlineData(4, ProcessMemoryPriority.BelowNormal)] + [InlineData(5, ProcessMemoryPriority.Normal)] + public void ProcessMemoryPriority_UsesDocumentedWindowsLevels(int windowsLevel, ProcessMemoryPriority priority) + { + Assert.Equal(windowsLevel, (int)priority); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WithNullProcess_ReturnsControlledFailure() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi()); + + var result = await service.SetMemoryPriorityAsync(null!, ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.Equal("InvalidProcess", result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + Assert.NotEqual(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); + Assert.False(result.IsAccessDenied); + Assert.False(result.IsProcessExited); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WithInvalidProcess_DoesNotReturnUnsupportedWindowsMessage() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi()); + + var result = await service.SetMemoryPriorityAsync(new ProcessModel { ProcessId = 0 }, ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.Equal("InvalidProcess", result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + Assert.NotEqual(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WithInvalidPriority_ReturnsInvalidPriorityMessage() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi()); + + var result = await service.SetMemoryPriorityAsync(CreateProcess(), (ProcessMemoryPriority)99); + + Assert.False(result.Success); + Assert.Equal("InvalidMemoryPriority", result.ErrorCode); + Assert.Equal("This memory priority value is not supported.", result.UserMessage); + Assert.NotEqual(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WhenProcessExited_ReturnsProcessExitedFailure() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi + { + OpenException = new InvalidOperationException("The process has exited."), + }); + + var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.True(result.IsProcessExited); + Assert.Equal(AffinityApplyErrorCodes.ProcessExited, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.ProcessExited, result.UserMessage); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WhenAccessDenied_ReturnsSafeAccessDeniedFailure() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi + { + SetException = new Win32Exception(5, "Access is denied."), + }); + + var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.True(result.IsAccessDenied); + Assert.Equal(AffinityApplyErrorCodes.AccessDenied, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, result.UserMessage); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WhenProtectedByAntiCheat_ReturnsMessageWithoutBypassPromise() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi + { + SetException = new UnauthorizedAccessException("Protected anti-cheat process."), + }); + + var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.True(result.IsAccessDenied); + Assert.True(result.IsAntiCheatLikely); + Assert.Equal(AffinityApplyErrorCodes.AntiCheatOrProtectedProcessLikely, result.ErrorCode); + Assert.Equal(ProcessOperationUserMessages.AntiCheatProtectedLikely, result.UserMessage); + Assert.Equal( + "The process appears protected by anti-cheat or process protection. ThreadPilot will not try to bypass it.", + ProcessOperationUserMessages.AntiCheatProtectedLikely); + Assert.DoesNotContain("disable anti-cheat", result.UserMessage, StringComparison.OrdinalIgnoreCase); + Assert.DoesNotContain("administrator", result.UserMessage, StringComparison.OrdinalIgnoreCase); + Assert.Contains("cannot bypass anti-cheat", ProcessOperationUserMessages.AdminClarification); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WhenUnsupported_ReturnsControlledFailure() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi { IsSupported = false }); + + var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.Equal("Unsupported", result.ErrorCode); + Assert.Equal(ProcessMemoryPriorityService.UnsupportedUserMessage, result.UserMessage); + } + + [Fact] + public async Task SetMemoryPriorityAsync_WhenNativeCallFails_ReturnsControlledFailure() + { + var service = CreateService(new FakeProcessMemoryPriorityNativeApi + { + SetResult = false, + LastError = 31, + }); + + var result = await service.SetMemoryPriorityAsync(CreateProcess(), ProcessMemoryPriority.Normal); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.NativeApplyFailed, result.ErrorCode); + Assert.Contains("SetProcessInformation(ProcessMemoryPriority) failed", result.TechnicalMessage); + } + + private static ProcessMemoryPriorityService CreateService(IProcessMemoryPriorityNativeApi nativeApi) => + new(nativeApi, Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance); + + private static ProcessModel CreateProcess() => + new() + { + ProcessId = 42, + Name = "game.exe", + ExecutablePath = @"C:\Games\Game.exe", + }; + + private sealed class FakeProcessMemoryPriorityNativeApi : IProcessMemoryPriorityNativeApi + { + public bool IsSupported { get; init; } = true; + + public ProcessAccessFlags LastOpenAccess { get; private set; } + + public ProcessMemoryPriority? LastSetPriority { get; private set; } + + public ProcessMemoryPriority PriorityToReturn { get; init; } = ProcessMemoryPriority.Normal; + + public Exception? OpenException { get; init; } + + public Exception? SetException { get; init; } + + public bool SetResult { get; init; } = true; + + public int LastError { get; init; } + + public SafeProcessHandle OpenProcess(ProcessAccessFlags access, bool inheritHandle, uint processId) + { + this.LastOpenAccess = access; + if (this.OpenException != null) + { + throw this.OpenException; + } + + return new SafeProcessHandle(new IntPtr(1), ownsHandle: false); + } + + public bool GetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize) + { + processInformation.MemoryPriority = (uint)this.PriorityToReturn; + return true; + } + + public bool SetProcessInformation( + SafeProcessHandle process, + ProcessInformationClass processInformationClass, + ref MemoryPriorityInformation processInformation, + uint processInformationSize) + { + if (this.SetException != null) + { + throw this.SetException; + } + + this.LastSetPriority = (ProcessMemoryPriority)processInformation.MemoryPriority; + return this.SetResult; + } + + public int GetLastWin32Error() => this.LastError; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessMonitorManagerServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessMonitorManagerServiceTests.cs index 7db3f9d..ea164df 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessMonitorManagerServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessMonitorManagerServiceTests.cs @@ -1,905 +1,902 @@ -/* - * ThreadPilot - process monitor manager unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.ObjectModel; - using System.Threading; - using Microsoft.Extensions.Logging; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Unit tests for orchestration logic in . - /// - public sealed class ProcessMonitorManagerServiceTests - { - [Fact] - public async Task StartAsync_LoadsConfiguration_AndStartsMonitoring() - { - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - - Assert.True(manager.IsRunning); - Assert.Equal("Running", manager.Status); - Assert.Equal(1, processMonitor.StartCalls); - associationService.Verify(x => x.LoadConfigurationAsync(), Times.Once); - } - - [Fact] - public async Task StartAsync_SelectsHighestPriorityAssociation() - { - var processMonitor = new FakeProcessMonitorService - { - RunningProcesses = - { - new ProcessModel { ProcessId = 1, Name = "game-low" }, - new ProcessModel { ProcessId = 2, Name = "game-high" }, - }, - }; - - var configuration = new ProcessMonitorConfiguration - { - Associations = - { - new ProcessPowerPlanAssociation("game-low", "plan-low", "Low") { Priority = 1 }, - new ProcessPowerPlanAssociation("game-high", "plan-high", "High") { Priority = 10 }, - }, - PowerPlanChangeDelayMs = 0, - }; - - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - - powerPlanService.Verify( - x => x.SetActivePowerPlanByGuidAsync("plan-high", true), - Times.Once); - notificationService.Verify( - x => x.ShowPowerPlanChangeNotificationAsync("Balanced", "plan-high-name", "game-high"), - Times.Once); - } - - [Fact] - public async Task ProcessStarted_WithDelay_TriggersSingleReevaluation() - { - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration - { - PowerPlanChangeDelayMs = 25, - Associations = - { - new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 5 }, - }, - }; - - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 10, Name = "game" }); - processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 11, Name = "game" }); - - await Task.Delay(150); - - powerPlanService.Verify( - x => x.SetActivePowerPlanByGuidAsync("plan-game", true), - Times.Once); - } - - [Fact] - public async Task ProcessStarted_SamePlanRequest_IsSuppressedWithinDuplicateWindow() - { - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration - { - PowerPlanChangeDelayMs = 0, - Associations = - { - new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 5 }, - }, - }; - - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 10, Name = "game" }); - processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 11, Name = "game" }); - - await Task.Delay(100); - - powerPlanService.Verify( - x => x.SetActivePowerPlanByGuidAsync("plan-game", true), - Times.Once); - } - - [Fact] - public async Task ProcessStarted_WhenPowerPlanChangeFails_DoesNotRetrySamePlanImmediately() - { - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration - { - PowerPlanChangeDelayMs = 0, - Associations = - { - new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 5 }, - }, - }; - - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - powerPlanService - .Setup(x => x.SetActivePowerPlanByGuidAsync("plan-game", true)) - .ReturnsAsync(false); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 10, Name = "game" }); - processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 11, Name = "game" }); - - await Task.Delay(100); - - powerPlanService.Verify( - x => x.SetActivePowerPlanByGuidAsync("plan-game", true), - Times.Once); - notificationService.Verify( - x => x.ShowPowerPlanChangeNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task StopAsync_RestoresDefaultPowerPlan_WhenConfigured() - { - var processMonitor = new FakeProcessMonitorService - { - RunningProcesses = - { - new ProcessModel { ProcessId = 21, Name = "game" }, - }, - }; - - var configuration = new ProcessMonitorConfiguration - { - DefaultPowerPlanGuid = "plan-default", - DefaultPowerPlanName = "Balanced", - PowerPlanChangeDelayMs = 0, - Associations = - { - new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 1 }, - }, - }; - - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - await manager.StopAsync(); - - powerPlanService.Verify( - x => x.SetActivePowerPlanByGuidAsync("plan-default", true), - Times.AtLeastOnce); - processService.Verify(x => x.UntrackProcess(21), Times.Once); - coreMaskService.Verify(x => x.UnregisterMaskApplication(21), Times.Once); - } - - [Fact] - public async Task ProcessStarted_AppliesConfiguredCoreMaskForMatchingProcess() - { - var process = new ProcessModel { ProcessId = 31, Name = "game" }; - var processMonitor = new FakeProcessMonitorService(); - - var configuration = new ProcessMonitorConfiguration - { - PowerPlanChangeDelayMs = 0, - Associations = - { - new ProcessPowerPlanAssociation("game", "plan-game", "Game") - { - CoreMaskId = "mask-game", - Priority = 5, - }, - }, - }; - - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - processService.Setup(x => x.TrackAppliedMask(31, "mask-game")); - var coreMaskService = CreateCoreMaskService(); - coreMaskService.SetupGet(x => x.AvailableMasks).Returns(new ObservableCollection - { - new() - { - Id = "mask-game", - Name = "Game Mask", - BoolMask = new ObservableCollection { true, false }, - }, - }); - coreMaskService.Setup(x => x.RegisterMaskApplication(31, "mask-game")); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(process); - await Task.Delay(100); - - affinityApplyService.Verify(x => x.ApplyAsync(process, 1), Times.Once); - processService.Verify(x => x.TrackAppliedMask(31, "mask-game"), Times.Once); - coreMaskService.Verify(x => x.RegisterMaskApplication(31, "mask-game"), Times.Once); - } - - [Fact] - public async Task ProcessStarted_AppliesPersistentRulesThroughCoordinator() - { - var process = new ProcessModel { ProcessId = 41, Name = "game.exe" }; - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(process); - await Task.Delay(100); - - autoApplyService.Verify( - x => x.ApplyForDiscoveredProcessesAsync( - It.IsAny>(), - It.IsAny()), - Times.Once); - autoApplyService.Verify( - x => x.ApplyForProcessStartAsync(process, It.IsAny()), - Times.Once); - } - - [Fact] - public async Task EvaluateCurrentProcessesAsync_WhenPersistentRuleSnapshotApplyCancels_DoesNotLogWarning() - { - var processMonitor = new FakeProcessMonitorService - { - RunningProcesses = - { - new ProcessModel { ProcessId = 42, Name = "game.exe" }, - }, - }; - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - autoApplyService - .Setup(x => x.ApplyForDiscoveredProcessesAsync( - It.IsAny>(), - It.IsAny())) - .ThrowsAsync(new OperationCanceledException()); - var logger = new CapturingLogger(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService, - logger); - - await manager.StartAsync(); - await manager.EvaluateCurrentProcessesAsync(); - - Assert.Empty(logger.WarningMessages); - } - - [Fact] - public async Task ProcessStarted_WhenPersistentRuleAutoApplyCancels_DoesNotLogWarning() - { - var process = new ProcessModel { ProcessId = 43, Name = "game.exe" }; - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - autoApplyService - .Setup(x => x.ApplyForProcessStartAsync( - process, - It.IsAny())) - .ThrowsAsync(new OperationCanceledException()); - var logger = new CapturingLogger(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService, - logger); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(process); - await Task.Delay(100); - - Assert.Empty(logger.WarningMessages); - } - - [Fact] - public async Task EvaluateCurrentProcessesAsync_WhenPersistentRuleAutoApplyThrows_LogsWarningWithoutBreakingRefresh() - { - var processMonitor = new FakeProcessMonitorService - { - RunningProcesses = - { - new ProcessModel { ProcessId = 44, Name = "game.exe" }, - }, - }; - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - autoApplyService - .Setup(x => x.ApplyForDiscoveredProcessesAsync( - It.IsAny>(), - It.IsAny())) - .ThrowsAsync(new InvalidOperationException("auto apply failed")); - var logger = new CapturingLogger(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService, - logger); - - await manager.StartAsync(); - await manager.EvaluateCurrentProcessesAsync(); - - Assert.Contains( - logger.WarningMessages, - message => message.Contains("snapshot refresh", StringComparison.OrdinalIgnoreCase)); - Assert.True(manager.IsRunning); - } - - [Fact] - public async Task ProcessStarted_WhenPersistentRuleAutoApplyThrows_LogsWarningWithoutBreakingStartHandling() - { - var process = new ProcessModel { ProcessId = 45, Name = "game.exe" }; - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - autoApplyService - .Setup(x => x.ApplyForProcessStartAsync( - process, - It.IsAny())) - .ThrowsAsync(new InvalidOperationException("auto apply failed")); - var logger = new CapturingLogger(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService, - logger); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(process); - await Task.Delay(100); - - Assert.Contains( - logger.WarningMessages, - message => message.Contains("Persistent rule auto-apply failed", StringComparison.OrdinalIgnoreCase)); - Assert.True(manager.IsRunning); - } - - [Fact] - public async Task ProcessStarted_WhenPersistentRuleAutoApplySucceeds_LogsEnhancedMonitoringEvent() - { - var process = new ProcessModel { ProcessId = 46, Name = "game.exe" }; - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - autoApplyService - .Setup(x => x.ApplyForProcessStartAsync( - process, - It.IsAny())) - .ReturnsAsync(new[] - { - new PersistentRuleAutoApplyResult - { - Success = true, - RuleId = "rule-game", - ProcessId = process.ProcessId, - ProcessName = process.Name, - UserMessage = "Persistent rule applied.", - }, - }); - var enhancedLogger = CreateEnhancedLogger(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService, - enhancedLogger: enhancedLogger); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(process); - await Task.Delay(100); - - enhancedLogger.Verify( - x => x.LogProcessMonitoringEventAsync( - LogEventTypes.ProcessMonitoring.AssociationTriggered, - process.Name, - process.ProcessId, - It.Is(message => message.Contains("Persistent rule 'rule-game' applied automatically", StringComparison.Ordinal))), - Times.Once); - } - - [Fact] - public async Task ProcessStarted_WhenPersistentRuleAutoApplyReturnsFailure_DoesNotNotifyOrThrow() - { - var process = new ProcessModel { ProcessId = 47, Name = "game.exe" }; - var processMonitor = new FakeProcessMonitorService(); - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var autoApplyService = CreateAutoApplyService(); - autoApplyService - .Setup(x => x.ApplyForProcessStartAsync( - process, - It.IsAny())) - .ReturnsAsync(new[] - { - new PersistentRuleAutoApplyResult - { - Success = false, - RuleId = "rule-game", - ProcessId = process.ProcessId, - ProcessName = process.Name, - UserMessage = ProcessOperationUserMessages.AccessDenied, - IsAccessDenied = true, - }, - }); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService, - autoApplyService); - - await manager.StartAsync(); - processMonitor.RaiseProcessStarted(process); - await Task.Delay(100); - - Assert.True(manager.IsRunning); - notificationService.Verify( - x => x.ShowNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny()), - Times.Never); - notificationService.Verify( - x => x.ShowErrorNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task Dispose_CompletesOnBlockingSynchronizationContext() - { - var processMonitor = new FakeProcessMonitorService - { - StopMonitoringAsyncImpl = async () => - { - await Task.Yield(); - }, - }; - - var configuration = new ProcessMonitorConfiguration(); - var associationService = CreateAssociationService(configuration); - var powerPlanService = CreatePowerPlanService(); - var notificationService = CreateNotificationService(); - var processService = CreateProcessService(); - var coreMaskService = CreateCoreMaskService(); - var affinityApplyService = CreateAffinityApplyService(); - var manager = CreateService( - processMonitor, - associationService, - powerPlanService, - notificationService, - processService, - coreMaskService, - affinityApplyService); - - await manager.StartAsync(); - - Exception? disposeException = null; - using var completed = new ManualResetEventSlim(false); - var disposeThread = new Thread(() => - { - SynchronizationContext.SetSynchronizationContext(new BlockingSynchronizationContext()); - - try - { - manager.Dispose(); - } - catch (Exception ex) - { - disposeException = ex; - } - finally - { - completed.Set(); - } - }); - - disposeThread.Start(); - - Assert.True(completed.Wait(TimeSpan.FromSeconds(1)), "Dispose did not complete promptly."); - Assert.Null(disposeException); - Assert.Equal(1, processMonitor.StopCalls); - Assert.Equal(1, processMonitor.DisposeCalls); - } - - private static ProcessMonitorManagerService CreateService( - FakeProcessMonitorService processMonitorService, - Mock associationService, - Mock powerPlanService, - Mock notificationService, - Mock processService, - Mock coreMaskService, - Mock affinityApplyService, - Mock? autoApplyService = null, - ILogger? logger = null, - Mock? enhancedLogger = null) - { - var resolvedEnhancedLogger = enhancedLogger ?? CreateEnhancedLogger(); - - var settingsService = new Mock(MockBehavior.Loose); - settingsService.SetupGet(x => x.Settings).Returns(new ApplicationSettingsModel()); - - return new ProcessMonitorManagerService( - processMonitorService, - associationService.Object, - powerPlanService.Object, - notificationService.Object, - settingsService.Object, - processService.Object, - coreMaskService.Object, - affinityApplyService.Object, - (autoApplyService ?? CreateAutoApplyService()).Object, - new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => DateTimeOffset.UtcNow), - logger ?? NullLogger.Instance, - resolvedEnhancedLogger.Object); - } - - private static Mock CreateEnhancedLogger() - { - var enhancedLogger = new Mock(MockBehavior.Loose); - enhancedLogger - .Setup(x => x.LogSystemEventAsync(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - enhancedLogger - .Setup(x => x.LogProcessMonitoringEventAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - enhancedLogger - .Setup(x => x.LogErrorAsync(It.IsAny(), It.IsAny(), It.IsAny?>())) - .Returns(Task.CompletedTask); - return enhancedLogger; - } - - private static Mock CreateAssociationService(ProcessMonitorConfiguration configuration) - { - var associationService = new Mock(MockBehavior.Strict); - associationService.SetupGet(x => x.Configuration).Returns(configuration); - associationService.Setup(x => x.LoadConfigurationAsync()).ReturnsAsync(true); - return associationService; - } - - private static Mock CreatePowerPlanService() - { - var powerPlanService = new Mock(MockBehavior.Strict); - powerPlanService.Setup(x => x.GetActivePowerPlan()).ReturnsAsync(new PowerPlanModel { Guid = "balanced", Name = "Balanced" }); - powerPlanService.Setup(x => x.SetActivePowerPlanByGuidAsync(It.IsAny(), It.IsAny())).ReturnsAsync(true); - powerPlanService.Setup(x => x.GetPowerPlanByGuidAsync(It.IsAny())) - .ReturnsAsync((string guid) => new PowerPlanModel { Guid = guid, Name = $"{guid}-name" }); - return powerPlanService; - } - - private static Mock CreateNotificationService() - { - var notificationService = new Mock(MockBehavior.Strict); - notificationService.SetupGet(x => x.NotificationHistory).Returns(Array.Empty()); - notificationService.Setup(x => x.ShowPowerPlanChangeNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - notificationService.Setup(x => x.ShowErrorNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - notificationService.Setup(x => x.ShowNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - return notificationService; - } - - private static Mock CreateProcessService() - { - var processService = new Mock(MockBehavior.Strict); - processService.Setup(x => x.UntrackProcess(It.IsAny())); - return processService; - } - - private static Mock CreateCoreMaskService() - { - var coreMaskService = new Mock(MockBehavior.Strict); - coreMaskService.SetupGet(x => x.AvailableMasks).Returns(new ObservableCollection()); - coreMaskService.Setup(x => x.UnregisterMaskApplication(It.IsAny())); - return coreMaskService; - } - - private static Mock CreateAffinityApplyService() - { - var affinityApplyService = new Mock(MockBehavior.Strict); - affinityApplyService - .Setup(x => x.ApplyAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync((ProcessModel process, long affinity) => - AffinityApplyResult.Succeeded(affinity, affinity)); - return affinityApplyService; - } - - private static Mock CreateAutoApplyService() - { - var autoApplyService = new Mock(MockBehavior.Strict); - autoApplyService - .Setup(x => x.ApplyForDiscoveredProcessesAsync( - It.IsAny>(), - It.IsAny())) - .ReturnsAsync(Array.Empty()); - autoApplyService - .Setup(x => x.ApplyForProcessStartAsync( - It.IsAny(), - It.IsAny())) - .ReturnsAsync(Array.Empty()); - autoApplyService.Setup(x => x.MarkProcessExited(It.IsAny())); - return autoApplyService; - } - - private sealed class FakeProcessMonitorService : IProcessMonitorService - { - public event EventHandler? ProcessStarted; - - public event EventHandler? ProcessStopped - { - add { } - remove { } - } - - public event EventHandler? MonitoringStatusChanged - { - add { } - remove { } - } - - public List RunningProcesses { get; } = new(); - - public int StartCalls { get; private set; } - - public int StopCalls { get; private set; } - - public int DisposeCalls { get; private set; } - - public bool IsMonitoring { get; private set; } - - public bool IsWmiAvailable => false; - - public bool IsFallbackPollingActive => false; - - public Func? StopMonitoringAsyncImpl { get; init; } - - public Task StartMonitoringAsync() - { - this.StartCalls++; - this.IsMonitoring = true; - return Task.CompletedTask; - } - - public Task StopMonitoringAsync() - { - this.StopCalls++; - this.IsMonitoring = false; - return this.StopMonitoringAsyncImpl?.Invoke() ?? Task.CompletedTask; - } - - public Task> GetRunningProcessesAsync() => - Task.FromResult>(this.RunningProcesses.ToList()); - - public Task IsProcessRunningAsync(string executableName) => - Task.FromResult(this.RunningProcesses.Any(x => string.Equals(x.Name, executableName, StringComparison.OrdinalIgnoreCase))); - - public void UpdateSettings() - { - } - - public void RaiseProcessStarted(ProcessModel process) => - this.ProcessStarted?.Invoke(this, new ProcessEventArgs(process)); - - public void Dispose() - { - this.DisposeCalls++; - } - } - - private sealed class BlockingSynchronizationContext : SynchronizationContext - { - public override void Post(SendOrPostCallback d, object? state) - { - // Intentionally do not pump posted work to emulate a blocked UI thread. - } - } - - private sealed class CapturingLogger : ILogger - { - public List WarningMessages { get; } = new(); - - public IDisposable? BeginScope(TState state) - where TState : notnull => - NullScope.Instance; - - public bool IsEnabled(LogLevel logLevel) => true; - - public void Log( - LogLevel logLevel, - EventId eventId, - TState state, - Exception? exception, - Func formatter) - { - if (logLevel == LogLevel.Warning) - { - this.WarningMessages.Add(formatter(state, exception)); - } - } - - private sealed class NullScope : IDisposable - { - public static readonly NullScope Instance = new(); - - public void Dispose() - { - } - } - } - } -} +/* + * ThreadPilot - process monitor manager unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Collections.ObjectModel; + using System.Threading; + using Microsoft.Extensions.Logging; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessMonitorManagerServiceTests + { + [Fact] + public async Task StartAsync_LoadsConfiguration_AndStartsMonitoring() + { + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + + Assert.True(manager.IsRunning); + Assert.Equal("Running", manager.Status); + Assert.Equal(1, processMonitor.StartCalls); + associationService.Verify(x => x.LoadConfigurationAsync(), Times.Once); + } + + [Fact] + public async Task StartAsync_SelectsHighestPriorityAssociation() + { + var processMonitor = new FakeProcessMonitorService + { + RunningProcesses = + { + new ProcessModel { ProcessId = 1, Name = "game-low" }, + new ProcessModel { ProcessId = 2, Name = "game-high" }, + }, + }; + + var configuration = new ProcessMonitorConfiguration + { + Associations = + { + new ProcessPowerPlanAssociation("game-low", "plan-low", "Low") { Priority = 1 }, + new ProcessPowerPlanAssociation("game-high", "plan-high", "High") { Priority = 10 }, + }, + PowerPlanChangeDelayMs = 0, + }; + + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + + powerPlanService.Verify( + x => x.SetActivePowerPlanByGuidAsync("plan-high", true), + Times.Once); + notificationService.Verify( + x => x.ShowPowerPlanChangeNotificationAsync("Balanced", "plan-high-name", "game-high"), + Times.Once); + } + + [Fact] + public async Task ProcessStarted_WithDelay_TriggersSingleReevaluation() + { + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration + { + PowerPlanChangeDelayMs = 25, + Associations = + { + new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 5 }, + }, + }; + + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 10, Name = "game" }); + processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 11, Name = "game" }); + + await Task.Delay(150); + + powerPlanService.Verify( + x => x.SetActivePowerPlanByGuidAsync("plan-game", true), + Times.Once); + } + + [Fact] + public async Task ProcessStarted_SamePlanRequest_IsSuppressedWithinDuplicateWindow() + { + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration + { + PowerPlanChangeDelayMs = 0, + Associations = + { + new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 5 }, + }, + }; + + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 10, Name = "game" }); + processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 11, Name = "game" }); + + await Task.Delay(100); + + powerPlanService.Verify( + x => x.SetActivePowerPlanByGuidAsync("plan-game", true), + Times.Once); + } + + [Fact] + public async Task ProcessStarted_WhenPowerPlanChangeFails_DoesNotRetrySamePlanImmediately() + { + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration + { + PowerPlanChangeDelayMs = 0, + Associations = + { + new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 5 }, + }, + }; + + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + powerPlanService + .Setup(x => x.SetActivePowerPlanByGuidAsync("plan-game", true)) + .ReturnsAsync(false); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 10, Name = "game" }); + processMonitor.RaiseProcessStarted(new ProcessModel { ProcessId = 11, Name = "game" }); + + await Task.Delay(100); + + powerPlanService.Verify( + x => x.SetActivePowerPlanByGuidAsync("plan-game", true), + Times.Once); + notificationService.Verify( + x => x.ShowPowerPlanChangeNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task StopAsync_RestoresDefaultPowerPlan_WhenConfigured() + { + var processMonitor = new FakeProcessMonitorService + { + RunningProcesses = + { + new ProcessModel { ProcessId = 21, Name = "game" }, + }, + }; + + var configuration = new ProcessMonitorConfiguration + { + DefaultPowerPlanGuid = "plan-default", + DefaultPowerPlanName = "Balanced", + PowerPlanChangeDelayMs = 0, + Associations = + { + new ProcessPowerPlanAssociation("game", "plan-game", "Game") { Priority = 1 }, + }, + }; + + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + await manager.StopAsync(); + + powerPlanService.Verify( + x => x.SetActivePowerPlanByGuidAsync("plan-default", true), + Times.AtLeastOnce); + processService.Verify(x => x.UntrackProcess(21), Times.Once); + coreMaskService.Verify(x => x.UnregisterMaskApplication(21), Times.Once); + } + + [Fact] + public async Task ProcessStarted_AppliesConfiguredCoreMaskForMatchingProcess() + { + var process = new ProcessModel { ProcessId = 31, Name = "game" }; + var processMonitor = new FakeProcessMonitorService(); + + var configuration = new ProcessMonitorConfiguration + { + PowerPlanChangeDelayMs = 0, + Associations = + { + new ProcessPowerPlanAssociation("game", "plan-game", "Game") + { + CoreMaskId = "mask-game", + Priority = 5, + }, + }, + }; + + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + processService.Setup(x => x.TrackAppliedMask(31, "mask-game")); + var coreMaskService = CreateCoreMaskService(); + coreMaskService.SetupGet(x => x.AvailableMasks).Returns(new ObservableCollection + { + new() + { + Id = "mask-game", + Name = "Game Mask", + BoolMask = new ObservableCollection { true, false }, + }, + }); + coreMaskService.Setup(x => x.RegisterMaskApplication(31, "mask-game")); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(process); + await Task.Delay(100); + + affinityApplyService.Verify(x => x.ApplyAsync(process, 1), Times.Once); + processService.Verify(x => x.TrackAppliedMask(31, "mask-game"), Times.Once); + coreMaskService.Verify(x => x.RegisterMaskApplication(31, "mask-game"), Times.Once); + } + + [Fact] + public async Task ProcessStarted_AppliesPersistentRulesThroughCoordinator() + { + var process = new ProcessModel { ProcessId = 41, Name = "game.exe" }; + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(process); + await Task.Delay(100); + + autoApplyService.Verify( + x => x.ApplyForDiscoveredProcessesAsync( + It.IsAny>(), + It.IsAny()), + Times.Once); + autoApplyService.Verify( + x => x.ApplyForProcessStartAsync(process, It.IsAny()), + Times.Once); + } + + [Fact] + public async Task EvaluateCurrentProcessesAsync_WhenPersistentRuleSnapshotApplyCancels_DoesNotLogWarning() + { + var processMonitor = new FakeProcessMonitorService + { + RunningProcesses = + { + new ProcessModel { ProcessId = 42, Name = "game.exe" }, + }, + }; + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + autoApplyService + .Setup(x => x.ApplyForDiscoveredProcessesAsync( + It.IsAny>(), + It.IsAny())) + .ThrowsAsync(new OperationCanceledException()); + var logger = new CapturingLogger(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService, + logger); + + await manager.StartAsync(); + await manager.EvaluateCurrentProcessesAsync(); + + Assert.Empty(logger.WarningMessages); + } + + [Fact] + public async Task ProcessStarted_WhenPersistentRuleAutoApplyCancels_DoesNotLogWarning() + { + var process = new ProcessModel { ProcessId = 43, Name = "game.exe" }; + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + autoApplyService + .Setup(x => x.ApplyForProcessStartAsync( + process, + It.IsAny())) + .ThrowsAsync(new OperationCanceledException()); + var logger = new CapturingLogger(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService, + logger); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(process); + await Task.Delay(100); + + Assert.Empty(logger.WarningMessages); + } + + [Fact] + public async Task EvaluateCurrentProcessesAsync_WhenPersistentRuleAutoApplyThrows_LogsWarningWithoutBreakingRefresh() + { + var processMonitor = new FakeProcessMonitorService + { + RunningProcesses = + { + new ProcessModel { ProcessId = 44, Name = "game.exe" }, + }, + }; + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + autoApplyService + .Setup(x => x.ApplyForDiscoveredProcessesAsync( + It.IsAny>(), + It.IsAny())) + .ThrowsAsync(new InvalidOperationException("auto apply failed")); + var logger = new CapturingLogger(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService, + logger); + + await manager.StartAsync(); + await manager.EvaluateCurrentProcessesAsync(); + + Assert.Contains( + logger.WarningMessages, + message => message.Contains("snapshot refresh", StringComparison.OrdinalIgnoreCase)); + Assert.True(manager.IsRunning); + } + + [Fact] + public async Task ProcessStarted_WhenPersistentRuleAutoApplyThrows_LogsWarningWithoutBreakingStartHandling() + { + var process = new ProcessModel { ProcessId = 45, Name = "game.exe" }; + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + autoApplyService + .Setup(x => x.ApplyForProcessStartAsync( + process, + It.IsAny())) + .ThrowsAsync(new InvalidOperationException("auto apply failed")); + var logger = new CapturingLogger(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService, + logger); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(process); + await Task.Delay(100); + + Assert.Contains( + logger.WarningMessages, + message => message.Contains("Persistent rule auto-apply failed", StringComparison.OrdinalIgnoreCase)); + Assert.True(manager.IsRunning); + } + + [Fact] + public async Task ProcessStarted_WhenPersistentRuleAutoApplySucceeds_LogsEnhancedMonitoringEvent() + { + var process = new ProcessModel { ProcessId = 46, Name = "game.exe" }; + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + autoApplyService + .Setup(x => x.ApplyForProcessStartAsync( + process, + It.IsAny())) + .ReturnsAsync(new[] + { + new PersistentRuleAutoApplyResult + { + Success = true, + RuleId = "rule-game", + ProcessId = process.ProcessId, + ProcessName = process.Name, + UserMessage = "Persistent rule applied.", + }, + }); + var enhancedLogger = CreateEnhancedLogger(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService, + enhancedLogger: enhancedLogger); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(process); + await Task.Delay(100); + + enhancedLogger.Verify( + x => x.LogProcessMonitoringEventAsync( + LogEventTypes.ProcessMonitoring.AssociationTriggered, + process.Name, + process.ProcessId, + It.Is(message => message.Contains("Persistent rule 'rule-game' applied automatically", StringComparison.Ordinal))), + Times.Once); + } + + [Fact] + public async Task ProcessStarted_WhenPersistentRuleAutoApplyReturnsFailure_DoesNotNotifyOrThrow() + { + var process = new ProcessModel { ProcessId = 47, Name = "game.exe" }; + var processMonitor = new FakeProcessMonitorService(); + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var autoApplyService = CreateAutoApplyService(); + autoApplyService + .Setup(x => x.ApplyForProcessStartAsync( + process, + It.IsAny())) + .ReturnsAsync(new[] + { + new PersistentRuleAutoApplyResult + { + Success = false, + RuleId = "rule-game", + ProcessId = process.ProcessId, + ProcessName = process.Name, + UserMessage = ProcessOperationUserMessages.AccessDenied, + IsAccessDenied = true, + }, + }); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService, + autoApplyService); + + await manager.StartAsync(); + processMonitor.RaiseProcessStarted(process); + await Task.Delay(100); + + Assert.True(manager.IsRunning); + notificationService.Verify( + x => x.ShowNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny()), + Times.Never); + notificationService.Verify( + x => x.ShowErrorNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task Dispose_CompletesOnBlockingSynchronizationContext() + { + var processMonitor = new FakeProcessMonitorService + { + StopMonitoringAsyncImpl = async () => + { + await Task.Yield(); + }, + }; + + var configuration = new ProcessMonitorConfiguration(); + var associationService = CreateAssociationService(configuration); + var powerPlanService = CreatePowerPlanService(); + var notificationService = CreateNotificationService(); + var processService = CreateProcessService(); + var coreMaskService = CreateCoreMaskService(); + var affinityApplyService = CreateAffinityApplyService(); + var manager = CreateService( + processMonitor, + associationService, + powerPlanService, + notificationService, + processService, + coreMaskService, + affinityApplyService); + + await manager.StartAsync(); + + Exception? disposeException = null; + using var completed = new ManualResetEventSlim(false); + var disposeThread = new Thread(() => + { + SynchronizationContext.SetSynchronizationContext(new BlockingSynchronizationContext()); + + try + { + manager.Dispose(); + } + catch (Exception ex) + { + disposeException = ex; + } + finally + { + completed.Set(); + } + }); + + disposeThread.Start(); + + Assert.True(completed.Wait(TimeSpan.FromSeconds(1)), "Dispose did not complete promptly."); + Assert.Null(disposeException); + Assert.Equal(1, processMonitor.StopCalls); + Assert.Equal(1, processMonitor.DisposeCalls); + } + + private static ProcessMonitorManagerService CreateService( + FakeProcessMonitorService processMonitorService, + Mock associationService, + Mock powerPlanService, + Mock notificationService, + Mock processService, + Mock coreMaskService, + Mock affinityApplyService, + Mock? autoApplyService = null, + ILogger? logger = null, + Mock? enhancedLogger = null) + { + var resolvedEnhancedLogger = enhancedLogger ?? CreateEnhancedLogger(); + + var settingsService = new Mock(MockBehavior.Loose); + settingsService.SetupGet(x => x.Settings).Returns(new ApplicationSettingsModel()); + + return new ProcessMonitorManagerService( + processMonitorService, + associationService.Object, + powerPlanService.Object, + notificationService.Object, + settingsService.Object, + processService.Object, + coreMaskService.Object, + affinityApplyService.Object, + (autoApplyService ?? CreateAutoApplyService()).Object, + new PowerPlanTransitionGate(TimeSpan.FromSeconds(2), () => DateTimeOffset.UtcNow), + logger ?? NullLogger.Instance, + resolvedEnhancedLogger.Object); + } + + private static Mock CreateEnhancedLogger() + { + var enhancedLogger = new Mock(MockBehavior.Loose); + enhancedLogger + .Setup(x => x.LogSystemEventAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + enhancedLogger + .Setup(x => x.LogProcessMonitoringEventAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + enhancedLogger + .Setup(x => x.LogErrorAsync(It.IsAny(), It.IsAny(), It.IsAny?>())) + .Returns(Task.CompletedTask); + return enhancedLogger; + } + + private static Mock CreateAssociationService(ProcessMonitorConfiguration configuration) + { + var associationService = new Mock(MockBehavior.Strict); + associationService.SetupGet(x => x.Configuration).Returns(configuration); + associationService.Setup(x => x.LoadConfigurationAsync()).ReturnsAsync(true); + return associationService; + } + + private static Mock CreatePowerPlanService() + { + var powerPlanService = new Mock(MockBehavior.Strict); + powerPlanService.Setup(x => x.GetActivePowerPlan()).ReturnsAsync(new PowerPlanModel { Guid = "balanced", Name = "Balanced" }); + powerPlanService.Setup(x => x.SetActivePowerPlanByGuidAsync(It.IsAny(), It.IsAny())).ReturnsAsync(true); + powerPlanService.Setup(x => x.GetPowerPlanByGuidAsync(It.IsAny())) + .ReturnsAsync((string guid) => new PowerPlanModel { Guid = guid, Name = $"{guid}-name" }); + return powerPlanService; + } + + private static Mock CreateNotificationService() + { + var notificationService = new Mock(MockBehavior.Strict); + notificationService.SetupGet(x => x.NotificationHistory).Returns(Array.Empty()); + notificationService.Setup(x => x.ShowPowerPlanChangeNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + notificationService.Setup(x => x.ShowErrorNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + notificationService.Setup(x => x.ShowNotificationAsync(It.IsAny(), It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + return notificationService; + } + + private static Mock CreateProcessService() + { + var processService = new Mock(MockBehavior.Strict); + processService.Setup(x => x.UntrackProcess(It.IsAny())); + return processService; + } + + private static Mock CreateCoreMaskService() + { + var coreMaskService = new Mock(MockBehavior.Strict); + coreMaskService.SetupGet(x => x.AvailableMasks).Returns(new ObservableCollection()); + coreMaskService.Setup(x => x.UnregisterMaskApplication(It.IsAny())); + return coreMaskService; + } + + private static Mock CreateAffinityApplyService() + { + var affinityApplyService = new Mock(MockBehavior.Strict); + affinityApplyService + .Setup(x => x.ApplyAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync((ProcessModel process, long affinity) => + AffinityApplyResult.Succeeded(affinity, affinity)); + return affinityApplyService; + } + + private static Mock CreateAutoApplyService() + { + var autoApplyService = new Mock(MockBehavior.Strict); + autoApplyService + .Setup(x => x.ApplyForDiscoveredProcessesAsync( + It.IsAny>(), + It.IsAny())) + .ReturnsAsync(Array.Empty()); + autoApplyService + .Setup(x => x.ApplyForProcessStartAsync( + It.IsAny(), + It.IsAny())) + .ReturnsAsync(Array.Empty()); + autoApplyService.Setup(x => x.MarkProcessExited(It.IsAny())); + return autoApplyService; + } + + private sealed class FakeProcessMonitorService : IProcessMonitorService + { + public event EventHandler? ProcessStarted; + + public event EventHandler? ProcessStopped + { + add { } + remove { } + } + + public event EventHandler? MonitoringStatusChanged + { + add { } + remove { } + } + + public List RunningProcesses { get; } = new(); + + public int StartCalls { get; private set; } + + public int StopCalls { get; private set; } + + public int DisposeCalls { get; private set; } + + public bool IsMonitoring { get; private set; } + + public bool IsWmiAvailable => false; + + public bool IsFallbackPollingActive => false; + + public Func? StopMonitoringAsyncImpl { get; init; } + + public Task StartMonitoringAsync() + { + this.StartCalls++; + this.IsMonitoring = true; + return Task.CompletedTask; + } + + public Task StopMonitoringAsync() + { + this.StopCalls++; + this.IsMonitoring = false; + return this.StopMonitoringAsyncImpl?.Invoke() ?? Task.CompletedTask; + } + + public Task> GetRunningProcessesAsync() => + Task.FromResult>(this.RunningProcesses.ToList()); + + public Task IsProcessRunningAsync(string executableName) => + Task.FromResult(this.RunningProcesses.Any(x => string.Equals(x.Name, executableName, StringComparison.OrdinalIgnoreCase))); + + public void UpdateSettings() + { + } + + public void RaiseProcessStarted(ProcessModel process) => + this.ProcessStarted?.Invoke(this, new ProcessEventArgs(process)); + + public void Dispose() + { + this.DisposeCalls++; + } + } + + private sealed class BlockingSynchronizationContext : SynchronizationContext + { + public override void Post(SendOrPostCallback d, object? state) + { + // Intentionally do not pump posted work to emulate a blocked UI thread. + } + } + + private sealed class CapturingLogger : ILogger + { + public List WarningMessages { get; } = new(); + + public IDisposable? BeginScope(TState state) + where TState : notnull => + NullScope.Instance; + + public bool IsEnabled(LogLevel logLevel) => true; + + public void Log( + LogLevel logLevel, + EventId eventId, + TState state, + Exception? exception, + Func formatter) + { + if (logLevel == LogLevel.Warning) + { + this.WarningMessages.Add(formatter(state, exception)); + } + } + + private sealed class NullScope : IDisposable + { + public static readonly NullScope Instance = new(); + + public void Dispose() + { + } + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessRuleCreationServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessRuleCreationServiceTests.cs index 0e26333..47eef10 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessRuleCreationServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessRuleCreationServiceTests.cs @@ -1,375 +1,375 @@ -/* - * ThreadPilot - persistent process rule creation tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Diagnostics; - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class ProcessRuleCreationServiceTests - { - [Fact] - public async Task SaveRuleAsync_UsesExecutablePathWhenAvailable() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - var process = CreateProcess(path: @"C:\Games\Game.exe"); - - var result = await service.SaveRuleAsync( - process, - new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.AboveNormal }); - - Assert.True(result.Success); - var rule = Assert.Single(store.SavedRules); - Assert.Equal(@"C:\Games\Game.exe", rule.ExecutablePath); - Assert.Equal("Game.exe", rule.ProcessName); - Assert.True(rule.IsEnabled); - Assert.Equal("Game.exe rule", rule.Name); - Assert.Equal("Created from Process tab action.", rule.Description); - Assert.True(result.Created); - Assert.False(result.Updated); - Assert.Equal("Saved rule for Game.exe.", result.UserMessage); - } - - [Fact] - public async Task SaveRuleAsync_FallsBackToProcessNameWhenPathUnavailable() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - await service.SaveRuleAsync( - CreateProcess(path: string.Empty), - new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.Normal }); - - var rule = Assert.Single(store.SavedRules); - Assert.Null(rule.ExecutablePath); - Assert.Equal("Game.exe", rule.ProcessName); - } - - [Fact] - public async Task SaveRuleAsync_UpdatesExistingPathMatchWithoutDuplicating() - { - var createdAt = DateTime.UtcNow.AddDays(-2); - var existing = new PersistentProcessRule - { - Id = "existing-rule", - Name = "Old", - IsEnabled = true, - ProcessName = "Game.exe", - ExecutablePath = @"C:\Games\Game.exe", - Priority = ProcessPriorityClass.Normal, - ApplyPriorityOnStart = true, - CreatedAt = createdAt, - UpdatedAt = createdAt, - }; - var store = new CapturingRuleStore([existing]); - var service = CreateService(store); - - var result = await service.SaveRuleAsync( - CreateProcess(path: @"C:\Games\Game.exe"), - new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.High }); - - var rule = Assert.Single(store.SavedRules); - Assert.True(result.Updated); - Assert.False(result.Created); - Assert.Equal("Updated saved rule for Game.exe.", result.UserMessage); - Assert.Equal("existing-rule", rule.Id); - Assert.Equal(createdAt, rule.CreatedAt); - Assert.Equal(ProcessPriorityClass.High, rule.Priority); - Assert.True(rule.UpdatedAt > createdAt); - } - - [Fact] - public async Task SaveRuleAsync_UpdatesExistingPathlessNameMatchWhenNewPathIsAvailable() - { - var existing = new PersistentProcessRule - { - Id = "pathless-rule", - Name = "Game.exe rule", - IsEnabled = true, - ProcessName = "Game.exe", - CreatedAt = DateTime.UtcNow.AddDays(-1), - UpdatedAt = DateTime.UtcNow.AddDays(-1), - }; - var store = new CapturingRuleStore([existing]); - var service = CreateService(store); - - await service.SaveRuleAsync( - CreateProcess(path: @"C:\Games\Game.exe"), - new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.AboveNormal }); - - var rule = Assert.Single(store.SavedRules); - Assert.Equal("pathless-rule", rule.Id); - Assert.Equal(@"C:\Games\Game.exe", rule.ExecutablePath); - Assert.Equal(ProcessPriorityClass.AboveNormal, rule.Priority); - } - - [Fact] - public async Task SaveRuleAsync_SavesCpuSelectionWhenProvided() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - var selection = CreateCpuSelection(); - - await service.SaveRuleAsync( - CreateProcess(), - new ProcessRuleCreationPayload { CpuSelection = selection }); - - var rule = Assert.Single(store.SavedRules); - Assert.Same(selection, rule.CpuSelection); - Assert.Null(rule.LegacyAffinityMask); - Assert.True(rule.ApplyAffinityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_PrefersCpuSelectionWhenTopologyIsAvailable() - { - var store = new CapturingRuleStore(); - var topologyProvider = new FakeTopologyProvider(CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 1, 1), - ])); - var service = CreateService(store, topologyProvider); - - await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), - currentCoreSelection: [true, false], - currentMemoryPriority: null); - - var rule = Assert.Single(store.SavedRules); - Assert.NotNull(rule.CpuSelection); - Assert.Null(rule.LegacyAffinityMask); - Assert.True(rule.ApplyAffinityOnStart); - Assert.Equal(0, rule.CpuSelection.GlobalLogicalProcessorIndexes.Single()); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_SavesLegacyMaskWhenSelectionIsSafelyRepresentable() - { - var store = new CapturingRuleStore(); - var service = CreateService(store, topologyProvider: null); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0x3), - currentCoreSelection: [true, true, false], - currentMemoryPriority: null); - - Assert.True(result.Success); - var rule = Assert.Single(store.SavedRules); - Assert.Equal(0x3, rule.LegacyAffinityMask); - Assert.Null(rule.CpuSelection); - Assert.True(rule.ApplyAffinityOnStart); - Assert.Null(rule.Priority); - Assert.False(rule.ApplyPriorityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_BlocksUnsafeLegacyAffinity() - { - var store = new CapturingRuleStore(); - var service = CreateService(store, topologyProvider: null); - var unsafeSelection = Enumerable.Repeat(true, 65).ToArray(); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), - unsafeSelection, - currentMemoryPriority: null); - - Assert.False(result.Success); - Assert.Equal( - "The current affinity selection cannot be saved safely on this CPU topology.", - result.UserMessage); - Assert.Empty(store.SavedRules); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_BlocksRealtimePriority() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), - currentCoreSelection: null, - currentMemoryPriority: null); - - Assert.False(result.Success); - Assert.Equal("There are no current settings to save as a rule.", result.UserMessage); - Assert.Empty(store.SavedRules); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_WithNormalPriorityAndNoOtherPayload_ReturnsNoActionFailure() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0), - currentCoreSelection: null, - currentMemoryPriority: null); - - Assert.False(result.Success); - Assert.Equal("NoActionableRulePayload", result.ErrorCode); - Assert.Equal("There are no current settings to save as a rule.", result.UserMessage); - Assert.Empty(store.SavedRules); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_WithNormalPriorityAndAffinity_SavesAffinityButDoesNotEnablePriority() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0x5), - currentCoreSelection: null, - currentMemoryPriority: null); - - Assert.True(result.Success); - var rule = Assert.Single(store.SavedRules); - Assert.Equal(0x5, rule.LegacyAffinityMask); - Assert.True(rule.ApplyAffinityOnStart); - Assert.Null(rule.Priority); - Assert.False(rule.ApplyPriorityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_WithAboveNormalPriority_SavesPriority() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.AboveNormal, affinity: 0), - currentCoreSelection: null, - currentMemoryPriority: null); - - Assert.True(result.Success); - var rule = Assert.Single(store.SavedRules); - Assert.Equal(ProcessPriorityClass.AboveNormal, rule.Priority); - Assert.True(rule.ApplyPriorityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_WithHighPriority_SavesPriority() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.High, affinity: 0), - currentCoreSelection: null, - currentMemoryPriority: null); - - Assert.True(result.Success); - var rule = Assert.Single(store.SavedRules); - Assert.Equal(ProcessPriorityClass.High, rule.Priority); - Assert.True(rule.ApplyPriorityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_WithRealtimePriority_OmitsPriorityWithoutSavingIt() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0x3), - currentCoreSelection: null, - currentMemoryPriority: null); - - Assert.True(result.Success); - var rule = Assert.Single(store.SavedRules); - Assert.Equal(0x3, rule.LegacyAffinityMask); - Assert.Null(rule.Priority); - Assert.False(rule.ApplyPriorityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_SavesMemoryPriorityWhenAvailable() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), - currentCoreSelection: null, - currentMemoryPriority: ProcessMemoryPriority.BelowNormal); - - var rule = Assert.Single(store.SavedRules); - Assert.Equal(ProcessMemoryPriority.BelowNormal, rule.MemoryPriority); - Assert.True(rule.ApplyMemoryPriorityOnStart); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleAsync_ReturnsControlledFailureWhenNoActionablePayloadExists() - { - var store = new CapturingRuleStore(); - var service = CreateService(store); - - var result = await service.SaveCurrentSettingsAsRuleAsync( - CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), - currentCoreSelection: [], - currentMemoryPriority: null); - - Assert.False(result.Success); - Assert.Equal("There are no current settings to save as a rule.", result.UserMessage); - Assert.Empty(store.SavedRules); - } - - private static ProcessRuleCreationService CreateService( - CapturingRuleStore store, - ICpuTopologyProvider? topologyProvider = null) => - new( - store, - topologyProvider, - new CpuSelectionMigrationService(), - NullLogger.Instance); - - private static CpuSelection CreateCpuSelection() => - new() - { - LogicalProcessors = [new ProcessorRef(0, 0, 0)], - GlobalLogicalProcessorIndexes = [0], - }; - - private static ProcessModel CreateProcess( - string name = "Game.exe", - string path = @"C:\Games\Game.exe", - ProcessPriorityClass priority = ProcessPriorityClass.Normal, - long affinity = 0xF) => - new() - { - ProcessId = 42, - Name = name, - ExecutablePath = path, - Priority = priority, - ProcessorAffinity = affinity, - }; - - private sealed class CapturingRuleStore(IReadOnlyList? initialRules = null) - : IPersistentProcessRuleStore - { - public IReadOnlyList SavedRules { get; private set; } = []; - - public Task> LoadAsync() => - Task.FromResult(initialRules ?? this.SavedRules); - - public Task SaveAsync(IReadOnlyList rules) - { - this.SavedRules = rules.ToList(); - return Task.CompletedTask; - } - } - - private sealed class FakeTopologyProvider(CpuTopologySnapshot topology) : ICpuTopologyProvider - { - public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) => - Task.FromResult(topology); - } - } -} +/* + * ThreadPilot - persistent process rule creation tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Diagnostics; + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessRuleCreationServiceTests + { + [Fact] + public async Task SaveRuleAsync_UsesExecutablePathWhenAvailable() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + var process = CreateProcess(path: @"C:\Games\Game.exe"); + + var result = await service.SaveRuleAsync( + process, + new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.AboveNormal }); + + Assert.True(result.Success); + var rule = Assert.Single(store.SavedRules); + Assert.Equal(@"C:\Games\Game.exe", rule.ExecutablePath); + Assert.Equal("Game.exe", rule.ProcessName); + Assert.True(rule.IsEnabled); + Assert.Equal("Game.exe rule", rule.Name); + Assert.Equal("Created from Process tab action.", rule.Description); + Assert.True(result.Created); + Assert.False(result.Updated); + Assert.Equal("Saved rule for Game.exe.", result.UserMessage); + } + + [Fact] + public async Task SaveRuleAsync_FallsBackToProcessNameWhenPathUnavailable() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + await service.SaveRuleAsync( + CreateProcess(path: string.Empty), + new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.Normal }); + + var rule = Assert.Single(store.SavedRules); + Assert.Null(rule.ExecutablePath); + Assert.Equal("Game.exe", rule.ProcessName); + } + + [Fact] + public async Task SaveRuleAsync_UpdatesExistingPathMatchWithoutDuplicating() + { + var createdAt = DateTime.UtcNow.AddDays(-2); + var existing = new PersistentProcessRule + { + Id = "existing-rule", + Name = "Old", + IsEnabled = true, + ProcessName = "Game.exe", + ExecutablePath = @"C:\Games\Game.exe", + Priority = ProcessPriorityClass.Normal, + ApplyPriorityOnStart = true, + CreatedAt = createdAt, + UpdatedAt = createdAt, + }; + var store = new CapturingRuleStore([existing]); + var service = CreateService(store); + + var result = await service.SaveRuleAsync( + CreateProcess(path: @"C:\Games\Game.exe"), + new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.High }); + + var rule = Assert.Single(store.SavedRules); + Assert.True(result.Updated); + Assert.False(result.Created); + Assert.Equal("Updated saved rule for Game.exe.", result.UserMessage); + Assert.Equal("existing-rule", rule.Id); + Assert.Equal(createdAt, rule.CreatedAt); + Assert.Equal(ProcessPriorityClass.High, rule.Priority); + Assert.True(rule.UpdatedAt > createdAt); + } + + [Fact] + public async Task SaveRuleAsync_UpdatesExistingPathlessNameMatchWhenNewPathIsAvailable() + { + var existing = new PersistentProcessRule + { + Id = "pathless-rule", + Name = "Game.exe rule", + IsEnabled = true, + ProcessName = "Game.exe", + CreatedAt = DateTime.UtcNow.AddDays(-1), + UpdatedAt = DateTime.UtcNow.AddDays(-1), + }; + var store = new CapturingRuleStore([existing]); + var service = CreateService(store); + + await service.SaveRuleAsync( + CreateProcess(path: @"C:\Games\Game.exe"), + new ProcessRuleCreationPayload { Priority = ProcessPriorityClass.AboveNormal }); + + var rule = Assert.Single(store.SavedRules); + Assert.Equal("pathless-rule", rule.Id); + Assert.Equal(@"C:\Games\Game.exe", rule.ExecutablePath); + Assert.Equal(ProcessPriorityClass.AboveNormal, rule.Priority); + } + + [Fact] + public async Task SaveRuleAsync_SavesCpuSelectionWhenProvided() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + var selection = CreateCpuSelection(); + + await service.SaveRuleAsync( + CreateProcess(), + new ProcessRuleCreationPayload { CpuSelection = selection }); + + var rule = Assert.Single(store.SavedRules); + Assert.Same(selection, rule.CpuSelection); + Assert.Null(rule.LegacyAffinityMask); + Assert.True(rule.ApplyAffinityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_PrefersCpuSelectionWhenTopologyIsAvailable() + { + var store = new CapturingRuleStore(); + var topologyProvider = new FakeTopologyProvider(CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 1, 1), + ])); + var service = CreateService(store, topologyProvider); + + await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), + currentCoreSelection: [true, false], + currentMemoryPriority: null); + + var rule = Assert.Single(store.SavedRules); + Assert.NotNull(rule.CpuSelection); + Assert.Null(rule.LegacyAffinityMask); + Assert.True(rule.ApplyAffinityOnStart); + Assert.Equal(0, rule.CpuSelection.GlobalLogicalProcessorIndexes.Single()); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_SavesLegacyMaskWhenSelectionIsSafelyRepresentable() + { + var store = new CapturingRuleStore(); + var service = CreateService(store, topologyProvider: null); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0x3), + currentCoreSelection: [true, true, false], + currentMemoryPriority: null); + + Assert.True(result.Success); + var rule = Assert.Single(store.SavedRules); + Assert.Equal(0x3, rule.LegacyAffinityMask); + Assert.Null(rule.CpuSelection); + Assert.True(rule.ApplyAffinityOnStart); + Assert.Null(rule.Priority); + Assert.False(rule.ApplyPriorityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_BlocksUnsafeLegacyAffinity() + { + var store = new CapturingRuleStore(); + var service = CreateService(store, topologyProvider: null); + var unsafeSelection = Enumerable.Repeat(true, 65).ToArray(); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), + unsafeSelection, + currentMemoryPriority: null); + + Assert.False(result.Success); + Assert.Equal( + "The current affinity selection cannot be saved safely on this CPU topology.", + result.UserMessage); + Assert.Empty(store.SavedRules); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_BlocksRealtimePriority() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), + currentCoreSelection: null, + currentMemoryPriority: null); + + Assert.False(result.Success); + Assert.Equal("There are no current settings to save as a rule.", result.UserMessage); + Assert.Empty(store.SavedRules); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_WithNormalPriorityAndNoOtherPayload_ReturnsNoActionFailure() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0), + currentCoreSelection: null, + currentMemoryPriority: null); + + Assert.False(result.Success); + Assert.Equal("NoActionableRulePayload", result.ErrorCode); + Assert.Equal("There are no current settings to save as a rule.", result.UserMessage); + Assert.Empty(store.SavedRules); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_WithNormalPriorityAndAffinity_SavesAffinityButDoesNotEnablePriority() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0x5), + currentCoreSelection: null, + currentMemoryPriority: null); + + Assert.True(result.Success); + var rule = Assert.Single(store.SavedRules); + Assert.Equal(0x5, rule.LegacyAffinityMask); + Assert.True(rule.ApplyAffinityOnStart); + Assert.Null(rule.Priority); + Assert.False(rule.ApplyPriorityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_WithAboveNormalPriority_SavesPriority() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.AboveNormal, affinity: 0), + currentCoreSelection: null, + currentMemoryPriority: null); + + Assert.True(result.Success); + var rule = Assert.Single(store.SavedRules); + Assert.Equal(ProcessPriorityClass.AboveNormal, rule.Priority); + Assert.True(rule.ApplyPriorityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_WithHighPriority_SavesPriority() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.High, affinity: 0), + currentCoreSelection: null, + currentMemoryPriority: null); + + Assert.True(result.Success); + var rule = Assert.Single(store.SavedRules); + Assert.Equal(ProcessPriorityClass.High, rule.Priority); + Assert.True(rule.ApplyPriorityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_WithRealtimePriority_OmitsPriorityWithoutSavingIt() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0x3), + currentCoreSelection: null, + currentMemoryPriority: null); + + Assert.True(result.Success); + var rule = Assert.Single(store.SavedRules); + Assert.Equal(0x3, rule.LegacyAffinityMask); + Assert.Null(rule.Priority); + Assert.False(rule.ApplyPriorityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_SavesMemoryPriorityWhenAvailable() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), + currentCoreSelection: null, + currentMemoryPriority: ProcessMemoryPriority.BelowNormal); + + var rule = Assert.Single(store.SavedRules); + Assert.Equal(ProcessMemoryPriority.BelowNormal, rule.MemoryPriority); + Assert.True(rule.ApplyMemoryPriorityOnStart); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleAsync_ReturnsControlledFailureWhenNoActionablePayloadExists() + { + var store = new CapturingRuleStore(); + var service = CreateService(store); + + var result = await service.SaveCurrentSettingsAsRuleAsync( + CreateProcess(priority: ProcessPriorityClass.RealTime, affinity: 0), + currentCoreSelection: [], + currentMemoryPriority: null); + + Assert.False(result.Success); + Assert.Equal("There are no current settings to save as a rule.", result.UserMessage); + Assert.Empty(store.SavedRules); + } + + private static ProcessRuleCreationService CreateService( + CapturingRuleStore store, + ICpuTopologyProvider? topologyProvider = null) => + new( + store, + topologyProvider, + new CpuSelectionMigrationService(), + NullLogger.Instance); + + private static CpuSelection CreateCpuSelection() => + new() + { + LogicalProcessors = [new ProcessorRef(0, 0, 0)], + GlobalLogicalProcessorIndexes = [0], + }; + + private static ProcessModel CreateProcess( + string name = "Game.exe", + string path = @"C:\Games\Game.exe", + ProcessPriorityClass priority = ProcessPriorityClass.Normal, + long affinity = 0xF) => + new() + { + ProcessId = 42, + Name = name, + ExecutablePath = path, + Priority = priority, + ProcessorAffinity = affinity, + }; + + private sealed class CapturingRuleStore(IReadOnlyList? initialRules = null) + : IPersistentProcessRuleStore + { + public IReadOnlyList SavedRules { get; private set; } = []; + + public Task> LoadAsync() => + Task.FromResult(initialRules ?? this.SavedRules); + + public Task SaveAsync(IReadOnlyList rules) + { + this.SavedRules = rules.ToList(); + return Task.CompletedTask; + } + } + + private sealed class FakeTopologyProvider(CpuTopologySnapshot topology) : ICpuTopologyProvider + { + public Task GetTopologySnapshotAsync(CancellationToken cancellationToken = default) => + Task.FromResult(topology); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessServiceSecurityTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessServiceSecurityTests.cs index 7416210..2b0682b 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessServiceSecurityTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessServiceSecurityTests.cs @@ -1,82 +1,73 @@ -/* - * ThreadPilot - process service security guard tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Unit tests for security guard behavior in . - /// - public sealed class ProcessServiceSecurityTests - { - /// - /// Ensures protected process priority updates are blocked before mutation. - /// - [Fact] - public async Task SetProcessPriority_ThrowsUnauthorized_ForProtectedProcess() - { - var security = new Mock(MockBehavior.Strict); - security - .Setup(s => s.ValidateProcessOperation("lsass", "SetProcessPriority")) - .Returns(false); - security - .Setup(s => s.AuditElevatedAction("SetProcessPriority", "lsass", false)) - .Returns(Task.CompletedTask); - - var service = new ProcessService(null, security.Object); - var process = new ProcessModel { Name = "lsass", ProcessId = 500 }; - - await Assert.ThrowsAsync(async () => - await service.SetProcessPriority(process, System.Diagnostics.ProcessPriorityClass.Normal)); - - security.VerifyAll(); - } - - /// - /// Ensures protected process affinity updates are blocked before mutation. - /// - [Fact] - public async Task SetProcessorAffinity_ThrowsUnauthorized_ForProtectedProcess() - { - var security = new Mock(MockBehavior.Strict); - security - .Setup(s => s.ValidateProcessOperation("System", "SetProcessAffinity")) - .Returns(false); - security - .Setup(s => s.AuditElevatedAction("SetProcessAffinity", "System", false)) - .Returns(Task.CompletedTask); - - var service = new ProcessService(null, security.Object); - var process = new ProcessModel { Name = "System", ProcessId = 4 }; - - await Assert.ThrowsAsync(async () => - await service.SetProcessorAffinity(process, 0x03)); - - security.VerifyAll(); - } - - [Fact] - public async Task SetProcessorAffinity_WithInvalidCpuSelection_AuditsFailure() - { - var security = new Mock(MockBehavior.Strict); - security - .Setup(s => s.ValidateProcessOperation("Game", "SetProcessAffinity")) - .Returns(true); - security - .Setup(s => s.AuditElevatedAction("SetProcessAffinity", "Game", false)) - .Returns(Task.CompletedTask); - - var service = new ProcessService(null, security.Object); - var process = new ProcessModel { Name = "Game", ProcessId = int.MaxValue }; - - var result = await service.SetProcessorAffinity(process, new CpuSelection()); - - Assert.False(result.Success); - Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); - security.VerifyAll(); - } - } -} +/* + * ThreadPilot - process service security guard tests. + */ +namespace ThreadPilot.Core.Tests +{ + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessServiceSecurityTests + { + [Fact] + public async Task SetProcessPriority_ThrowsUnauthorized_ForProtectedProcess() + { + var security = new Mock(MockBehavior.Strict); + security + .Setup(s => s.ValidateProcessOperation("lsass", "SetProcessPriority")) + .Returns(false); + security + .Setup(s => s.AuditElevatedAction("SetProcessPriority", "lsass", false)) + .Returns(Task.CompletedTask); + + var service = new ProcessService(null, security.Object); + var process = new ProcessModel { Name = "lsass", ProcessId = 500 }; + + await Assert.ThrowsAsync(async () => + await service.SetProcessPriority(process, System.Diagnostics.ProcessPriorityClass.Normal)); + + security.VerifyAll(); + } + + [Fact] + public async Task SetProcessorAffinity_ThrowsUnauthorized_ForProtectedProcess() + { + var security = new Mock(MockBehavior.Strict); + security + .Setup(s => s.ValidateProcessOperation("System", "SetProcessAffinity")) + .Returns(false); + security + .Setup(s => s.AuditElevatedAction("SetProcessAffinity", "System", false)) + .Returns(Task.CompletedTask); + + var service = new ProcessService(null, security.Object); + var process = new ProcessModel { Name = "System", ProcessId = 4 }; + + await Assert.ThrowsAsync(async () => + await service.SetProcessorAffinity(process, 0x03)); + + security.VerifyAll(); + } + + [Fact] + public async Task SetProcessorAffinity_WithInvalidCpuSelection_AuditsFailure() + { + var security = new Mock(MockBehavior.Strict); + security + .Setup(s => s.ValidateProcessOperation("Game", "SetProcessAffinity")) + .Returns(true); + security + .Setup(s => s.AuditElevatedAction("SetProcessAffinity", "Game", false)) + .Returns(Task.CompletedTask); + + var service = new ProcessService(null, security.Object); + var process = new ProcessModel { Name = "Game", ProcessId = int.MaxValue }; + + var result = await service.SetProcessorAffinity(process, new CpuSelection()); + + Assert.False(result.Success); + Assert.Equal(AffinityApplyErrorCodes.InvalidSelection, result.ErrorCode); + security.VerifyAll(); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessServiceTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessServiceTests.cs index 8bc5783..d257bda 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessServiceTests.cs @@ -1,534 +1,531 @@ -/* - * ThreadPilot - process service unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.Concurrent; - using System.ComponentModel; - using System.Diagnostics; - using System.Text.Json; - using Microsoft.Extensions.Logging; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// Unit tests for deterministic behavior in . - /// - public sealed class ProcessServiceTests - { - [Fact] - public async Task SaveProcessProfile_WritesExpectedJson() - { - var profilesDirectory = CreateTemporaryDirectory(); - var profileName = $"profile-{Guid.NewGuid():N}"; - var process = new ProcessModel - { - Name = "game.exe", - Priority = ProcessPriorityClass.High, - ProcessorAffinity = 3, - }; - - try - { - var service = CreateService(profilesDirectory); - - var result = await service.SaveProcessProfile(profileName, process); - - Assert.True(result); - - var filePath = Path.Combine(profilesDirectory, $"{profileName}.json"); - Assert.True(File.Exists(filePath)); - - using var document = JsonDocument.Parse(await File.ReadAllTextAsync(filePath)); - Assert.Equal("game.exe", document.RootElement.GetProperty("ProcessName").GetString()); - Assert.Equal((int)ProcessPriorityClass.High, document.RootElement.GetProperty("Priority").GetInt32()); - Assert.Equal(3, document.RootElement.GetProperty("ProcessorAffinity").GetInt64()); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public async Task SaveProcessProfile_WithTopologyProvider_WritesCpuSelectionSchema() - { - var profilesDirectory = CreateTemporaryDirectory(); - var profileName = $"profile-{Guid.NewGuid():N}"; - var topology = CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 1, 1), - new ProcessorRef(0, 2, 2), - ]); - var process = new ProcessModel - { - Name = "game.exe", - Priority = ProcessPriorityClass.High, - ProcessorAffinity = 0b101, - }; - - try - { - var service = CreateService(profilesDirectory, new FakeCpuTopologyProvider(topology)); - - var result = await service.SaveProcessProfile(profileName, process); - - Assert.True(result); - - var filePath = Path.Combine(profilesDirectory, $"{profileName}.json"); - var profile = JsonSerializer.Deserialize( - await File.ReadAllTextAsync(filePath), - new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); - - Assert.NotNull(profile); - Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, profile.ProfileSchemaVersion); - Assert.Equal(0b101, profile.ProcessorAffinity); - Assert.NotNull(profile.CpuSelection); - Assert.Equal([0, 2], profile.CpuSelection!.GlobalLogicalProcessorIndexes); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public async Task LoadProcessProfile_ReturnsFalse_WhenFileIsMissing() - { - var profilesDirectory = CreateTemporaryDirectory(); - - try - { - var service = CreateService(profilesDirectory); - - var result = await service.LoadProcessProfile("missing-profile", new ProcessModel()); - - Assert.False(result); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public async Task LoadProcessProfile_WithCpuSelectionApplyFailure_ReturnsFalse() - { - var profilesDirectory = CreateTemporaryDirectory(); - var profileName = $"profile-{Guid.NewGuid():N}"; - var topology = CreateTopology(); - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 1, - ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, - CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology), - }; - var profileApplier = new FakeLoadProcessProfileApplier( - cpuSelectionResult: AffinityApplyResult.Failed( - AffinityApplyErrorCodes.NativeApplyFailed, - "Affinity was not applied.", - "simulated apply failure")); - var service = CreateService( - profilesDirectory, - new FakeCpuTopologyProvider(topology), - profileApplier); - - try - { - await WriteProfileAsync(profilesDirectory, profileName, profile); - - var result = await service.LoadProcessProfile(profileName, CreateProcess()); - - Assert.False(result); - Assert.Equal(1, profileApplier.CpuSelectionApplyCalls); - Assert.Equal(0, profileApplier.LegacyAffinityApplyCalls); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public async Task LoadProcessProfile_WithCpuSelectionApplySuccess_ReturnsTrue() - { - var profilesDirectory = CreateTemporaryDirectory(); - var profileName = $"profile-{Guid.NewGuid():N}"; - var topology = CreateTopology(); - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 1, - ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, - CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology), - }; - var profileApplier = new FakeLoadProcessProfileApplier( - cpuSelectionResult: AffinityApplyResult.SucceededWithCpuSets("simulated apply success")); - var service = CreateService( - profilesDirectory, - new FakeCpuTopologyProvider(topology), - profileApplier); - - try - { - await WriteProfileAsync(profilesDirectory, profileName, profile); - - var result = await service.LoadProcessProfile(profileName, CreateProcess()); - - Assert.True(result); - Assert.Equal(1, profileApplier.CpuSelectionApplyCalls); - Assert.Equal(0, profileApplier.LegacyAffinityApplyCalls); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public async Task LoadProcessProfile_WithoutTopologyProvider_UsesLegacyAffinityPath() - { - var profilesDirectory = CreateTemporaryDirectory(); - var profileName = $"profile-{Guid.NewGuid():N}"; - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 0b11, - }; - var profileApplier = new FakeLoadProcessProfileApplier(); - var service = CreateService(profilesDirectory, topologyProvider: null, profileApplier); - - try - { - await WriteProfileAsync(profilesDirectory, profileName, profile); - - var result = await service.LoadProcessProfile(profileName, CreateProcess()); - - Assert.True(result); - Assert.Equal(1, profileApplier.LegacyAffinityApplyCalls); - Assert.Equal(0b11, profileApplier.LastLegacyAffinityMask); - Assert.Equal(0, profileApplier.CpuSelectionApplyCalls); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public async Task LoadProcessProfile_WithRealtimePriority_ReturnsFalseWithoutApplyingPriorityOrAffinity() - { - var profilesDirectory = CreateTemporaryDirectory(); - var profileName = $"profile-{Guid.NewGuid():N}"; - var profile = new ProcessProfileSnapshot - { - ProcessName = "game.exe", - Priority = ProcessPriorityClass.RealTime, - ProcessorAffinity = 0b11, - }; - var profileApplier = new FakeLoadProcessProfileApplier(); - var service = CreateService(profilesDirectory, topologyProvider: null, profileApplier); - - try - { - await WriteProfileAsync(profilesDirectory, profileName, profile); - - var result = await service.LoadProcessProfile(profileName, CreateProcess()); - - Assert.False(result); - Assert.Equal(0, profileApplier.PriorityApplyCalls); - Assert.Equal(0, profileApplier.LegacyAffinityApplyCalls); - Assert.Equal(0, profileApplier.CpuSelectionApplyCalls); - } - finally - { - DeleteDirectory(profilesDirectory); - } - } - - [Fact] - public void PriorityGuardrails_HighPriorityReturnsUserFacingWarning() - { - var warning = ProcessPriorityGuardrails.GetWarning(ProcessPriorityClass.High); - - Assert.Equal(ProcessOperationUserMessages.HighPriorityWarning, warning); - } - - [Fact] - public async Task SetProcessPriority_WithRealtime_AuditsFailureAndThrowsBlockedMessage() - { - var logger = new Mock>(); - var security = new Mock(MockBehavior.Strict); - security - .Setup(s => s.AuditElevatedAction("SetProcessPriority", "game.exe", false)) - .Returns(Task.CompletedTask); - - var service = CreateService(CreateTemporaryDirectory(), logger: logger.Object, securityService: security.Object); - var process = CreateProcess(); - - try - { - var ex = await Assert.ThrowsAsync( - () => service.SetProcessPriority(process, ProcessPriorityClass.RealTime)); - - Assert.Equal(ProcessOperationUserMessages.RealtimePriorityBlocked, ex.Message); - Assert.Equal(ProcessPriorityClass.Normal, process.Priority); - security.Verify( - s => s.AuditElevatedAction("SetProcessPriority", "game.exe", false), - Times.Once); - VerifyWarningLogged(logger, ProcessOperationUserMessages.RealtimePriorityBlocked); - } - finally - { - DeleteDirectory(GetProfilesDirectory(service)); - } - } - - [Fact] - public async Task SetRegistryPriorityAsync_WithRealtime_ReturnsFalse() - { - var service = CreateService(CreateTemporaryDirectory()); - - try - { - var result = await service.SetRegistryPriorityAsync(CreateProcess(), enable: true, ProcessPriorityClass.RealTime); - - Assert.False(result); - Assert.Contains("does not bypass", ProcessOperationUserMessages.PersistentLaunchTimePriorityNotice, StringComparison.OrdinalIgnoreCase); - } - finally - { - DeleteDirectory(GetProfilesDirectory(service)); - } - } - - [Fact] - public void IsPassiveProcessAccessException_ReturnsTrue_ForModuleEnumerationFailure() - { - var exception = new Win32Exception(299, "Unable to enumerate the process modules."); - - var result = ProcessService.IsPassiveProcessAccessException(exception); - - Assert.True(result); - } - - [Fact] - public void IsPassiveProcessAccessException_ReturnsTrue_ForUnauthorizedAccess() - { - var exception = new UnauthorizedAccessException("Access denied."); - - var result = ProcessService.IsPassiveProcessAccessException(exception); - - Assert.True(result); - } - - [Theory] - [InlineData("Unable to access modules for this process.")] - [InlineData("ReadProcessMemory failed for protected process.")] - public void IsPassiveProcessAccessException_ReturnsTrue_ForKnownPassiveMessages(string message) - { - var exception = new InvalidOperationException(message); - - var result = ProcessService.IsPassiveProcessAccessException(exception); - - Assert.True(result); - } - - [Fact] - public void IsPassiveProcessAccessException_ReturnsFalse_ForUnrelatedException() - { - var exception = new InvalidOperationException("Unexpected parse failure."); - - var result = ProcessService.IsPassiveProcessAccessException(exception); - - Assert.False(result); - } - - [Fact] - public void TrackPriorityChange_PreservesOriginalPriority() - { - var service = CreateService(CreateTemporaryDirectory()); - - try - { - service.TrackPriorityChange(42, ProcessPriorityClass.Normal); - service.TrackPriorityChange(42, ProcessPriorityClass.High); - - var trackedPriorities = GetPrivateDictionary(service, "originalPriorities"); - Assert.True(trackedPriorities.TryGetValue(42, out var priority)); - Assert.Equal(ProcessPriorityClass.Normal, priority); - } - finally - { - DeleteDirectory(GetProfilesDirectory(service)); - } - } - - [Fact] - public void UntrackProcess_ClearsTrackedState() - { - var service = CreateService(CreateTemporaryDirectory()); - - try - { - service.TrackAppliedMask(77, "mask-a"); - service.TrackPriorityChange(77, ProcessPriorityClass.BelowNormal); - - service.UntrackProcess(77); - - var trackedMasks = GetPrivateDictionary(service, "appliedMasks"); - var trackedPriorities = GetPrivateDictionary(service, "originalPriorities"); - Assert.False(trackedMasks.ContainsKey(77)); - Assert.False(trackedPriorities.ContainsKey(77)); - } - finally - { - DeleteDirectory(GetProfilesDirectory(service)); - } - } - - private static ProcessService CreateService( - string profilesDirectory, - ICpuTopologyProvider? topologyProvider = null, - FakeLoadProcessProfileApplier? profileApplier = null, - ILogger? logger = null, - ISecurityService? securityService = null) - { - if (profileApplier == null) - { - return new(logger, securityService, () => profilesDirectory, cpuTopologyProvider: topologyProvider); - } - - return new ProcessService( - logger, - securityService, - () => profilesDirectory, - foregroundProcessService: null, - processClassifier: null, - passiveProcessErrorThrottle: null, - cpuTopologyProvider: topologyProvider, - cpuSelectionMigrationService: null, - loadProcessProfilePrioritySetter: profileApplier.SetPriorityAsync, - loadProcessProfileCpuSelectionSetter: profileApplier.SetCpuSelectionAsync, - loadProcessProfileLegacyAffinitySetter: profileApplier.SetLegacyAffinityAsync); - } - - private static ProcessModel CreateProcess() => - new() - { - ProcessId = 1234, - Name = "game.exe", - Priority = ProcessPriorityClass.Normal, - ProcessorAffinity = 0, - }; - - private static CpuTopologySnapshot CreateTopology() => - CpuTopologySnapshot.Create( - [ - new ProcessorRef(0, 0, 0), - new ProcessorRef(0, 1, 1), - ]); - - private static Task WriteProfileAsync( - string profilesDirectory, - string profileName, - ProcessProfileSnapshot profile) - { - var filePath = Path.Combine(profilesDirectory, $"{profileName}.json"); - var json = JsonSerializer.Serialize(profile, new JsonSerializerOptions { WriteIndented = true }); - return File.WriteAllTextAsync(filePath, json); - } - - private static string CreateTemporaryDirectory() - { - var path = Path.Combine(Path.GetTempPath(), $"threadpilot-process-service-{Guid.NewGuid():N}"); - Directory.CreateDirectory(path); - return path; - } - - private static void DeleteDirectory(string path) - { - if (Directory.Exists(path)) - { - Directory.Delete(path, recursive: true); - } - } - - private static string GetProfilesDirectory(ProcessService service) - { - var property = typeof(ProcessService).GetProperty("ProfilesDirectory", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); - return (string)(property?.GetValue(service) ?? throw new InvalidOperationException("ProfilesDirectory property not found.")); - } - - private static ConcurrentDictionary GetPrivateDictionary(ProcessService service, string fieldName) - where TKey : notnull - { - var field = typeof(ProcessService).GetField(fieldName, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); - return (ConcurrentDictionary)(field?.GetValue(service) ?? throw new InvalidOperationException($"Field '{fieldName}' not found.")); - } - - private static void VerifyWarningLogged(Mock> logger, string message) - { - logger.Verify( - l => l.Log( - LogLevel.Warning, - It.IsAny(), - It.Is((state, _) => state.ToString() != null && state.ToString()!.Contains(message, StringComparison.Ordinal)), - It.IsAny(), - It.IsAny>()), - Times.Once); - } - - private sealed class FakeCpuTopologyProvider(CpuTopologySnapshot snapshot) : ICpuTopologyProvider - { - public Task GetTopologySnapshotAsync( - CancellationToken cancellationToken = default) => - Task.FromResult(snapshot); - } - - private sealed class FakeLoadProcessProfileApplier - { - private readonly AffinityApplyResult cpuSelectionResult; - - public FakeLoadProcessProfileApplier(AffinityApplyResult? cpuSelectionResult = null) - { - this.cpuSelectionResult = cpuSelectionResult ?? AffinityApplyResult.Succeeded(0, 0); - } - - public int PriorityApplyCalls { get; private set; } - - public int CpuSelectionApplyCalls { get; private set; } - - public int LegacyAffinityApplyCalls { get; private set; } - - public long LastLegacyAffinityMask { get; private set; } - - public Task SetPriorityAsync(ProcessModel process, ProcessPriorityClass priority) - { - this.PriorityApplyCalls++; - process.Priority = priority; - return Task.CompletedTask; - } - - public Task SetCpuSelectionAsync(ProcessModel process, CpuSelection selection) - { - this.CpuSelectionApplyCalls++; - return Task.FromResult(this.cpuSelectionResult); - } - - public Task SetLegacyAffinityAsync(ProcessModel process, long affinityMask) - { - this.LegacyAffinityApplyCalls++; - this.LastLegacyAffinityMask = affinityMask; - process.ProcessorAffinity = affinityMask; - return Task.CompletedTask; - } - } - } -} +/* + * ThreadPilot - process service unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using System.Collections.Concurrent; + using System.ComponentModel; + using System.Diagnostics; + using System.Text.Json; + using Microsoft.Extensions.Logging; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ProcessServiceTests + { + [Fact] + public async Task SaveProcessProfile_WritesExpectedJson() + { + var profilesDirectory = CreateTemporaryDirectory(); + var profileName = $"profile-{Guid.NewGuid():N}"; + var process = new ProcessModel + { + Name = "game.exe", + Priority = ProcessPriorityClass.High, + ProcessorAffinity = 3, + }; + + try + { + var service = CreateService(profilesDirectory); + + var result = await service.SaveProcessProfile(profileName, process); + + Assert.True(result); + + var filePath = Path.Combine(profilesDirectory, $"{profileName}.json"); + Assert.True(File.Exists(filePath)); + + using var document = JsonDocument.Parse(await File.ReadAllTextAsync(filePath)); + Assert.Equal("game.exe", document.RootElement.GetProperty("ProcessName").GetString()); + Assert.Equal((int)ProcessPriorityClass.High, document.RootElement.GetProperty("Priority").GetInt32()); + Assert.Equal(3, document.RootElement.GetProperty("ProcessorAffinity").GetInt64()); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public async Task SaveProcessProfile_WithTopologyProvider_WritesCpuSelectionSchema() + { + var profilesDirectory = CreateTemporaryDirectory(); + var profileName = $"profile-{Guid.NewGuid():N}"; + var topology = CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 1, 1), + new ProcessorRef(0, 2, 2), + ]); + var process = new ProcessModel + { + Name = "game.exe", + Priority = ProcessPriorityClass.High, + ProcessorAffinity = 0b101, + }; + + try + { + var service = CreateService(profilesDirectory, new FakeCpuTopologyProvider(topology)); + + var result = await service.SaveProcessProfile(profileName, process); + + Assert.True(result); + + var filePath = Path.Combine(profilesDirectory, $"{profileName}.json"); + var profile = JsonSerializer.Deserialize( + await File.ReadAllTextAsync(filePath), + new JsonSerializerOptions { PropertyNameCaseInsensitive = true }); + + Assert.NotNull(profile); + Assert.Equal(CpuAffinityProfileSchemaVersions.CpuSelection, profile.ProfileSchemaVersion); + Assert.Equal(0b101, profile.ProcessorAffinity); + Assert.NotNull(profile.CpuSelection); + Assert.Equal([0, 2], profile.CpuSelection!.GlobalLogicalProcessorIndexes); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public async Task LoadProcessProfile_ReturnsFalse_WhenFileIsMissing() + { + var profilesDirectory = CreateTemporaryDirectory(); + + try + { + var service = CreateService(profilesDirectory); + + var result = await service.LoadProcessProfile("missing-profile", new ProcessModel()); + + Assert.False(result); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public async Task LoadProcessProfile_WithCpuSelectionApplyFailure_ReturnsFalse() + { + var profilesDirectory = CreateTemporaryDirectory(); + var profileName = $"profile-{Guid.NewGuid():N}"; + var topology = CreateTopology(); + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 1, + ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, + CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology), + }; + var profileApplier = new FakeLoadProcessProfileApplier( + cpuSelectionResult: AffinityApplyResult.Failed( + AffinityApplyErrorCodes.NativeApplyFailed, + "Affinity was not applied.", + "simulated apply failure")); + var service = CreateService( + profilesDirectory, + new FakeCpuTopologyProvider(topology), + profileApplier); + + try + { + await WriteProfileAsync(profilesDirectory, profileName, profile); + + var result = await service.LoadProcessProfile(profileName, CreateProcess()); + + Assert.False(result); + Assert.Equal(1, profileApplier.CpuSelectionApplyCalls); + Assert.Equal(0, profileApplier.LegacyAffinityApplyCalls); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public async Task LoadProcessProfile_WithCpuSelectionApplySuccess_ReturnsTrue() + { + var profilesDirectory = CreateTemporaryDirectory(); + var profileName = $"profile-{Guid.NewGuid():N}"; + var topology = CreateTopology(); + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 1, + ProfileSchemaVersion = CpuAffinityProfileSchemaVersions.CpuSelection, + CpuSelection = CpuSelection.FromProcessors([topology.LogicalProcessors[0]], topology), + }; + var profileApplier = new FakeLoadProcessProfileApplier( + cpuSelectionResult: AffinityApplyResult.SucceededWithCpuSets("simulated apply success")); + var service = CreateService( + profilesDirectory, + new FakeCpuTopologyProvider(topology), + profileApplier); + + try + { + await WriteProfileAsync(profilesDirectory, profileName, profile); + + var result = await service.LoadProcessProfile(profileName, CreateProcess()); + + Assert.True(result); + Assert.Equal(1, profileApplier.CpuSelectionApplyCalls); + Assert.Equal(0, profileApplier.LegacyAffinityApplyCalls); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public async Task LoadProcessProfile_WithoutTopologyProvider_UsesLegacyAffinityPath() + { + var profilesDirectory = CreateTemporaryDirectory(); + var profileName = $"profile-{Guid.NewGuid():N}"; + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 0b11, + }; + var profileApplier = new FakeLoadProcessProfileApplier(); + var service = CreateService(profilesDirectory, topologyProvider: null, profileApplier); + + try + { + await WriteProfileAsync(profilesDirectory, profileName, profile); + + var result = await service.LoadProcessProfile(profileName, CreateProcess()); + + Assert.True(result); + Assert.Equal(1, profileApplier.LegacyAffinityApplyCalls); + Assert.Equal(0b11, profileApplier.LastLegacyAffinityMask); + Assert.Equal(0, profileApplier.CpuSelectionApplyCalls); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public async Task LoadProcessProfile_WithRealtimePriority_ReturnsFalseWithoutApplyingPriorityOrAffinity() + { + var profilesDirectory = CreateTemporaryDirectory(); + var profileName = $"profile-{Guid.NewGuid():N}"; + var profile = new ProcessProfileSnapshot + { + ProcessName = "game.exe", + Priority = ProcessPriorityClass.RealTime, + ProcessorAffinity = 0b11, + }; + var profileApplier = new FakeLoadProcessProfileApplier(); + var service = CreateService(profilesDirectory, topologyProvider: null, profileApplier); + + try + { + await WriteProfileAsync(profilesDirectory, profileName, profile); + + var result = await service.LoadProcessProfile(profileName, CreateProcess()); + + Assert.False(result); + Assert.Equal(0, profileApplier.PriorityApplyCalls); + Assert.Equal(0, profileApplier.LegacyAffinityApplyCalls); + Assert.Equal(0, profileApplier.CpuSelectionApplyCalls); + } + finally + { + DeleteDirectory(profilesDirectory); + } + } + + [Fact] + public void PriorityGuardrails_HighPriorityReturnsUserFacingWarning() + { + var warning = ProcessPriorityGuardrails.GetWarning(ProcessPriorityClass.High); + + Assert.Equal(ProcessOperationUserMessages.HighPriorityWarning, warning); + } + + [Fact] + public async Task SetProcessPriority_WithRealtime_AuditsFailureAndThrowsBlockedMessage() + { + var logger = new Mock>(); + var security = new Mock(MockBehavior.Strict); + security + .Setup(s => s.AuditElevatedAction("SetProcessPriority", "game.exe", false)) + .Returns(Task.CompletedTask); + + var service = CreateService(CreateTemporaryDirectory(), logger: logger.Object, securityService: security.Object); + var process = CreateProcess(); + + try + { + var ex = await Assert.ThrowsAsync( + () => service.SetProcessPriority(process, ProcessPriorityClass.RealTime)); + + Assert.Equal(ProcessOperationUserMessages.RealtimePriorityBlocked, ex.Message); + Assert.Equal(ProcessPriorityClass.Normal, process.Priority); + security.Verify( + s => s.AuditElevatedAction("SetProcessPriority", "game.exe", false), + Times.Once); + VerifyWarningLogged(logger, ProcessOperationUserMessages.RealtimePriorityBlocked); + } + finally + { + DeleteDirectory(GetProfilesDirectory(service)); + } + } + + [Fact] + public async Task SetRegistryPriorityAsync_WithRealtime_ReturnsFalse() + { + var service = CreateService(CreateTemporaryDirectory()); + + try + { + var result = await service.SetRegistryPriorityAsync(CreateProcess(), enable: true, ProcessPriorityClass.RealTime); + + Assert.False(result); + Assert.Contains("does not bypass", ProcessOperationUserMessages.PersistentLaunchTimePriorityNotice, StringComparison.OrdinalIgnoreCase); + } + finally + { + DeleteDirectory(GetProfilesDirectory(service)); + } + } + + [Fact] + public void IsPassiveProcessAccessException_ReturnsTrue_ForModuleEnumerationFailure() + { + var exception = new Win32Exception(299, "Unable to enumerate the process modules."); + + var result = ProcessService.IsPassiveProcessAccessException(exception); + + Assert.True(result); + } + + [Fact] + public void IsPassiveProcessAccessException_ReturnsTrue_ForUnauthorizedAccess() + { + var exception = new UnauthorizedAccessException("Access denied."); + + var result = ProcessService.IsPassiveProcessAccessException(exception); + + Assert.True(result); + } + + [Theory] + [InlineData("Unable to access modules for this process.")] + [InlineData("ReadProcessMemory failed for protected process.")] + public void IsPassiveProcessAccessException_ReturnsTrue_ForKnownPassiveMessages(string message) + { + var exception = new InvalidOperationException(message); + + var result = ProcessService.IsPassiveProcessAccessException(exception); + + Assert.True(result); + } + + [Fact] + public void IsPassiveProcessAccessException_ReturnsFalse_ForUnrelatedException() + { + var exception = new InvalidOperationException("Unexpected parse failure."); + + var result = ProcessService.IsPassiveProcessAccessException(exception); + + Assert.False(result); + } + + [Fact] + public void TrackPriorityChange_PreservesOriginalPriority() + { + var service = CreateService(CreateTemporaryDirectory()); + + try + { + service.TrackPriorityChange(42, ProcessPriorityClass.Normal); + service.TrackPriorityChange(42, ProcessPriorityClass.High); + + var trackedPriorities = GetPrivateDictionary(service, "originalPriorities"); + Assert.True(trackedPriorities.TryGetValue(42, out var priority)); + Assert.Equal(ProcessPriorityClass.Normal, priority); + } + finally + { + DeleteDirectory(GetProfilesDirectory(service)); + } + } + + [Fact] + public void UntrackProcess_ClearsTrackedState() + { + var service = CreateService(CreateTemporaryDirectory()); + + try + { + service.TrackAppliedMask(77, "mask-a"); + service.TrackPriorityChange(77, ProcessPriorityClass.BelowNormal); + + service.UntrackProcess(77); + + var trackedMasks = GetPrivateDictionary(service, "appliedMasks"); + var trackedPriorities = GetPrivateDictionary(service, "originalPriorities"); + Assert.False(trackedMasks.ContainsKey(77)); + Assert.False(trackedPriorities.ContainsKey(77)); + } + finally + { + DeleteDirectory(GetProfilesDirectory(service)); + } + } + + private static ProcessService CreateService( + string profilesDirectory, + ICpuTopologyProvider? topologyProvider = null, + FakeLoadProcessProfileApplier? profileApplier = null, + ILogger? logger = null, + ISecurityService? securityService = null) + { + if (profileApplier == null) + { + return new(logger, securityService, () => profilesDirectory, cpuTopologyProvider: topologyProvider); + } + + return new ProcessService( + logger, + securityService, + () => profilesDirectory, + foregroundProcessService: null, + processClassifier: null, + passiveProcessErrorThrottle: null, + cpuTopologyProvider: topologyProvider, + cpuSelectionMigrationService: null, + loadProcessProfilePrioritySetter: profileApplier.SetPriorityAsync, + loadProcessProfileCpuSelectionSetter: profileApplier.SetCpuSelectionAsync, + loadProcessProfileLegacyAffinitySetter: profileApplier.SetLegacyAffinityAsync); + } + + private static ProcessModel CreateProcess() => + new() + { + ProcessId = 1234, + Name = "game.exe", + Priority = ProcessPriorityClass.Normal, + ProcessorAffinity = 0, + }; + + private static CpuTopologySnapshot CreateTopology() => + CpuTopologySnapshot.Create( + [ + new ProcessorRef(0, 0, 0), + new ProcessorRef(0, 1, 1), + ]); + + private static Task WriteProfileAsync( + string profilesDirectory, + string profileName, + ProcessProfileSnapshot profile) + { + var filePath = Path.Combine(profilesDirectory, $"{profileName}.json"); + var json = JsonSerializer.Serialize(profile, new JsonSerializerOptions { WriteIndented = true }); + return File.WriteAllTextAsync(filePath, json); + } + + private static string CreateTemporaryDirectory() + { + var path = Path.Combine(Path.GetTempPath(), $"threadpilot-process-service-{Guid.NewGuid():N}"); + Directory.CreateDirectory(path); + return path; + } + + private static void DeleteDirectory(string path) + { + if (Directory.Exists(path)) + { + Directory.Delete(path, recursive: true); + } + } + + private static string GetProfilesDirectory(ProcessService service) + { + var property = typeof(ProcessService).GetProperty("ProfilesDirectory", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); + return (string)(property?.GetValue(service) ?? throw new InvalidOperationException("ProfilesDirectory property not found.")); + } + + private static ConcurrentDictionary GetPrivateDictionary(ProcessService service, string fieldName) + where TKey : notnull + { + var field = typeof(ProcessService).GetField(fieldName, System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); + return (ConcurrentDictionary)(field?.GetValue(service) ?? throw new InvalidOperationException($"Field '{fieldName}' not found.")); + } + + private static void VerifyWarningLogged(Mock> logger, string message) + { + logger.Verify( + l => l.Log( + LogLevel.Warning, + It.IsAny(), + It.Is((state, _) => state.ToString() != null && state.ToString()!.Contains(message, StringComparison.Ordinal)), + It.IsAny(), + It.IsAny>()), + Times.Once); + } + + private sealed class FakeCpuTopologyProvider(CpuTopologySnapshot snapshot) : ICpuTopologyProvider + { + public Task GetTopologySnapshotAsync( + CancellationToken cancellationToken = default) => + Task.FromResult(snapshot); + } + + private sealed class FakeLoadProcessProfileApplier + { + private readonly AffinityApplyResult cpuSelectionResult; + + public FakeLoadProcessProfileApplier(AffinityApplyResult? cpuSelectionResult = null) + { + this.cpuSelectionResult = cpuSelectionResult ?? AffinityApplyResult.Succeeded(0, 0); + } + + public int PriorityApplyCalls { get; private set; } + + public int CpuSelectionApplyCalls { get; private set; } + + public int LegacyAffinityApplyCalls { get; private set; } + + public long LastLegacyAffinityMask { get; private set; } + + public Task SetPriorityAsync(ProcessModel process, ProcessPriorityClass priority) + { + this.PriorityApplyCalls++; + process.Priority = priority; + return Task.CompletedTask; + } + + public Task SetCpuSelectionAsync(ProcessModel process, CpuSelection selection) + { + this.CpuSelectionApplyCalls++; + return Task.FromResult(this.cpuSelectionResult); + } + + public Task SetLegacyAffinityAsync(ProcessModel process, long affinityMask) + { + this.LegacyAffinityApplyCalls++; + this.LastLegacyAffinityMask = affinityMask; + process.ProcessorAffinity = affinityMask; + return Task.CompletedTask; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessViewModelAffinityTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessViewModelAffinityTests.cs index a8c4a54..1d8bb25 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessViewModelAffinityTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessViewModelAffinityTests.cs @@ -1,137 +1,137 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class ProcessViewModelAffinityTests - { - [Fact] - public async Task SelectingCoreMask_DoesNotApplyProcessorAffinity() - { - var processService = new Mock(MockBehavior.Loose); - var gameModeService = new Mock(MockBehavior.Loose); - gameModeService - .Setup(service => service.DisableGameModeForAffinityAsync()) - .ReturnsAsync(false); - var viewModel = CreateViewModel(processService.Object, gameModeService.Object); - - viewModel.SelectedProcess = new ProcessModel - { - ProcessId = 1234, - Name = "Game", - ProcessorAffinity = 3, - }; - - viewModel.SelectedCoreMask = CoreMask.FromProcessorAffinity(1, 2, "First Core"); - - await Task.Delay(100); - - processService.Verify( - service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task SelectingCoreMask_ReportsPendingAffinityWithoutChangingCurrentAffinity() - { - var processService = new Mock(MockBehavior.Loose); - var gameModeService = new Mock(MockBehavior.Loose); - var viewModel = CreateViewModel(processService.Object, gameModeService.Object); - viewModel.CpuTopology = CreateTwoCoreTopology(); - viewModel.CpuCores = new System.Collections.ObjectModel.ObservableCollection( - viewModel.CpuTopology.LogicalCores); - - viewModel.SelectedProcess = new ProcessModel - { - ProcessId = 1234, - Name = "Game", - ProcessorAffinity = 3, - }; - - viewModel.SelectedCoreMask = CoreMask.FromProcessorAffinity(1, 2, "First Core"); - - await Task.Delay(100); - - Assert.True(viewModel.HasPendingAffinityEdits); - Assert.Equal("Current OS affinity: 0x3", viewModel.CurrentAffinityText); - Assert.Equal("Pending core mask: 0x1", viewModel.PendingAffinityText); - Assert.Equal("Core mask staged. Use Apply Affinity to change Windows affinity.", viewModel.AffinityEditStateText); - } - - [Fact] - public void ConstructorFallbackCoordinator_ReceivesTopologyProviderWhenProvided() - { - var processService = new Mock(MockBehavior.Loose); - var gameModeService = new Mock(MockBehavior.Loose); - var topologyProvider = new Mock(MockBehavior.Strict); - - var viewModel = CreateViewModel( - processService.Object, - gameModeService.Object, - cpuTopologyProvider: topologyProvider.Object); - - var coordinator = typeof(ProcessViewModel) - .GetField( - "processAffinityApplyCoordinator", - System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)! - .GetValue(viewModel); - var provider = typeof(ProcessAffinityApplyCoordinator) - .GetField( - "cpuTopologyProvider", - System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)! - .GetValue(coordinator); - - Assert.Same(topologyProvider.Object, provider); - } - - private static ProcessViewModel CreateViewModel(IProcessService processService, IGameModeService gameModeService) - => CreateViewModel(processService, gameModeService, cpuTopologyProvider: null); - - private static ProcessViewModel CreateViewModel( - IProcessService processService, - IGameModeService gameModeService, - ICpuTopologyProvider? cpuTopologyProvider) - { - var virtualizedProcessService = new Mock(MockBehavior.Loose); - virtualizedProcessService.SetupProperty( - service => service.Configuration, - new VirtualizedProcessConfig()); - - var cpuTopologyService = new Mock(MockBehavior.Loose); - var powerPlanService = new Mock(MockBehavior.Loose); - var notificationService = new Mock(MockBehavior.Loose); - var systemTrayService = new Mock(MockBehavior.Loose); - var coreMaskService = new Mock(MockBehavior.Loose); - var associationService = new Mock(MockBehavior.Loose); - - return new ProcessViewModel( - NullLogger.Instance, - processService, - new ProcessFilterService(), - virtualizedProcessService.Object, - cpuTopologyService.Object, - powerPlanService.Object, - notificationService.Object, - systemTrayService.Object, - coreMaskService.Object, - associationService.Object, - gameModeService, - cpuTopologyProvider: cpuTopologyProvider); - } - - private static CpuTopologyModel CreateTwoCoreTopology() - { - return new CpuTopologyModel - { - LogicalCores = - [ - new CpuCoreModel { LogicalCoreId = 0, PhysicalCoreId = 0, Label = "CPU 0" }, - new CpuCoreModel { LogicalCoreId = 1, PhysicalCoreId = 1, Label = "CPU 1" }, - ], - }; - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class ProcessViewModelAffinityTests + { + [Fact] + public async Task SelectingCoreMask_DoesNotApplyProcessorAffinity() + { + var processService = new Mock(MockBehavior.Loose); + var gameModeService = new Mock(MockBehavior.Loose); + gameModeService + .Setup(service => service.DisableGameModeForAffinityAsync()) + .ReturnsAsync(false); + var viewModel = CreateViewModel(processService.Object, gameModeService.Object); + + viewModel.SelectedProcess = new ProcessModel + { + ProcessId = 1234, + Name = "Game", + ProcessorAffinity = 3, + }; + + viewModel.SelectedCoreMask = CoreMask.FromProcessorAffinity(1, 2, "First Core"); + + await Task.Delay(100); + + processService.Verify( + service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task SelectingCoreMask_ReportsPendingAffinityWithoutChangingCurrentAffinity() + { + var processService = new Mock(MockBehavior.Loose); + var gameModeService = new Mock(MockBehavior.Loose); + var viewModel = CreateViewModel(processService.Object, gameModeService.Object); + viewModel.CpuTopology = CreateTwoCoreTopology(); + viewModel.CpuCores = new System.Collections.ObjectModel.ObservableCollection( + viewModel.CpuTopology.LogicalCores); + + viewModel.SelectedProcess = new ProcessModel + { + ProcessId = 1234, + Name = "Game", + ProcessorAffinity = 3, + }; + + viewModel.SelectedCoreMask = CoreMask.FromProcessorAffinity(1, 2, "First Core"); + + await Task.Delay(100); + + Assert.True(viewModel.HasPendingAffinityEdits); + Assert.Equal("Current OS affinity: 0x3", viewModel.CurrentAffinityText); + Assert.Equal("Pending core mask: 0x1", viewModel.PendingAffinityText); + Assert.Equal("Core mask staged. Use Apply Affinity to change Windows affinity.", viewModel.AffinityEditStateText); + } + + [Fact] + public void ConstructorFallbackCoordinator_ReceivesTopologyProviderWhenProvided() + { + var processService = new Mock(MockBehavior.Loose); + var gameModeService = new Mock(MockBehavior.Loose); + var topologyProvider = new Mock(MockBehavior.Strict); + + var viewModel = CreateViewModel( + processService.Object, + gameModeService.Object, + cpuTopologyProvider: topologyProvider.Object); + + var coordinator = typeof(ProcessViewModel) + .GetField( + "processAffinityApplyCoordinator", + System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)! + .GetValue(viewModel); + var provider = typeof(ProcessAffinityApplyCoordinator) + .GetField( + "cpuTopologyProvider", + System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic)! + .GetValue(coordinator); + + Assert.Same(topologyProvider.Object, provider); + } + + private static ProcessViewModel CreateViewModel(IProcessService processService, IGameModeService gameModeService) + => CreateViewModel(processService, gameModeService, cpuTopologyProvider: null); + + private static ProcessViewModel CreateViewModel( + IProcessService processService, + IGameModeService gameModeService, + ICpuTopologyProvider? cpuTopologyProvider) + { + var virtualizedProcessService = new Mock(MockBehavior.Loose); + virtualizedProcessService.SetupProperty( + service => service.Configuration, + new VirtualizedProcessConfig()); + + var cpuTopologyService = new Mock(MockBehavior.Loose); + var powerPlanService = new Mock(MockBehavior.Loose); + var notificationService = new Mock(MockBehavior.Loose); + var systemTrayService = new Mock(MockBehavior.Loose); + var coreMaskService = new Mock(MockBehavior.Loose); + var associationService = new Mock(MockBehavior.Loose); + + return new ProcessViewModel( + NullLogger.Instance, + processService, + new ProcessFilterService(), + virtualizedProcessService.Object, + cpuTopologyService.Object, + powerPlanService.Object, + notificationService.Object, + systemTrayService.Object, + coreMaskService.Object, + associationService.Object, + gameModeService, + cpuTopologyProvider: cpuTopologyProvider); + } + + private static CpuTopologyModel CreateTwoCoreTopology() + { + return new CpuTopologyModel + { + LogicalCores = + [ + new CpuCoreModel { LogicalCoreId = 0, PhysicalCoreId = 0, Label = "CPU 0" }, + new CpuCoreModel { LogicalCoreId = 1, PhysicalCoreId = 1, Label = "CPU 1" }, + ], + }; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessViewModelContextMenuTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessViewModelContextMenuTests.cs index 788e78b..29ae4e5 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessViewModelContextMenuTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessViewModelContextMenuTests.cs @@ -1,848 +1,848 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.ObjectModel; - using System.Diagnostics; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class ProcessViewModelContextMenuTests - { - [Fact] - public async Task ContextCpuPriorityCommand_CallsSafePriorityServicePath() - { - var processService = CreateProcessService(); - var enhancedLoggingService = new Mock(MockBehavior.Loose); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel( - processService.Object, - enhancedLoggingService: enhancedLoggingService.Object, - activityAuditService: audit); - var process = CreateProcess(priority: ProcessPriorityClass.Normal); - - await viewModel.SetContextHighPriorityCommand.ExecuteAsync(process); - - processService.Verify( - service => service.SetProcessPriority(process, ProcessPriorityClass.High), - Times.Once); - enhancedLoggingService.Verify( - service => service.LogUserActionAsync( - "ProcessPriorityChanged", - It.Is(details => details.Contains("Game.exe") && details.Contains("High")), - It.Is(context => context.Contains("PID: 42"))), - Times.Once); - Assert.Equal(ProcessOperationUserMessages.HighPriorityWarning, viewModel.StatusMessage); - Assert.False(viewModel.HasError); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Priority", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Contains("High", entry.Message); - } - - [Fact] - public async Task ApplyContextAffinityCommand_UsesProvidedRowProcess() - { - var processService = CreateProcessService(); - var coordinator = CreateAffinityCoordinator(); - var enhancedLoggingService = new Mock(MockBehavior.Loose); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel( - processService.Object, - processAffinityApplyCoordinator: coordinator.Object, - enhancedLoggingService: enhancedLoggingService.Object, - activityAuditService: audit); - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - new CpuCoreModel { LogicalCoreId = 1, IsSelected = false }, - ]; - var rowProcess = CreateProcess(processId: 100); - - await viewModel.ApplyContextAffinityCommand.ExecuteAsync(rowProcess); - - coordinator.Verify( - service => service.ApplyCoreSelectionAsync( - rowProcess, - It.Is>(mask => mask.Count == 2 && mask[0] && !mask[1]), - "Manual Process tab context menu CPU selection", - default), - Times.Once); - enhancedLoggingService.Verify( - service => service.LogUserActionAsync( - "ProcessAffinityApplied", - It.IsAny(), - It.Is(context => context.Contains("Process: Game.exe") && context.Contains("PID: 100"))), - Times.Once); - Assert.Same(rowProcess, viewModel.SelectedProcess); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Affinity", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - } - - [Fact] - public async Task ApplyContextAffinityCommand_WhenRowProcessDiffersFromSelectedProcess_UsesRowProcess() - { - var processService = CreateProcessService(); - var coordinator = CreateAffinityCoordinator(); - var viewModel = CreateViewModel( - processService.Object, - processAffinityApplyCoordinator: coordinator.Object); - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - new CpuCoreModel { LogicalCoreId = 1, IsSelected = true }, - ]; - var oldSelectedProcess = CreateProcess(processId: 1, name: "Old.exe"); - var rowProcess = CreateProcess(processId: 2, name: "Row.exe"); - viewModel.SelectedProcess = oldSelectedProcess; - - await viewModel.ApplyContextAffinityCommand.ExecuteAsync(rowProcess); - - coordinator.Verify( - service => service.ApplyCoreSelectionAsync( - rowProcess, - It.IsAny>(), - "Manual Process tab context menu CPU selection", - default), - Times.Once); - coordinator.Verify( - service => service.ApplyCoreSelectionAsync( - oldSelectedProcess, - It.IsAny>(), - It.IsAny(), - default), - Times.Never); - Assert.Same(rowProcess, viewModel.SelectedProcess); - } - - [Fact] - public async Task ApplyContextAffinityCommand_DoesNotCallLegacyLongDirectly() - { - var processService = CreateProcessService(); - var coordinator = CreateAffinityCoordinator(); - var viewModel = CreateViewModel( - processService.Object, - processAffinityApplyCoordinator: coordinator.Object); - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - ]; - var rowProcess = CreateProcess(); - - await viewModel.ApplyContextAffinityCommand.ExecuteAsync(rowProcess); - - coordinator.Verify( - service => service.ApplyCoreSelectionAsync( - rowProcess, - It.IsAny>(), - "Manual Process tab context menu CPU selection", - default), - Times.Once); - processService.Verify( - service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public void ContextCpuPriorityActions_DoNotExposeRealtimeAsNormalAction() - { - var viewModel = CreateViewModel(CreateProcessService().Object); - - Assert.DoesNotContain(ProcessPriorityClass.RealTime, viewModel.ContextMenuCpuPriorityActions); - Assert.Contains(ProcessPriorityClass.High, viewModel.ContextMenuCpuPriorityActions); - } - - [Fact] - public async Task SetPriorityCommand_WhenRealtimeRequested_LogsVisibleBlockedEntry() - { - var processService = CreateProcessService(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); - viewModel.SelectedProcess = CreateProcess(); - - await viewModel.SetPriorityCommand.ExecuteAsync(ProcessPriorityClass.RealTime); - - processService.Verify( - service => service.SetProcessPriority(It.IsAny(), ProcessPriorityClass.RealTime), - Times.Never); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Priority", entry.Category); - Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); - Assert.Equal(ProcessOperationUserMessages.RealtimePriorityBlocked, entry.Message); - } - - [Fact] - public async Task ContextMemoryPriorityCommand_CallsMemoryPriorityService() - { - var memoryPriorityService = new Mock(MockBehavior.Strict); - memoryPriorityService - .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.Low)) - .ReturnsAsync(ProcessOperationResult.Succeeded("Memory priority applied.", "ok")); - memoryPriorityService - .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) - .ReturnsAsync(ProcessMemoryPriority.Low); - var enhancedLoggingService = new Mock(MockBehavior.Loose); - var audit = new ActivityAuditService(NullLogger.Instance); - var process = CreateProcess(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - memoryPriorityService: memoryPriorityService.Object, - enhancedLoggingService: enhancedLoggingService.Object, - activityAuditService: audit); - - await viewModel.SetContextMemoryPriorityLowCommand.ExecuteAsync(process); - - memoryPriorityService.Verify( - service => service.SetMemoryPriorityAsync(process, ProcessMemoryPriority.Low), - Times.Once); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Memory Priority", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - enhancedLoggingService.Verify( - service => service.LogUserActionAsync( - "ProcessMemoryPriorityChanged", - It.Is(details => details.Contains("Game.exe") && details.Contains("Low")), - It.Is(context => context.Contains("PID: 42"))), - Times.Once); - } - - [Fact] - public async Task ContextMemoryPriorityCommand_WhenServiceFails_ShowsSafeUserMessage() - { - var memoryPriorityService = new Mock(MockBehavior.Strict); - memoryPriorityService - .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.Normal)) - .ReturnsAsync(ProcessOperationResult.Failed( - "AccessDenied", - ProcessOperationUserMessages.AccessDenied, - "Access is denied.", - isAccessDenied: true)); - var process = CreateProcess(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel( - CreateProcessService().Object, - memoryPriorityService: memoryPriorityService.Object, - activityAuditService: audit); - - await viewModel.SetContextMemoryPriorityNormalCommand.ExecuteAsync(process); - - Assert.Equal(ProcessOperationUserMessages.AccessDenied, viewModel.StatusMessage); - Assert.True(viewModel.HasError); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Memory Priority", entry.Category); - Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); - } - - [Fact] - public async Task ContextMemoryPriorityCommand_WhenSuccessful_UpdatesSelectedProcessSummary() - { - var memoryPriorityService = new Mock(MockBehavior.Strict); - memoryPriorityService - .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.BelowNormal)) - .ReturnsAsync(ProcessOperationResult.Succeeded("Memory priority applied.", "ok")); - memoryPriorityService - .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) - .ReturnsAsync(ProcessMemoryPriority.BelowNormal); - var process = CreateProcess(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - memoryPriorityService: memoryPriorityService.Object); - - await viewModel.SetContextMemoryPriorityBelowNormalCommand.ExecuteAsync(process); - - Assert.Equal(ProcessMemoryPriority.BelowNormal, viewModel.SelectedProcessSummary.MemoryPriority); - Assert.Equal("Memory priority: BelowNormal", viewModel.SelectedProcessSummary.MemoryPriorityText); - } - - [Fact] - public async Task CopyContextProcessInfo_IncludesNamePidAndPath() - { - string? copiedText = null; - var process = CreateProcess(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - clipboardSetter: text => copiedText = text); - - await viewModel.CopyContextProcessInfoCommand.ExecuteAsync(process); - - Assert.NotNull(copiedText); - Assert.Contains("Name: Game.exe", copiedText); - Assert.Contains("PID: 42", copiedText); - Assert.Contains(@"Path: C:\Games\Game.exe", copiedText); - } - - [Fact] - public async Task CopyContextProcessInfo_WhenPathMissing_DoesNotThrow() - { - string? copiedText = null; - var process = CreateProcess(path: string.Empty); - var viewModel = CreateViewModel( - CreateProcessService().Object, - clipboardSetter: text => copiedText = text); - - var exception = await Record.ExceptionAsync( - () => viewModel.CopyContextProcessInfoCommand.ExecuteAsync(process)); - - Assert.Null(exception); - Assert.Contains("Path: unavailable", copiedText); - } - - [Fact] - public async Task OpenContextExecutableLocation_WhenPathMissing_DoesNotThrow() - { - var viewModel = CreateViewModel(CreateProcessService().Object); - - var exception = await Record.ExceptionAsync( - () => viewModel.OpenContextExecutableLocationCommand.ExecuteAsync(CreateProcess(path: string.Empty))); - - Assert.Null(exception); - Assert.Equal("Executable path is unavailable for Game.exe.", viewModel.StatusMessage); - Assert.True(viewModel.HasError); - } - - [Fact] - public async Task ClearContextCpuSetsCommand_CallsSafeCpuSetClearPath() - { - var processService = CreateProcessService(); - processService - .Setup(service => service.ClearProcessCpuSetAsync(It.IsAny())) - .ReturnsAsync(true); - var process = CreateProcess(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); - - await viewModel.ClearContextCpuSetsCommand.ExecuteAsync(process); - - processService.Verify(service => service.ClearProcessCpuSetAsync(process), Times.Once); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Affinity", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - } - - [Fact] - public async Task RefreshContextProcessInfoCommand_RefreshesSelectedProcessInfo() - { - var processService = CreateProcessService(); - var process = CreateProcess(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); - - await viewModel.RefreshContextProcessInfoCommand.ExecuteAsync(process); - - processService.Verify(service => service.RefreshProcessInfo(process), Times.Once); - Assert.Equal("Process info refreshed for Game.exe.", viewModel.StatusMessage); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Process", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - } - - [Fact] - public async Task RefreshProcessesCommand_DoesNotCreateActivityAuditEntry() - { - var processService = CreateProcessService(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); - - await viewModel.RefreshProcessesCommand.ExecuteAsync(null); - - Assert.Empty(await audit.GetEntriesAsync()); - } - - [Fact] - public async Task LockProcessList_WhenEnabled_SkipsRefreshAndKeepsSelection() - { - var processService = CreateProcessService(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); - var selected = CreateProcess(processId: 42); - viewModel.Processes = new ObservableCollection { selected }; - viewModel.FilteredProcesses = new ObservableCollection { selected }; - viewModel.SelectedProcess = selected; - - viewModel.IsProcessListLocked = true; - await viewModel.RefreshProcessesCommand.ExecuteAsync(null); - - processService.Verify(service => service.GetProcessesAsync(), Times.Never); - Assert.Same(selected, viewModel.SelectedProcess); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Process", entry.Category); - Assert.Equal("Lock process list enabled.", entry.Message); - } - - [Fact] - public async Task RefreshProcessesCommand_WhenProcessViewInactive_SkipsProcessRead() - { - var processService = CreateProcessService(); - var viewModel = CreateViewModel(processService.Object); - - viewModel.SetProcessViewActive(false); - await viewModel.RefreshProcessesCommand.ExecuteAsync(null); - - processService.Verify(service => service.GetProcessesAsync(), Times.Never); - processService.Verify(service => service.GetActiveApplicationsAsync(), Times.Never); - } - - [Fact] - public async Task RefreshProcessesCommand_WhenRefreshPaused_SkipsProcessRead() - { - var processService = CreateProcessService(); - var viewModel = CreateViewModel(processService.Object); - - viewModel.PauseRefresh(); - await viewModel.RefreshProcessesCommand.ExecuteAsync(null); - - processService.Verify(service => service.GetProcessesAsync(), Times.Never); - processService.Verify(service => service.GetActiveApplicationsAsync(), Times.Never); - } - - [Fact] - public async Task LoadProcessesCommand_WhenProcessViewInactive_DoesNotPreloadVirtualizedBatch() - { - var processService = CreateProcessService(); - var virtualizedProcessService = CreateVirtualizedProcessService(totalProcessCount: 100); - var viewModel = CreateViewModel( - processService.Object, - virtualizedProcessService: virtualizedProcessService.Object); - - viewModel.SetProcessViewActive(false); - await viewModel.LoadProcessesCommand.ExecuteAsync(null); - - virtualizedProcessService.Verify( - service => service.PreloadNextBatchAsync(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task LoadProcessesCommand_WhenProcessListLocked_DoesNotPreloadVirtualizedBatch() - { - var processService = CreateProcessService(); - var virtualizedProcessService = CreateVirtualizedProcessService(totalProcessCount: 100); - var viewModel = CreateViewModel( - processService.Object, - virtualizedProcessService: virtualizedProcessService.Object); - - viewModel.IsProcessListLocked = true; - await viewModel.LoadProcessesCommand.ExecuteAsync(null); - - virtualizedProcessService.Verify( - service => service.PreloadNextBatchAsync(It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task LockProcessList_WhenDisabled_RefreshesOnceWithoutPersistentRuleSettingChange() - { - var processService = CreateProcessService(); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); - - viewModel.IsProcessListLocked = true; - viewModel.IsProcessListLocked = false; - - processService.Verify(service => service.GetProcessesAsync(), Times.Once); - var entries = await audit.GetEntriesAsync(); - Assert.Contains(entries, entry => entry.Message == "Lock process list enabled."); - Assert.Contains(entries, entry => entry.Message == "Lock process list disabled."); - Assert.DoesNotContain(entries, entry => entry.Message.Contains("refreshed", StringComparison.OrdinalIgnoreCase)); - Assert.DoesNotContain(entries, entry => entry.Message.Contains("Apply saved rules", StringComparison.OrdinalIgnoreCase)); - } - - [Fact] - public async Task ContextMenuActions_DoNotCreatePersistentRules() - { - var processService = CreateProcessService(); - var memoryPriorityService = new Mock(MockBehavior.Strict); - memoryPriorityService - .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.VeryLow)) - .ReturnsAsync(ProcessOperationResult.Succeeded("Memory priority applied.", "ok")); - memoryPriorityService - .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) - .ReturnsAsync(ProcessMemoryPriority.VeryLow); - var ruleStore = new Mock(MockBehavior.Strict); - ruleStore - .Setup(store => store.LoadAsync()) - .ReturnsAsync(Array.Empty()); - var viewModel = CreateViewModel( - processService.Object, - memoryPriorityService: memoryPriorityService.Object, - persistentRuleStore: ruleStore.Object, - clipboardSetter: _ => { }); - var process = CreateProcess(); - - await viewModel.SetContextAboveNormalPriorityCommand.ExecuteAsync(process); - await viewModel.SetContextMemoryPriorityVeryLowCommand.ExecuteAsync(process); - await viewModel.CopyContextProcessInfoCommand.ExecuteAsync(process); - - ruleStore.Verify(store => store.SaveAsync(It.IsAny>()), Times.Never); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleCommand_CreatesRuleForSelectedProcess() - { - var ruleStore = new CapturingRuleStore(); - var enhancedLoggingService = new Mock(MockBehavior.Loose); - var viewModel = CreateViewModel( - CreateProcessService().Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore), - enhancedLoggingService: enhancedLoggingService.Object); - var process = CreateProcess(); - viewModel.SelectedProcess = process; - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - new CpuCoreModel { LogicalCoreId = 1, IsSelected = true }, - ]; - - await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(null); - - var rule = Assert.Single(ruleStore.SavedRules); - Assert.Equal(process.Name, rule.ProcessName); - Assert.Equal(process.ExecutablePath, rule.ExecutablePath); - Assert.Equal("Saved rule for Game.exe.", viewModel.StatusMessage); - enhancedLoggingService.Verify( - service => service.LogUserActionAsync( - "PersistentRuleSaved", - "Saved rule for Game.exe.", - It.Is(context => context.Contains("Process: Game.exe") && context.Contains("PID: 42"))), - Times.Once); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleCommand_UpdatesExistingMatchingRule() - { - var existing = new PersistentProcessRule - { - Id = "rule-1", - Name = "Old", - IsEnabled = true, - ProcessName = "Game.exe", - ExecutablePath = @"C:\Games\Game.exe", - CreatedAt = DateTime.UtcNow.AddDays(-1), - UpdatedAt = DateTime.UtcNow.AddDays(-1), - }; - var ruleStore = new CapturingRuleStore([existing]); - var enhancedLoggingService = new Mock(MockBehavior.Loose); - var viewModel = CreateViewModel( - CreateProcessService().Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore), - enhancedLoggingService: enhancedLoggingService.Object); - - await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(CreateProcess(priority: ProcessPriorityClass.High)); - - var rule = Assert.Single(ruleStore.SavedRules); - Assert.Equal("rule-1", rule.Id); - Assert.Equal(ProcessPriorityClass.High, rule.Priority); - Assert.Equal("Updated saved rule for Game.exe.", viewModel.StatusMessage); - enhancedLoggingService.Verify( - service => service.LogUserActionAsync( - "PersistentRuleSaved", - "Updated saved rule for Game.exe.", - It.Is(context => context.Contains("Process: Game.exe") && context.Contains("PID: 42"))), - Times.Once); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleCommand_WithNormalPriorityAndNoAffinityOrMemoryPriority_ShowsNoActionMessage() - { - var ruleStore = new CapturingRuleStore(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore)); - var process = CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0); - - await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(process); - - Assert.Empty(ruleStore.SavedRules); - Assert.Equal("There are no current settings to save as a rule.", viewModel.StatusMessage); - Assert.True(viewModel.HasError); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleCommand_WithAffinityAndNormalPriority_DoesNotSaveApplyPriorityOnStart() - { - var ruleStore = new CapturingRuleStore(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore)); - var process = CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0x5); - - await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(process); - - var rule = Assert.Single(ruleStore.SavedRules); - Assert.Equal(0x5, rule.LegacyAffinityMask); - Assert.Null(rule.Priority); - Assert.False(rule.ApplyPriorityOnStart); - } - - [Fact] - public async Task ApplyAffinityAndSaveAsRuleCommand_AppliesAffinityBeforeSavingRule() - { - var ruleStore = new CapturingRuleStore(); - var coordinator = CreateAffinityCoordinator(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - processAffinityApplyCoordinator: coordinator.Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore)); - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - new CpuCoreModel { LogicalCoreId = 1, IsSelected = false }, - ]; - var process = CreateProcess(); - - await viewModel.ApplyAffinityAndSaveAsRuleCommand.ExecuteAsync(process); - - coordinator.Verify( - service => service.ApplyCoreSelectionAsync( - process, - It.Is>(mask => mask.Count == 2 && mask[0] && !mask[1]), - "Manual Process tab context menu CPU selection", - default), - Times.Once); - var rule = Assert.Single(ruleStore.SavedRules); - Assert.Equal(1, rule.LegacyAffinityMask); - Assert.True(rule.ApplyAffinityOnStart); - } - - [Fact] - public async Task ApplyAffinityAndSaveAsRuleCommand_WhenAffinityApplyFails_DoesNotSaveRule() - { - var ruleStore = new CapturingRuleStore(); - var coordinator = new Mock(MockBehavior.Strict); - coordinator - .Setup(service => service.ApplyCoreSelectionAsync( - It.IsAny(), - It.IsAny>(), - It.IsAny(), - default)) - .ReturnsAsync(AffinityApplyResult.Failed( - AffinityApplyErrorCodes.AccessDenied, - ProcessOperationUserMessages.AccessDenied, - "Access denied.", - isAccessDenied: true)); - var audit = new ActivityAuditService(NullLogger.Instance); - var viewModel = CreateViewModel( - CreateProcessService().Object, - processAffinityApplyCoordinator: coordinator.Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore), - activityAuditService: audit); - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - ]; - - await viewModel.ApplyAffinityAndSaveAsRuleCommand.ExecuteAsync(CreateProcess()); - - Assert.Empty(ruleStore.SavedRules); - Assert.Equal(ProcessOperationUserMessages.AccessDenied, viewModel.StatusMessage); - Assert.True(viewModel.HasError); - var entry = Assert.Single(await audit.GetEntriesAsync()); - Assert.Equal("Affinity", entry.Category); - Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); - } - - [Fact] - public async Task ApplyAffinityAndSaveAsRuleCommand_UsesRowProcessInsteadOfStaleSelectedProcess() - { - var ruleStore = new CapturingRuleStore(); - var coordinator = CreateAffinityCoordinator(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - processAffinityApplyCoordinator: coordinator.Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore)); - viewModel.CpuCores = - [ - new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, - ]; - var staleSelected = CreateProcess(name: "Old.exe", path: @"C:\Old\Old.exe"); - var rowProcess = CreateProcess(name: "Row.exe", path: @"C:\Row\Row.exe"); - viewModel.SelectedProcess = staleSelected; - - await viewModel.ApplyAffinityAndSaveAsRuleCommand.ExecuteAsync(rowProcess); - - coordinator.Verify( - service => service.ApplyCoreSelectionAsync( - rowProcess, - It.IsAny>(), - It.IsAny(), - default), - Times.Once); - var rule = Assert.Single(ruleStore.SavedRules); - Assert.Equal("Row.exe", rule.ProcessName); - Assert.Equal(@"C:\Row\Row.exe", rule.ExecutablePath); - } - - [Fact] - public async Task SaveCurrentSettingsAsRuleCommand_UpdatesSelectedProcessSummary() - { - var ruleStore = new CapturingRuleStore(); - var viewModel = CreateViewModel( - CreateProcessService().Object, - persistentRuleStore: ruleStore, - processRuleCreationService: CreateRuleCreationService(ruleStore)); - var process = CreateProcess(); - - await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(process); - - Assert.True(viewModel.SelectedProcessSummary.HasThreadPilotRule); - Assert.Equal("Saved rule exists: Game.exe rule", viewModel.SelectedProcessSummary.RuleStatusText); - } - - private static Mock CreateProcessService() - { - var processService = new Mock(MockBehavior.Loose); - processService - .Setup(service => service.GetProcessesAsync()) - .ReturnsAsync(new ObservableCollection()); - processService - .Setup(service => service.GetActiveApplicationsAsync()) - .ReturnsAsync(new ObservableCollection()); - processService - .Setup(service => service.IsProcessStillRunning(It.IsAny())) - .ReturnsAsync(true); - processService - .Setup(service => service.RefreshProcessInfo(It.IsAny())) - .Returns(Task.CompletedTask); - return processService; - } - - private static Mock CreateVirtualizedProcessService(int totalProcessCount) - { - var virtualizedProcessService = new Mock(MockBehavior.Loose); - virtualizedProcessService.SetupProperty( - service => service.Configuration, - new VirtualizedProcessConfig()); - virtualizedProcessService - .Setup(service => service.InitializeAsync()) - .Returns(Task.CompletedTask); - virtualizedProcessService - .Setup(service => service.GetTotalProcessCountAsync(It.IsAny())) - .ReturnsAsync(totalProcessCount); - virtualizedProcessService - .Setup(service => service.LoadProcessBatchAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(new ProcessBatchResult - { - Processes = [CreateProcess()], - BatchIndex = 0, - TotalBatches = 2, - TotalProcessCount = totalProcessCount, - HasMoreBatches = true, - }); - return virtualizedProcessService; - } - - private static Mock CreateAffinityCoordinator() - { - var coordinator = new Mock(MockBehavior.Strict); - coordinator - .Setup(service => service.ApplyCoreSelectionAsync( - It.IsAny(), - It.IsAny>(), - It.IsAny(), - default)) - .ReturnsAsync(AffinityApplyResult.Succeeded(1, 1)); - return coordinator; - } - - private static ProcessViewModel CreateViewModel( - IProcessService processService, - IProcessAffinityApplyCoordinator? processAffinityApplyCoordinator = null, - IProcessMemoryPriorityService? memoryPriorityService = null, - IPersistentProcessRuleStore? persistentRuleStore = null, - IProcessRuleCreationService? processRuleCreationService = null, - Action? clipboardSetter = null, - Action? executableLocationOpener = null, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null, - IVirtualizedProcessService? virtualizedProcessService = null) - { - if (virtualizedProcessService == null) - { - var virtualizedProcessServiceMock = new Mock(MockBehavior.Loose); - virtualizedProcessServiceMock.SetupProperty( - service => service.Configuration, - new VirtualizedProcessConfig()); - virtualizedProcessService = virtualizedProcessServiceMock.Object; - } - - var cpuTopologyService = new Mock(MockBehavior.Loose); - var powerPlanService = new Mock(MockBehavior.Loose); - var notificationService = new Mock(MockBehavior.Loose); - var systemTrayService = new Mock(MockBehavior.Loose); - var coreMaskService = new Mock(MockBehavior.Loose); - var associationService = new Mock(MockBehavior.Loose); - var gameModeService = new Mock(MockBehavior.Loose); - - return new ProcessViewModel( - NullLogger.Instance, - processService, - new ProcessFilterService(), - virtualizedProcessService, - cpuTopologyService.Object, - powerPlanService.Object, - notificationService.Object, - systemTrayService.Object, - coreMaskService.Object, - associationService.Object, - gameModeService.Object, - processAffinityApplyCoordinator: processAffinityApplyCoordinator, - enhancedLoggingService: enhancedLoggingService, - activityAuditService: activityAuditService, - memoryPriorityService: memoryPriorityService, - persistentRuleStore: persistentRuleStore, - persistentRuleMatcher: new PersistentProcessRuleMatcher(), - processRuleCreationService: processRuleCreationService, - clipboardSetter: clipboardSetter, - executableLocationOpener: executableLocationOpener); - } - - private static ProcessModel CreateProcess( - string name = "Game.exe", - int processId = 42, - string path = @"C:\Games\Game.exe", - ProcessPriorityClass priority = ProcessPriorityClass.Normal, - long affinity = 0xF) - => new() - { - ProcessId = processId, - Name = name, - ExecutablePath = path, - CpuUsage = 1.5, - MemoryUsage = 128 * 1024 * 1024, - Priority = priority, - ProcessorAffinity = affinity, - Classification = ProcessClassification.ForegroundApp, - }; - - private static ProcessRuleCreationService CreateRuleCreationService(IPersistentProcessRuleStore ruleStore) => - new( - ruleStore, - topologyProvider: null, - new CpuSelectionMigrationService(), - NullLogger.Instance); - - private sealed class CapturingRuleStore(IReadOnlyList? initialRules = null) - : IPersistentProcessRuleStore - { - public IReadOnlyList SavedRules { get; private set; } = initialRules ?? []; - - public Task> LoadAsync() => - Task.FromResult(this.SavedRules); - - public Task SaveAsync(IReadOnlyList rules) - { - this.SavedRules = rules.ToList(); - return Task.CompletedTask; - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Collections.ObjectModel; + using System.Diagnostics; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class ProcessViewModelContextMenuTests + { + [Fact] + public async Task ContextCpuPriorityCommand_CallsSafePriorityServicePath() + { + var processService = CreateProcessService(); + var enhancedLoggingService = new Mock(MockBehavior.Loose); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel( + processService.Object, + enhancedLoggingService: enhancedLoggingService.Object, + activityAuditService: audit); + var process = CreateProcess(priority: ProcessPriorityClass.Normal); + + await viewModel.SetContextHighPriorityCommand.ExecuteAsync(process); + + processService.Verify( + service => service.SetProcessPriority(process, ProcessPriorityClass.High), + Times.Once); + enhancedLoggingService.Verify( + service => service.LogUserActionAsync( + "ProcessPriorityChanged", + It.Is(details => details.Contains("Game.exe") && details.Contains("High")), + It.Is(context => context.Contains("PID: 42"))), + Times.Once); + Assert.Equal(ProcessOperationUserMessages.HighPriorityWarning, viewModel.StatusMessage); + Assert.False(viewModel.HasError); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Priority", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Contains("High", entry.Message); + } + + [Fact] + public async Task ApplyContextAffinityCommand_UsesProvidedRowProcess() + { + var processService = CreateProcessService(); + var coordinator = CreateAffinityCoordinator(); + var enhancedLoggingService = new Mock(MockBehavior.Loose); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel( + processService.Object, + processAffinityApplyCoordinator: coordinator.Object, + enhancedLoggingService: enhancedLoggingService.Object, + activityAuditService: audit); + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + new CpuCoreModel { LogicalCoreId = 1, IsSelected = false }, + ]; + var rowProcess = CreateProcess(processId: 100); + + await viewModel.ApplyContextAffinityCommand.ExecuteAsync(rowProcess); + + coordinator.Verify( + service => service.ApplyCoreSelectionAsync( + rowProcess, + It.Is>(mask => mask.Count == 2 && mask[0] && !mask[1]), + "Manual Process tab context menu CPU selection", + default), + Times.Once); + enhancedLoggingService.Verify( + service => service.LogUserActionAsync( + "ProcessAffinityApplied", + It.IsAny(), + It.Is(context => context.Contains("Process: Game.exe") && context.Contains("PID: 100"))), + Times.Once); + Assert.Same(rowProcess, viewModel.SelectedProcess); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Affinity", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + } + + [Fact] + public async Task ApplyContextAffinityCommand_WhenRowProcessDiffersFromSelectedProcess_UsesRowProcess() + { + var processService = CreateProcessService(); + var coordinator = CreateAffinityCoordinator(); + var viewModel = CreateViewModel( + processService.Object, + processAffinityApplyCoordinator: coordinator.Object); + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + new CpuCoreModel { LogicalCoreId = 1, IsSelected = true }, + ]; + var oldSelectedProcess = CreateProcess(processId: 1, name: "Old.exe"); + var rowProcess = CreateProcess(processId: 2, name: "Row.exe"); + viewModel.SelectedProcess = oldSelectedProcess; + + await viewModel.ApplyContextAffinityCommand.ExecuteAsync(rowProcess); + + coordinator.Verify( + service => service.ApplyCoreSelectionAsync( + rowProcess, + It.IsAny>(), + "Manual Process tab context menu CPU selection", + default), + Times.Once); + coordinator.Verify( + service => service.ApplyCoreSelectionAsync( + oldSelectedProcess, + It.IsAny>(), + It.IsAny(), + default), + Times.Never); + Assert.Same(rowProcess, viewModel.SelectedProcess); + } + + [Fact] + public async Task ApplyContextAffinityCommand_DoesNotCallLegacyLongDirectly() + { + var processService = CreateProcessService(); + var coordinator = CreateAffinityCoordinator(); + var viewModel = CreateViewModel( + processService.Object, + processAffinityApplyCoordinator: coordinator.Object); + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + ]; + var rowProcess = CreateProcess(); + + await viewModel.ApplyContextAffinityCommand.ExecuteAsync(rowProcess); + + coordinator.Verify( + service => service.ApplyCoreSelectionAsync( + rowProcess, + It.IsAny>(), + "Manual Process tab context menu CPU selection", + default), + Times.Once); + processService.Verify( + service => service.SetProcessorAffinity(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public void ContextCpuPriorityActions_DoNotExposeRealtimeAsNormalAction() + { + var viewModel = CreateViewModel(CreateProcessService().Object); + + Assert.DoesNotContain(ProcessPriorityClass.RealTime, viewModel.ContextMenuCpuPriorityActions); + Assert.Contains(ProcessPriorityClass.High, viewModel.ContextMenuCpuPriorityActions); + } + + [Fact] + public async Task SetPriorityCommand_WhenRealtimeRequested_LogsVisibleBlockedEntry() + { + var processService = CreateProcessService(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); + viewModel.SelectedProcess = CreateProcess(); + + await viewModel.SetPriorityCommand.ExecuteAsync(ProcessPriorityClass.RealTime); + + processService.Verify( + service => service.SetProcessPriority(It.IsAny(), ProcessPriorityClass.RealTime), + Times.Never); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Priority", entry.Category); + Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); + Assert.Equal(ProcessOperationUserMessages.RealtimePriorityBlocked, entry.Message); + } + + [Fact] + public async Task ContextMemoryPriorityCommand_CallsMemoryPriorityService() + { + var memoryPriorityService = new Mock(MockBehavior.Strict); + memoryPriorityService + .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.Low)) + .ReturnsAsync(ProcessOperationResult.Succeeded("Memory priority applied.", "ok")); + memoryPriorityService + .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) + .ReturnsAsync(ProcessMemoryPriority.Low); + var enhancedLoggingService = new Mock(MockBehavior.Loose); + var audit = new ActivityAuditService(NullLogger.Instance); + var process = CreateProcess(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + memoryPriorityService: memoryPriorityService.Object, + enhancedLoggingService: enhancedLoggingService.Object, + activityAuditService: audit); + + await viewModel.SetContextMemoryPriorityLowCommand.ExecuteAsync(process); + + memoryPriorityService.Verify( + service => service.SetMemoryPriorityAsync(process, ProcessMemoryPriority.Low), + Times.Once); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Memory Priority", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + enhancedLoggingService.Verify( + service => service.LogUserActionAsync( + "ProcessMemoryPriorityChanged", + It.Is(details => details.Contains("Game.exe") && details.Contains("Low")), + It.Is(context => context.Contains("PID: 42"))), + Times.Once); + } + + [Fact] + public async Task ContextMemoryPriorityCommand_WhenServiceFails_ShowsSafeUserMessage() + { + var memoryPriorityService = new Mock(MockBehavior.Strict); + memoryPriorityService + .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.Normal)) + .ReturnsAsync(ProcessOperationResult.Failed( + "AccessDenied", + ProcessOperationUserMessages.AccessDenied, + "Access is denied.", + isAccessDenied: true)); + var process = CreateProcess(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel( + CreateProcessService().Object, + memoryPriorityService: memoryPriorityService.Object, + activityAuditService: audit); + + await viewModel.SetContextMemoryPriorityNormalCommand.ExecuteAsync(process); + + Assert.Equal(ProcessOperationUserMessages.AccessDenied, viewModel.StatusMessage); + Assert.True(viewModel.HasError); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Memory Priority", entry.Category); + Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); + } + + [Fact] + public async Task ContextMemoryPriorityCommand_WhenSuccessful_UpdatesSelectedProcessSummary() + { + var memoryPriorityService = new Mock(MockBehavior.Strict); + memoryPriorityService + .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.BelowNormal)) + .ReturnsAsync(ProcessOperationResult.Succeeded("Memory priority applied.", "ok")); + memoryPriorityService + .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) + .ReturnsAsync(ProcessMemoryPriority.BelowNormal); + var process = CreateProcess(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + memoryPriorityService: memoryPriorityService.Object); + + await viewModel.SetContextMemoryPriorityBelowNormalCommand.ExecuteAsync(process); + + Assert.Equal(ProcessMemoryPriority.BelowNormal, viewModel.SelectedProcessSummary.MemoryPriority); + Assert.Equal("Memory priority: BelowNormal", viewModel.SelectedProcessSummary.MemoryPriorityText); + } + + [Fact] + public async Task CopyContextProcessInfo_IncludesNamePidAndPath() + { + string? copiedText = null; + var process = CreateProcess(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + clipboardSetter: text => copiedText = text); + + await viewModel.CopyContextProcessInfoCommand.ExecuteAsync(process); + + Assert.NotNull(copiedText); + Assert.Contains("Name: Game.exe", copiedText); + Assert.Contains("PID: 42", copiedText); + Assert.Contains(@"Path: C:\Games\Game.exe", copiedText); + } + + [Fact] + public async Task CopyContextProcessInfo_WhenPathMissing_DoesNotThrow() + { + string? copiedText = null; + var process = CreateProcess(path: string.Empty); + var viewModel = CreateViewModel( + CreateProcessService().Object, + clipboardSetter: text => copiedText = text); + + var exception = await Record.ExceptionAsync( + () => viewModel.CopyContextProcessInfoCommand.ExecuteAsync(process)); + + Assert.Null(exception); + Assert.Contains("Path: unavailable", copiedText); + } + + [Fact] + public async Task OpenContextExecutableLocation_WhenPathMissing_DoesNotThrow() + { + var viewModel = CreateViewModel(CreateProcessService().Object); + + var exception = await Record.ExceptionAsync( + () => viewModel.OpenContextExecutableLocationCommand.ExecuteAsync(CreateProcess(path: string.Empty))); + + Assert.Null(exception); + Assert.Equal("Executable path is unavailable for Game.exe.", viewModel.StatusMessage); + Assert.True(viewModel.HasError); + } + + [Fact] + public async Task ClearContextCpuSetsCommand_CallsSafeCpuSetClearPath() + { + var processService = CreateProcessService(); + processService + .Setup(service => service.ClearProcessCpuSetAsync(It.IsAny())) + .ReturnsAsync(true); + var process = CreateProcess(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); + + await viewModel.ClearContextCpuSetsCommand.ExecuteAsync(process); + + processService.Verify(service => service.ClearProcessCpuSetAsync(process), Times.Once); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Affinity", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + } + + [Fact] + public async Task RefreshContextProcessInfoCommand_RefreshesSelectedProcessInfo() + { + var processService = CreateProcessService(); + var process = CreateProcess(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); + + await viewModel.RefreshContextProcessInfoCommand.ExecuteAsync(process); + + processService.Verify(service => service.RefreshProcessInfo(process), Times.Once); + Assert.Equal("Process info refreshed for Game.exe.", viewModel.StatusMessage); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Process", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + } + + [Fact] + public async Task RefreshProcessesCommand_DoesNotCreateActivityAuditEntry() + { + var processService = CreateProcessService(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); + + await viewModel.RefreshProcessesCommand.ExecuteAsync(null); + + Assert.Empty(await audit.GetEntriesAsync()); + } + + [Fact] + public async Task LockProcessList_WhenEnabled_SkipsRefreshAndKeepsSelection() + { + var processService = CreateProcessService(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); + var selected = CreateProcess(processId: 42); + viewModel.Processes = new ObservableCollection { selected }; + viewModel.FilteredProcesses = new ObservableCollection { selected }; + viewModel.SelectedProcess = selected; + + viewModel.IsProcessListLocked = true; + await viewModel.RefreshProcessesCommand.ExecuteAsync(null); + + processService.Verify(service => service.GetProcessesAsync(), Times.Never); + Assert.Same(selected, viewModel.SelectedProcess); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Process", entry.Category); + Assert.Equal("Lock process list enabled.", entry.Message); + } + + [Fact] + public async Task RefreshProcessesCommand_WhenProcessViewInactive_SkipsProcessRead() + { + var processService = CreateProcessService(); + var viewModel = CreateViewModel(processService.Object); + + viewModel.SetProcessViewActive(false); + await viewModel.RefreshProcessesCommand.ExecuteAsync(null); + + processService.Verify(service => service.GetProcessesAsync(), Times.Never); + processService.Verify(service => service.GetActiveApplicationsAsync(), Times.Never); + } + + [Fact] + public async Task RefreshProcessesCommand_WhenRefreshPaused_SkipsProcessRead() + { + var processService = CreateProcessService(); + var viewModel = CreateViewModel(processService.Object); + + viewModel.PauseRefresh(); + await viewModel.RefreshProcessesCommand.ExecuteAsync(null); + + processService.Verify(service => service.GetProcessesAsync(), Times.Never); + processService.Verify(service => service.GetActiveApplicationsAsync(), Times.Never); + } + + [Fact] + public async Task LoadProcessesCommand_WhenProcessViewInactive_DoesNotPreloadVirtualizedBatch() + { + var processService = CreateProcessService(); + var virtualizedProcessService = CreateVirtualizedProcessService(totalProcessCount: 100); + var viewModel = CreateViewModel( + processService.Object, + virtualizedProcessService: virtualizedProcessService.Object); + + viewModel.SetProcessViewActive(false); + await viewModel.LoadProcessesCommand.ExecuteAsync(null); + + virtualizedProcessService.Verify( + service => service.PreloadNextBatchAsync(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task LoadProcessesCommand_WhenProcessListLocked_DoesNotPreloadVirtualizedBatch() + { + var processService = CreateProcessService(); + var virtualizedProcessService = CreateVirtualizedProcessService(totalProcessCount: 100); + var viewModel = CreateViewModel( + processService.Object, + virtualizedProcessService: virtualizedProcessService.Object); + + viewModel.IsProcessListLocked = true; + await viewModel.LoadProcessesCommand.ExecuteAsync(null); + + virtualizedProcessService.Verify( + service => service.PreloadNextBatchAsync(It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task LockProcessList_WhenDisabled_RefreshesOnceWithoutPersistentRuleSettingChange() + { + var processService = CreateProcessService(); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel(processService.Object, activityAuditService: audit); + + viewModel.IsProcessListLocked = true; + viewModel.IsProcessListLocked = false; + + processService.Verify(service => service.GetProcessesAsync(), Times.Once); + var entries = await audit.GetEntriesAsync(); + Assert.Contains(entries, entry => entry.Message == "Lock process list enabled."); + Assert.Contains(entries, entry => entry.Message == "Lock process list disabled."); + Assert.DoesNotContain(entries, entry => entry.Message.Contains("refreshed", StringComparison.OrdinalIgnoreCase)); + Assert.DoesNotContain(entries, entry => entry.Message.Contains("Apply saved rules", StringComparison.OrdinalIgnoreCase)); + } + + [Fact] + public async Task ContextMenuActions_DoNotCreatePersistentRules() + { + var processService = CreateProcessService(); + var memoryPriorityService = new Mock(MockBehavior.Strict); + memoryPriorityService + .Setup(service => service.SetMemoryPriorityAsync(It.IsAny(), ProcessMemoryPriority.VeryLow)) + .ReturnsAsync(ProcessOperationResult.Succeeded("Memory priority applied.", "ok")); + memoryPriorityService + .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) + .ReturnsAsync(ProcessMemoryPriority.VeryLow); + var ruleStore = new Mock(MockBehavior.Strict); + ruleStore + .Setup(store => store.LoadAsync()) + .ReturnsAsync(Array.Empty()); + var viewModel = CreateViewModel( + processService.Object, + memoryPriorityService: memoryPriorityService.Object, + persistentRuleStore: ruleStore.Object, + clipboardSetter: _ => { }); + var process = CreateProcess(); + + await viewModel.SetContextAboveNormalPriorityCommand.ExecuteAsync(process); + await viewModel.SetContextMemoryPriorityVeryLowCommand.ExecuteAsync(process); + await viewModel.CopyContextProcessInfoCommand.ExecuteAsync(process); + + ruleStore.Verify(store => store.SaveAsync(It.IsAny>()), Times.Never); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleCommand_CreatesRuleForSelectedProcess() + { + var ruleStore = new CapturingRuleStore(); + var enhancedLoggingService = new Mock(MockBehavior.Loose); + var viewModel = CreateViewModel( + CreateProcessService().Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore), + enhancedLoggingService: enhancedLoggingService.Object); + var process = CreateProcess(); + viewModel.SelectedProcess = process; + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + new CpuCoreModel { LogicalCoreId = 1, IsSelected = true }, + ]; + + await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(null); + + var rule = Assert.Single(ruleStore.SavedRules); + Assert.Equal(process.Name, rule.ProcessName); + Assert.Equal(process.ExecutablePath, rule.ExecutablePath); + Assert.Equal("Saved rule for Game.exe.", viewModel.StatusMessage); + enhancedLoggingService.Verify( + service => service.LogUserActionAsync( + "PersistentRuleSaved", + "Saved rule for Game.exe.", + It.Is(context => context.Contains("Process: Game.exe") && context.Contains("PID: 42"))), + Times.Once); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleCommand_UpdatesExistingMatchingRule() + { + var existing = new PersistentProcessRule + { + Id = "rule-1", + Name = "Old", + IsEnabled = true, + ProcessName = "Game.exe", + ExecutablePath = @"C:\Games\Game.exe", + CreatedAt = DateTime.UtcNow.AddDays(-1), + UpdatedAt = DateTime.UtcNow.AddDays(-1), + }; + var ruleStore = new CapturingRuleStore([existing]); + var enhancedLoggingService = new Mock(MockBehavior.Loose); + var viewModel = CreateViewModel( + CreateProcessService().Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore), + enhancedLoggingService: enhancedLoggingService.Object); + + await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(CreateProcess(priority: ProcessPriorityClass.High)); + + var rule = Assert.Single(ruleStore.SavedRules); + Assert.Equal("rule-1", rule.Id); + Assert.Equal(ProcessPriorityClass.High, rule.Priority); + Assert.Equal("Updated saved rule for Game.exe.", viewModel.StatusMessage); + enhancedLoggingService.Verify( + service => service.LogUserActionAsync( + "PersistentRuleSaved", + "Updated saved rule for Game.exe.", + It.Is(context => context.Contains("Process: Game.exe") && context.Contains("PID: 42"))), + Times.Once); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleCommand_WithNormalPriorityAndNoAffinityOrMemoryPriority_ShowsNoActionMessage() + { + var ruleStore = new CapturingRuleStore(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore)); + var process = CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0); + + await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(process); + + Assert.Empty(ruleStore.SavedRules); + Assert.Equal("There are no current settings to save as a rule.", viewModel.StatusMessage); + Assert.True(viewModel.HasError); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleCommand_WithAffinityAndNormalPriority_DoesNotSaveApplyPriorityOnStart() + { + var ruleStore = new CapturingRuleStore(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore)); + var process = CreateProcess(priority: ProcessPriorityClass.Normal, affinity: 0x5); + + await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(process); + + var rule = Assert.Single(ruleStore.SavedRules); + Assert.Equal(0x5, rule.LegacyAffinityMask); + Assert.Null(rule.Priority); + Assert.False(rule.ApplyPriorityOnStart); + } + + [Fact] + public async Task ApplyAffinityAndSaveAsRuleCommand_AppliesAffinityBeforeSavingRule() + { + var ruleStore = new CapturingRuleStore(); + var coordinator = CreateAffinityCoordinator(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + processAffinityApplyCoordinator: coordinator.Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore)); + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + new CpuCoreModel { LogicalCoreId = 1, IsSelected = false }, + ]; + var process = CreateProcess(); + + await viewModel.ApplyAffinityAndSaveAsRuleCommand.ExecuteAsync(process); + + coordinator.Verify( + service => service.ApplyCoreSelectionAsync( + process, + It.Is>(mask => mask.Count == 2 && mask[0] && !mask[1]), + "Manual Process tab context menu CPU selection", + default), + Times.Once); + var rule = Assert.Single(ruleStore.SavedRules); + Assert.Equal(1, rule.LegacyAffinityMask); + Assert.True(rule.ApplyAffinityOnStart); + } + + [Fact] + public async Task ApplyAffinityAndSaveAsRuleCommand_WhenAffinityApplyFails_DoesNotSaveRule() + { + var ruleStore = new CapturingRuleStore(); + var coordinator = new Mock(MockBehavior.Strict); + coordinator + .Setup(service => service.ApplyCoreSelectionAsync( + It.IsAny(), + It.IsAny>(), + It.IsAny(), + default)) + .ReturnsAsync(AffinityApplyResult.Failed( + AffinityApplyErrorCodes.AccessDenied, + ProcessOperationUserMessages.AccessDenied, + "Access denied.", + isAccessDenied: true)); + var audit = new ActivityAuditService(NullLogger.Instance); + var viewModel = CreateViewModel( + CreateProcessService().Object, + processAffinityApplyCoordinator: coordinator.Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore), + activityAuditService: audit); + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + ]; + + await viewModel.ApplyAffinityAndSaveAsRuleCommand.ExecuteAsync(CreateProcess()); + + Assert.Empty(ruleStore.SavedRules); + Assert.Equal(ProcessOperationUserMessages.AccessDenied, viewModel.StatusMessage); + Assert.True(viewModel.HasError); + var entry = Assert.Single(await audit.GetEntriesAsync()); + Assert.Equal("Affinity", entry.Category); + Assert.Equal(ActivityAuditSeverity.Warning, entry.Severity); + } + + [Fact] + public async Task ApplyAffinityAndSaveAsRuleCommand_UsesRowProcessInsteadOfStaleSelectedProcess() + { + var ruleStore = new CapturingRuleStore(); + var coordinator = CreateAffinityCoordinator(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + processAffinityApplyCoordinator: coordinator.Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore)); + viewModel.CpuCores = + [ + new CpuCoreModel { LogicalCoreId = 0, IsSelected = true }, + ]; + var staleSelected = CreateProcess(name: "Old.exe", path: @"C:\Old\Old.exe"); + var rowProcess = CreateProcess(name: "Row.exe", path: @"C:\Row\Row.exe"); + viewModel.SelectedProcess = staleSelected; + + await viewModel.ApplyAffinityAndSaveAsRuleCommand.ExecuteAsync(rowProcess); + + coordinator.Verify( + service => service.ApplyCoreSelectionAsync( + rowProcess, + It.IsAny>(), + It.IsAny(), + default), + Times.Once); + var rule = Assert.Single(ruleStore.SavedRules); + Assert.Equal("Row.exe", rule.ProcessName); + Assert.Equal(@"C:\Row\Row.exe", rule.ExecutablePath); + } + + [Fact] + public async Task SaveCurrentSettingsAsRuleCommand_UpdatesSelectedProcessSummary() + { + var ruleStore = new CapturingRuleStore(); + var viewModel = CreateViewModel( + CreateProcessService().Object, + persistentRuleStore: ruleStore, + processRuleCreationService: CreateRuleCreationService(ruleStore)); + var process = CreateProcess(); + + await viewModel.SaveCurrentSettingsAsRuleCommand.ExecuteAsync(process); + + Assert.True(viewModel.SelectedProcessSummary.HasThreadPilotRule); + Assert.Equal("Saved rule exists: Game.exe rule", viewModel.SelectedProcessSummary.RuleStatusText); + } + + private static Mock CreateProcessService() + { + var processService = new Mock(MockBehavior.Loose); + processService + .Setup(service => service.GetProcessesAsync()) + .ReturnsAsync(new ObservableCollection()); + processService + .Setup(service => service.GetActiveApplicationsAsync()) + .ReturnsAsync(new ObservableCollection()); + processService + .Setup(service => service.IsProcessStillRunning(It.IsAny())) + .ReturnsAsync(true); + processService + .Setup(service => service.RefreshProcessInfo(It.IsAny())) + .Returns(Task.CompletedTask); + return processService; + } + + private static Mock CreateVirtualizedProcessService(int totalProcessCount) + { + var virtualizedProcessService = new Mock(MockBehavior.Loose); + virtualizedProcessService.SetupProperty( + service => service.Configuration, + new VirtualizedProcessConfig()); + virtualizedProcessService + .Setup(service => service.InitializeAsync()) + .Returns(Task.CompletedTask); + virtualizedProcessService + .Setup(service => service.GetTotalProcessCountAsync(It.IsAny())) + .ReturnsAsync(totalProcessCount); + virtualizedProcessService + .Setup(service => service.LoadProcessBatchAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(new ProcessBatchResult + { + Processes = [CreateProcess()], + BatchIndex = 0, + TotalBatches = 2, + TotalProcessCount = totalProcessCount, + HasMoreBatches = true, + }); + return virtualizedProcessService; + } + + private static Mock CreateAffinityCoordinator() + { + var coordinator = new Mock(MockBehavior.Strict); + coordinator + .Setup(service => service.ApplyCoreSelectionAsync( + It.IsAny(), + It.IsAny>(), + It.IsAny(), + default)) + .ReturnsAsync(AffinityApplyResult.Succeeded(1, 1)); + return coordinator; + } + + private static ProcessViewModel CreateViewModel( + IProcessService processService, + IProcessAffinityApplyCoordinator? processAffinityApplyCoordinator = null, + IProcessMemoryPriorityService? memoryPriorityService = null, + IPersistentProcessRuleStore? persistentRuleStore = null, + IProcessRuleCreationService? processRuleCreationService = null, + Action? clipboardSetter = null, + Action? executableLocationOpener = null, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null, + IVirtualizedProcessService? virtualizedProcessService = null) + { + if (virtualizedProcessService == null) + { + var virtualizedProcessServiceMock = new Mock(MockBehavior.Loose); + virtualizedProcessServiceMock.SetupProperty( + service => service.Configuration, + new VirtualizedProcessConfig()); + virtualizedProcessService = virtualizedProcessServiceMock.Object; + } + + var cpuTopologyService = new Mock(MockBehavior.Loose); + var powerPlanService = new Mock(MockBehavior.Loose); + var notificationService = new Mock(MockBehavior.Loose); + var systemTrayService = new Mock(MockBehavior.Loose); + var coreMaskService = new Mock(MockBehavior.Loose); + var associationService = new Mock(MockBehavior.Loose); + var gameModeService = new Mock(MockBehavior.Loose); + + return new ProcessViewModel( + NullLogger.Instance, + processService, + new ProcessFilterService(), + virtualizedProcessService, + cpuTopologyService.Object, + powerPlanService.Object, + notificationService.Object, + systemTrayService.Object, + coreMaskService.Object, + associationService.Object, + gameModeService.Object, + processAffinityApplyCoordinator: processAffinityApplyCoordinator, + enhancedLoggingService: enhancedLoggingService, + activityAuditService: activityAuditService, + memoryPriorityService: memoryPriorityService, + persistentRuleStore: persistentRuleStore, + persistentRuleMatcher: new PersistentProcessRuleMatcher(), + processRuleCreationService: processRuleCreationService, + clipboardSetter: clipboardSetter, + executableLocationOpener: executableLocationOpener); + } + + private static ProcessModel CreateProcess( + string name = "Game.exe", + int processId = 42, + string path = @"C:\Games\Game.exe", + ProcessPriorityClass priority = ProcessPriorityClass.Normal, + long affinity = 0xF) + => new() + { + ProcessId = processId, + Name = name, + ExecutablePath = path, + CpuUsage = 1.5, + MemoryUsage = 128 * 1024 * 1024, + Priority = priority, + ProcessorAffinity = affinity, + Classification = ProcessClassification.ForegroundApp, + }; + + private static ProcessRuleCreationService CreateRuleCreationService(IPersistentProcessRuleStore ruleStore) => + new( + ruleStore, + topologyProvider: null, + new CpuSelectionMigrationService(), + NullLogger.Instance); + + private sealed class CapturingRuleStore(IReadOnlyList? initialRules = null) + : IPersistentProcessRuleStore + { + public IReadOnlyList SavedRules { get; private set; } = initialRules ?? []; + + public Task> LoadAsync() => + Task.FromResult(this.SavedRules); + + public Task SaveAsync(IReadOnlyList rules) + { + this.SavedRules = rules.ToList(); + return Task.CompletedTask; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ProcessViewXamlBindingTests.cs b/Tests/ThreadPilot.Core.Tests/ProcessViewXamlBindingTests.cs index 9348f80..39861df 100644 --- a/Tests/ThreadPilot.Core.Tests/ProcessViewXamlBindingTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ProcessViewXamlBindingTests.cs @@ -1,289 +1,289 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Xml.Linq; - - public sealed class ProcessViewXamlBindingTests - { - private static readonly string ProcessViewPath = Path.Combine( - AppContext.BaseDirectory, - "..", - "..", - "..", - "..", - "..", - "Views", - "ProcessView.xaml"); - - [Fact] - public void LastOperationMessageBinding_IsDisplayOnly() - { - var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); - var lastOperationBindings = document - .Descendants() - .SelectMany(element => element.Attributes().Select(attribute => new - { - Element = element.Name.LocalName, - Attribute = attribute.Name.LocalName, - Value = attribute.Value, - })) - .Where(attribute => attribute.Value.Contains("SelectedProcessSummary.LastOperationMessage", StringComparison.Ordinal)) - .ToList(); - - var binding = Assert.Single(lastOperationBindings); - Assert.Equal("Text", binding.Attribute); - Assert.Contains("Mode=OneWay", binding.Value, StringComparison.Ordinal); - } - - [Fact] - public void SelectedProcessSummaryBindings_AreNotUsedByEditableControls() - { - var editableControls = new HashSet(StringComparer.Ordinal) - { - "CheckBox", - "ComboBox", - "DatePicker", - "PasswordBox", - "Slider", - "TextBox", - "ToggleButton", - }; - var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); - - var editableSummaryBindings = document - .Descendants() - .Where(element => editableControls.Contains(element.Name.LocalName)) - .SelectMany(element => element.Attributes().Select(attribute => new - { - Element = element.Name.LocalName, - Attribute = attribute.Name.LocalName, - Value = attribute.Value, - })) - .Where(attribute => attribute.Value.Contains("SelectedProcessSummary.", StringComparison.Ordinal)) - .ToList(); - - Assert.Empty(editableSummaryBindings); - } - - [Fact] - public void ProcessGridRowStyle_HighlightsSelectedRowsWithAccentTheme() - { - var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.Contains("IsSelected", serialized, StringComparison.Ordinal); - Assert.Contains("Accent", serialized, StringComparison.Ordinal); - Assert.Contains("BorderThickness", serialized, StringComparison.Ordinal); - } - - [Fact] - public void ProcessGridContextMenu_MenuItemsUseStableDetachedMenuStyle() - { - var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.Contains("()", updateCheckSection, StringComparison.Ordinal); - Assert.Contains("CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup))", updateCheckSection, StringComparison.Ordinal); - Assert.Contains("Startup update check ignored failure", updateCheckSection, StringComparison.Ordinal); - Assert.DoesNotContain("System.Windows.MessageBox.Show", updateCheckSection, StringComparison.Ordinal); - } - - [Fact] - public void LegacyActionSidePanel_IsNotPersistentPrimaryUi() - { - var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); - var serialized = document.ToString(SaveOptions.DisableFormatting); - - Assert.Contains("Grid.Column=\"2\" Visibility=\"Collapsed\"", serialized, StringComparison.Ordinal); - Assert.Contains("ProcessView_AdvancedAffinityPicker", serialized, StringComparison.Ordinal); - } - - private static string GetRepositoryRoot() - { - var directory = new DirectoryInfo(AppContext.BaseDirectory); - while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj"))) - { - directory = directory.Parent; - } - - if (directory == null) - { - throw new InvalidOperationException("Repository root was not found."); - } - - return directory.FullName; - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Xml.Linq; + + public sealed class ProcessViewXamlBindingTests + { + private static readonly string ProcessViewPath = Path.Combine( + AppContext.BaseDirectory, + "..", + "..", + "..", + "..", + "..", + "Views", + "ProcessView.xaml"); + + [Fact] + public void LastOperationMessageBinding_IsDisplayOnly() + { + var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); + var lastOperationBindings = document + .Descendants() + .SelectMany(element => element.Attributes().Select(attribute => new + { + Element = element.Name.LocalName, + Attribute = attribute.Name.LocalName, + Value = attribute.Value, + })) + .Where(attribute => attribute.Value.Contains("SelectedProcessSummary.LastOperationMessage", StringComparison.Ordinal)) + .ToList(); + + var binding = Assert.Single(lastOperationBindings); + Assert.Equal("Text", binding.Attribute); + Assert.Contains("Mode=OneWay", binding.Value, StringComparison.Ordinal); + } + + [Fact] + public void SelectedProcessSummaryBindings_AreNotUsedByEditableControls() + { + var editableControls = new HashSet(StringComparer.Ordinal) + { + "CheckBox", + "ComboBox", + "DatePicker", + "PasswordBox", + "Slider", + "TextBox", + "ToggleButton", + }; + var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); + + var editableSummaryBindings = document + .Descendants() + .Where(element => editableControls.Contains(element.Name.LocalName)) + .SelectMany(element => element.Attributes().Select(attribute => new + { + Element = element.Name.LocalName, + Attribute = attribute.Name.LocalName, + Value = attribute.Value, + })) + .Where(attribute => attribute.Value.Contains("SelectedProcessSummary.", StringComparison.Ordinal)) + .ToList(); + + Assert.Empty(editableSummaryBindings); + } + + [Fact] + public void ProcessGridRowStyle_HighlightsSelectedRowsWithAccentTheme() + { + var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.Contains("IsSelected", serialized, StringComparison.Ordinal); + Assert.Contains("Accent", serialized, StringComparison.Ordinal); + Assert.Contains("BorderThickness", serialized, StringComparison.Ordinal); + } + + [Fact] + public void ProcessGridContextMenu_MenuItemsUseStableDetachedMenuStyle() + { + var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.Contains("()", updateCheckSection, StringComparison.Ordinal); + Assert.Contains("CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup))", updateCheckSection, StringComparison.Ordinal); + Assert.Contains("Startup update check ignored failure", updateCheckSection, StringComparison.Ordinal); + Assert.DoesNotContain("System.Windows.MessageBox.Show", updateCheckSection, StringComparison.Ordinal); + } + + [Fact] + public void LegacyActionSidePanel_IsNotPersistentPrimaryUi() + { + var document = XDocument.Load(ProcessViewPath, LoadOptions.PreserveWhitespace); + var serialized = document.ToString(SaveOptions.DisableFormatting); + + Assert.Contains("Grid.Column=\"2\" Visibility=\"Collapsed\"", serialized, StringComparison.Ordinal); + Assert.Contains("ProcessView_AdvancedAffinityPicker", serialized, StringComparison.Ordinal); + } + + private static string GetRepositoryRoot() + { + var directory = new DirectoryInfo(AppContext.BaseDirectory); + while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj"))) + { + directory = directory.Parent; + } + + if (directory == null) + { + throw new InvalidOperationException("Repository root was not found."); + } + + return directory.FullName; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/RetryPolicyServiceTests.cs b/Tests/ThreadPilot.Core.Tests/RetryPolicyServiceTests.cs deleted file mode 100644 index 0b629a6..0000000 --- a/Tests/ThreadPilot.Core.Tests/RetryPolicyServiceTests.cs +++ /dev/null @@ -1,81 +0,0 @@ -/* - * ThreadPilot - retry policy service unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Services; - - /// - /// Unit tests for behavior. - /// - public sealed class RetryPolicyServiceTests - { - /// - /// Ensures the retry loop retries transient failures and eventually returns success. - /// - [Fact] - public async Task ExecuteAsync_RetriesTransientErrors_ThenSucceeds() - { - var service = new RetryPolicyService(NullLogger.Instance); - var attempts = 0; - - var policy = new RetryPolicy - { - MaxAttempts = 3, - InitialDelay = TimeSpan.Zero, - MaxDelay = TimeSpan.Zero, - BackoffMultiplier = 1, - ShouldRetry = _ => true, - }; - - var result = await service.ExecuteAsync( - () => - { - attempts++; - if (attempts < 3) - { - return Task.FromException(new InvalidOperationException("transient")); - } - - return Task.FromResult("ok"); - }, - policy); - - Assert.Equal("ok", result); - Assert.Equal(3, attempts); - } - - /// - /// Ensures non-retriable failures are surfaced immediately. - /// - [Fact] - public async Task ExecuteAsync_DoesNotRetry_WhenPredicateRejectsException() - { - var service = new RetryPolicyService(NullLogger.Instance); - var attempts = 0; - - var policy = new RetryPolicy - { - MaxAttempts = 5, - InitialDelay = TimeSpan.Zero, - MaxDelay = TimeSpan.Zero, - BackoffMultiplier = 1, - ShouldRetry = _ => false, - }; - - await Assert.ThrowsAsync(async () => - { - await service.ExecuteAsync( - () => - { - attempts++; - return Task.FromException(new UnauthorizedAccessException("denied")); - }, - policy); - }); - - Assert.Equal(1, attempts); - } - } -} diff --git a/Tests/ThreadPilot.Core.Tests/SecurityServiceTests.cs b/Tests/ThreadPilot.Core.Tests/SecurityServiceTests.cs index e1f1d4a..1b38f61 100644 --- a/Tests/ThreadPilot.Core.Tests/SecurityServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SecurityServiceTests.cs @@ -1,77 +1,62 @@ -/* - * ThreadPilot - security service unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Services; - - /// - /// Unit tests for validation behavior. - /// - public sealed class SecurityServiceTests - { - /// - /// Ensures protected processes cannot be modified. - /// - [Theory] - [InlineData("lsass")] - [InlineData("lsass.exe")] - [InlineData("csrss")] - [InlineData("wininit.exe")] - public void ValidateProcessOperation_ReturnsFalse_ForProtectedProcesses(string processName) - { - var service = CreateService(); - - var allowed = service.ValidateProcessOperation(processName, "SetProcessPriority"); - - Assert.False(allowed); - } - - /// - /// Ensures known-safe process operations remain allowed. - /// - [Fact] - public void ValidateProcessOperation_ReturnsTrue_ForAllowedOperationOnRegularProcess() - { - var service = CreateService(); - - var allowed = service.ValidateProcessOperation("notepad", "SetProcessAffinity"); - - Assert.True(allowed); - } - - /// - /// Ensures invalid process operations are rejected. - /// - [Fact] - public void ValidateProcessOperation_ReturnsFalse_ForInvalidOperation() - { - var service = CreateService(); - - var allowed = service.ValidateProcessOperation("notepad", "TerminateProcess"); - - Assert.False(allowed); - } - - /// - /// Ensures elevated operation validation tolerates log-control characters. - /// - [Fact] - public void ValidateElevatedOperation_ReturnsTrue_ForKnownOperation_WithControlCharacters() - { - var service = CreateService(); - - var allowed = service.ValidateElevatedOperation("SetProcessPriority\r\n"); - - Assert.True(allowed); - } - - private static SecurityService CreateService() - { - var enhancedLogger = new Mock(MockBehavior.Loose); - return new SecurityService(NullLogger.Instance, enhancedLogger.Object); - } - } -} +/* + * ThreadPilot - security service unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Services; + + public sealed class SecurityServiceTests + { + [Theory] + [InlineData("lsass")] + [InlineData("lsass.exe")] + [InlineData("csrss")] + [InlineData("wininit.exe")] + public void ValidateProcessOperation_ReturnsFalse_ForProtectedProcesses(string processName) + { + var service = CreateService(); + + var allowed = service.ValidateProcessOperation(processName, "SetProcessPriority"); + + Assert.False(allowed); + } + + [Fact] + public void ValidateProcessOperation_ReturnsTrue_ForAllowedOperationOnRegularProcess() + { + var service = CreateService(); + + var allowed = service.ValidateProcessOperation("notepad", "SetProcessAffinity"); + + Assert.True(allowed); + } + + [Fact] + public void ValidateProcessOperation_ReturnsFalse_ForInvalidOperation() + { + var service = CreateService(); + + var allowed = service.ValidateProcessOperation("notepad", "TerminateProcess"); + + Assert.False(allowed); + } + + [Fact] + public void ValidateElevatedOperation_ReturnsTrue_ForKnownOperation_WithControlCharacters() + { + var service = CreateService(); + + var allowed = service.ValidateElevatedOperation("SetProcessPriority\r\n"); + + Assert.True(allowed); + } + + private static SecurityService CreateService() + { + var enhancedLogger = new Mock(MockBehavior.Loose); + return new SecurityService(NullLogger.Instance, enhancedLogger.Object); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SelectedProcessSummaryViewModelTests.cs b/Tests/ThreadPilot.Core.Tests/SelectedProcessSummaryViewModelTests.cs index 88d1203..7aca5a5 100644 --- a/Tests/ThreadPilot.Core.Tests/SelectedProcessSummaryViewModelTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SelectedProcessSummaryViewModelTests.cs @@ -1,348 +1,348 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Diagnostics; - using System.Reflection; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class SelectedProcessSummaryViewModelTests - { - [Fact] - public async Task UpdateAsync_WithNoSelectedProcess_ClearsSummary() - { - var viewModel = new SelectedProcessSummaryViewModel(); - - await viewModel.UpdateAsync(null); - - Assert.False(viewModel.HasSelection); - Assert.Equal("No process selected", viewModel.CurrentProcessStatusText); - Assert.Equal("Memory priority unavailable", viewModel.MemoryPriorityText); - Assert.Equal("No saved rule", viewModel.RuleStatusText); - } - - [Fact] - public async Task UpdateAsync_WithSelectedProcess_PopulatesCheapProcessFields() - { - var viewModel = new SelectedProcessSummaryViewModel(); - - await viewModel.UpdateAsync(CreateProcess("Game.exe", 1234, ProcessPriorityClass.High, 0x3, 512 * 1024 * 1024)); - - Assert.True(viewModel.HasSelection); - Assert.Equal(1234, viewModel.ProcessId); - Assert.Equal("Game.exe", viewModel.ProcessName); - Assert.Equal(@"C:\Games\Game.exe", viewModel.ExecutablePath); - Assert.Equal("Selected process: Game.exe (PID 1234)", viewModel.ProcessTitle); - Assert.Equal("CPU priority: High", viewModel.CpuPriorityText); - Assert.Equal("Memory: 512 MB", viewModel.MemoryUsageText); - Assert.Equal("Affinity: legacy mask 0x3", viewModel.AffinityText); - } - - [Fact] - public async Task UpdateAsync_WhenSelectionChanges_ReplacesSummary() - { - var viewModel = new SelectedProcessSummaryViewModel(); - - await viewModel.UpdateAsync(CreateProcess("First.exe", 1, ProcessPriorityClass.Normal, 0x1, 1)); - await viewModel.UpdateAsync(CreateProcess("Second.exe", 2, ProcessPriorityClass.BelowNormal, 0x2, 2)); - - Assert.Equal(2, viewModel.ProcessId); - Assert.Equal("Second.exe", viewModel.ProcessName); - Assert.Equal("CPU priority: BelowNormal", viewModel.CpuPriorityText); - Assert.Equal("Affinity: legacy mask 0x2", viewModel.AffinityText); - } - - [Fact] - public async Task UpdateAsync_WhenMemoryPriorityReadSucceeds_PopulatesMemoryPriority() - { - var memoryPriority = new Mock(MockBehavior.Strict); - memoryPriority - .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) - .ReturnsAsync(ProcessMemoryPriority.BelowNormal); - var viewModel = new SelectedProcessSummaryViewModel(memoryPriority.Object); - - await viewModel.UpdateAsync(CreateProcess()); - - Assert.Equal(ProcessMemoryPriority.BelowNormal, viewModel.MemoryPriority); - Assert.Equal("Memory priority: BelowNormal", viewModel.MemoryPriorityText); - } - - [Fact] - public async Task UpdateAsync_WhenMemoryPriorityUnavailable_ShowsUnavailableWithoutThrowing() - { - var memoryPriority = new Mock(MockBehavior.Strict); - memoryPriority - .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) - .ThrowsAsync(new UnauthorizedAccessException("Access denied")); - var viewModel = new SelectedProcessSummaryViewModel(memoryPriority.Object); - - await viewModel.UpdateAsync(CreateProcess()); - - Assert.Null(viewModel.MemoryPriority); - Assert.Equal("Memory priority unavailable", viewModel.MemoryPriorityText); - } - - [Fact] - public async Task UpdateAsync_WhenSelectionChangesBeforeSlowMemoryPriorityCompletes_KeepsLatestSelection() - { - var memoryPriority = new ControlledMemoryPriorityService(); - var viewModel = new SelectedProcessSummaryViewModel(memoryPriority); - var oldProcess = CreateProcess("Old.exe", 100, ProcessPriorityClass.Normal, 0x1, 10); - var latestProcess = CreateProcess("Latest.exe", 200, ProcessPriorityClass.High, 0x2, 20); - - var oldUpdate = viewModel.UpdateAsync(oldProcess); - await memoryPriority.WaitForReadAsync(oldProcess.ProcessId); - - memoryPriority.SetImmediatePriority(latestProcess.ProcessId, ProcessMemoryPriority.Normal); - await viewModel.UpdateAsync(latestProcess); - - memoryPriority.CompleteRead(oldProcess.ProcessId, ProcessMemoryPriority.VeryLow); - await oldUpdate; - - Assert.Equal(latestProcess.ProcessId, viewModel.ProcessId); - Assert.Equal(latestProcess.Name, viewModel.ProcessName); - Assert.Equal(ProcessMemoryPriority.Normal, viewModel.MemoryPriority); - Assert.Equal("Memory priority: Normal", viewModel.MemoryPriorityText); - } - - [Fact] - public async Task UpdateAsync_WhenSlowRuleLookupCompletesAfterSelectionChange_KeepsLatestRuleStatus() - { - var store = new ControlledPersistentProcessRuleStore(); - var viewModel = new SelectedProcessSummaryViewModel( - persistentRuleStore: store, - persistentRuleMatcher: new PersistentProcessRuleMatcher()); - var oldProcess = CreateProcess("Old.exe", 100); - var latestProcess = CreateProcess("Latest.exe", 200); - - var oldUpdate = viewModel.UpdateAsync(oldProcess); - await store.WaitForLoadAsync(1); - - store.EnqueueImmediateRules(new[] - { - new PersistentProcessRule - { - Name = "Latest rule", - ProcessName = latestProcess.Name, - IsEnabled = true, - }, - }); - await viewModel.UpdateAsync(latestProcess); - - store.CompleteLoad( - 1, - new[] - { - new PersistentProcessRule - { - Name = "Old rule", - ProcessName = oldProcess.Name, - IsEnabled = true, - }, - }); - await oldUpdate; - - Assert.Equal(latestProcess.ProcessId, viewModel.ProcessId); - Assert.Equal(latestProcess.Name, viewModel.ProcessName); - Assert.True(viewModel.HasThreadPilotRule); - Assert.Equal("Saved rule exists: Latest rule", viewModel.RuleStatusText); - } - - [Fact] - public void SelectedProcessSummary_HasNoPerformanceMonitoringDependency() - { - var type = typeof(SelectedProcessSummaryViewModel); - - var constructorParameters = type - .GetConstructors() - .SelectMany(ctor => ctor.GetParameters()) - .Select(parameter => parameter.ParameterType); - var fieldTypes = type - .GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) - .Select(field => field.FieldType); - - Assert.DoesNotContain(typeof(IPerformanceMonitoringService), constructorParameters); - Assert.DoesNotContain(typeof(IPerformanceMonitoringService), fieldTypes); - } - - [Fact] - public void SelectedProcessSummary_DoesNotOwnTimers() - { - var fieldTypes = typeof(SelectedProcessSummaryViewModel) - .GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) - .Select(field => field.FieldType); - - Assert.DoesNotContain(typeof(System.Timers.Timer), fieldTypes); - Assert.DoesNotContain(typeof(System.Threading.Timer), fieldTypes); - } - - [Fact] - public async Task UpdateAsync_WhenPersistentRuleMatches_ShowsSavedRule() - { - var store = new Mock(MockBehavior.Strict); - store - .Setup(ruleStore => ruleStore.LoadAsync()) - .ReturnsAsync(new[] - { - new PersistentProcessRule - { - Name = "Game rule", - ProcessName = "Game.exe", - IsEnabled = true, - }, - }); - var viewModel = new SelectedProcessSummaryViewModel( - persistentRuleStore: store.Object, - persistentRuleMatcher: new PersistentProcessRuleMatcher()); - - await viewModel.UpdateAsync(CreateProcess("Game.exe")); - - Assert.True(viewModel.HasThreadPilotRule); - Assert.Equal("Saved rule exists: Game rule", viewModel.RuleStatusText); - } - - [Fact] - public async Task UpdateAsync_WhenNoPersistentRuleMatches_ShowsNoSavedRule() - { - var store = new Mock(MockBehavior.Strict); - store - .Setup(ruleStore => ruleStore.LoadAsync()) - .ReturnsAsync(new[] - { - new PersistentProcessRule - { - Name = "Other rule", - ProcessName = "Other.exe", - IsEnabled = true, - }, - }); - var viewModel = new SelectedProcessSummaryViewModel( - persistentRuleStore: store.Object, - persistentRuleMatcher: new PersistentProcessRuleMatcher()); - - await viewModel.UpdateAsync(CreateProcess("Game.exe")); - - Assert.False(viewModel.HasThreadPilotRule); - Assert.Equal("No saved rule", viewModel.RuleStatusText); - } - - private static ProcessModel CreateProcess( - string name = "Game.exe", - int processId = 42, - ProcessPriorityClass priority = ProcessPriorityClass.Normal, - long affinity = 0xF, - long memoryUsage = 64 * 1024 * 1024) - => new() - { - ProcessId = processId, - Name = name, - ExecutablePath = @"C:\Games\Game.exe", - CpuUsage = 12.5, - MemoryUsage = memoryUsage, - Priority = priority, - ProcessorAffinity = affinity, - Classification = ProcessClassification.ForegroundApp, - }; - - private sealed class ControlledMemoryPriorityService : IProcessMemoryPriorityService - { - private readonly Dictionary> pendingReads = new(); - private readonly Dictionary readSignals = new(); - private readonly Dictionary immediatePriorities = new(); - - public Task GetMemoryPriorityAsync(ProcessModel process) - { - if (this.immediatePriorities.TryGetValue(process.ProcessId, out var priority)) - { - return Task.FromResult(priority); - } - - var pending = new TaskCompletionSource( - TaskCreationOptions.RunContinuationsAsynchronously); - var signal = this.GetOrCreateReadSignal(process.ProcessId); - this.pendingReads[process.ProcessId] = pending; - signal.TrySetResult(); - return pending.Task; - } - - public Task SetMemoryPriorityAsync(ProcessModel process, ProcessMemoryPriority priority) - => throw new NotSupportedException(); - - public void SetImmediatePriority(int processId, ProcessMemoryPriority? priority) - { - this.immediatePriorities[processId] = priority; - } - - public Task WaitForReadAsync(int processId) => this.GetOrCreateReadSignal(processId).Task; - - public void CompleteRead(int processId, ProcessMemoryPriority? priority) - { - this.pendingReads[processId].SetResult(priority); - } - - private TaskCompletionSource GetOrCreateReadSignal(int processId) - { - if (!this.readSignals.TryGetValue(processId, out var signal)) - { - signal = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - this.readSignals[processId] = signal; - } - - return signal; - } - } - - private sealed class ControlledPersistentProcessRuleStore : IPersistentProcessRuleStore - { - private readonly Dictionary>> pendingLoads = new(); - private readonly Dictionary loadSignals = new(); - private readonly Queue> immediateRules = new(); - private int loadCount; - - public Task> LoadAsync() - { - this.loadCount++; - var loadNumber = this.loadCount; - - if (this.immediateRules.Count > 0) - { - this.GetOrCreateLoadSignal(loadNumber).TrySetResult(); - return Task.FromResult(this.immediateRules.Dequeue()); - } - - var pending = new TaskCompletionSource>( - TaskCreationOptions.RunContinuationsAsynchronously); - this.pendingLoads[loadNumber] = pending; - this.GetOrCreateLoadSignal(loadNumber).TrySetResult(); - return pending.Task; - } - - public Task SaveAsync(IReadOnlyList rules) - => throw new NotSupportedException(); - - public void EnqueueImmediateRules(IReadOnlyList rules) - { - this.immediateRules.Enqueue(rules); - } - - public Task WaitForLoadAsync(int loadNumber) => this.GetOrCreateLoadSignal(loadNumber).Task; - - public void CompleteLoad(int loadNumber, IReadOnlyList rules) - { - this.pendingLoads[loadNumber].SetResult(rules); - } - - private TaskCompletionSource GetOrCreateLoadSignal(int loadNumber) - { - if (!this.loadSignals.TryGetValue(loadNumber, out var signal)) - { - signal = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - this.loadSignals[loadNumber] = signal; - } - - return signal; - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Diagnostics; + using System.Reflection; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class SelectedProcessSummaryViewModelTests + { + [Fact] + public async Task UpdateAsync_WithNoSelectedProcess_ClearsSummary() + { + var viewModel = new SelectedProcessSummaryViewModel(); + + await viewModel.UpdateAsync(null); + + Assert.False(viewModel.HasSelection); + Assert.Equal("No process selected", viewModel.CurrentProcessStatusText); + Assert.Equal("Memory priority unavailable", viewModel.MemoryPriorityText); + Assert.Equal("No saved rule", viewModel.RuleStatusText); + } + + [Fact] + public async Task UpdateAsync_WithSelectedProcess_PopulatesCheapProcessFields() + { + var viewModel = new SelectedProcessSummaryViewModel(); + + await viewModel.UpdateAsync(CreateProcess("Game.exe", 1234, ProcessPriorityClass.High, 0x3, 512 * 1024 * 1024)); + + Assert.True(viewModel.HasSelection); + Assert.Equal(1234, viewModel.ProcessId); + Assert.Equal("Game.exe", viewModel.ProcessName); + Assert.Equal(@"C:\Games\Game.exe", viewModel.ExecutablePath); + Assert.Equal("Selected process: Game.exe (PID 1234)", viewModel.ProcessTitle); + Assert.Equal("CPU priority: High", viewModel.CpuPriorityText); + Assert.Equal("Memory: 512 MB", viewModel.MemoryUsageText); + Assert.Equal("Affinity: legacy mask 0x3", viewModel.AffinityText); + } + + [Fact] + public async Task UpdateAsync_WhenSelectionChanges_ReplacesSummary() + { + var viewModel = new SelectedProcessSummaryViewModel(); + + await viewModel.UpdateAsync(CreateProcess("First.exe", 1, ProcessPriorityClass.Normal, 0x1, 1)); + await viewModel.UpdateAsync(CreateProcess("Second.exe", 2, ProcessPriorityClass.BelowNormal, 0x2, 2)); + + Assert.Equal(2, viewModel.ProcessId); + Assert.Equal("Second.exe", viewModel.ProcessName); + Assert.Equal("CPU priority: BelowNormal", viewModel.CpuPriorityText); + Assert.Equal("Affinity: legacy mask 0x2", viewModel.AffinityText); + } + + [Fact] + public async Task UpdateAsync_WhenMemoryPriorityReadSucceeds_PopulatesMemoryPriority() + { + var memoryPriority = new Mock(MockBehavior.Strict); + memoryPriority + .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) + .ReturnsAsync(ProcessMemoryPriority.BelowNormal); + var viewModel = new SelectedProcessSummaryViewModel(memoryPriority.Object); + + await viewModel.UpdateAsync(CreateProcess()); + + Assert.Equal(ProcessMemoryPriority.BelowNormal, viewModel.MemoryPriority); + Assert.Equal("Memory priority: BelowNormal", viewModel.MemoryPriorityText); + } + + [Fact] + public async Task UpdateAsync_WhenMemoryPriorityUnavailable_ShowsUnavailableWithoutThrowing() + { + var memoryPriority = new Mock(MockBehavior.Strict); + memoryPriority + .Setup(service => service.GetMemoryPriorityAsync(It.IsAny())) + .ThrowsAsync(new UnauthorizedAccessException("Access denied")); + var viewModel = new SelectedProcessSummaryViewModel(memoryPriority.Object); + + await viewModel.UpdateAsync(CreateProcess()); + + Assert.Null(viewModel.MemoryPriority); + Assert.Equal("Memory priority unavailable", viewModel.MemoryPriorityText); + } + + [Fact] + public async Task UpdateAsync_WhenSelectionChangesBeforeSlowMemoryPriorityCompletes_KeepsLatestSelection() + { + var memoryPriority = new ControlledMemoryPriorityService(); + var viewModel = new SelectedProcessSummaryViewModel(memoryPriority); + var oldProcess = CreateProcess("Old.exe", 100, ProcessPriorityClass.Normal, 0x1, 10); + var latestProcess = CreateProcess("Latest.exe", 200, ProcessPriorityClass.High, 0x2, 20); + + var oldUpdate = viewModel.UpdateAsync(oldProcess); + await memoryPriority.WaitForReadAsync(oldProcess.ProcessId); + + memoryPriority.SetImmediatePriority(latestProcess.ProcessId, ProcessMemoryPriority.Normal); + await viewModel.UpdateAsync(latestProcess); + + memoryPriority.CompleteRead(oldProcess.ProcessId, ProcessMemoryPriority.VeryLow); + await oldUpdate; + + Assert.Equal(latestProcess.ProcessId, viewModel.ProcessId); + Assert.Equal(latestProcess.Name, viewModel.ProcessName); + Assert.Equal(ProcessMemoryPriority.Normal, viewModel.MemoryPriority); + Assert.Equal("Memory priority: Normal", viewModel.MemoryPriorityText); + } + + [Fact] + public async Task UpdateAsync_WhenSlowRuleLookupCompletesAfterSelectionChange_KeepsLatestRuleStatus() + { + var store = new ControlledPersistentProcessRuleStore(); + var viewModel = new SelectedProcessSummaryViewModel( + persistentRuleStore: store, + persistentRuleMatcher: new PersistentProcessRuleMatcher()); + var oldProcess = CreateProcess("Old.exe", 100); + var latestProcess = CreateProcess("Latest.exe", 200); + + var oldUpdate = viewModel.UpdateAsync(oldProcess); + await store.WaitForLoadAsync(1); + + store.EnqueueImmediateRules(new[] + { + new PersistentProcessRule + { + Name = "Latest rule", + ProcessName = latestProcess.Name, + IsEnabled = true, + }, + }); + await viewModel.UpdateAsync(latestProcess); + + store.CompleteLoad( + 1, + new[] + { + new PersistentProcessRule + { + Name = "Old rule", + ProcessName = oldProcess.Name, + IsEnabled = true, + }, + }); + await oldUpdate; + + Assert.Equal(latestProcess.ProcessId, viewModel.ProcessId); + Assert.Equal(latestProcess.Name, viewModel.ProcessName); + Assert.True(viewModel.HasThreadPilotRule); + Assert.Equal("Saved rule exists: Latest rule", viewModel.RuleStatusText); + } + + [Fact] + public void SelectedProcessSummary_HasNoPerformanceMonitoringDependency() + { + var type = typeof(SelectedProcessSummaryViewModel); + + var constructorParameters = type + .GetConstructors() + .SelectMany(ctor => ctor.GetParameters()) + .Select(parameter => parameter.ParameterType); + var fieldTypes = type + .GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) + .Select(field => field.FieldType); + + Assert.DoesNotContain(typeof(IPerformanceMonitoringService), constructorParameters); + Assert.DoesNotContain(typeof(IPerformanceMonitoringService), fieldTypes); + } + + [Fact] + public void SelectedProcessSummary_DoesNotOwnTimers() + { + var fieldTypes = typeof(SelectedProcessSummaryViewModel) + .GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public) + .Select(field => field.FieldType); + + Assert.DoesNotContain(typeof(System.Timers.Timer), fieldTypes); + Assert.DoesNotContain(typeof(System.Threading.Timer), fieldTypes); + } + + [Fact] + public async Task UpdateAsync_WhenPersistentRuleMatches_ShowsSavedRule() + { + var store = new Mock(MockBehavior.Strict); + store + .Setup(ruleStore => ruleStore.LoadAsync()) + .ReturnsAsync(new[] + { + new PersistentProcessRule + { + Name = "Game rule", + ProcessName = "Game.exe", + IsEnabled = true, + }, + }); + var viewModel = new SelectedProcessSummaryViewModel( + persistentRuleStore: store.Object, + persistentRuleMatcher: new PersistentProcessRuleMatcher()); + + await viewModel.UpdateAsync(CreateProcess("Game.exe")); + + Assert.True(viewModel.HasThreadPilotRule); + Assert.Equal("Saved rule exists: Game rule", viewModel.RuleStatusText); + } + + [Fact] + public async Task UpdateAsync_WhenNoPersistentRuleMatches_ShowsNoSavedRule() + { + var store = new Mock(MockBehavior.Strict); + store + .Setup(ruleStore => ruleStore.LoadAsync()) + .ReturnsAsync(new[] + { + new PersistentProcessRule + { + Name = "Other rule", + ProcessName = "Other.exe", + IsEnabled = true, + }, + }); + var viewModel = new SelectedProcessSummaryViewModel( + persistentRuleStore: store.Object, + persistentRuleMatcher: new PersistentProcessRuleMatcher()); + + await viewModel.UpdateAsync(CreateProcess("Game.exe")); + + Assert.False(viewModel.HasThreadPilotRule); + Assert.Equal("No saved rule", viewModel.RuleStatusText); + } + + private static ProcessModel CreateProcess( + string name = "Game.exe", + int processId = 42, + ProcessPriorityClass priority = ProcessPriorityClass.Normal, + long affinity = 0xF, + long memoryUsage = 64 * 1024 * 1024) + => new() + { + ProcessId = processId, + Name = name, + ExecutablePath = @"C:\Games\Game.exe", + CpuUsage = 12.5, + MemoryUsage = memoryUsage, + Priority = priority, + ProcessorAffinity = affinity, + Classification = ProcessClassification.ForegroundApp, + }; + + private sealed class ControlledMemoryPriorityService : IProcessMemoryPriorityService + { + private readonly Dictionary> pendingReads = new(); + private readonly Dictionary readSignals = new(); + private readonly Dictionary immediatePriorities = new(); + + public Task GetMemoryPriorityAsync(ProcessModel process) + { + if (this.immediatePriorities.TryGetValue(process.ProcessId, out var priority)) + { + return Task.FromResult(priority); + } + + var pending = new TaskCompletionSource( + TaskCreationOptions.RunContinuationsAsynchronously); + var signal = this.GetOrCreateReadSignal(process.ProcessId); + this.pendingReads[process.ProcessId] = pending; + signal.TrySetResult(); + return pending.Task; + } + + public Task SetMemoryPriorityAsync(ProcessModel process, ProcessMemoryPriority priority) + => throw new NotSupportedException(); + + public void SetImmediatePriority(int processId, ProcessMemoryPriority? priority) + { + this.immediatePriorities[processId] = priority; + } + + public Task WaitForReadAsync(int processId) => this.GetOrCreateReadSignal(processId).Task; + + public void CompleteRead(int processId, ProcessMemoryPriority? priority) + { + this.pendingReads[processId].SetResult(priority); + } + + private TaskCompletionSource GetOrCreateReadSignal(int processId) + { + if (!this.readSignals.TryGetValue(processId, out var signal)) + { + signal = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + this.readSignals[processId] = signal; + } + + return signal; + } + } + + private sealed class ControlledPersistentProcessRuleStore : IPersistentProcessRuleStore + { + private readonly Dictionary>> pendingLoads = new(); + private readonly Dictionary loadSignals = new(); + private readonly Queue> immediateRules = new(); + private int loadCount; + + public Task> LoadAsync() + { + this.loadCount++; + var loadNumber = this.loadCount; + + if (this.immediateRules.Count > 0) + { + this.GetOrCreateLoadSignal(loadNumber).TrySetResult(); + return Task.FromResult(this.immediateRules.Dequeue()); + } + + var pending = new TaskCompletionSource>( + TaskCreationOptions.RunContinuationsAsynchronously); + this.pendingLoads[loadNumber] = pending; + this.GetOrCreateLoadSignal(loadNumber).TrySetResult(); + return pending.Task; + } + + public Task SaveAsync(IReadOnlyList rules) + => throw new NotSupportedException(); + + public void EnqueueImmediateRules(IReadOnlyList rules) + { + this.immediateRules.Enqueue(rules); + } + + public Task WaitForLoadAsync(int loadNumber) => this.GetOrCreateLoadSignal(loadNumber).Task; + + public void CompleteLoad(int loadNumber, IReadOnlyList rules) + { + this.pendingLoads[loadNumber].SetResult(rules); + } + + private TaskCompletionSource GetOrCreateLoadSignal(int loadNumber) + { + if (!this.loadSignals.TryGetValue(loadNumber, out var signal)) + { + signal = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + this.loadSignals[loadNumber] = signal; + } + + return signal; + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SelfResourcePolicyTests.cs b/Tests/ThreadPilot.Core.Tests/SelfResourcePolicyTests.cs index 06191c3..e17c4f3 100644 --- a/Tests/ThreadPilot.Core.Tests/SelfResourcePolicyTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SelfResourcePolicyTests.cs @@ -1,53 +1,53 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Services; - - public sealed class SelfResourcePolicyTests - { - [Theory] - [InlineData(1)] - [InlineData(2)] - public void TryCreateLowImpactAffinityMask_DisablesAffinityOnSmallSystems(int logicalProcessorCount) - { - Assert.False(SelfResourcePolicy.TryCreateLowImpactAffinityMask(logicalProcessorCount, out _)); - } - - [Theory] - [InlineData(3, 0b100)] - [InlineData(4, 0b1100)] - [InlineData(8, 0b1100_0000)] - public void TryCreateLowImpactAffinityMask_UsesLastLogicalProcessors( - int logicalProcessorCount, - long expectedMask) - { - Assert.True(SelfResourcePolicy.TryCreateLowImpactAffinityMask(logicalProcessorCount, out var mask)); - Assert.Equal(expectedMask, mask); - } - - [Theory] - [InlineData(0)] - [InlineData(-1)] - [InlineData(64)] - [InlineData(128)] - public void TryCreateLowImpactAffinityMask_RejectsInvalidProcessorCounts(int logicalProcessorCount) - { - Assert.False(SelfResourcePolicy.TryCreateLowImpactAffinityMask(logicalProcessorCount, out _)); - } - - [Theory] - [InlineData(false, true, true, false)] - [InlineData(true, false, true, false)] - [InlineData(true, true, false, false)] - [InlineData(true, true, true, true)] - public void ShouldLimitAffinity_RequiresHiddenLowImpactModeAndAffinitySetting( - bool isHidden, - bool enableSelfLowImpactMode, - bool enableSelfAffinityLimit, - bool expected) - { - Assert.Equal( - expected, - SelfResourcePolicy.ShouldLimitAffinity(isHidden, enableSelfLowImpactMode, enableSelfAffinityLimit)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Services; + + public sealed class SelfResourcePolicyTests + { + [Theory] + [InlineData(1)] + [InlineData(2)] + public void TryCreateLowImpactAffinityMask_DisablesAffinityOnSmallSystems(int logicalProcessorCount) + { + Assert.False(SelfResourcePolicy.TryCreateLowImpactAffinityMask(logicalProcessorCount, out _)); + } + + [Theory] + [InlineData(3, 0b100)] + [InlineData(4, 0b1100)] + [InlineData(8, 0b1100_0000)] + public void TryCreateLowImpactAffinityMask_UsesLastLogicalProcessors( + int logicalProcessorCount, + long expectedMask) + { + Assert.True(SelfResourcePolicy.TryCreateLowImpactAffinityMask(logicalProcessorCount, out var mask)); + Assert.Equal(expectedMask, mask); + } + + [Theory] + [InlineData(0)] + [InlineData(-1)] + [InlineData(64)] + [InlineData(128)] + public void TryCreateLowImpactAffinityMask_RejectsInvalidProcessorCounts(int logicalProcessorCount) + { + Assert.False(SelfResourcePolicy.TryCreateLowImpactAffinityMask(logicalProcessorCount, out _)); + } + + [Theory] + [InlineData(false, true, true, false)] + [InlineData(true, false, true, false)] + [InlineData(true, true, false, false)] + [InlineData(true, true, true, true)] + public void ShouldLimitAffinity_RequiresHiddenLowImpactModeAndAffinitySetting( + bool isHidden, + bool enableSelfLowImpactMode, + bool enableSelfAffinityLimit, + bool expected) + { + Assert.Equal( + expected, + SelfResourcePolicy.ShouldLimitAffinity(isHidden, enableSelfLowImpactMode, enableSelfAffinityLimit)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ServiceConfigurationTests.cs b/Tests/ThreadPilot.Core.Tests/ServiceConfigurationTests.cs index 1012cb7..2597c10 100644 --- a/Tests/ThreadPilot.Core.Tests/ServiceConfigurationTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ServiceConfigurationTests.cs @@ -1,55 +1,55 @@ -/* - * ThreadPilot - dependency injection registration tests. - */ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.DependencyInjection; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class ServiceConfigurationTests - { - [Fact] - public void ConfigureApplicationServices_RegistersPersistentRuleAutoApplyService() - { - using var provider = CreateProvider(); - - var service = provider.GetRequiredService(); - - Assert.IsType(service); - } - - [Fact] - public void ConfigureApplicationServices_RegistersProcessRuleCreationService() - { - using var provider = CreateProvider(); - - var service = provider.GetRequiredService(); - - Assert.IsType(service); - } - - [Fact] - public void ConfigureApplicationServices_RegistersActivityAuditService() - { - using var provider = CreateProvider(); - - var service = provider.GetRequiredService(); - - Assert.IsType(service); - } - - [Fact] - public void ApplicationSettings_DefaultsToPersistentRulesAutoApplyEnabled() - { - var settings = new ApplicationSettingsModel(); - - Assert.True(settings.ApplyPersistentRulesOnProcessStart); - } - - private static ServiceProvider CreateProvider() => - new ServiceCollection() - .ConfigureApplicationServices() - .BuildServiceProvider(new ServiceProviderOptions { ValidateScopes = true }); - } -} +/* + * ThreadPilot - dependency injection registration tests. + */ +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.DependencyInjection; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class ServiceConfigurationTests + { + [Fact] + public void ConfigureApplicationServices_RegistersPersistentRuleAutoApplyService() + { + using var provider = CreateProvider(); + + var service = provider.GetRequiredService(); + + Assert.IsType(service); + } + + [Fact] + public void ConfigureApplicationServices_RegistersProcessRuleCreationService() + { + using var provider = CreateProvider(); + + var service = provider.GetRequiredService(); + + Assert.IsType(service); + } + + [Fact] + public void ConfigureApplicationServices_RegistersActivityAuditService() + { + using var provider = CreateProvider(); + + var service = provider.GetRequiredService(); + + Assert.IsType(service); + } + + [Fact] + public void ApplicationSettings_DefaultsToPersistentRulesAutoApplyEnabled() + { + var settings = new ApplicationSettingsModel(); + + Assert.True(settings.ApplyPersistentRulesOnProcessStart); + } + + private static ServiceProvider CreateProvider() => + new ServiceCollection() + .ConfigureApplicationServices() + .BuildServiceProvider(new ServiceProviderOptions { ValidateScopes = true }); + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SettingsViewModelThemeTests.cs b/Tests/ThreadPilot.Core.Tests/SettingsViewModelThemeTests.cs index 4afd6e0..c4b178d 100644 --- a/Tests/ThreadPilot.Core.Tests/SettingsViewModelThemeTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SettingsViewModelThemeTests.cs @@ -1,256 +1,256 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.ObjectModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class SettingsViewModelThemeTests - { - [Fact] - public async Task ChangingTheme_AppliesThemeAndLogsVisibleActivityEntry() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - viewModel.Settings.UseDarkTheme = true; - - harness.Theme.Verify(service => service.ApplyTheme(true), Times.Once); - harness.Tray.Verify(service => service.ApplyTheme(true), Times.Once); - harness.Logging.Verify( - service => service.LogUserActionAsync( - "ThemeChanged", - "Theme changed to Dark", - null), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Settings", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal("Theme changed to Dark", entry.Message); - Assert.Equal("Theme changed to Dark.", viewModel.StatusMessage); - } - - [Fact] - public void ChangingTheme_ToSameValue_DoesNotApplyOrLogAgain() - { - var harness = new Harness(initialDarkTheme: true); - var viewModel = harness.CreateViewModel(); - - viewModel.Settings.UseDarkTheme = true; - - harness.Theme.Verify(service => service.ApplyTheme(It.IsAny()), Times.Never); - harness.Tray.Verify(service => service.ApplyTheme(It.IsAny()), Times.Never); - harness.Logging.Verify( - service => service.LogUserActionAsync(It.IsAny(), It.IsAny(), It.IsAny()), - Times.Never); - } - - [Fact] - public async Task ChangingApplyPersistentRulesOnProcessStart_UpdatesSettingAndLogsVisibleActivityEntry() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - viewModel.Settings.ApplyPersistentRulesOnProcessStart = false; - - Assert.False(viewModel.Settings.ApplyPersistentRulesOnProcessStart); - harness.Logging.Verify( - service => service.LogUserActionAsync( - "SettingsChanged", - "[Settings] Apply saved rules at process start disabled.", - null), - Times.Once); - var disabledEntry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Settings", disabledEntry.Category); - Assert.Equal("[Settings] Apply saved rules at process start disabled.", disabledEntry.Message); - - viewModel.Settings.ApplyPersistentRulesOnProcessStart = true; - - Assert.True(viewModel.Settings.ApplyPersistentRulesOnProcessStart); - harness.Logging.Verify( - service => service.LogUserActionAsync( - "SettingsChanged", - "[Settings] Apply saved rules at process start enabled.", - null), - Times.Once); - var entries = await harness.Audit.GetEntriesAsync(); - Assert.Contains(entries, entry => entry.Message == "[Settings] Apply saved rules at process start enabled."); - } - - [Fact] - public async Task ChangingLanguage_AppliesLanguageAndLogsVisibleActivityEntry() - { - var harness = new Harness(); - var viewModel = harness.CreateViewModel(); - - viewModel.Settings.Language = "zh-CN"; - - harness.Localization.Verify(service => service.ApplyLanguage("zh-CN"), Times.Once); - harness.Logging.Verify( - service => service.LogUserActionAsync( - "LanguageChanged", - "Language changed to Simplified Chinese", - null), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Language changed to Simplified Chinese", entry.Message); - Assert.Equal("Language changed to Simplified Chinese.", viewModel.StatusMessage); - } - - [Fact] - public void ChangingLanguage_UsesLocalizedStatusMessage() - { - var harness = new Harness(); - harness.Localization - .Setup(service => service.GetString(It.IsAny())) - .Returns(key => key switch - { - "Settings_LanguageSimplifiedChinese" => "简体中文", - "Settings_StatusLanguageChangedFormat" => "语言已切换为{0}。", - _ => key, - }); - var viewModel = harness.CreateViewModel(); - - viewModel.Settings.Language = "zh-CN"; - - Assert.Equal("语言已切换为简体中文。", viewModel.StatusMessage); - } - - [Fact] - public async Task SaveSettingsCommand_PersistsSelectedLanguage() - { - var harness = new Harness(); - ApplicationSettingsModel? savedSettings = null; - harness.SettingsService - .Setup(service => service.UpdateSettingsAsync(It.IsAny())) - .Callback(settings => savedSettings = (ApplicationSettingsModel)settings.Clone()) - .Returns(Task.CompletedTask); - var viewModel = harness.CreateViewModel(); - viewModel.Settings.Language = "zh-CN"; - - await ((IAsyncRelayCommand)viewModel.SaveSettingsCommand).ExecuteAsync(null); - - Assert.NotNull(savedSettings); - Assert.Equal("zh-CN", savedSettings.Language); - Assert.False(viewModel.HasUnsavedChanges); - } - - [Fact] - public void SettingsView_ExposesPersistentRuleAutoApplyToggle() - { - var settingsViewPath = Path.Combine( - AppContext.BaseDirectory, - "..", - "..", - "..", - "..", - "..", - "Views", - "SettingsView.xaml"); - var serialized = File.ReadAllText(settingsViewPath); - - Assert.Contains("Text=\"{DynamicResource SettingsView_RulesAutomation}\" Style=\"{StaticResource SectionHeaderStyle}\"", serialized, StringComparison.Ordinal); - Assert.Contains("Text=\"{DynamicResource SettingsView_ApplyOnStart}\"", serialized, StringComparison.Ordinal); - Assert.Contains("TextWrapping=\"Wrap\"", serialized, StringComparison.Ordinal); - Assert.Contains("IsChecked=\"{Binding Settings.ApplyPersistentRulesOnProcessStart}\"", serialized, StringComparison.Ordinal); - Assert.Contains("Text=\"{DynamicResource SettingsView_ApplyOnStartDescription}\"", serialized, StringComparison.Ordinal); - } - - [Fact] - public void SettingsView_ExposesOptionalChineseLanguageSelection() - { - var settingsViewPath = Path.Combine( - AppContext.BaseDirectory, - "..", - "..", - "..", - "..", - "..", - "Views", - "SettingsView.xaml"); - var serialized = File.ReadAllText(settingsViewPath); - - Assert.Contains("SelectedValue=\"{Binding Settings.Language}\"", serialized, StringComparison.Ordinal); - Assert.Contains("Tag=\"en-US\"", serialized, StringComparison.Ordinal); - Assert.Contains("Tag=\"zh-CN\"", serialized, StringComparison.Ordinal); - } - - private sealed class Harness - { - private readonly ApplicationSettingsModel settings; - - public Mock SettingsService { get; } = new(MockBehavior.Loose); - - public Mock Notifications { get; } = new(MockBehavior.Loose); - - public Mock Autostart { get; } = new(MockBehavior.Loose); - - public Mock PowerPlans { get; } = new(MockBehavior.Loose); - - public Mock Associations { get; } = new(MockBehavior.Loose); - - public Mock ProcessMonitorManager { get; } = new(MockBehavior.Loose); - - public Mock Theme { get; } = new(MockBehavior.Loose); - - public Mock Tray { get; } = new(MockBehavior.Loose); - - public Mock Localization { get; } = new(MockBehavior.Loose); - - public Mock Updates { get; } = new(MockBehavior.Loose); - - public Mock VersionProvider { get; } = new(MockBehavior.Loose); - - public Mock Logging { get; } = new(MockBehavior.Loose); - - public ActivityAuditService Audit { get; } = new(NullLogger.Instance); - - public Harness(bool initialDarkTheme = false) - { - this.settings = new ApplicationSettingsModel - { - UseDarkTheme = initialDarkTheme, - HasUserThemePreference = initialDarkTheme, - }; - this.SettingsService.SetupGet(service => service.Settings).Returns(this.settings); - this.Autostart - .Setup(service => service.CheckAutostartStatusAsync()) - .ReturnsAsync(true); - this.PowerPlans - .Setup(service => service.GetPowerPlansAsync()) - .ReturnsAsync(new ObservableCollection()); - this.PowerPlans - .Setup(service => service.GetCustomPowerPlansAsync()) - .ReturnsAsync(new ObservableCollection()); - this.PowerPlans - .Setup(service => service.GetActivePowerPlan()) - .ReturnsAsync((PowerPlanModel?)null); - this.Associations - .Setup(service => service.GetDefaultPowerPlanAsync()) - .ReturnsAsync((string.Empty, string.Empty)); - this.VersionProvider.SetupGet(service => service.DisplayVersion).Returns("v1.3.1"); - this.VersionProvider.SetupGet(service => service.CurrentVersion).Returns(new SemanticVersion(1, 3, 1)); - } - - public SettingsViewModel CreateViewModel() => - new( - NullLogger.Instance, - this.SettingsService.Object, - this.Notifications.Object, - this.Autostart.Object, - this.PowerPlans.Object, - this.Associations.Object, - this.ProcessMonitorManager.Object, - this.Theme.Object, - this.Tray.Object, - this.Updates.Object, - this.VersionProvider.Object, - this.Localization.Object, - this.Logging.Object, - this.Audit); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Collections.ObjectModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class SettingsViewModelThemeTests + { + [Fact] + public async Task ChangingTheme_AppliesThemeAndLogsVisibleActivityEntry() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + viewModel.Settings.UseDarkTheme = true; + + harness.Theme.Verify(service => service.ApplyTheme(true), Times.Once); + harness.Tray.Verify(service => service.ApplyTheme(true), Times.Once); + harness.Logging.Verify( + service => service.LogUserActionAsync( + "ThemeChanged", + "Theme changed to Dark", + null), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Settings", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal("Theme changed to Dark", entry.Message); + Assert.Equal("Theme changed to Dark.", viewModel.StatusMessage); + } + + [Fact] + public void ChangingTheme_ToSameValue_DoesNotApplyOrLogAgain() + { + var harness = new Harness(initialDarkTheme: true); + var viewModel = harness.CreateViewModel(); + + viewModel.Settings.UseDarkTheme = true; + + harness.Theme.Verify(service => service.ApplyTheme(It.IsAny()), Times.Never); + harness.Tray.Verify(service => service.ApplyTheme(It.IsAny()), Times.Never); + harness.Logging.Verify( + service => service.LogUserActionAsync(It.IsAny(), It.IsAny(), It.IsAny()), + Times.Never); + } + + [Fact] + public async Task ChangingApplyPersistentRulesOnProcessStart_UpdatesSettingAndLogsVisibleActivityEntry() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + viewModel.Settings.ApplyPersistentRulesOnProcessStart = false; + + Assert.False(viewModel.Settings.ApplyPersistentRulesOnProcessStart); + harness.Logging.Verify( + service => service.LogUserActionAsync( + "SettingsChanged", + "[Settings] Apply saved rules at process start disabled.", + null), + Times.Once); + var disabledEntry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Settings", disabledEntry.Category); + Assert.Equal("[Settings] Apply saved rules at process start disabled.", disabledEntry.Message); + + viewModel.Settings.ApplyPersistentRulesOnProcessStart = true; + + Assert.True(viewModel.Settings.ApplyPersistentRulesOnProcessStart); + harness.Logging.Verify( + service => service.LogUserActionAsync( + "SettingsChanged", + "[Settings] Apply saved rules at process start enabled.", + null), + Times.Once); + var entries = await harness.Audit.GetEntriesAsync(); + Assert.Contains(entries, entry => entry.Message == "[Settings] Apply saved rules at process start enabled."); + } + + [Fact] + public async Task ChangingLanguage_AppliesLanguageAndLogsVisibleActivityEntry() + { + var harness = new Harness(); + var viewModel = harness.CreateViewModel(); + + viewModel.Settings.Language = "zh-CN"; + + harness.Localization.Verify(service => service.ApplyLanguage("zh-CN"), Times.Once); + harness.Logging.Verify( + service => service.LogUserActionAsync( + "LanguageChanged", + "Language changed to Simplified Chinese", + null), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Language changed to Simplified Chinese", entry.Message); + Assert.Equal("Language changed to Simplified Chinese.", viewModel.StatusMessage); + } + + [Fact] + public void ChangingLanguage_UsesLocalizedStatusMessage() + { + var harness = new Harness(); + harness.Localization + .Setup(service => service.GetString(It.IsAny())) + .Returns(key => key switch + { + "Settings_LanguageSimplifiedChinese" => "简体中文", + "Settings_StatusLanguageChangedFormat" => "语言已切æ¢ä¸º{0}。", + _ => key, + }); + var viewModel = harness.CreateViewModel(); + + viewModel.Settings.Language = "zh-CN"; + + Assert.Equal("语言已切æ¢ä¸ºç®€ä½“中文。", viewModel.StatusMessage); + } + + [Fact] + public async Task SaveSettingsCommand_PersistsSelectedLanguage() + { + var harness = new Harness(); + ApplicationSettingsModel? savedSettings = null; + harness.SettingsService + .Setup(service => service.UpdateSettingsAsync(It.IsAny())) + .Callback(settings => savedSettings = (ApplicationSettingsModel)settings.Clone()) + .Returns(Task.CompletedTask); + var viewModel = harness.CreateViewModel(); + viewModel.Settings.Language = "zh-CN"; + + await ((IAsyncRelayCommand)viewModel.SaveSettingsCommand).ExecuteAsync(null); + + Assert.NotNull(savedSettings); + Assert.Equal("zh-CN", savedSettings.Language); + Assert.False(viewModel.HasUnsavedChanges); + } + + [Fact] + public void SettingsView_ExposesPersistentRuleAutoApplyToggle() + { + var settingsViewPath = Path.Combine( + AppContext.BaseDirectory, + "..", + "..", + "..", + "..", + "..", + "Views", + "SettingsView.xaml"); + var serialized = File.ReadAllText(settingsViewPath); + + Assert.Contains("Text=\"{DynamicResource SettingsView_RulesAutomation}\" Style=\"{StaticResource SectionHeaderStyle}\"", serialized, StringComparison.Ordinal); + Assert.Contains("Text=\"{DynamicResource SettingsView_ApplyOnStart}\"", serialized, StringComparison.Ordinal); + Assert.Contains("TextWrapping=\"Wrap\"", serialized, StringComparison.Ordinal); + Assert.Contains("IsChecked=\"{Binding Settings.ApplyPersistentRulesOnProcessStart}\"", serialized, StringComparison.Ordinal); + Assert.Contains("Text=\"{DynamicResource SettingsView_ApplyOnStartDescription}\"", serialized, StringComparison.Ordinal); + } + + [Fact] + public void SettingsView_ExposesOptionalChineseLanguageSelection() + { + var settingsViewPath = Path.Combine( + AppContext.BaseDirectory, + "..", + "..", + "..", + "..", + "..", + "Views", + "SettingsView.xaml"); + var serialized = File.ReadAllText(settingsViewPath); + + Assert.Contains("SelectedValue=\"{Binding Settings.Language}\"", serialized, StringComparison.Ordinal); + Assert.Contains("Tag=\"en-US\"", serialized, StringComparison.Ordinal); + Assert.Contains("Tag=\"zh-CN\"", serialized, StringComparison.Ordinal); + } + + private sealed class Harness + { + private readonly ApplicationSettingsModel settings; + + public Mock SettingsService { get; } = new(MockBehavior.Loose); + + public Mock Notifications { get; } = new(MockBehavior.Loose); + + public Mock Autostart { get; } = new(MockBehavior.Loose); + + public Mock PowerPlans { get; } = new(MockBehavior.Loose); + + public Mock Associations { get; } = new(MockBehavior.Loose); + + public Mock ProcessMonitorManager { get; } = new(MockBehavior.Loose); + + public Mock Theme { get; } = new(MockBehavior.Loose); + + public Mock Tray { get; } = new(MockBehavior.Loose); + + public Mock Localization { get; } = new(MockBehavior.Loose); + + public Mock Updates { get; } = new(MockBehavior.Loose); + + public Mock VersionProvider { get; } = new(MockBehavior.Loose); + + public Mock Logging { get; } = new(MockBehavior.Loose); + + public ActivityAuditService Audit { get; } = new(NullLogger.Instance); + + public Harness(bool initialDarkTheme = false) + { + this.settings = new ApplicationSettingsModel + { + UseDarkTheme = initialDarkTheme, + HasUserThemePreference = initialDarkTheme, + }; + this.SettingsService.SetupGet(service => service.Settings).Returns(this.settings); + this.Autostart + .Setup(service => service.CheckAutostartStatusAsync()) + .ReturnsAsync(true); + this.PowerPlans + .Setup(service => service.GetPowerPlansAsync()) + .ReturnsAsync(new ObservableCollection()); + this.PowerPlans + .Setup(service => service.GetCustomPowerPlansAsync()) + .ReturnsAsync(new ObservableCollection()); + this.PowerPlans + .Setup(service => service.GetActivePowerPlan()) + .ReturnsAsync((PowerPlanModel?)null); + this.Associations + .Setup(service => service.GetDefaultPowerPlanAsync()) + .ReturnsAsync((string.Empty, string.Empty)); + this.VersionProvider.SetupGet(service => service.DisplayVersion).Returns("v1.3.1"); + this.VersionProvider.SetupGet(service => service.CurrentVersion).Returns(new SemanticVersion(1, 3, 1)); + } + + public SettingsViewModel CreateViewModel() => + new( + NullLogger.Instance, + this.SettingsService.Object, + this.Notifications.Object, + this.Autostart.Object, + this.PowerPlans.Object, + this.Associations.Object, + this.ProcessMonitorManager.Object, + this.Theme.Object, + this.Tray.Object, + this.Updates.Object, + this.VersionProvider.Object, + this.Localization.Object, + this.Logging.Object, + this.Audit); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/StartupMinimizedSuggestionPolicyTests.cs b/Tests/ThreadPilot.Core.Tests/StartupMinimizedSuggestionPolicyTests.cs index 01e2786..20729ce 100644 --- a/Tests/ThreadPilot.Core.Tests/StartupMinimizedSuggestionPolicyTests.cs +++ b/Tests/ThreadPilot.Core.Tests/StartupMinimizedSuggestionPolicyTests.cs @@ -1,36 +1,36 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Helpers; - using ThreadPilot.Models; - - public sealed class StartupMinimizedSuggestionPolicyTests - { - [Fact] - public void ShouldShow_ReturnsTrue_ForFirstVisibleNormalLaunchWithoutStartMinimized() - { - var settings = new ApplicationSettingsModel(); - var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false); - - Assert.True(StartupMinimizedSuggestionPolicy.ShouldShow(settings, behavior)); - } - - [Fact] - public void ShouldShow_ReturnsFalse_WhenStartupIsSilent() - { - var settings = new ApplicationSettingsModel(); - var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: true); - - Assert.False(StartupMinimizedSuggestionPolicy.ShouldShow(settings, behavior)); - } - - [Fact] - public void ShouldShow_ReturnsFalse_WhenSuggestionWasAlreadySeen() - { - var settings = new ApplicationSettingsModel(); - settings.HasSeenStartupMinimizedSuggestion = true; - var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false); - - Assert.False(StartupMinimizedSuggestionPolicy.ShouldShow(settings, behavior)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Helpers; + using ThreadPilot.Models; + + public sealed class StartupMinimizedSuggestionPolicyTests + { + [Fact] + public void ShouldShow_ReturnsTrue_ForFirstVisibleNormalLaunchWithoutStartMinimized() + { + var settings = new ApplicationSettingsModel(); + var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false); + + Assert.True(StartupMinimizedSuggestionPolicy.ShouldShow(settings, behavior)); + } + + [Fact] + public void ShouldShow_ReturnsFalse_WhenStartupIsSilent() + { + var settings = new ApplicationSettingsModel(); + var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: true); + + Assert.False(StartupMinimizedSuggestionPolicy.ShouldShow(settings, behavior)); + } + + [Fact] + public void ShouldShow_ReturnsFalse_WhenSuggestionWasAlreadySeen() + { + var settings = new ApplicationSettingsModel(); + settings.HasSeenStartupMinimizedSuggestion = true; + var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false); + + Assert.False(StartupMinimizedSuggestionPolicy.ShouldShow(settings, behavior)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/StartupWindowBehaviorTests.cs b/Tests/ThreadPilot.Core.Tests/StartupWindowBehaviorTests.cs index 7437e96..8808dd8 100644 --- a/Tests/ThreadPilot.Core.Tests/StartupWindowBehaviorTests.cs +++ b/Tests/ThreadPilot.Core.Tests/StartupWindowBehaviorTests.cs @@ -1,60 +1,60 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Windows; - using ThreadPilot.Helpers; - - public sealed class StartupWindowBehaviorTests - { - [Fact] - public void Resolve_ShowsNormalWindow_ForManualLaunchWithoutStartMinimized() - { - var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false); - - Assert.True(behavior.ShouldShowWindow); - Assert.True(behavior.ShowInTaskbar); - Assert.Equal(Visibility.Visible, behavior.Visibility); - Assert.Equal(WindowState.Normal, behavior.WindowState); - Assert.False(behavior.HideAfterShow); - Assert.True(behavior.ActivateAfterShow); - } - - [Fact] - public void Resolve_HidesToTray_ForManualLaunchWithStartMinimized() - { - var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: true); - - Assert.False(behavior.ShouldShowWindow); - Assert.False(behavior.ShowInTaskbar); - Assert.Equal(Visibility.Hidden, behavior.Visibility); - Assert.Equal(WindowState.Minimized, behavior.WindowState); - Assert.False(behavior.HideAfterShow); - Assert.False(behavior.ActivateAfterShow); - } - - [Fact] - public void Resolve_HidesToTray_ForAutostartWithStartMinimized() - { - var behavior = StartupWindowBehavior.Resolve(isAutostart: true, startMinimized: true); - - Assert.False(behavior.ShouldShowWindow); - Assert.False(behavior.ShowInTaskbar); - Assert.Equal(Visibility.Hidden, behavior.Visibility); - Assert.Equal(WindowState.Minimized, behavior.WindowState); - Assert.False(behavior.HideAfterShow); - Assert.False(behavior.ActivateAfterShow); - } - - [Fact] - public void Resolve_ShowsNormalWindow_ForAutostartWithStartMinimizedDisabled() - { - var behavior = StartupWindowBehavior.Resolve(isAutostart: true, startMinimized: false); - - Assert.True(behavior.ShouldShowWindow); - Assert.True(behavior.ShowInTaskbar); - Assert.Equal(Visibility.Visible, behavior.Visibility); - Assert.Equal(WindowState.Normal, behavior.WindowState); - Assert.False(behavior.HideAfterShow); - Assert.True(behavior.ActivateAfterShow); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Windows; + using ThreadPilot.Helpers; + + public sealed class StartupWindowBehaviorTests + { + [Fact] + public void Resolve_ShowsNormalWindow_ForManualLaunchWithoutStartMinimized() + { + var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: false); + + Assert.True(behavior.ShouldShowWindow); + Assert.True(behavior.ShowInTaskbar); + Assert.Equal(Visibility.Visible, behavior.Visibility); + Assert.Equal(WindowState.Normal, behavior.WindowState); + Assert.False(behavior.HideAfterShow); + Assert.True(behavior.ActivateAfterShow); + } + + [Fact] + public void Resolve_HidesToTray_ForManualLaunchWithStartMinimized() + { + var behavior = StartupWindowBehavior.Resolve(isAutostart: false, startMinimized: true); + + Assert.False(behavior.ShouldShowWindow); + Assert.False(behavior.ShowInTaskbar); + Assert.Equal(Visibility.Hidden, behavior.Visibility); + Assert.Equal(WindowState.Minimized, behavior.WindowState); + Assert.False(behavior.HideAfterShow); + Assert.False(behavior.ActivateAfterShow); + } + + [Fact] + public void Resolve_HidesToTray_ForAutostartWithStartMinimized() + { + var behavior = StartupWindowBehavior.Resolve(isAutostart: true, startMinimized: true); + + Assert.False(behavior.ShouldShowWindow); + Assert.False(behavior.ShowInTaskbar); + Assert.Equal(Visibility.Hidden, behavior.Visibility); + Assert.Equal(WindowState.Minimized, behavior.WindowState); + Assert.False(behavior.HideAfterShow); + Assert.False(behavior.ActivateAfterShow); + } + + [Fact] + public void Resolve_ShowsNormalWindow_ForAutostartWithStartMinimizedDisabled() + { + var behavior = StartupWindowBehavior.Resolve(isAutostart: true, startMinimized: false); + + Assert.True(behavior.ShouldShowWindow); + Assert.True(behavior.ShowInTaskbar); + Assert.Equal(Visibility.Visible, behavior.Visibility); + Assert.Equal(WindowState.Normal, behavior.WindowState); + Assert.False(behavior.HideAfterShow); + Assert.True(behavior.ActivateAfterShow); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SystemTrayPlacementHelperTests.cs b/Tests/ThreadPilot.Core.Tests/SystemTrayPlacementHelperTests.cs index bd94dc9..a0e1f48 100644 --- a/Tests/ThreadPilot.Core.Tests/SystemTrayPlacementHelperTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SystemTrayPlacementHelperTests.cs @@ -1,65 +1,65 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Drawing; - using ThreadPilot.Services; - - public sealed class SystemTrayPlacementHelperTests - { - [Fact] - public void ResolveMenuOpenPoint_UsesCursorPositionOnFirstOpen() - { - var cursor = new Point(1200, 700); - - var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( - cursor, - Point.Empty, - Rectangle.Empty, - new Rectangle(0, 0, 1920, 1080)); - - Assert.Equal(cursor, result); - Assert.NotEqual(Point.Empty, result); - } - - [Fact] - public void ResolveMenuOpenPoint_FallsBackToLastKnownPoint_WhenCursorIsUnavailable() - { - var lastKnown = new Point(1600, 900); - - var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( - Point.Empty, - lastKnown, - Rectangle.Empty, - new Rectangle(0, 0, 1920, 1080)); - - Assert.Equal(lastKnown, result); - } - - [Fact] - public void ResolveMenuOpenPoint_WhenFirstCursorIsUnavailable_UsesTaskbarAreaInsteadOfTopLeft() - { - var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( - Point.Empty, - Point.Empty, - Rectangle.Empty, - new Rectangle(0, 0, 1920, 1080)); - - Assert.NotEqual(Point.Empty, result); - Assert.True(result.X > 0); - Assert.True(result.Y > 0); - } - - [Fact] - public void ResolveMenuOpenPoint_WhenTrayBoundsAreInvalid_FallsBackToCursor() - { - var cursor = new Point(900, 500); - - var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( - cursor, - Point.Empty, - Rectangle.Empty, - new Rectangle(0, 0, 1920, 1080)); - - Assert.Equal(cursor, result); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Drawing; + using ThreadPilot.Services; + + public sealed class SystemTrayPlacementHelperTests + { + [Fact] + public void ResolveMenuOpenPoint_UsesCursorPositionOnFirstOpen() + { + var cursor = new Point(1200, 700); + + var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( + cursor, + Point.Empty, + Rectangle.Empty, + new Rectangle(0, 0, 1920, 1080)); + + Assert.Equal(cursor, result); + Assert.NotEqual(Point.Empty, result); + } + + [Fact] + public void ResolveMenuOpenPoint_FallsBackToLastKnownPoint_WhenCursorIsUnavailable() + { + var lastKnown = new Point(1600, 900); + + var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( + Point.Empty, + lastKnown, + Rectangle.Empty, + new Rectangle(0, 0, 1920, 1080)); + + Assert.Equal(lastKnown, result); + } + + [Fact] + public void ResolveMenuOpenPoint_WhenFirstCursorIsUnavailable_UsesTaskbarAreaInsteadOfTopLeft() + { + var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( + Point.Empty, + Point.Empty, + Rectangle.Empty, + new Rectangle(0, 0, 1920, 1080)); + + Assert.NotEqual(Point.Empty, result); + Assert.True(result.X > 0); + Assert.True(result.Y > 0); + } + + [Fact] + public void ResolveMenuOpenPoint_WhenTrayBoundsAreInvalid_FallsBackToCursor() + { + var cursor = new Point(900, 500); + + var result = SystemTrayMenuPlacement.ResolveMenuOpenPoint( + cursor, + Point.Empty, + Rectangle.Empty, + new Rectangle(0, 0, 1920, 1080)); + + Assert.Equal(cursor, result); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SystemTrayStatusUpdaterTests.cs b/Tests/ThreadPilot.Core.Tests/SystemTrayStatusUpdaterTests.cs index ae0b3f4..e856ca2 100644 --- a/Tests/ThreadPilot.Core.Tests/SystemTrayStatusUpdaterTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SystemTrayStatusUpdaterTests.cs @@ -1,72 +1,72 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Collections.ObjectModel; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class SystemTrayStatusUpdaterTests - { - [Fact] - public async Task UpdateContextMenuAsync_DiagnosticsHidden_DoesNotResolvePerformanceService() - { - var harness = new Harness(); - var updater = harness.CreateUpdater(performanceFactory: () => throw new InvalidOperationException("Performance service should not be resolved.")); - - await updater.UpdateContextMenuAsync(harness.Tray.Object); - - harness.Tray.Verify(x => x.UpdatePowerPlans(It.IsAny>(), It.IsAny()), Times.Once); - harness.Tray.Verify(x => x.UpdateProfiles(It.IsAny>()), Times.Once); - harness.Tray.Verify(x => x.UpdateSystemStatus("Balanced"), Times.Once); - harness.Tray.Verify(x => x.UpdateSystemStatus(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task UpdateStatusAsync_DiagnosticsHidden_DoesNotRequestLightweightMetrics() - { - var harness = new Harness(); - var updater = harness.CreateUpdater(performanceFactory: () => throw new InvalidOperationException("Performance service should not be resolved.")); - - var updated = await updater.UpdateStatusAsync(harness.Tray.Object, action => - { - action(); - return Task.CompletedTask; - }); - - Assert.True(updated); - Assert.False(updater.ShouldRunPerformanceStatusUpdates); - harness.Tray.Verify(x => x.UpdateSystemStatus("Balanced"), Times.Once); - harness.Tray.Verify(x => x.UpdateSystemStatus(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); - } - - private sealed class Harness - { - public Mock Tray { get; } = new(MockBehavior.Strict); - - public Mock PowerPlan { get; } = new(MockBehavior.Strict); - - public Harness() - { - var activePlan = new PowerPlanModel { Guid = "balanced", Name = "Balanced" }; - this.PowerPlan - .Setup(x => x.GetPowerPlansAsync()) - .ReturnsAsync(new ObservableCollection { activePlan }); - this.PowerPlan - .Setup(x => x.GetActivePowerPlan()) - .ReturnsAsync(activePlan); - - this.Tray - .Setup(x => x.UpdatePowerPlans(It.IsAny>(), It.IsAny())); - this.Tray - .Setup(x => x.UpdateProfiles(It.IsAny>())); - this.Tray - .Setup(x => x.UpdateSystemStatus(It.IsAny())); - } - - public SystemTrayStatusUpdater CreateUpdater(Func performanceFactory) => - new( - this.PowerPlan.Object, - new Lazy(performanceFactory)); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Collections.ObjectModel; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class SystemTrayStatusUpdaterTests + { + [Fact] + public async Task UpdateContextMenuAsync_DiagnosticsHidden_DoesNotResolvePerformanceService() + { + var harness = new Harness(); + var updater = harness.CreateUpdater(performanceFactory: () => throw new InvalidOperationException("Performance service should not be resolved.")); + + await updater.UpdateContextMenuAsync(harness.Tray.Object); + + harness.Tray.Verify(x => x.UpdatePowerPlans(It.IsAny>(), It.IsAny()), Times.Once); + harness.Tray.Verify(x => x.UpdateProfiles(It.IsAny>()), Times.Once); + harness.Tray.Verify(x => x.UpdateSystemStatus("Balanced"), Times.Once); + harness.Tray.Verify(x => x.UpdateSystemStatus(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task UpdateStatusAsync_DiagnosticsHidden_DoesNotRequestLightweightMetrics() + { + var harness = new Harness(); + var updater = harness.CreateUpdater(performanceFactory: () => throw new InvalidOperationException("Performance service should not be resolved.")); + + var updated = await updater.UpdateStatusAsync(harness.Tray.Object, action => + { + action(); + return Task.CompletedTask; + }); + + Assert.True(updated); + Assert.False(updater.ShouldRunPerformanceStatusUpdates); + harness.Tray.Verify(x => x.UpdateSystemStatus("Balanced"), Times.Once); + harness.Tray.Verify(x => x.UpdateSystemStatus(It.IsAny(), It.IsAny(), It.IsAny()), Times.Never); + } + + private sealed class Harness + { + public Mock Tray { get; } = new(MockBehavior.Strict); + + public Mock PowerPlan { get; } = new(MockBehavior.Strict); + + public Harness() + { + var activePlan = new PowerPlanModel { Guid = "balanced", Name = "Balanced" }; + this.PowerPlan + .Setup(x => x.GetPowerPlansAsync()) + .ReturnsAsync(new ObservableCollection { activePlan }); + this.PowerPlan + .Setup(x => x.GetActivePowerPlan()) + .ReturnsAsync(activePlan); + + this.Tray + .Setup(x => x.UpdatePowerPlans(It.IsAny>(), It.IsAny())); + this.Tray + .Setup(x => x.UpdateProfiles(It.IsAny>())); + this.Tray + .Setup(x => x.UpdateSystemStatus(It.IsAny())); + } + + public SystemTrayStatusUpdater CreateUpdater(Func performanceFactory) => + new( + this.PowerPlan.Object, + new Lazy(performanceFactory)); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SystemTweaksServiceTests.cs b/Tests/ThreadPilot.Core.Tests/SystemTweaksServiceTests.cs index f0f3f9b..83b5c4d 100644 --- a/Tests/ThreadPilot.Core.Tests/SystemTweaksServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SystemTweaksServiceTests.cs @@ -1,24 +1,24 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Services; - - public sealed class SystemTweaksServiceTests - { - [Fact] - public void GetHighSchedulingCategoryRegistryValue_WhenEnabled_ReturnsWin32PrioritySeparation26() - { - var value = SystemTweaksService.GetHighSchedulingCategoryRegistryValue(enabled: true); - - Assert.Equal(26, value); - Assert.Equal(0x1A, value); - } - - [Fact] - public void GetHighSchedulingCategoryRegistryValue_WhenDisabled_KeepsDefaultRevertValue() - { - var value = SystemTweaksService.GetHighSchedulingCategoryRegistryValue(enabled: false); - - Assert.Equal(2, value); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Services; + + public sealed class SystemTweaksServiceTests + { + [Fact] + public void GetHighSchedulingCategoryRegistryValue_WhenEnabled_ReturnsWin32PrioritySeparation26() + { + var value = SystemTweaksService.GetHighSchedulingCategoryRegistryValue(enabled: true); + + Assert.Equal(26, value); + Assert.Equal(0x1A, value); + } + + [Fact] + public void GetHighSchedulingCategoryRegistryValue_WhenDisabled_KeepsDefaultRevertValue() + { + var value = SystemTweaksService.GetHighSchedulingCategoryRegistryValue(enabled: false); + + Assert.Equal(2, value); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/SystemTweaksViewModelTests.cs b/Tests/ThreadPilot.Core.Tests/SystemTweaksViewModelTests.cs index 7ee02d9..f9b0bc4 100644 --- a/Tests/ThreadPilot.Core.Tests/SystemTweaksViewModelTests.cs +++ b/Tests/ThreadPilot.Core.Tests/SystemTweaksViewModelTests.cs @@ -1,166 +1,166 @@ -namespace ThreadPilot.Core.Tests -{ - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public sealed class SystemTweaksViewModelTests - { - [Theory] - [InlineData(SystemTweak.CoreParking, "Core Parking")] - [InlineData(SystemTweak.CStates, "C-States")] - [InlineData(SystemTweak.SysMain, "SysMain Service")] - [InlineData(SystemTweak.Prefetch, "Prefetch")] - [InlineData(SystemTweak.PowerThrottling, "Power Throttling")] - [InlineData(SystemTweak.Hpet, "HPET")] - [InlineData(SystemTweak.HighSchedulingCategory, "High Scheduling Category")] - [InlineData(SystemTweak.MenuShowDelay, "Menu Show Delay")] - public async Task ToggleTweakCommand_CallsExpectedServiceAndLogsSuccess(SystemTweak tweakType, string name) - { - var harness = new Harness(); - harness.SetupTweak(tweakType, setResult: true); - var viewModel = harness.CreateViewModel(); - var item = viewModel.TweakItems.Single(tweak => tweak.TweakType == tweakType); - - Assert.NotNull(item.ToggleCommand); - await item.ToggleCommand.ExecuteAsync(item); - - harness.VerifySetCalled(tweakType); - harness.Logging.Verify( - service => service.LogUserActionAsync( - "SystemTweakApplied", - $"{name} enabled", - tweakType.ToString()), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Tweaks", entry.Category); - Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); - Assert.Equal($"{name} enabled", entry.Message); - Assert.Equal($"{name} enabled successfully", viewModel.StatusMessage); - } - - [Fact] - public async Task ToggleTweakCommand_WhenServiceFails_LogsFailureAndShowsSafeStatus() - { - var harness = new Harness(); - harness.Tweaks - .Setup(service => service.SetCoreParkingAsync(true)) - .ReturnsAsync(false); - var viewModel = harness.CreateViewModel(); - var item = viewModel.TweakItems.Single(tweak => tweak.TweakType == SystemTweak.CoreParking); - - Assert.NotNull(item.ToggleCommand); - await item.ToggleCommand.ExecuteAsync(item); - - harness.Logging.Verify( - service => service.LogUserActionAsync( - "SystemTweakFailed", - "Failed to enable Core Parking", - "CoreParking"), - Times.Once); - var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); - Assert.Equal("Tweaks", entry.Category); - Assert.Equal(ActivityAuditSeverity.Error, entry.Severity); - Assert.Equal("Failed to enable Core Parking", entry.Message); - Assert.True(viewModel.HasError); - Assert.Equal("Failed to toggle Core Parking", viewModel.ErrorMessage); - } - - private sealed class Harness - { - public Mock Tweaks { get; } = new(MockBehavior.Loose); - - public Mock Notifications { get; } = new(MockBehavior.Loose); - - public Mock Logging { get; } = new(MockBehavior.Loose); - - public ActivityAuditService Audit { get; } = new(NullLogger.Instance); - - public void SetupTweak(SystemTweak tweakType, bool setResult) - { - switch (tweakType) - { - case SystemTweak.CoreParking: - this.Tweaks.Setup(service => service.SetCoreParkingAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetCoreParkingStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.CStates: - this.Tweaks.Setup(service => service.SetCStatesAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetCStatesStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.SysMain: - this.Tweaks.Setup(service => service.SetSysMainAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetSysMainStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.Prefetch: - this.Tweaks.Setup(service => service.SetPrefetchAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetPrefetchStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.PowerThrottling: - this.Tweaks.Setup(service => service.SetPowerThrottlingAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetPowerThrottlingStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.Hpet: - this.Tweaks.Setup(service => service.SetHpetAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetHpetStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.HighSchedulingCategory: - this.Tweaks.Setup(service => service.SetHighSchedulingCategoryAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetHighSchedulingCategoryStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - case SystemTweak.MenuShowDelay: - this.Tweaks.Setup(service => service.SetMenuShowDelayAsync(true)).ReturnsAsync(setResult); - this.Tweaks.Setup(service => service.GetMenuShowDelayStatusAsync()).ReturnsAsync(CreateEnabledStatus()); - break; - default: - throw new ArgumentOutOfRangeException(nameof(tweakType), tweakType, null); - } - } - - public void VerifySetCalled(SystemTweak tweakType) - { - switch (tweakType) - { - case SystemTweak.CoreParking: - this.Tweaks.Verify(service => service.SetCoreParkingAsync(true), Times.Once); - break; - case SystemTweak.CStates: - this.Tweaks.Verify(service => service.SetCStatesAsync(true), Times.Once); - break; - case SystemTweak.SysMain: - this.Tweaks.Verify(service => service.SetSysMainAsync(true), Times.Once); - break; - case SystemTweak.Prefetch: - this.Tweaks.Verify(service => service.SetPrefetchAsync(true), Times.Once); - break; - case SystemTweak.PowerThrottling: - this.Tweaks.Verify(service => service.SetPowerThrottlingAsync(true), Times.Once); - break; - case SystemTweak.Hpet: - this.Tweaks.Verify(service => service.SetHpetAsync(true), Times.Once); - break; - case SystemTweak.HighSchedulingCategory: - this.Tweaks.Verify(service => service.SetHighSchedulingCategoryAsync(true), Times.Once); - break; - case SystemTweak.MenuShowDelay: - this.Tweaks.Verify(service => service.SetMenuShowDelayAsync(true), Times.Once); - break; - default: - throw new ArgumentOutOfRangeException(nameof(tweakType), tweakType, null); - } - } - - public SystemTweaksViewModel CreateViewModel() => - new( - this.Tweaks.Object, - this.Notifications.Object, - NullLogger.Instance, - this.Logging.Object, - this.Audit); - - private static TweakStatus CreateEnabledStatus() => - new() { IsEnabled = true, IsAvailable = true }; - } - } -} +namespace ThreadPilot.Core.Tests +{ + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public sealed class SystemTweaksViewModelTests + { + [Theory] + [InlineData(SystemTweak.CoreParking, "Core Parking")] + [InlineData(SystemTweak.CStates, "C-States")] + [InlineData(SystemTweak.SysMain, "SysMain Service")] + [InlineData(SystemTweak.Prefetch, "Prefetch")] + [InlineData(SystemTweak.PowerThrottling, "Power Throttling")] + [InlineData(SystemTweak.Hpet, "HPET")] + [InlineData(SystemTweak.HighSchedulingCategory, "High Scheduling Category")] + [InlineData(SystemTweak.MenuShowDelay, "Menu Show Delay")] + public async Task ToggleTweakCommand_CallsExpectedServiceAndLogsSuccess(SystemTweak tweakType, string name) + { + var harness = new Harness(); + harness.SetupTweak(tweakType, setResult: true); + var viewModel = harness.CreateViewModel(); + var item = viewModel.TweakItems.Single(tweak => tweak.TweakType == tweakType); + + Assert.NotNull(item.ToggleCommand); + await item.ToggleCommand.ExecuteAsync(item); + + harness.VerifySetCalled(tweakType); + harness.Logging.Verify( + service => service.LogUserActionAsync( + "SystemTweakApplied", + $"{name} enabled", + tweakType.ToString()), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Tweaks", entry.Category); + Assert.Equal(ActivityAuditSeverity.Success, entry.Severity); + Assert.Equal($"{name} enabled", entry.Message); + Assert.Equal($"{name} enabled successfully", viewModel.StatusMessage); + } + + [Fact] + public async Task ToggleTweakCommand_WhenServiceFails_LogsFailureAndShowsSafeStatus() + { + var harness = new Harness(); + harness.Tweaks + .Setup(service => service.SetCoreParkingAsync(true)) + .ReturnsAsync(false); + var viewModel = harness.CreateViewModel(); + var item = viewModel.TweakItems.Single(tweak => tweak.TweakType == SystemTweak.CoreParking); + + Assert.NotNull(item.ToggleCommand); + await item.ToggleCommand.ExecuteAsync(item); + + harness.Logging.Verify( + service => service.LogUserActionAsync( + "SystemTweakFailed", + "Failed to enable Core Parking", + "CoreParking"), + Times.Once); + var entry = Assert.Single(await harness.Audit.GetEntriesAsync()); + Assert.Equal("Tweaks", entry.Category); + Assert.Equal(ActivityAuditSeverity.Error, entry.Severity); + Assert.Equal("Failed to enable Core Parking", entry.Message); + Assert.True(viewModel.HasError); + Assert.Equal("Failed to toggle Core Parking", viewModel.ErrorMessage); + } + + private sealed class Harness + { + public Mock Tweaks { get; } = new(MockBehavior.Loose); + + public Mock Notifications { get; } = new(MockBehavior.Loose); + + public Mock Logging { get; } = new(MockBehavior.Loose); + + public ActivityAuditService Audit { get; } = new(NullLogger.Instance); + + public void SetupTweak(SystemTweak tweakType, bool setResult) + { + switch (tweakType) + { + case SystemTweak.CoreParking: + this.Tweaks.Setup(service => service.SetCoreParkingAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetCoreParkingStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.CStates: + this.Tweaks.Setup(service => service.SetCStatesAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetCStatesStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.SysMain: + this.Tweaks.Setup(service => service.SetSysMainAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetSysMainStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.Prefetch: + this.Tweaks.Setup(service => service.SetPrefetchAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetPrefetchStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.PowerThrottling: + this.Tweaks.Setup(service => service.SetPowerThrottlingAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetPowerThrottlingStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.Hpet: + this.Tweaks.Setup(service => service.SetHpetAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetHpetStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.HighSchedulingCategory: + this.Tweaks.Setup(service => service.SetHighSchedulingCategoryAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetHighSchedulingCategoryStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + case SystemTweak.MenuShowDelay: + this.Tweaks.Setup(service => service.SetMenuShowDelayAsync(true)).ReturnsAsync(setResult); + this.Tweaks.Setup(service => service.GetMenuShowDelayStatusAsync()).ReturnsAsync(CreateEnabledStatus()); + break; + default: + throw new ArgumentOutOfRangeException(nameof(tweakType), tweakType, null); + } + } + + public void VerifySetCalled(SystemTweak tweakType) + { + switch (tweakType) + { + case SystemTweak.CoreParking: + this.Tweaks.Verify(service => service.SetCoreParkingAsync(true), Times.Once); + break; + case SystemTweak.CStates: + this.Tweaks.Verify(service => service.SetCStatesAsync(true), Times.Once); + break; + case SystemTweak.SysMain: + this.Tweaks.Verify(service => service.SetSysMainAsync(true), Times.Once); + break; + case SystemTweak.Prefetch: + this.Tweaks.Verify(service => service.SetPrefetchAsync(true), Times.Once); + break; + case SystemTweak.PowerThrottling: + this.Tweaks.Verify(service => service.SetPowerThrottlingAsync(true), Times.Once); + break; + case SystemTweak.Hpet: + this.Tweaks.Verify(service => service.SetHpetAsync(true), Times.Once); + break; + case SystemTweak.HighSchedulingCategory: + this.Tweaks.Verify(service => service.SetHighSchedulingCategoryAsync(true), Times.Once); + break; + case SystemTweak.MenuShowDelay: + this.Tweaks.Verify(service => service.SetMenuShowDelayAsync(true), Times.Once); + break; + default: + throw new ArgumentOutOfRangeException(nameof(tweakType), tweakType, null); + } + } + + public SystemTweaksViewModel CreateViewModel() => + new( + this.Tweaks.Object, + this.Notifications.Object, + NullLogger.Instance, + this.Logging.Object, + this.Audit); + + private static TweakStatus CreateEnabledStatus() => + new() { IsEnabled = true, IsAvailable = true }; + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/TaskSafetyTests.cs b/Tests/ThreadPilot.Core.Tests/TaskSafetyTests.cs index 0a8eb97..b11a6fb 100644 --- a/Tests/ThreadPilot.Core.Tests/TaskSafetyTests.cs +++ b/Tests/ThreadPilot.Core.Tests/TaskSafetyTests.cs @@ -1,47 +1,38 @@ -/* - * ThreadPilot - async safety unit tests. - */ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Services; - - /// - /// Unit tests for . - /// - public sealed class TaskSafetyTests - { - /// - /// Ensures faulted tasks are observed and routed to the provided callback. - /// - [Fact] - public async Task FireAndForget_InvokesErrorCallback_ForFaultedTask() - { - var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var expected = new InvalidOperationException("boom"); - - TaskSafety.FireAndForget(Task.FromException(expected), ex => completion.TrySetResult(ex)); - - var finishedTask = await Task.WhenAny(completion.Task, Task.Delay(TimeSpan.FromSeconds(2))); - Assert.Same(completion.Task, finishedTask); - var observed = await completion.Task; - Assert.IsType(observed); - Assert.Equal("boom", observed.Message); - } - - /// - /// Ensures cancellation does not trigger the error callback. - /// - [Fact] - public async Task FireAndForget_DoesNotInvokeErrorCallback_ForCanceledTask() - { - var callbackInvoked = false; - using var cancellation = new CancellationTokenSource(); - cancellation.Cancel(); - - TaskSafety.FireAndForget(Task.FromCanceled(cancellation.Token), _ => callbackInvoked = true); - - await Task.Delay(150); - Assert.False(callbackInvoked); - } - } -} +/* + * ThreadPilot - async safety unit tests. + */ +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Services; + + public sealed class TaskSafetyTests + { + [Fact] + public async Task FireAndForget_InvokesErrorCallback_ForFaultedTask() + { + var completion = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var expected = new InvalidOperationException("boom"); + + TaskSafety.FireAndForget(Task.FromException(expected), ex => completion.TrySetResult(ex)); + + var finishedTask = await Task.WhenAny(completion.Task, Task.Delay(TimeSpan.FromSeconds(2))); + Assert.Same(completion.Task, finishedTask); + var observed = await completion.Task; + Assert.IsType(observed); + Assert.Equal("boom", observed.Message); + } + + [Fact] + public async Task FireAndForget_DoesNotInvokeErrorCallback_ForCanceledTask() + { + var callbackInvoked = false; + using var cancellation = new CancellationTokenSource(); + cancellation.Cancel(); + + TaskSafety.FireAndForget(Task.FromCanceled(cancellation.Token), _ => callbackInvoked = true); + + await Task.Delay(150); + Assert.False(callbackInvoked); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/ThemeDictionaryPolicyTests.cs b/Tests/ThreadPilot.Core.Tests/ThemeDictionaryPolicyTests.cs index 8f4e384..5a07992 100644 --- a/Tests/ThreadPilot.Core.Tests/ThemeDictionaryPolicyTests.cs +++ b/Tests/ThreadPilot.Core.Tests/ThemeDictionaryPolicyTests.cs @@ -1,139 +1,139 @@ -namespace ThreadPilot.Core.Tests -{ - using System.Reflection; - using System.Windows; - using ThreadPilot.Services; - - public sealed class ThemeDictionaryPolicyTests - { - [Theory] - [InlineData("Themes/FluentDark.xaml")] - [InlineData("Themes/FluentLight.xaml")] - [InlineData("/ThreadPilot;component/Themes/FluentDark.xaml")] - [InlineData("pack://application:,,,/ThreadPilot;component/Themes/FluentLight.xaml")] - public void IsThreadPilotThemeDictionary_RecognizesAppThemeDictionaries(string source) - { - Assert.True(ThemeDictionaryPolicy.IsThreadPilotThemeDictionary(source)); - } - - [Fact] - public void GetInsertionIndex_AppendsThemeDictionaryToPreserveAppResourcePrecedence() - { - Assert.Equal(3, ThemeDictionaryPolicy.GetInsertionIndex(3)); - } - - [Fact] - public void ReplaceThreadPilotThemeDictionary_RemovesOldThemeDictionariesAndAppendsRequestedTheme() - { - var lightThemeUri = new Uri("Themes/FluentLight.xaml", UriKind.Relative); - var darkThemeUri = new Uri("/ThreadPilot;component/Themes/FluentDark.xaml", UriKind.Relative); - var resources = new ResourceDictionary(); - resources.MergedDictionaries.Add(new ResourceDictionary()); - resources.MergedDictionaries.Add(CreateDictionaryWithSource(lightThemeUri)); - resources.MergedDictionaries.Add(CreateDictionaryWithSource(darkThemeUri)); - - var activeDictionary = ThemeDictionaryPolicy.ReplaceThreadPilotThemeDictionary( - resources, - lightThemeUri, - CreateDictionaryWithSource); - - Assert.Same(activeDictionary, resources.MergedDictionaries[^1]); - Assert.Equal(lightThemeUri.OriginalString, activeDictionary.Source.OriginalString); - Assert.Single( - resources.MergedDictionaries, - dictionary => ThemeDictionaryPolicy.IsThreadPilotThemeDictionary(dictionary.Source?.OriginalString)); - } - - [Fact] - public void ReplaceThreadPilotThemeDictionary_WhenRequestedThemeIsAlreadyActive_ReusesExistingDictionary() - { - var darkThemeUri = new Uri("Themes/FluentDark.xaml", UriKind.Relative); - var resources = new ResourceDictionary(); - var activeDictionary = CreateDictionaryWithSource(darkThemeUri); - resources.MergedDictionaries.Add(new ResourceDictionary()); - resources.MergedDictionaries.Add(activeDictionary); - var factoryCalls = 0; - - var result = ThemeDictionaryPolicy.ReplaceThreadPilotThemeDictionary( - resources, - darkThemeUri, - uri => - { - factoryCalls++; - return CreateDictionaryWithSource(uri); - }); - - Assert.Same(activeDictionary, result); - Assert.Equal(0, factoryCalls); - Assert.Same(activeDictionary, resources.MergedDictionaries[^1]); - } - - [Theory] - [InlineData("Themes/FluentDark.xaml")] - [InlineData("Themes/FluentLight.xaml")] - public void ThemeDictionaries_DefineSharedVisualResourceKeys(string themePath) - { - var themeText = File.ReadAllText(GetRepositoryFilePath(themePath)); - - Assert.Contains("StandardCardCornerRadius", themeText, StringComparison.Ordinal); - Assert.Contains("StandardCardPadding", themeText, StringComparison.Ordinal); - Assert.Contains("StandardCardStyle", themeText, StringComparison.Ordinal); - Assert.Contains("PageTitleTextStyle", themeText, StringComparison.Ordinal); - Assert.Contains("PageSubtitleTextStyle", themeText, StringComparison.Ordinal); - Assert.Contains("SectionTitleTextStyle", themeText, StringComparison.Ordinal); - Assert.Contains("QuietRowBackgroundBrush", themeText, StringComparison.Ordinal); - Assert.Contains("StatusPillBackgroundBrush", themeText, StringComparison.Ordinal); - Assert.Contains("AppFontFamily", themeText, StringComparison.Ordinal); - Assert.Contains("MaskSelectedBackgroundBrush", themeText, StringComparison.Ordinal); - Assert.Contains("MaskSelectedListBackgroundBrush", themeText, StringComparison.Ordinal); - Assert.Contains("MaskSelectedBorderBrush", themeText, StringComparison.Ordinal); - } - - [Fact] - public void DarkTheme_MaskListSelectionUsesSubtleTintWithoutAccentForeground() - { - var themeText = File.ReadAllText(GetRepositoryFilePath("Themes/FluentDark.xaml")); - - Assert.Contains("x:Key=\"MaskSelectedListBackgroundBrush\"", themeText, StringComparison.Ordinal); - Assert.Contains("Opacity=\"0.05\"", themeText, StringComparison.Ordinal); - Assert.Contains("x:Key=\"MaskSelectedBorderBrush\"", themeText, StringComparison.Ordinal); - Assert.DoesNotContain( - "x:Key=\"MaskSelectedListBackgroundBrush\" Color=\"{StaticResource AccentFillColorDefault}\"", - themeText, - StringComparison.Ordinal); - Assert.DoesNotContain( - "x:Key=\"MaskSelectedListForegroundBrush\" Color=\"{StaticResource TextOnAccentFillColorPrimary}\"", - themeText, - StringComparison.Ordinal); - } - - private static ResourceDictionary CreateDictionaryWithSource(Uri source) - { - var dictionary = new ResourceDictionary(); - var sourceField = typeof(ResourceDictionary).GetField("_source", BindingFlags.Instance | BindingFlags.NonPublic); - if (sourceField == null) - { - throw new InvalidOperationException("ResourceDictionary source field was not found."); - } - - sourceField.SetValue(dictionary, source); - return dictionary; - } - - private static string GetRepositoryFilePath(string relativePath) - { - var directory = new DirectoryInfo(AppContext.BaseDirectory); - while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj"))) - { - directory = directory.Parent; - } - - if (directory == null) - { - throw new InvalidOperationException("Repository root was not found."); - } - - return Path.Combine(directory.FullName, relativePath); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System.Reflection; + using System.Windows; + using ThreadPilot.Services; + + public sealed class ThemeDictionaryPolicyTests + { + [Theory] + [InlineData("Themes/FluentDark.xaml")] + [InlineData("Themes/FluentLight.xaml")] + [InlineData("/ThreadPilot;component/Themes/FluentDark.xaml")] + [InlineData("pack://application:,,,/ThreadPilot;component/Themes/FluentLight.xaml")] + public void IsThreadPilotThemeDictionary_RecognizesAppThemeDictionaries(string source) + { + Assert.True(ThemeDictionaryPolicy.IsThreadPilotThemeDictionary(source)); + } + + [Fact] + public void GetInsertionIndex_AppendsThemeDictionaryToPreserveAppResourcePrecedence() + { + Assert.Equal(3, ThemeDictionaryPolicy.GetInsertionIndex(3)); + } + + [Fact] + public void ReplaceThreadPilotThemeDictionary_RemovesOldThemeDictionariesAndAppendsRequestedTheme() + { + var lightThemeUri = new Uri("Themes/FluentLight.xaml", UriKind.Relative); + var darkThemeUri = new Uri("/ThreadPilot;component/Themes/FluentDark.xaml", UriKind.Relative); + var resources = new ResourceDictionary(); + resources.MergedDictionaries.Add(new ResourceDictionary()); + resources.MergedDictionaries.Add(CreateDictionaryWithSource(lightThemeUri)); + resources.MergedDictionaries.Add(CreateDictionaryWithSource(darkThemeUri)); + + var activeDictionary = ThemeDictionaryPolicy.ReplaceThreadPilotThemeDictionary( + resources, + lightThemeUri, + CreateDictionaryWithSource); + + Assert.Same(activeDictionary, resources.MergedDictionaries[^1]); + Assert.Equal(lightThemeUri.OriginalString, activeDictionary.Source.OriginalString); + Assert.Single( + resources.MergedDictionaries, + dictionary => ThemeDictionaryPolicy.IsThreadPilotThemeDictionary(dictionary.Source?.OriginalString)); + } + + [Fact] + public void ReplaceThreadPilotThemeDictionary_WhenRequestedThemeIsAlreadyActive_ReusesExistingDictionary() + { + var darkThemeUri = new Uri("Themes/FluentDark.xaml", UriKind.Relative); + var resources = new ResourceDictionary(); + var activeDictionary = CreateDictionaryWithSource(darkThemeUri); + resources.MergedDictionaries.Add(new ResourceDictionary()); + resources.MergedDictionaries.Add(activeDictionary); + var factoryCalls = 0; + + var result = ThemeDictionaryPolicy.ReplaceThreadPilotThemeDictionary( + resources, + darkThemeUri, + uri => + { + factoryCalls++; + return CreateDictionaryWithSource(uri); + }); + + Assert.Same(activeDictionary, result); + Assert.Equal(0, factoryCalls); + Assert.Same(activeDictionary, resources.MergedDictionaries[^1]); + } + + [Theory] + [InlineData("Themes/FluentDark.xaml")] + [InlineData("Themes/FluentLight.xaml")] + public void ThemeDictionaries_DefineSharedVisualResourceKeys(string themePath) + { + var themeText = File.ReadAllText(GetRepositoryFilePath(themePath)); + + Assert.Contains("StandardCardCornerRadius", themeText, StringComparison.Ordinal); + Assert.Contains("StandardCardPadding", themeText, StringComparison.Ordinal); + Assert.Contains("StandardCardStyle", themeText, StringComparison.Ordinal); + Assert.Contains("PageTitleTextStyle", themeText, StringComparison.Ordinal); + Assert.Contains("PageSubtitleTextStyle", themeText, StringComparison.Ordinal); + Assert.Contains("SectionTitleTextStyle", themeText, StringComparison.Ordinal); + Assert.Contains("QuietRowBackgroundBrush", themeText, StringComparison.Ordinal); + Assert.Contains("StatusPillBackgroundBrush", themeText, StringComparison.Ordinal); + Assert.Contains("AppFontFamily", themeText, StringComparison.Ordinal); + Assert.Contains("MaskSelectedBackgroundBrush", themeText, StringComparison.Ordinal); + Assert.Contains("MaskSelectedListBackgroundBrush", themeText, StringComparison.Ordinal); + Assert.Contains("MaskSelectedBorderBrush", themeText, StringComparison.Ordinal); + } + + [Fact] + public void DarkTheme_MaskListSelectionUsesSubtleTintWithoutAccentForeground() + { + var themeText = File.ReadAllText(GetRepositoryFilePath("Themes/FluentDark.xaml")); + + Assert.Contains("x:Key=\"MaskSelectedListBackgroundBrush\"", themeText, StringComparison.Ordinal); + Assert.Contains("Opacity=\"0.05\"", themeText, StringComparison.Ordinal); + Assert.Contains("x:Key=\"MaskSelectedBorderBrush\"", themeText, StringComparison.Ordinal); + Assert.DoesNotContain( + "x:Key=\"MaskSelectedListBackgroundBrush\" Color=\"{StaticResource AccentFillColorDefault}\"", + themeText, + StringComparison.Ordinal); + Assert.DoesNotContain( + "x:Key=\"MaskSelectedListForegroundBrush\" Color=\"{StaticResource TextOnAccentFillColorPrimary}\"", + themeText, + StringComparison.Ordinal); + } + + private static ResourceDictionary CreateDictionaryWithSource(Uri source) + { + var dictionary = new ResourceDictionary(); + var sourceField = typeof(ResourceDictionary).GetField("_source", BindingFlags.Instance | BindingFlags.NonPublic); + if (sourceField == null) + { + throw new InvalidOperationException("ResourceDictionary source field was not found."); + } + + sourceField.SetValue(dictionary, source); + return dictionary; + } + + private static string GetRepositoryFilePath(string relativePath) + { + var directory = new DirectoryInfo(AppContext.BaseDirectory); + while (directory != null && !File.Exists(Path.Combine(directory.FullName, "ThreadPilot.csproj"))) + { + directory = directory.Parent; + } + + if (directory == null) + { + throw new InvalidOperationException("Repository root was not found."); + } + + return Path.Combine(directory.FullName, relativePath); + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/UpdateServiceTests.cs b/Tests/ThreadPilot.Core.Tests/UpdateServiceTests.cs index 2f9729e..b3be706 100644 --- a/Tests/ThreadPilot.Core.Tests/UpdateServiceTests.cs +++ b/Tests/ThreadPilot.Core.Tests/UpdateServiceTests.cs @@ -1,323 +1,323 @@ -namespace ThreadPilot.Core.Tests -{ - using System; - using System.Collections.Generic; - using System.IO; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using Microsoft.Extensions.Logging.Abstractions; - using Moq; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.Services.Abstractions; - - public sealed class UpdateServiceTests - { - [Fact] - public void SemanticVersion_OrdersStableAbovePrerelease() - { - Assert.True(SemanticVersion.TryParse("v1.4.0-beta.1", out var prerelease)); - Assert.True(SemanticVersion.TryParse("1.4.0", out var stable)); - - Assert.True(stable > prerelease); - } - - [Fact] - public async Task GitHubUpdateChecker_ExcludesPrereleasesByDefault() - { - var checker = new GitHubUpdateChecker(new FakeGitHubReleaseClient( - """ - [ - { "tag_name": "v1.5.0-beta.1", "prerelease": true, "draft": false, "html_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.5.0-beta.1", "assets": [] }, - { "tag_name": "v1.4.0", "prerelease": false, "draft": false, "html_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.4.0", "assets": [] } - ] - """)); - - var release = await checker.GetLatestReleaseInfoAsync("PrimeBuild-pc", "ThreadPilot"); - - Assert.NotNull(release); - Assert.Equal("1.4.0", release.Version.ToString()); - } - - [Fact] - public async Task CheckForUpdatesAsync_StartupSkipsWhenLastCheckInsideInterval() - { - var harness = new Harness(); - harness.Settings.LastUpdateCheckUtc = harness.Clock.UtcNow.AddDays(-2); - - var result = await harness.Service.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup)); - - Assert.Equal(UpdateCheckStatus.Skipped, result.Status); - Assert.False(harness.ReleaseClient.RequestedReleases); - } - - [Fact] - public async Task CheckForUpdatesAsync_ManualFindsNewerStableRelease() - { - var harness = new Harness(); - - var result = await harness.Service.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Manual)); - - Assert.True(result.IsUpdateAvailable); - Assert.Equal("1.4.0", result.Release?.Version.ToString()); - Assert.Equal(harness.Clock.UtcNow, harness.SavedSettings?.LastUpdateCheckUtc); - } - - [Fact] - public void UpdateAssetSelector_SelectsInstallerAndRejectsPortable() - { - var release = CreateRelease( - new UpdateAsset("ThreadPilot_v1.4.0_Portable.zip", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Portable.zip"), 1), - new UpdateAsset("ThreadPilot_v1.4.0_Setup.exe", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Setup.exe"), 1)); - - var selected = UpdateAssetSelector.TrySelectInstaller(release, out var asset); - - Assert.True(selected); - Assert.Equal("ThreadPilot_v1.4.0_Setup.exe", asset.Name); - } - - [Fact] - public async Task DownloadInstallerAsync_VerifiesChecksum() - { - using var tempRoot = new TempDirectory(); - var installerBytes = Encoding.UTF8.GetBytes("installer-content"); - var expectedHash = ComputeSha256(installerBytes); - var client = new FakeUpdateDownloadClient(installerBytes, $"{expectedHash} ThreadPilot_v1.4.0_Setup.exe"); - var service = CreateDownloadService(tempRoot.Path, client); - - var result = await service.DownloadInstallerAsync(CreateReleaseWithInstallerAndChecksum()); - - Assert.True(result.ChecksumVerified); - Assert.True(File.Exists(result.InstallerPath)); - } - - [Fact] - public async Task DownloadInstallerAsync_RejectsInvalidChecksumAndCleansTemp() - { - using var tempRoot = new TempDirectory(); - var client = new FakeUpdateDownloadClient(Encoding.UTF8.GetBytes("installer-content"), $"{new string('0', 64)} ThreadPilot_v1.4.0_Setup.exe"); - var service = CreateDownloadService(tempRoot.Path, client); - - await Assert.ThrowsAsync(() => service.DownloadInstallerAsync(CreateReleaseWithInstallerAndChecksum())); - Assert.Empty(Directory.GetDirectories(tempRoot.Path)); - } - - [Fact] - public void UpdateTempDirectoryProvider_DoesNotDeleteOutsideUpdateRoot() - { - using var tempRoot = new TempDirectory(); - using var outside = new TempDirectory(); - File.WriteAllText(Path.Combine(outside.Path, "settings.json"), "{}"); - var provider = new UpdateTempDirectoryProvider(tempRoot.Path); - - provider.Cleanup(outside.Path); - - Assert.True(File.Exists(Path.Combine(outside.Path, "settings.json"))); - } - - [Fact] - public async Task StartupCheck_DoesNotDownloadOrInstallWithoutUserConsent() - { - var harness = new Harness(); - - var result = await harness.Service.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup)); - - Assert.True(result.IsUpdateAvailable); - harness.Download.Verify(service => service.DownloadInstallerAsync(It.IsAny(), It.IsAny()), Times.Never); - harness.Installer.Verify(service => service.LaunchInstallerElevatedAsync(It.IsAny(), It.IsAny()), Times.Never); - } - - [Fact] - public async Task DownloadAndInstallAsync_StartsInstallerAndRequestsShutdown() - { - var harness = new Harness(); - harness.Download - .Setup(service => service.DownloadInstallerAsync(It.IsAny(), It.IsAny())) - .ReturnsAsync(new UpdateDownloadResult( - Path.Combine(harness.TempDirectory, "ThreadPilot_v1.4.0_Setup.exe"), - harness.TempDirectory, - true, - UpdateSignatureStatus.Unknown, - "ok")); - File.WriteAllText(Path.Combine(harness.TempDirectory, "ThreadPilot_v1.4.0_Setup.exe"), "installer"); - - var result = await harness.Service.DownloadAndInstallAsync(CreateReleaseWithInstallerAndChecksum()); - - Assert.Equal(UpdateInstallStatus.Started, result.Status); - harness.Installer.Verify(service => service.LaunchInstallerElevatedAsync(It.IsAny(), It.IsAny()), Times.Once); - harness.Shutdown.Verify(service => service.RequestShutdownForUpdate(), Times.Once); - } - - private static UpdateDownloadService CreateDownloadService(string tempRoot, IUpdateDownloadClient client) - { - var signature = new Mock(); - signature.Setup(verifier => verifier.Verify(It.IsAny())).Returns(UpdateSignatureStatus.Unknown); - return new UpdateDownloadService( - client, - new UpdateTempDirectoryProvider(tempRoot), - signature.Object, - NullLogger.Instance); - } - - private static UpdateReleaseInfo CreateReleaseWithInstallerAndChecksum() - { - return CreateRelease( - new UpdateAsset("ThreadPilot_v1.4.0_Setup.exe", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Setup.exe"), 10), - new UpdateAsset("SHA256SUMS.txt", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/SHA256SUMS.txt"), 10)); - } - - private static UpdateReleaseInfo CreateRelease(params UpdateAsset[] assets) - { - return new UpdateReleaseInfo( - new SemanticVersion(1, 4, 0), - "v1.4.0", - new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.4.0"), - false, - assets); - } - - private static string ComputeSha256(byte[] bytes) - { - var hash = System.Security.Cryptography.SHA256.HashData(bytes); - return Convert.ToHexString(hash); - } - - private sealed class Harness - { - public ApplicationSettingsModel Settings { get; } = new(); - - public ApplicationSettingsModel? SavedSettings { get; private set; } - - public FakeClock Clock { get; } = new(); - - public FakeGitHubReleaseClient ReleaseClient { get; } = new( - """ - [ - { - "tag_name": "v1.4.0", - "prerelease": false, - "draft": false, - "html_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.4.0", - "assets": [ - { "name": "ThreadPilot_v1.4.0_Setup.exe", "browser_download_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Setup.exe", "size": 100 }, - { "name": "SHA256SUMS.txt", "browser_download_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/SHA256SUMS.txt", "size": 100 } - ] - } - ] - """); - - public Mock Download { get; } = new(MockBehavior.Strict); - - public Mock Installer { get; } = new(MockBehavior.Strict); - - public Mock Shutdown { get; } = new(MockBehavior.Strict); - - public string TempDirectory { get; } - - public UpdateService Service { get; } - - public Harness() - { - this.TempDirectory = Directory.CreateTempSubdirectory("ThreadPilotUpdateTest").FullName; - var settingsService = new Mock(); - settingsService.SetupGet(service => service.Settings).Returns(() => (ApplicationSettingsModel)this.Settings.Clone()); - settingsService - .Setup(service => service.UpdateSettingsAsync(It.IsAny())) - .Callback(settings => - { - this.SavedSettings = (ApplicationSettingsModel)settings.Clone(); - this.Settings.CopyFrom(settings); - }) - .Returns(Task.CompletedTask); - - var versionProvider = new Mock(); - versionProvider.SetupGet(provider => provider.CurrentVersion).Returns(new SemanticVersion(1, 3, 1)); - versionProvider.SetupGet(provider => provider.DisplayVersion).Returns("v1.3.1"); - - var tempProvider = new Mock(); - tempProvider.Setup(provider => provider.Cleanup(It.IsAny())); - - this.Shutdown.Setup(service => service.RequestShutdownForUpdate()); - this.Installer - .Setup(service => service.LaunchInstallerElevatedAsync(It.IsAny(), It.IsAny())) - .Returns(Task.CompletedTask); - - this.Service = new UpdateService( - new GitHubUpdateChecker(this.ReleaseClient), - settingsService.Object, - versionProvider.Object, - this.Download.Object, - this.Installer.Object, - tempProvider.Object, - this.Shutdown.Object, - this.Clock, - NullLogger.Instance); - } - } - - private sealed class FakeClock : IUpdateClock - { - public DateTimeOffset UtcNow { get; } = new(2026, 6, 7, 12, 0, 0, TimeSpan.Zero); - } - - private sealed class FakeGitHubReleaseClient : IGitHubReleaseClient - { - private readonly string releasesJson; - - public bool RequestedReleases { get; private set; } - - public FakeGitHubReleaseClient(string releasesJson) - { - this.releasesJson = releasesJson; - } - - public Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) - { - throw new NotSupportedException(); - } - - public Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) - { - this.RequestedReleases = true; - return Task.FromResult(this.releasesJson); - } - } - - private sealed class FakeUpdateDownloadClient : IUpdateDownloadClient - { - private readonly byte[] fileBytes; - private readonly string? checksumsText; - - public FakeUpdateDownloadClient(byte[] fileBytes, string? checksumsText) - { - this.fileBytes = fileBytes; - this.checksumsText = checksumsText; - } - - public Task DownloadFileAsync(Uri uri, string destinationPath, CancellationToken cancellationToken = default) - { - File.WriteAllBytes(destinationPath, this.fileBytes); - return Task.CompletedTask; - } - - public Task TryDownloadStringAsync(Uri uri, CancellationToken cancellationToken = default) - { - return Task.FromResult(this.checksumsText); - } - } - - private sealed class TempDirectory : IDisposable - { - public string Path { get; } = Directory.CreateTempSubdirectory("ThreadPilotUpdateTest").FullName; - - public void Dispose() - { - if (Directory.Exists(this.Path)) - { - Directory.Delete(this.Path, recursive: true); - } - } - } - } -} +namespace ThreadPilot.Core.Tests +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Text; + using System.Threading; + using System.Threading.Tasks; + using Microsoft.Extensions.Logging.Abstractions; + using Moq; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.Services.Abstractions; + + public sealed class UpdateServiceTests + { + [Fact] + public void SemanticVersion_OrdersStableAbovePrerelease() + { + Assert.True(SemanticVersion.TryParse("v1.4.0-beta.1", out var prerelease)); + Assert.True(SemanticVersion.TryParse("1.4.0", out var stable)); + + Assert.True(stable > prerelease); + } + + [Fact] + public async Task GitHubUpdateChecker_ExcludesPrereleasesByDefault() + { + var checker = new GitHubUpdateChecker(new FakeGitHubReleaseClient( + """ + [ + { "tag_name": "v1.5.0-beta.1", "prerelease": true, "draft": false, "html_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.5.0-beta.1", "assets": [] }, + { "tag_name": "v1.4.0", "prerelease": false, "draft": false, "html_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.4.0", "assets": [] } + ] + """)); + + var release = await checker.GetLatestReleaseInfoAsync("PrimeBuild-pc", "ThreadPilot"); + + Assert.NotNull(release); + Assert.Equal("1.4.0", release.Version.ToString()); + } + + [Fact] + public async Task CheckForUpdatesAsync_StartupSkipsWhenLastCheckInsideInterval() + { + var harness = new Harness(); + harness.Settings.LastUpdateCheckUtc = harness.Clock.UtcNow.AddDays(-2); + + var result = await harness.Service.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup)); + + Assert.Equal(UpdateCheckStatus.Skipped, result.Status); + Assert.False(harness.ReleaseClient.RequestedReleases); + } + + [Fact] + public async Task CheckForUpdatesAsync_ManualFindsNewerStableRelease() + { + var harness = new Harness(); + + var result = await harness.Service.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Manual)); + + Assert.True(result.IsUpdateAvailable); + Assert.Equal("1.4.0", result.Release?.Version.ToString()); + Assert.Equal(harness.Clock.UtcNow, harness.SavedSettings?.LastUpdateCheckUtc); + } + + [Fact] + public void UpdateAssetSelector_SelectsInstallerAndRejectsPortable() + { + var release = CreateRelease( + new UpdateAsset("ThreadPilot_v1.4.0_Portable.zip", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Portable.zip"), 1), + new UpdateAsset("ThreadPilot_v1.4.0_Setup.exe", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Setup.exe"), 1)); + + var selected = UpdateAssetSelector.TrySelectInstaller(release, out var asset); + + Assert.True(selected); + Assert.Equal("ThreadPilot_v1.4.0_Setup.exe", asset.Name); + } + + [Fact] + public async Task DownloadInstallerAsync_VerifiesChecksum() + { + using var tempRoot = new TempDirectory(); + var installerBytes = Encoding.UTF8.GetBytes("installer-content"); + var expectedHash = ComputeSha256(installerBytes); + var client = new FakeUpdateDownloadClient(installerBytes, $"{expectedHash} ThreadPilot_v1.4.0_Setup.exe"); + var service = CreateDownloadService(tempRoot.Path, client); + + var result = await service.DownloadInstallerAsync(CreateReleaseWithInstallerAndChecksum()); + + Assert.True(result.ChecksumVerified); + Assert.True(File.Exists(result.InstallerPath)); + } + + [Fact] + public async Task DownloadInstallerAsync_RejectsInvalidChecksumAndCleansTemp() + { + using var tempRoot = new TempDirectory(); + var client = new FakeUpdateDownloadClient(Encoding.UTF8.GetBytes("installer-content"), $"{new string('0', 64)} ThreadPilot_v1.4.0_Setup.exe"); + var service = CreateDownloadService(tempRoot.Path, client); + + await Assert.ThrowsAsync(() => service.DownloadInstallerAsync(CreateReleaseWithInstallerAndChecksum())); + Assert.Empty(Directory.GetDirectories(tempRoot.Path)); + } + + [Fact] + public void UpdateTempDirectoryProvider_DoesNotDeleteOutsideUpdateRoot() + { + using var tempRoot = new TempDirectory(); + using var outside = new TempDirectory(); + File.WriteAllText(Path.Combine(outside.Path, "settings.json"), "{}"); + var provider = new UpdateTempDirectoryProvider(tempRoot.Path); + + provider.Cleanup(outside.Path); + + Assert.True(File.Exists(Path.Combine(outside.Path, "settings.json"))); + } + + [Fact] + public async Task StartupCheck_DoesNotDownloadOrInstallWithoutUserConsent() + { + var harness = new Harness(); + + var result = await harness.Service.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Startup)); + + Assert.True(result.IsUpdateAvailable); + harness.Download.Verify(service => service.DownloadInstallerAsync(It.IsAny(), It.IsAny()), Times.Never); + harness.Installer.Verify(service => service.LaunchInstallerElevatedAsync(It.IsAny(), It.IsAny()), Times.Never); + } + + [Fact] + public async Task DownloadAndInstallAsync_StartsInstallerAndRequestsShutdown() + { + var harness = new Harness(); + harness.Download + .Setup(service => service.DownloadInstallerAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(new UpdateDownloadResult( + Path.Combine(harness.TempDirectory, "ThreadPilot_v1.4.0_Setup.exe"), + harness.TempDirectory, + true, + UpdateSignatureStatus.Unknown, + "ok")); + File.WriteAllText(Path.Combine(harness.TempDirectory, "ThreadPilot_v1.4.0_Setup.exe"), "installer"); + + var result = await harness.Service.DownloadAndInstallAsync(CreateReleaseWithInstallerAndChecksum()); + + Assert.Equal(UpdateInstallStatus.Started, result.Status); + harness.Installer.Verify(service => service.LaunchInstallerElevatedAsync(It.IsAny(), It.IsAny()), Times.Once); + harness.Shutdown.Verify(service => service.RequestShutdownForUpdate(), Times.Once); + } + + private static UpdateDownloadService CreateDownloadService(string tempRoot, IUpdateDownloadClient client) + { + var signature = new Mock(); + signature.Setup(verifier => verifier.Verify(It.IsAny())).Returns(UpdateSignatureStatus.Unknown); + return new UpdateDownloadService( + client, + new UpdateTempDirectoryProvider(tempRoot), + signature.Object, + NullLogger.Instance); + } + + private static UpdateReleaseInfo CreateReleaseWithInstallerAndChecksum() + { + return CreateRelease( + new UpdateAsset("ThreadPilot_v1.4.0_Setup.exe", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Setup.exe"), 10), + new UpdateAsset("SHA256SUMS.txt", new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/SHA256SUMS.txt"), 10)); + } + + private static UpdateReleaseInfo CreateRelease(params UpdateAsset[] assets) + { + return new UpdateReleaseInfo( + new SemanticVersion(1, 4, 0), + "v1.4.0", + new Uri("https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.4.0"), + false, + assets); + } + + private static string ComputeSha256(byte[] bytes) + { + var hash = System.Security.Cryptography.SHA256.HashData(bytes); + return Convert.ToHexString(hash); + } + + private sealed class Harness + { + public ApplicationSettingsModel Settings { get; } = new(); + + public ApplicationSettingsModel? SavedSettings { get; private set; } + + public FakeClock Clock { get; } = new(); + + public FakeGitHubReleaseClient ReleaseClient { get; } = new( + """ + [ + { + "tag_name": "v1.4.0", + "prerelease": false, + "draft": false, + "html_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/tag/v1.4.0", + "assets": [ + { "name": "ThreadPilot_v1.4.0_Setup.exe", "browser_download_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/ThreadPilot_v1.4.0_Setup.exe", "size": 100 }, + { "name": "SHA256SUMS.txt", "browser_download_url": "https://github.com/PrimeBuild-pc/ThreadPilot/releases/download/v1.4.0/SHA256SUMS.txt", "size": 100 } + ] + } + ] + """); + + public Mock Download { get; } = new(MockBehavior.Strict); + + public Mock Installer { get; } = new(MockBehavior.Strict); + + public Mock Shutdown { get; } = new(MockBehavior.Strict); + + public string TempDirectory { get; } + + public UpdateService Service { get; } + + public Harness() + { + this.TempDirectory = Directory.CreateTempSubdirectory("ThreadPilotUpdateTest").FullName; + var settingsService = new Mock(); + settingsService.SetupGet(service => service.Settings).Returns(() => (ApplicationSettingsModel)this.Settings.Clone()); + settingsService + .Setup(service => service.UpdateSettingsAsync(It.IsAny())) + .Callback(settings => + { + this.SavedSettings = (ApplicationSettingsModel)settings.Clone(); + this.Settings.CopyFrom(settings); + }) + .Returns(Task.CompletedTask); + + var versionProvider = new Mock(); + versionProvider.SetupGet(provider => provider.CurrentVersion).Returns(new SemanticVersion(1, 3, 1)); + versionProvider.SetupGet(provider => provider.DisplayVersion).Returns("v1.3.1"); + + var tempProvider = new Mock(); + tempProvider.Setup(provider => provider.Cleanup(It.IsAny())); + + this.Shutdown.Setup(service => service.RequestShutdownForUpdate()); + this.Installer + .Setup(service => service.LaunchInstallerElevatedAsync(It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + + this.Service = new UpdateService( + new GitHubUpdateChecker(this.ReleaseClient), + settingsService.Object, + versionProvider.Object, + this.Download.Object, + this.Installer.Object, + tempProvider.Object, + this.Shutdown.Object, + this.Clock, + NullLogger.Instance); + } + } + + private sealed class FakeClock : IUpdateClock + { + public DateTimeOffset UtcNow { get; } = new(2026, 6, 7, 12, 0, 0, TimeSpan.Zero); + } + + private sealed class FakeGitHubReleaseClient : IGitHubReleaseClient + { + private readonly string releasesJson; + + public bool RequestedReleases { get; private set; } + + public FakeGitHubReleaseClient(string releasesJson) + { + this.releasesJson = releasesJson; + } + + public Task GetLatestReleaseJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) + { + throw new NotSupportedException(); + } + + public Task GetReleasesJsonAsync(string owner, string repo, CancellationToken cancellationToken = default) + { + this.RequestedReleases = true; + return Task.FromResult(this.releasesJson); + } + } + + private sealed class FakeUpdateDownloadClient : IUpdateDownloadClient + { + private readonly byte[] fileBytes; + private readonly string? checksumsText; + + public FakeUpdateDownloadClient(byte[] fileBytes, string? checksumsText) + { + this.fileBytes = fileBytes; + this.checksumsText = checksumsText; + } + + public Task DownloadFileAsync(Uri uri, string destinationPath, CancellationToken cancellationToken = default) + { + File.WriteAllBytes(destinationPath, this.fileBytes); + return Task.CompletedTask; + } + + public Task TryDownloadStringAsync(Uri uri, CancellationToken cancellationToken = default) + { + return Task.FromResult(this.checksumsText); + } + } + + private sealed class TempDirectory : IDisposable + { + public string Path { get; } = Directory.CreateTempSubdirectory("ThreadPilotUpdateTest").FullName; + + public void Dispose() + { + if (Directory.Exists(this.Path)) + { + Directory.Delete(this.Path, recursive: true); + } + } + } + } +} diff --git a/Tests/ThreadPilot.Core.Tests/WindowPlacementHelperTests.cs b/Tests/ThreadPilot.Core.Tests/WindowPlacementHelperTests.cs index 5abb3bc..841b524 100644 --- a/Tests/ThreadPilot.Core.Tests/WindowPlacementHelperTests.cs +++ b/Tests/ThreadPilot.Core.Tests/WindowPlacementHelperTests.cs @@ -1,86 +1,86 @@ -namespace ThreadPilot.Core.Tests -{ - using ThreadPilot.Helpers; - - public sealed class WindowPlacementHelperTests - { - [Fact] - public void CorrectWindowBounds_WhenValuesAreInvalid_CentersDefaultSizeOnPrimaryWorkingArea() - { - var monitors = new[] - { - new MonitorWorkingArea(0, 0, 1024, 768, true), - }; - - var result = WindowPlacementHelper.CorrectWindowBounds( - new WindowBounds(double.NaN, double.NegativeInfinity, 0, double.PositiveInfinity), - monitors); - - Assert.True(result.WasCorrected); - Assert.Equal(0, result.Bounds.Left); - Assert.Equal(0, result.Bounds.Top); - Assert.Equal(1024, result.Bounds.Width); - Assert.Equal(768, result.Bounds.Height); - } - - [Fact] - public void CorrectWindowBounds_WhenMostlyOffScreen_CentersOnNearestWorkingArea() - { - var monitors = new[] - { - new MonitorWorkingArea(0, 0, 1920, 1040, true), - new MonitorWorkingArea(1920, 0, 1280, 984, false), - }; - - var result = WindowPlacementHelper.CorrectWindowBounds( - new WindowBounds(3100, -700, 900, 600), - monitors); - - Assert.True(result.WasCorrected); - Assert.Equal(2110, result.Bounds.Left); - Assert.Equal(192, result.Bounds.Top); - Assert.Equal(900, result.Bounds.Width); - Assert.Equal(600, result.Bounds.Height); - } - - [Fact] - public void CorrectWindowBounds_WhenPartiallyOutside_ClampsInsideIntersectingWorkingArea() - { - var monitors = new[] - { - new MonitorWorkingArea(-1080, 0, 1080, 1880, false), - new MonitorWorkingArea(0, 0, 2560, 1400, true), - }; - - var result = WindowPlacementHelper.CorrectWindowBounds( - new WindowBounds(-100, 120, 1280, 864), - monitors); - - Assert.True(result.WasCorrected); - Assert.Equal(0, result.Bounds.Left); - Assert.Equal(120, result.Bounds.Top); - Assert.Equal(1280, result.Bounds.Width); - Assert.Equal(864, result.Bounds.Height); - } - - [Fact] - public void CorrectWindowBounds_WhenAlreadyVisibleOnSecondaryMonitor_DoesNotMoveWindow() - { - var monitors = new[] - { - new MonitorWorkingArea(0, 0, 1920, 1040, true), - new MonitorWorkingArea(1920, 0, 1280, 984, false), - }; - - var result = WindowPlacementHelper.CorrectWindowBounds( - new WindowBounds(2000, 100, 900, 600), - monitors); - - Assert.False(result.WasCorrected); - Assert.Equal(2000, result.Bounds.Left); - Assert.Equal(100, result.Bounds.Top); - Assert.Equal(900, result.Bounds.Width); - Assert.Equal(600, result.Bounds.Height); - } - } -} +namespace ThreadPilot.Core.Tests +{ + using ThreadPilot.Helpers; + + public sealed class WindowPlacementHelperTests + { + [Fact] + public void CorrectWindowBounds_WhenValuesAreInvalid_CentersDefaultSizeOnPrimaryWorkingArea() + { + var monitors = new[] + { + new MonitorWorkingArea(0, 0, 1024, 768, true), + }; + + var result = WindowPlacementHelper.CorrectWindowBounds( + new WindowBounds(double.NaN, double.NegativeInfinity, 0, double.PositiveInfinity), + monitors); + + Assert.True(result.WasCorrected); + Assert.Equal(0, result.Bounds.Left); + Assert.Equal(0, result.Bounds.Top); + Assert.Equal(1024, result.Bounds.Width); + Assert.Equal(768, result.Bounds.Height); + } + + [Fact] + public void CorrectWindowBounds_WhenMostlyOffScreen_CentersOnNearestWorkingArea() + { + var monitors = new[] + { + new MonitorWorkingArea(0, 0, 1920, 1040, true), + new MonitorWorkingArea(1920, 0, 1280, 984, false), + }; + + var result = WindowPlacementHelper.CorrectWindowBounds( + new WindowBounds(3100, -700, 900, 600), + monitors); + + Assert.True(result.WasCorrected); + Assert.Equal(2110, result.Bounds.Left); + Assert.Equal(192, result.Bounds.Top); + Assert.Equal(900, result.Bounds.Width); + Assert.Equal(600, result.Bounds.Height); + } + + [Fact] + public void CorrectWindowBounds_WhenPartiallyOutside_ClampsInsideIntersectingWorkingArea() + { + var monitors = new[] + { + new MonitorWorkingArea(-1080, 0, 1080, 1880, false), + new MonitorWorkingArea(0, 0, 2560, 1400, true), + }; + + var result = WindowPlacementHelper.CorrectWindowBounds( + new WindowBounds(-100, 120, 1280, 864), + monitors); + + Assert.True(result.WasCorrected); + Assert.Equal(0, result.Bounds.Left); + Assert.Equal(120, result.Bounds.Top); + Assert.Equal(1280, result.Bounds.Width); + Assert.Equal(864, result.Bounds.Height); + } + + [Fact] + public void CorrectWindowBounds_WhenAlreadyVisibleOnSecondaryMonitor_DoesNotMoveWindow() + { + var monitors = new[] + { + new MonitorWorkingArea(0, 0, 1920, 1040, true), + new MonitorWorkingArea(1920, 0, 1280, 984, false), + }; + + var result = WindowPlacementHelper.CorrectWindowBounds( + new WindowBounds(2000, 100, 900, 600), + monitors); + + Assert.False(result.WasCorrected); + Assert.Equal(2000, result.Bounds.Left); + Assert.Equal(100, result.Bounds.Top); + Assert.Equal(900, result.Bounds.Width); + Assert.Equal(600, result.Bounds.Height); + } + } +} diff --git a/ThreadPilot.csproj b/ThreadPilot.csproj index b244865..5200042 100644 --- a/ThreadPilot.csproj +++ b/ThreadPilot.csproj @@ -1,77 +1,68 @@ - - - - WinExe - net8.0-windows10.0.22000.0 - enable - enable - true - true - app.manifest - assets\icons\ico.ico - true - true - win-x64 - false - link - true - CS1998;CS0067;CS0414;WFAC010;IL3000;MVVMTK0034 - 1.4.0 - 1.4.0.0 - 1.4.0.0 - 1.4.0 - - - - - - - - - - - - - - - - - - - - - - Powerplans\%(RecursiveDir)%(Filename)%(Extension) - PreserveNewest - PreserveNewest - - - - - - - MSBuild:Compile - - - - - - - - - - - - - - - - - - - - - - - - + + + + WinExe + net8.0-windows10.0.22000.0 + enable + enable + true + true + app.manifest + assets\icons\ico.ico + true + true + win-x64 + false + link + true + CS1998;CS0067;CS0414;WFAC010;IL3000;MVVMTK0034 + 1.4.0 + 1.4.0.0 + 1.4.0.0 + 1.4.0 + + + + + + + + + + + + + + + + + + + + Powerplans\%(RecursiveDir)%(Filename)%(Extension) + PreserveNewest + PreserveNewest + + + + + + + MSBuild:Compile + + + + + + + + + + + + + + + + + diff --git a/ViewModels/BaseViewModel.cs b/ViewModels/BaseViewModel.cs index 8cbe570..277a9ec 100644 --- a/ViewModels/BaseViewModel.cs +++ b/ViewModels/BaseViewModel.cs @@ -1,328 +1,279 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Threading; - using System.Threading.Tasks; - using CommunityToolkit.Mvvm.ComponentModel; - using Microsoft.Extensions.Logging; - using ThreadPilot.Services; - - /// - /// Base ViewModel with common functionality for all ViewModels. - /// - public abstract partial class BaseViewModel : ObservableObject, IDisposable - { - protected readonly ILogger Logger; - protected readonly IEnhancedLoggingService? EnhancedLoggingService; - protected readonly IActivityAuditService? ActivityAuditService; - private bool disposed; - private CancellationTokenSource? statusLifetimeCts; - private bool preserveStatusUntilReplaced; - private const int StatusVisibleDurationMs = 1500; - private const int StatusFadeDurationMs = 500; - - [ObservableProperty] - private bool isBusy; - - [ObservableProperty] - private string statusMessage = string.Empty; - - [ObservableProperty] - private double statusOpacity = 1.0; - - [ObservableProperty] - private bool hasError; - - [ObservableProperty] - private string errorMessage = string.Empty; - - protected BaseViewModel( - ILogger logger, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null) - { - this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); - this.EnhancedLoggingService = enhancedLoggingService; - this.ActivityAuditService = activityAuditService; - } - - /// - /// Set status message and busy state. - /// - protected void SetStatus(string message, bool isBusyState = true) - { - this.SetStatus(message, isBusyState, preserveUntilReplaced: false); - } - - /// - /// Set a critical status that should not be cleared by immediate cleanup paths. - /// - protected void SetCriticalStatus(string message) - { - this.SetStatus(message, isBusyState: false, preserveUntilReplaced: true); - } - - private void SetStatus(string message, bool isBusyState, bool preserveUntilReplaced) - { - this.CancelStatusLifetime(); - this.preserveStatusUntilReplaced = preserveUntilReplaced; - this.StatusOpacity = 1.0; - this.StatusMessage = message; - this.IsBusy = isBusyState; - this.ClearError(); - - if (!string.IsNullOrWhiteSpace(message) && !isBusyState) - { - _ = this.StartStatusLifetimeAsync(message); - } - } - - /// - /// Clear status and busy state. - /// - protected void ClearStatus() - { - if (this.preserveStatusUntilReplaced) - { - this.IsBusy = false; - return; - } - - this.CancelStatusLifetime(); - this.StatusMessage = string.Empty; - this.StatusOpacity = 1.0; - this.IsBusy = false; - } - - /// - /// Set error message and clear busy state. - /// - protected void SetError(string message, Exception? exception = null) - { - this.ErrorMessage = message; - this.HasError = true; - this.IsBusy = false; - - if (exception != null) - { - this.Logger.LogError(exception, "Error in {ViewModelType}: {Message}", this.GetType().Name, message); - } - else - { - this.Logger.LogWarning("Error in {ViewModelType}: {Message}", this.GetType().Name, message); - } - } - - /// - /// Clear error state. - /// - protected void ClearError() - { - this.ErrorMessage = string.Empty; - this.HasError = false; - } - - /// - /// Execute an async operation with error handling and status updates. - /// - protected async Task ExecuteAsync(Func operation, string? statusMessage = null, string? successMessage = null) - { - try - { - if (!string.IsNullOrEmpty(statusMessage)) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus(statusMessage); - }); - } - - await operation(); - - if (!string.IsNullOrEmpty(successMessage)) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus(successMessage, false); - }); - } - else - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.ClearStatus(); - }); - } - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetError($"Operation failed: {ex.Message}", ex); - }); - } - } - - /// - /// Execute an async operation with return value and error handling. - /// - protected async Task ExecuteAsync(Func> operation, string? statusMessage = null, string? successMessage = null) - { - try - { - if (!string.IsNullOrEmpty(statusMessage)) - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus(statusMessage); - }); - } - - var result = await operation(); - - if (!string.IsNullOrEmpty(successMessage)) - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus(successMessage, false); - }); - } - else - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.ClearStatus(); - }); - } - - return result; - } - catch (Exception ex) - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetError($"Operation failed: {ex.Message}", ex); - }); - return default; - } - } - - /// - /// Log user action for audit purposes. - /// - protected async Task LogUserActionAsync(string action, string details, string? context = null) - { - try - { - if (this.EnhancedLoggingService != null) - { - await this.EnhancedLoggingService.LogUserActionAsync(action, details, context); - } - - if (this.ActivityAuditService != null) - { - await this.ActivityAuditService.LogUserActionAsync(action, details, context); - } - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Failed to log user action: {Action}", action); - } - } - - /// - /// Initialize the ViewModel - override in derived classes. - /// - public virtual async Task InitializeAsync() - { - // Base implementation does nothing - await Task.CompletedTask; - } - - /// - /// Cleanup resources - override in derived classes. - /// - protected virtual void OnDispose() - { - this.CancelStatusLifetime(); - // Base implementation does nothing - } - - private async Task StartStatusLifetimeAsync(string expectedMessage) - { - var cts = new CancellationTokenSource(); - this.statusLifetimeCts = cts; - - try - { - await Task.Delay(StatusVisibleDurationMs, cts.Token); - - const int fadeSteps = 5; - var stepDelay = StatusFadeDurationMs / fadeSteps; - - for (var i = 1; i <= fadeSteps; i++) - { - await Task.Delay(stepDelay, cts.Token); - if (this.StatusMessage != expectedMessage) - { - return; - } - - this.StatusOpacity = 1.0 - ((double)i / fadeSteps); - } - - if (this.StatusMessage == expectedMessage) - { - this.StatusMessage = string.Empty; - this.StatusOpacity = 1.0; - this.IsBusy = false; - } - } - catch (OperationCanceledException) - { - // Expected when status message is replaced. - } - } - - private void CancelStatusLifetime() - { - if (this.statusLifetimeCts == null) - { - return; - } - - this.statusLifetimeCts.Cancel(); - this.statusLifetimeCts.Dispose(); - this.statusLifetimeCts = null; - } - - public void Dispose() - { - if (!this.disposed) - { - this.OnDispose(); - this.disposed = true; - } - } - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Threading; + using System.Threading.Tasks; + using CommunityToolkit.Mvvm.ComponentModel; + using Microsoft.Extensions.Logging; + using ThreadPilot.Services; + + public abstract partial class BaseViewModel : ObservableObject, IDisposable + { + protected readonly ILogger Logger; + protected readonly IEnhancedLoggingService? EnhancedLoggingService; + protected readonly IActivityAuditService? ActivityAuditService; + private bool disposed; + private CancellationTokenSource? statusLifetimeCts; + private bool preserveStatusUntilReplaced; + private const int StatusVisibleDurationMs = 1500; + private const int StatusFadeDurationMs = 500; + + [ObservableProperty] + private bool isBusy; + + [ObservableProperty] + private string statusMessage = string.Empty; + + [ObservableProperty] + private double statusOpacity = 1.0; + + [ObservableProperty] + private bool hasError; + + [ObservableProperty] + private string errorMessage = string.Empty; + + protected BaseViewModel( + ILogger logger, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null) + { + this.Logger = logger ?? throw new ArgumentNullException(nameof(logger)); + this.EnhancedLoggingService = enhancedLoggingService; + this.ActivityAuditService = activityAuditService; + } + + protected void SetStatus(string message, bool isBusyState = true) + { + this.SetStatus(message, isBusyState, preserveUntilReplaced: false); + } + + protected void SetCriticalStatus(string message) + { + this.SetStatus(message, isBusyState: false, preserveUntilReplaced: true); + } + + private void SetStatus(string message, bool isBusyState, bool preserveUntilReplaced) + { + this.CancelStatusLifetime(); + this.preserveStatusUntilReplaced = preserveUntilReplaced; + this.StatusOpacity = 1.0; + this.StatusMessage = message; + this.IsBusy = isBusyState; + this.ClearError(); + + if (!string.IsNullOrWhiteSpace(message) && !isBusyState) + { + _ = this.StartStatusLifetimeAsync(message); + } + } + + protected void ClearStatus() + { + if (this.preserveStatusUntilReplaced) + { + this.IsBusy = false; + return; + } + + this.CancelStatusLifetime(); + this.StatusMessage = string.Empty; + this.StatusOpacity = 1.0; + this.IsBusy = false; + } + + protected void SetError(string message, Exception? exception = null) + { + this.ErrorMessage = message; + this.HasError = true; + this.IsBusy = false; + + if (exception != null) + { + this.Logger.LogError(exception, "Error in {ViewModelType}: {Message}", this.GetType().Name, message); + } + else + { + this.Logger.LogWarning("Error in {ViewModelType}: {Message}", this.GetType().Name, message); + } + } + + protected void ClearError() + { + this.ErrorMessage = string.Empty; + this.HasError = false; + } + + protected async Task ExecuteAsync(Func operation, string? statusMessage = null, string? successMessage = null) + { + try + { + if (!string.IsNullOrEmpty(statusMessage)) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus(statusMessage); + }); + } + + await operation(); + + if (!string.IsNullOrEmpty(successMessage)) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus(successMessage, false); + }); + } + else + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.ClearStatus(); + }); + } + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetError($"Operation failed: {ex.Message}", ex); + }); + } + } + + protected async Task ExecuteAsync(Func> operation, string? statusMessage = null, string? successMessage = null) + { + try + { + if (!string.IsNullOrEmpty(statusMessage)) + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus(statusMessage); + }); + } + + var result = await operation(); + + if (!string.IsNullOrEmpty(successMessage)) + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus(successMessage, false); + }); + } + else + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.ClearStatus(); + }); + } + + return result; + } + catch (Exception ex) + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetError($"Operation failed: {ex.Message}", ex); + }); + return default; + } + } + + protected async Task LogUserActionAsync(string action, string details, string? context = null) + { + try + { + if (this.EnhancedLoggingService != null) + { + await this.EnhancedLoggingService.LogUserActionAsync(action, details, context); + } + + if (this.ActivityAuditService != null) + { + await this.ActivityAuditService.LogUserActionAsync(action, details, context); + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Failed to log user action: {Action}", action); + } + } + + public virtual async Task InitializeAsync() + { + // Base implementation does nothing + await Task.CompletedTask; + } + + protected virtual void OnDispose() + { + this.CancelStatusLifetime(); + // Base implementation does nothing + } + + private async Task StartStatusLifetimeAsync(string expectedMessage) + { + var cts = new CancellationTokenSource(); + this.statusLifetimeCts = cts; + + try + { + await Task.Delay(StatusVisibleDurationMs, cts.Token); + + const int fadeSteps = 5; + var stepDelay = StatusFadeDurationMs / fadeSteps; + + for (var i = 1; i <= fadeSteps; i++) + { + await Task.Delay(stepDelay, cts.Token); + if (this.StatusMessage != expectedMessage) + { + return; + } + + this.StatusOpacity = 1.0 - ((double)i / fadeSteps); + } + + if (this.StatusMessage == expectedMessage) + { + this.StatusMessage = string.Empty; + this.StatusOpacity = 1.0; + this.IsBusy = false; + } + } + catch (OperationCanceledException) + { + // Expected when status message is replaced. + } + } + + private void CancelStatusLifetime() + { + if (this.statusLifetimeCts == null) + { + return; + } + + this.statusLifetimeCts.Cancel(); + this.statusLifetimeCts.Dispose(); + this.statusLifetimeCts = null; + } + + public void Dispose() + { + if (!this.disposed) + { + this.OnDispose(); + this.disposed = true; + } + } + } +} diff --git a/ViewModels/DiagnosticsViewModelProvider.cs b/ViewModels/DiagnosticsViewModelProvider.cs deleted file mode 100644 index b562383..0000000 --- a/ViewModels/DiagnosticsViewModelProvider.cs +++ /dev/null @@ -1,41 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - - public interface IDiagnosticsViewModelProvider - { - bool IsCreated { get; } - - PerformanceViewModel GetOrCreate(); - } - - public sealed class DiagnosticsViewModelProvider : IDiagnosticsViewModelProvider - { - private readonly Lazy performanceViewModel; - - public DiagnosticsViewModelProvider(Lazy performanceViewModel) - { - this.performanceViewModel = performanceViewModel ?? throw new ArgumentNullException(nameof(performanceViewModel)); - } - - public bool IsCreated => this.performanceViewModel.IsValueCreated; - - public PerformanceViewModel GetOrCreate() => this.performanceViewModel.Value; - } -} diff --git a/ViewModels/LogViewerViewModel.cs b/ViewModels/LogViewerViewModel.cs index 021092c..3bab86b 100644 --- a/ViewModels/LogViewerViewModel.cs +++ b/ViewModels/LogViewerViewModel.cs @@ -1,516 +1,494 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -using System; -using System.Collections.ObjectModel; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Input; -using CommunityToolkit.Mvvm.ComponentModel; -using CommunityToolkit.Mvvm.Input; -using Microsoft.Extensions.Logging; -using ThreadPilot.Models; -using ThreadPilot.Services; - -namespace ThreadPilot.ViewModels -{ - /// - /// ViewModel for the log viewer and management interface. - /// - public partial class LogViewerViewModel : ObservableObject - { - private readonly IActivityAuditService activityAuditService; - private readonly IEnhancedLoggingService loggingService; - private readonly IApplicationSettingsService settingsService; - private readonly ILogger logger; - - [ObservableProperty] - private ObservableCollection logEntries = new(); - - [ObservableProperty] - private LogEntryDisplayModel? selectedLogEntry; - - [ObservableProperty] - private string searchText = string.Empty; - - [ObservableProperty] - private LogLevel selectedLogLevel = LogLevel.Information; - - [ObservableProperty] - private string selectedCategory = "All"; - - [ObservableProperty] - private DateTime fromDate = DateTime.Today.AddDays(-7); - - [ObservableProperty] - private DateTime toDate = DateTime.Today.AddDays(1); - - [ObservableProperty] - private bool isLoading; - - [ObservableProperty] - private string statusMessage = "Ready"; - - [ObservableProperty] - private LogFileStatistics? logStatistics; - - [ObservableProperty] - private bool enableDebugLogging; - - [ObservableProperty] - private int maxLogFileSizeMb = 10; - - [ObservableProperty] - private int logRetentionDays = 7; - - [ObservableProperty] - private bool autoRefresh = true; - - [ObservableProperty] - private int refreshIntervalSeconds = 30; - - public ObservableCollection AvailableCategories { get; } = new() - { - "All", - "Process", - "Affinity", - "Priority", - "Memory Priority", - "Rules", - "Power Plans", - "Settings", - "Tweaks", - "Optimization", - "Diagnostics", - "Safety", - }; - - public ObservableCollection AvailableLogLevels { get; } = new() - { - LogLevel.Trace, LogLevel.Debug, LogLevel.Information, LogLevel.Warning, LogLevel.Error, LogLevel.Critical - }; - - public ICommand RefreshLogsCommand { get; } - - public ICommand ClearLogsCommand { get; } - - public ICommand ExportLogsCommand { get; } - - public ICommand CleanupOldLogsCommand { get; } - - public ICommand SaveSettingsCommand { get; } - - public ICommand OpenLogDirectoryCommand { get; } - - public ICommand CopyLogEntryCommand { get; } - - public LogViewerViewModel( - IActivityAuditService activityAuditService, - IEnhancedLoggingService loggingService, - IApplicationSettingsService settingsService, - ILogger logger) - { - this.activityAuditService = activityAuditService ?? throw new ArgumentNullException(nameof(activityAuditService)); - this.loggingService = loggingService ?? throw new ArgumentNullException(nameof(loggingService)); - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - - // Initialize commands - this.RefreshLogsCommand = new AsyncRelayCommand(this.RefreshLogsAsync); - this.ClearLogsCommand = new AsyncRelayCommand(this.ClearLogsAsync); - this.ExportLogsCommand = new AsyncRelayCommand(this.ExportLogsAsync); - this.CleanupOldLogsCommand = new AsyncRelayCommand(this.CleanupOldLogsAsync); - this.SaveSettingsCommand = new AsyncRelayCommand(this.SaveSettingsAsync); - this.OpenLogDirectoryCommand = new RelayCommand(this.OpenLogDirectory); - this.CopyLogEntryCommand = new RelayCommand(this.CopyLogEntry); - - // Load initial settings - this.LoadSettings(); - this.activityAuditService.EntryAdded += this.OnActivityEntryAdded; - - // Start auto-refresh if enabled - if (this.autoRefresh) - { - this.StartAutoRefresh(); - } - } - - public async Task InitializeAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = "Loading activity..."; - - await this.RefreshLogsAsync(); - await this.RefreshStatisticsAsync(); - - this.StatusMessage = "Ready"; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to initialize log viewer"); - this.StatusMessage = $"Error: {ex.Message}"; - } - finally - { - this.IsLoading = false; - } - } - - private async Task RefreshLogsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = "Refreshing activity..."; - - var logEntries = await this.activityAuditService.GetEntriesAsync(this.FromDate, this.ToDate); - - // Filter by category and log level - var filteredEntries = logEntries.Where(entry => - this.ShouldDisplay(entry)).ToList(); - - // Convert to display models - var displayModels = filteredEntries.Select(ToDisplayModel).ToList(); - - // PERFORMANCE OPTIMIZATION: Replace collection instead of Clear() + Add() loop - await InvokeOnUiAsync(() => - { - this.LogEntries = new ObservableCollection(displayModels); - this.StatusMessage = $"Loaded {this.LogEntries.Count} log entries"; - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to refresh logs"); - this.StatusMessage = $"Error refreshing activity: {ex.Message}"; - } - finally - { - this.IsLoading = false; - } - } - - private async Task RefreshStatisticsAsync() - { - try - { - this.LogStatistics = await this.loggingService.GetLogStatisticsAsync(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to refresh log statistics"); - } - } - - private async Task ClearLogsAsync() - { - try - { - this.LogEntries.Clear(); - this.StatusMessage = "Activity display cleared"; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to clear logs"); - this.StatusMessage = $"Error clearing logs: {ex.Message}"; - } - } - - private async Task ExportLogsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = "Exporting activity..."; - - var entries = await this.activityAuditService.GetEntriesAsync(this.FromDate, this.ToDate); - var exportPath = Path.Combine( - Environment.GetFolderPath(Environment.SpecialFolder.Desktop), - $"ThreadPilot_Activity_{DateTime.Now:yyyyMMdd_HHmmss}.txt"); - var exportLines = entries.Select(e => - $"{e.Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{e.Severity}] {e.Category}: {e.Message}" + - (string.IsNullOrWhiteSpace(e.Details) ? string.Empty : $" ({e.Details})")); - await File.WriteAllLinesAsync(exportPath, exportLines); - this.StatusMessage = $"Activity exported to: {exportPath}"; - - await this.activityAuditService.LogInfoAsync( - "Diagnostics", - $"Activity exported to {Path.GetFileName(exportPath)}", - $"DateRange: {this.FromDate:yyyy-MM-dd} to {this.ToDate:yyyy-MM-dd}"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to export logs"); - this.StatusMessage = $"Error exporting logs: {ex.Message}"; - } - finally - { - this.IsLoading = false; - } - } - - private async Task CleanupOldLogsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = "Cleaning up old logs..."; - - await this.loggingService.CleanupOldLogsAsync(); - await this.RefreshStatisticsAsync(); - - this.StatusMessage = "Old diagnostic log files cleaned up successfully"; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to cleanup old logs"); - this.StatusMessage = $"Error cleaning up logs: {ex.Message}"; - } - finally - { - this.IsLoading = false; - } - } - - private async Task SaveSettingsAsync() - { - try - { - await this.loggingService.UpdateConfigurationAsync(this.EnableDebugLogging, this.MaxLogFileSizeMb, this.LogRetentionDays); - - this.StatusMessage = "Diagnostic logging settings saved successfully"; - await this.activityAuditService.LogInfoAsync( - "Diagnostics", - "Diagnostic logging settings saved", - $"Debug: {this.EnableDebugLogging}, MaxSize: {this.MaxLogFileSizeMb}MB, Retention: {this.LogRetentionDays} days"); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to save logging settings"); - this.StatusMessage = $"Error saving settings: {ex.Message}"; - } - } - - private void OpenLogDirectory() - { - try - { - var logDirectory = this.loggingService.LogDirectoryPath; - if (Directory.Exists(logDirectory)) - { - System.Diagnostics.Process.Start("explorer.exe", logDirectory); - } - else - { - this.StatusMessage = "Log directory not found"; - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to open log directory"); - this.StatusMessage = $"Error opening log directory: {ex.Message}"; - } - } - - private void CopyLogEntry(LogEntryDisplayModel? logEntry) - { - if (logEntry == null) - { - return; - } - - try - { - var logText = $"[{logEntry.Timestamp:yyyy-MM-dd HH:mm:ss.fff}] [{logEntry.Status}] {logEntry.Category}: {logEntry.Message}"; - if (!string.IsNullOrEmpty(logEntry.Details)) - { - logText += $"\nDetails: {logEntry.Details}"; - } - - System.Windows.Clipboard.SetText(logText); - this.StatusMessage = "Log entry copied to clipboard"; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to copy log entry to clipboard"); - this.StatusMessage = "Failed to copy log entry"; - } - } - - private void LoadSettings() - { - var settings = this.settingsService.Settings; - this.EnableDebugLogging = settings.EnableDebugLogging; - this.MaxLogFileSizeMb = settings.MaxLogFileSizeMb; - this.LogRetentionDays = settings.LogRetentionDays; - } - - private void StartAutoRefresh() - { - // Implementation for auto-refresh timer would go here - // For now, we'll keep it simple without the timer - } - - private void OnActivityEntryAdded(object? sender, ActivityAuditEntry entry) - { - if (!this.ShouldDisplay(entry)) - { - return; - } - - _ = InvokeOnUiAsync(() => - { - this.LogEntries.Insert(0, ToDisplayModel(entry)); - while (this.LogEntries.Count > 1000) - { - this.LogEntries.RemoveAt(this.LogEntries.Count - 1); - } - - this.StatusMessage = $"Loaded {this.LogEntries.Count} activity entries"; - }); - } - - private bool ShouldDisplay(ActivityAuditEntry entry) - { - var categoryMatch = this.SelectedCategory == "All" || entry.Category == this.SelectedCategory; - var levelMatch = ToLogLevel(entry.Severity) >= this.SelectedLogLevel; - var searchMatch = string.IsNullOrEmpty(this.SearchText) || - entry.Message.Contains(this.SearchText, StringComparison.OrdinalIgnoreCase) || - entry.Category.Contains(this.SearchText, StringComparison.OrdinalIgnoreCase) || - (entry.Details?.Contains(this.SearchText, StringComparison.OrdinalIgnoreCase) ?? false); - - return categoryMatch && levelMatch && searchMatch; - } - - private static LogEntryDisplayModel ToDisplayModel(ActivityAuditEntry entry) => - new() - { - Timestamp = entry.Timestamp, - Level = ToLogLevel(entry.Severity), - AuditSeverity = entry.Severity, - Category = entry.Category, - Message = entry.Message, - Details = entry.Details, - }; - - partial void OnSearchTextChanged(string value) - { - // Trigger refresh when search text changes - marshal to UI thread to prevent cross-thread access exceptions - _ = InvokeOnUiAsync(async () => await this.RefreshLogsAsync()); - } - - partial void OnSelectedCategoryChanged(string value) - { - // Trigger refresh when category changes - marshal to UI thread to prevent cross-thread access exceptions - _ = InvokeOnUiAsync(async () => await this.RefreshLogsAsync()); - } - - partial void OnSelectedLogLevelChanged(LogLevel value) - { - // Trigger refresh when log level changes - marshal to UI thread to prevent cross-thread access exceptions - _ = InvokeOnUiAsync(async () => await this.RefreshLogsAsync()); - } - - private static Task InvokeOnUiAsync(Action action) - { - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher == null || dispatcher.CheckAccess()) - { - action(); - return Task.CompletedTask; - } - - return dispatcher.InvokeAsync(action).Task; - } - - private static Task InvokeOnUiAsync(Func action) - { - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher == null || dispatcher.CheckAccess()) - { - return action(); - } - - return dispatcher.InvokeAsync(action).Task.Unwrap(); - } - - private static LogLevel ToLogLevel(ActivityAuditSeverity severity) => - severity switch - { - ActivityAuditSeverity.Error => LogLevel.Error, - ActivityAuditSeverity.Warning => LogLevel.Warning, - _ => LogLevel.Information, - }; - } - - /// - /// Display model for log entries in the UI. - /// - public class LogEntryDisplayModel - { - public DateTime Timestamp { get; set; } - - public LogLevel Level { get; set; } - - public ActivityAuditSeverity? AuditSeverity { get; set; } - - public string Category { get; set; } = string.Empty; - - public string Message { get; set; } = string.Empty; - - public string? Exception { get; set; } - - public string? Details { get; set; } - - public Dictionary Properties { get; set; } = new(); - - public string? CorrelationId { get; set; } - - public string LevelColor => this.AuditSeverity switch - { - ActivityAuditSeverity.Error => "#FF4444", - ActivityAuditSeverity.Warning => "#FFA500", - ActivityAuditSeverity.Success => "#107C10", - ActivityAuditSeverity.Info => "#0066CC", - _ => this.Level switch - { - LogLevel.Critical => "#FF0000", - LogLevel.Error => "#FF4444", - LogLevel.Warning => "#FFA500", - LogLevel.Information => "#0066CC", - LogLevel.Debug => "#808080", - LogLevel.Trace => "#C0C0C0", - _ => "#000000" - }, - }; - - public string Status => this.AuditSeverity?.ToString() ?? this.Level.ToString(); - - public string FormattedTimestamp => this.Timestamp.ToString("yyyy-MM-dd HH:mm:ss.fff"); - - public string ShortMessage => this.Message.Length > 100 ? this.Message.Substring(0, 100) + "..." : this.Message; - - public bool HasException => !string.IsNullOrEmpty(this.Exception); - - public bool HasDetails => !string.IsNullOrEmpty(this.Details); - - public bool HasProperties => this.Properties.Any(); - } -} - +using System; +using System.Collections.ObjectModel; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Input; +using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.Input; +using Microsoft.Extensions.Logging; +using ThreadPilot.Models; +using ThreadPilot.Services; + +namespace ThreadPilot.ViewModels +{ + public partial class LogViewerViewModel : ObservableObject + { + private readonly IActivityAuditService activityAuditService; + private readonly IEnhancedLoggingService loggingService; + private readonly IApplicationSettingsService settingsService; + private readonly ILogger logger; + + [ObservableProperty] + private ObservableCollection logEntries = new(); + + [ObservableProperty] + private LogEntryDisplayModel? selectedLogEntry; + + [ObservableProperty] + private string searchText = string.Empty; + + [ObservableProperty] + private LogLevel selectedLogLevel = LogLevel.Information; + + [ObservableProperty] + private string selectedCategory = "All"; + + [ObservableProperty] + private DateTime fromDate = DateTime.Today.AddDays(-7); + + [ObservableProperty] + private DateTime toDate = DateTime.Today.AddDays(1); + + [ObservableProperty] + private bool isLoading; + + [ObservableProperty] + private string statusMessage = "Ready"; + + [ObservableProperty] + private LogFileStatistics? logStatistics; + + [ObservableProperty] + private bool enableDebugLogging; + + [ObservableProperty] + private int maxLogFileSizeMb = 10; + + [ObservableProperty] + private int logRetentionDays = 7; + + [ObservableProperty] + private bool autoRefresh = true; + + [ObservableProperty] + private int refreshIntervalSeconds = 30; + + public ObservableCollection AvailableCategories { get; } = new() + { + "All", + "Process", + "Affinity", + "Priority", + "Memory Priority", + "Rules", + "Power Plans", + "Settings", + "Tweaks", + "Optimization", + "Diagnostics", + "Safety", + }; + + public ObservableCollection AvailableLogLevels { get; } = new() + { + LogLevel.Trace, LogLevel.Debug, LogLevel.Information, LogLevel.Warning, LogLevel.Error, LogLevel.Critical + }; + + public ICommand RefreshLogsCommand { get; } + + public ICommand ClearLogsCommand { get; } + + public ICommand ExportLogsCommand { get; } + + public ICommand CleanupOldLogsCommand { get; } + + public ICommand SaveSettingsCommand { get; } + + public ICommand OpenLogDirectoryCommand { get; } + + public ICommand CopyLogEntryCommand { get; } + + public LogViewerViewModel( + IActivityAuditService activityAuditService, + IEnhancedLoggingService loggingService, + IApplicationSettingsService settingsService, + ILogger logger) + { + this.activityAuditService = activityAuditService ?? throw new ArgumentNullException(nameof(activityAuditService)); + this.loggingService = loggingService ?? throw new ArgumentNullException(nameof(loggingService)); + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); + + // Initialize commands + this.RefreshLogsCommand = new AsyncRelayCommand(this.RefreshLogsAsync); + this.ClearLogsCommand = new AsyncRelayCommand(this.ClearLogsAsync); + this.ExportLogsCommand = new AsyncRelayCommand(this.ExportLogsAsync); + this.CleanupOldLogsCommand = new AsyncRelayCommand(this.CleanupOldLogsAsync); + this.SaveSettingsCommand = new AsyncRelayCommand(this.SaveSettingsAsync); + this.OpenLogDirectoryCommand = new RelayCommand(this.OpenLogDirectory); + this.CopyLogEntryCommand = new RelayCommand(this.CopyLogEntry); + + // Load initial settings + this.LoadSettings(); + this.activityAuditService.EntryAdded += this.OnActivityEntryAdded; + + // Start auto-refresh if enabled + if (this.autoRefresh) + { + this.StartAutoRefresh(); + } + } + + public async Task InitializeAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = "Loading activity..."; + + await this.RefreshLogsAsync(); + await this.RefreshStatisticsAsync(); + + this.StatusMessage = "Ready"; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to initialize log viewer"); + this.StatusMessage = $"Error: {ex.Message}"; + } + finally + { + this.IsLoading = false; + } + } + + private async Task RefreshLogsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = "Refreshing activity..."; + + var logEntries = await this.activityAuditService.GetEntriesAsync(this.FromDate, this.ToDate); + + // Filter by category and log level + var filteredEntries = logEntries.Where(entry => + this.ShouldDisplay(entry)).ToList(); + + // Convert to display models + var displayModels = filteredEntries.Select(ToDisplayModel).ToList(); + + // PERFORMANCE OPTIMIZATION: Replace collection instead of Clear() + Add() loop + await InvokeOnUiAsync(() => + { + this.LogEntries = new ObservableCollection(displayModels); + this.StatusMessage = $"Loaded {this.LogEntries.Count} log entries"; + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to refresh logs"); + this.StatusMessage = $"Error refreshing activity: {ex.Message}"; + } + finally + { + this.IsLoading = false; + } + } + + private async Task RefreshStatisticsAsync() + { + try + { + this.LogStatistics = await this.loggingService.GetLogStatisticsAsync(); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to refresh log statistics"); + } + } + + private async Task ClearLogsAsync() + { + try + { + this.LogEntries.Clear(); + this.StatusMessage = "Activity display cleared"; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to clear logs"); + this.StatusMessage = $"Error clearing logs: {ex.Message}"; + } + } + + private async Task ExportLogsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = "Exporting activity..."; + + var entries = await this.activityAuditService.GetEntriesAsync(this.FromDate, this.ToDate); + var exportPath = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Desktop), + $"ThreadPilot_Activity_{DateTime.Now:yyyyMMdd_HHmmss}.txt"); + var exportLines = entries.Select(e => + $"{e.Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{e.Severity}] {e.Category}: {e.Message}" + + (string.IsNullOrWhiteSpace(e.Details) ? string.Empty : $" ({e.Details})")); + await File.WriteAllLinesAsync(exportPath, exportLines); + this.StatusMessage = $"Activity exported to: {exportPath}"; + + await this.activityAuditService.LogInfoAsync( + "Diagnostics", + $"Activity exported to {Path.GetFileName(exportPath)}", + $"DateRange: {this.FromDate:yyyy-MM-dd} to {this.ToDate:yyyy-MM-dd}"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to export logs"); + this.StatusMessage = $"Error exporting logs: {ex.Message}"; + } + finally + { + this.IsLoading = false; + } + } + + private async Task CleanupOldLogsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = "Cleaning up old logs..."; + + await this.loggingService.CleanupOldLogsAsync(); + await this.RefreshStatisticsAsync(); + + this.StatusMessage = "Old diagnostic log files cleaned up successfully"; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to cleanup old logs"); + this.StatusMessage = $"Error cleaning up logs: {ex.Message}"; + } + finally + { + this.IsLoading = false; + } + } + + private async Task SaveSettingsAsync() + { + try + { + await this.loggingService.UpdateConfigurationAsync(this.EnableDebugLogging, this.MaxLogFileSizeMb, this.LogRetentionDays); + + this.StatusMessage = "Diagnostic logging settings saved successfully"; + await this.activityAuditService.LogInfoAsync( + "Diagnostics", + "Diagnostic logging settings saved", + $"Debug: {this.EnableDebugLogging}, MaxSize: {this.MaxLogFileSizeMb}MB, Retention: {this.LogRetentionDays} days"); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to save logging settings"); + this.StatusMessage = $"Error saving settings: {ex.Message}"; + } + } + + private void OpenLogDirectory() + { + try + { + var logDirectory = this.loggingService.LogDirectoryPath; + if (Directory.Exists(logDirectory)) + { + System.Diagnostics.Process.Start("explorer.exe", logDirectory); + } + else + { + this.StatusMessage = "Log directory not found"; + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to open log directory"); + this.StatusMessage = $"Error opening log directory: {ex.Message}"; + } + } + + private void CopyLogEntry(LogEntryDisplayModel? logEntry) + { + if (logEntry == null) + { + return; + } + + try + { + var logText = $"[{logEntry.Timestamp:yyyy-MM-dd HH:mm:ss.fff}] [{logEntry.Status}] {logEntry.Category}: {logEntry.Message}"; + if (!string.IsNullOrEmpty(logEntry.Details)) + { + logText += $"\nDetails: {logEntry.Details}"; + } + + System.Windows.Clipboard.SetText(logText); + this.StatusMessage = "Log entry copied to clipboard"; + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to copy log entry to clipboard"); + this.StatusMessage = "Failed to copy log entry"; + } + } + + private void LoadSettings() + { + var settings = this.settingsService.Settings; + this.EnableDebugLogging = settings.EnableDebugLogging; + this.MaxLogFileSizeMb = settings.MaxLogFileSizeMb; + this.LogRetentionDays = settings.LogRetentionDays; + } + + private void StartAutoRefresh() + { + // Implementation for auto-refresh timer would go here + // For now, we'll keep it simple without the timer + } + + private void OnActivityEntryAdded(object? sender, ActivityAuditEntry entry) + { + if (!this.ShouldDisplay(entry)) + { + return; + } + + _ = InvokeOnUiAsync(() => + { + this.LogEntries.Insert(0, ToDisplayModel(entry)); + while (this.LogEntries.Count > 1000) + { + this.LogEntries.RemoveAt(this.LogEntries.Count - 1); + } + + this.StatusMessage = $"Loaded {this.LogEntries.Count} activity entries"; + }); + } + + private bool ShouldDisplay(ActivityAuditEntry entry) + { + var categoryMatch = this.SelectedCategory == "All" || entry.Category == this.SelectedCategory; + var levelMatch = ToLogLevel(entry.Severity) >= this.SelectedLogLevel; + var searchMatch = string.IsNullOrEmpty(this.SearchText) || + entry.Message.Contains(this.SearchText, StringComparison.OrdinalIgnoreCase) || + entry.Category.Contains(this.SearchText, StringComparison.OrdinalIgnoreCase) || + (entry.Details?.Contains(this.SearchText, StringComparison.OrdinalIgnoreCase) ?? false); + + return categoryMatch && levelMatch && searchMatch; + } + + private static LogEntryDisplayModel ToDisplayModel(ActivityAuditEntry entry) => + new() + { + Timestamp = entry.Timestamp, + Level = ToLogLevel(entry.Severity), + AuditSeverity = entry.Severity, + Category = entry.Category, + Message = entry.Message, + Details = entry.Details, + }; + + partial void OnSearchTextChanged(string value) + { + // Trigger refresh when search text changes - marshal to UI thread to prevent cross-thread access exceptions + _ = InvokeOnUiAsync(async () => await this.RefreshLogsAsync()); + } + + partial void OnSelectedCategoryChanged(string value) + { + // Trigger refresh when category changes - marshal to UI thread to prevent cross-thread access exceptions + _ = InvokeOnUiAsync(async () => await this.RefreshLogsAsync()); + } + + partial void OnSelectedLogLevelChanged(LogLevel value) + { + // Trigger refresh when log level changes - marshal to UI thread to prevent cross-thread access exceptions + _ = InvokeOnUiAsync(async () => await this.RefreshLogsAsync()); + } + + private static Task InvokeOnUiAsync(Action action) + { + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher == null || dispatcher.CheckAccess()) + { + action(); + return Task.CompletedTask; + } + + return dispatcher.InvokeAsync(action).Task; + } + + private static Task InvokeOnUiAsync(Func action) + { + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher == null || dispatcher.CheckAccess()) + { + return action(); + } + + return dispatcher.InvokeAsync(action).Task.Unwrap(); + } + + private static LogLevel ToLogLevel(ActivityAuditSeverity severity) => + severity switch + { + ActivityAuditSeverity.Error => LogLevel.Error, + ActivityAuditSeverity.Warning => LogLevel.Warning, + _ => LogLevel.Information, + }; + } + + public class LogEntryDisplayModel + { + public DateTime Timestamp { get; set; } + + public LogLevel Level { get; set; } + + public ActivityAuditSeverity? AuditSeverity { get; set; } + + public string Category { get; set; } = string.Empty; + + public string Message { get; set; } = string.Empty; + + public string? Exception { get; set; } + + public string? Details { get; set; } + + public Dictionary Properties { get; set; } = new(); + + public string? CorrelationId { get; set; } + + public string LevelColor => this.AuditSeverity switch + { + ActivityAuditSeverity.Error => "#FF4444", + ActivityAuditSeverity.Warning => "#FFA500", + ActivityAuditSeverity.Success => "#107C10", + ActivityAuditSeverity.Info => "#0066CC", + _ => this.Level switch + { + LogLevel.Critical => "#FF0000", + LogLevel.Error => "#FF4444", + LogLevel.Warning => "#FFA500", + LogLevel.Information => "#0066CC", + LogLevel.Debug => "#808080", + LogLevel.Trace => "#C0C0C0", + _ => "#000000" + }, + }; + + public string Status => this.AuditSeverity?.ToString() ?? this.Level.ToString(); + + public string FormattedTimestamp => this.Timestamp.ToString("yyyy-MM-dd HH:mm:ss.fff"); + + public string ShortMessage => this.Message.Length > 100 ? this.Message.Substring(0, 100) + "..." : this.Message; + + public bool HasException => !string.IsNullOrEmpty(this.Exception); + + public bool HasDetails => !string.IsNullOrEmpty(this.Details); + + public bool HasProperties => this.Properties.Any(); + } +} + diff --git a/ViewModels/MainWindowViewModel.cs b/ViewModels/MainWindowViewModel.cs index ad4a2e0..0f8c1bb 100644 --- a/ViewModels/MainWindowViewModel.cs +++ b/ViewModels/MainWindowViewModel.cs @@ -1,236 +1,220 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot -{ - using System; - using System.Reflection; - using System.Threading.Tasks; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public partial class MainWindowViewModel : BaseViewModel - { - private readonly IProcessMonitorManagerService? processMonitorManagerService; - private readonly INotificationService? notificationService; - private readonly IElevationService? elevationService; - private readonly ISecurityService? securityService; - - [ObservableProperty] - private bool isProcessMonitoringActive = false; - - [ObservableProperty] - private string processMonitoringStatusText = "Automation Monitoring: Inactive"; - - [ObservableProperty] - private bool isRunningAsAdministrator = false; - - [ObservableProperty] - private string elevationStatusText = "Checking elevation status..."; - - [ObservableProperty] - private bool showElevationPrompt = false; - - [ObservableProperty] - private string initializationStage = "Starting ThreadPilot..."; - - [ObservableProperty] - private string initializationDetails = "Preparing startup sequence."; - - [ObservableProperty] - private bool isDarkTheme = false; - - [ObservableProperty] - private string applicationVersion = "v0.0.0"; - - public MainWindowViewModel( - ILogger logger, - IEnhancedLoggingService? enhancedLoggingService = null, - IProcessMonitorManagerService? processMonitorManagerService = null, - INotificationService? notificationService = null, - IElevationService? elevationService = null, - ISecurityService? securityService = null, - IActivityAuditService? activityAuditService = null) - : base(logger, enhancedLoggingService, activityAuditService) - { - this.processMonitorManagerService = processMonitorManagerService; - this.notificationService = notificationService; - this.elevationService = elevationService; - this.securityService = securityService; - this.ApplicationVersion = GetApplicationVersion(); - } - - public override async Task InitializeAsync() - { - await this.ExecuteAsync( - async () => - { - // Subscribe to service events - if (this.processMonitorManagerService != null) - { - this.processMonitorManagerService.ServiceStatusChanged += this.OnServiceStatusChanged; - } - - // Initialize status - await this.UpdateStatusAsync(); - this.UpdateElevationStatus(); - - await this.LogUserActionAsync("MainWindow", "Initialized main window", "Application startup"); - }, "Initializing main window..."); - } - - [RelayCommand] - private async Task ToggleProcessMonitoringAsync() - { - if (this.processMonitorManagerService == null) - { - return; - } - - await this.ExecuteAsync( - async () => - { - if (this.IsProcessMonitoringActive) - { - await this.processMonitorManagerService.StopAsync(); - await this.LogUserActionAsync("ProcessMonitoring", "Stopped automation monitoring", "User action"); - } - else - { - await this.processMonitorManagerService.StartAsync(); - await this.LogUserActionAsync("ProcessMonitoring", "Started automation monitoring", "User action"); - } - }, this.IsProcessMonitoringActive ? "Stopping automation monitoring..." : "Starting automation monitoring..."); - } - - [RelayCommand] - private async Task RequestElevationAsync() - { - if (this.elevationService == null) - { - return; - } - - await this.ExecuteAsync( - async () => - { - var success = await this.elevationService.RequestElevationIfNeeded(); - if (success) - { - await this.LogUserActionAsync("Elevation", "Requested elevation", "User action"); - } - else - { - await this.LogUserActionAsync("Elevation", "Elevation request failed or cancelled", "User action"); - } - }, "Requesting elevation..."); - } - - private async Task UpdateStatusAsync() - { - try - { - // Update process monitoring status - if (this.processMonitorManagerService != null) - { - this.IsProcessMonitoringActive = this.processMonitorManagerService.IsRunning; - this.ProcessMonitoringStatusText = this.IsProcessMonitoringActive - ? "Automation Monitoring: Active" - : "Automation Monitoring: Inactive"; - } - - // Update elevation status - this.UpdateElevationStatus(); - } - catch (Exception ex) - { - this.SetError("Failed to update status", ex); - } - } - - private void UpdateElevationStatus() - { - if (this.elevationService == null) - { - this.IsRunningAsAdministrator = false; - this.ElevationStatusText = "Elevation service not available"; - this.ShowElevationPrompt = false; - return; - } - - this.IsRunningAsAdministrator = this.elevationService.IsRunningAsAdministrator(); - this.ElevationStatusText = this.elevationService.GetElevationStatus(); - this.ShowElevationPrompt = !this.IsRunningAsAdministrator; - } - - private void OnServiceStatusChanged(object? sender, ServiceStatusEventArgs e) - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.IsProcessMonitoringActive = e.IsRunning; - this.ProcessMonitoringStatusText = $"Automation Monitoring: {e.Status}"; - }); - } - - public void UpdateProcessMonitoringStatus(bool isActive, string status) - { - if (System.Windows.Application.Current.Dispatcher.CheckAccess()) - { - this.IsProcessMonitoringActive = isActive; - this.ProcessMonitoringStatusText = $"Automation Monitoring: {status}"; - } - else - { - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.IsProcessMonitoringActive = isActive; - this.ProcessMonitoringStatusText = $"Automation Monitoring: {status}"; - }); - } - } - - protected override void OnDispose() - { - if (this.processMonitorManagerService != null) - { - this.processMonitorManagerService.ServiceStatusChanged -= this.OnServiceStatusChanged; - } - - base.OnDispose(); - } - - private static string GetApplicationVersion() - { - var assembly = typeof(MainWindowViewModel).Assembly; - var informationalVersion = assembly - .GetCustomAttribute()? - .InformationalVersion; - - var normalizedVersion = string.IsNullOrWhiteSpace(informationalVersion) - ? assembly.GetName().Version?.ToString(3) ?? "0.0.0" - : informationalVersion.Split('+')[0]; - - return normalizedVersion.StartsWith("v", StringComparison.OrdinalIgnoreCase) - ? normalizedVersion - : $"v{normalizedVersion}"; - } - } -} +namespace ThreadPilot +{ + using System; + using System.Reflection; + using System.Threading.Tasks; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public partial class MainWindowViewModel : BaseViewModel + { + private readonly IProcessMonitorManagerService? processMonitorManagerService; + private readonly INotificationService? notificationService; + private readonly IElevationService? elevationService; + private readonly ISecurityService? securityService; + + [ObservableProperty] + private bool isProcessMonitoringActive = false; + + [ObservableProperty] + private string processMonitoringStatusText = "Automation Monitoring: Inactive"; + + [ObservableProperty] + private bool isRunningAsAdministrator = false; + + [ObservableProperty] + private string elevationStatusText = "Checking elevation status..."; + + [ObservableProperty] + private bool showElevationPrompt = false; + + [ObservableProperty] + private string initializationStage = "Starting ThreadPilot..."; + + [ObservableProperty] + private string initializationDetails = "Preparing startup sequence."; + + [ObservableProperty] + private bool isDarkTheme = false; + + [ObservableProperty] + private string applicationVersion = "v0.0.0"; + + public MainWindowViewModel( + ILogger logger, + IEnhancedLoggingService? enhancedLoggingService = null, + IProcessMonitorManagerService? processMonitorManagerService = null, + INotificationService? notificationService = null, + IElevationService? elevationService = null, + ISecurityService? securityService = null, + IActivityAuditService? activityAuditService = null) + : base(logger, enhancedLoggingService, activityAuditService) + { + this.processMonitorManagerService = processMonitorManagerService; + this.notificationService = notificationService; + this.elevationService = elevationService; + this.securityService = securityService; + this.ApplicationVersion = GetApplicationVersion(); + } + + public override async Task InitializeAsync() + { + await this.ExecuteAsync( + async () => + { + // Subscribe to service events + if (this.processMonitorManagerService != null) + { + this.processMonitorManagerService.ServiceStatusChanged += this.OnServiceStatusChanged; + } + + // Initialize status + await this.UpdateStatusAsync(); + this.UpdateElevationStatus(); + + await this.LogUserActionAsync("MainWindow", "Initialized main window", "Application startup"); + }, "Initializing main window..."); + } + + [RelayCommand] + private async Task ToggleProcessMonitoringAsync() + { + if (this.processMonitorManagerService == null) + { + return; + } + + await this.ExecuteAsync( + async () => + { + if (this.IsProcessMonitoringActive) + { + await this.processMonitorManagerService.StopAsync(); + await this.LogUserActionAsync("ProcessMonitoring", "Stopped automation monitoring", "User action"); + } + else + { + await this.processMonitorManagerService.StartAsync(); + await this.LogUserActionAsync("ProcessMonitoring", "Started automation monitoring", "User action"); + } + }, this.IsProcessMonitoringActive ? "Stopping automation monitoring..." : "Starting automation monitoring..."); + } + + [RelayCommand] + private async Task RequestElevationAsync() + { + if (this.elevationService == null) + { + return; + } + + await this.ExecuteAsync( + async () => + { + var success = await this.elevationService.RequestElevationIfNeeded(); + if (success) + { + await this.LogUserActionAsync("Elevation", "Requested elevation", "User action"); + } + else + { + await this.LogUserActionAsync("Elevation", "Elevation request failed or cancelled", "User action"); + } + }, "Requesting elevation..."); + } + + private async Task UpdateStatusAsync() + { + try + { + // Update process monitoring status + if (this.processMonitorManagerService != null) + { + this.IsProcessMonitoringActive = this.processMonitorManagerService.IsRunning; + this.ProcessMonitoringStatusText = this.IsProcessMonitoringActive + ? "Automation Monitoring: Active" + : "Automation Monitoring: Inactive"; + } + + // Update elevation status + this.UpdateElevationStatus(); + } + catch (Exception ex) + { + this.SetError("Failed to update status", ex); + } + } + + private void UpdateElevationStatus() + { + if (this.elevationService == null) + { + this.IsRunningAsAdministrator = false; + this.ElevationStatusText = "Elevation service not available"; + this.ShowElevationPrompt = false; + return; + } + + this.IsRunningAsAdministrator = this.elevationService.IsRunningAsAdministrator(); + this.ElevationStatusText = this.elevationService.GetElevationStatus(); + this.ShowElevationPrompt = !this.IsRunningAsAdministrator; + } + + private void OnServiceStatusChanged(object? sender, ServiceStatusEventArgs e) + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.IsProcessMonitoringActive = e.IsRunning; + this.ProcessMonitoringStatusText = $"Automation Monitoring: {e.Status}"; + }); + } + + public void UpdateProcessMonitoringStatus(bool isActive, string status) + { + if (System.Windows.Application.Current.Dispatcher.CheckAccess()) + { + this.IsProcessMonitoringActive = isActive; + this.ProcessMonitoringStatusText = $"Automation Monitoring: {status}"; + } + else + { + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.IsProcessMonitoringActive = isActive; + this.ProcessMonitoringStatusText = $"Automation Monitoring: {status}"; + }); + } + } + + protected override void OnDispose() + { + if (this.processMonitorManagerService != null) + { + this.processMonitorManagerService.ServiceStatusChanged -= this.OnServiceStatusChanged; + } + + base.OnDispose(); + } + + private static string GetApplicationVersion() + { + var assembly = typeof(MainWindowViewModel).Assembly; + var informationalVersion = assembly + .GetCustomAttribute()? + .InformationalVersion; + + var normalizedVersion = string.IsNullOrWhiteSpace(informationalVersion) + ? assembly.GetName().Version?.ToString(3) ?? "0.0.0" + : informationalVersion.Split('+')[0]; + + return normalizedVersion.StartsWith("v", StringComparison.OrdinalIgnoreCase) + ? normalizedVersion + : $"v{normalizedVersion}"; + } + } +} diff --git a/ViewModels/MasksViewModel.cs b/ViewModels/MasksViewModel.cs index 8659220..47635d9 100644 --- a/ViewModels/MasksViewModel.cs +++ b/ViewModels/MasksViewModel.cs @@ -1,19 +1,3 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ namespace ThreadPilot.ViewModels { using System; @@ -30,9 +14,6 @@ namespace ThreadPilot.ViewModels using MessageBoxImage = System.Windows.MessageBoxImage; using MessageBoxResult = System.Windows.MessageBoxResult; - /// - /// Wrapper for individual core bit in the mask, similar to CPUSetSetter's MaskBitViewModel. - /// public partial class CoreBitViewModel : ObservableObject { private readonly ObservableCollection boolMask; @@ -60,13 +41,6 @@ public CoreBitViewModel(ObservableCollection boolMask, int index) } } - /// - /// ViewModel for managing CPU core affinity masks. - /// This ViewModel manages CPU mask presets for editing and storage only. - /// It does not apply affinity to any process. Per-process affinity application - /// is handled by ProcessViewModel through ProcessAffinityApplyCoordinator. - /// Based on CPUSetSetter's MasksTabViewModel. - /// public partial class MasksViewModel : ObservableObject { private readonly ICoreMaskService coreMaskService; @@ -87,10 +61,6 @@ public partial class MasksViewModel : ObservableObject [ObservableProperty] private ObservableCollection coreBits = new(); - /// - /// Gets a value indicating whether can delete if: mask selected, not "All Cores" baseline, not actively applied to processes - /// Note: The actual validation happens in DeleteMask command with proper async checks. - /// public bool CanDeleteMask => this.SelectedCoreMask != null && this.SelectedCoreMask.Name != "All Cores"; public bool CanDuplicateMask => this.SelectedCoreMask != null; diff --git a/ViewModels/PerformanceViewModel.cs b/ViewModels/PerformanceViewModel.cs index 1697f24..88720c7 100644 --- a/ViewModels/PerformanceViewModel.cs +++ b/ViewModels/PerformanceViewModel.cs @@ -1,946 +1,930 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.Diagnostics; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public partial class PerformanceViewModel : BaseViewModel - { - private readonly IPerformanceMonitoringService performanceService; - private readonly IProcessService processService; - private readonly IProcessPowerPlanAssociationService associationService; - private readonly IPowerPlanService powerPlanService; - private readonly IProcessMonitorManagerService processMonitorManagerService; - private readonly ISystemTweaksService systemTweaksService; - private readonly ILogger logger; - - [ObservableProperty] - private ObservableCollection coreUsages = new(); - - [ObservableProperty] - private ObservableCollection topCpuProcesses = new(); - - [ObservableProperty] - private ObservableCollection historicalData = new(); - - [ObservableProperty] - private ObservableCollection timelineEvents = new(); - - [ObservableProperty] - private ProcessPerformanceInfo? selectedHotspotProcess; - - [ObservableProperty] - private bool isMonitoring; - - [ObservableProperty] - private string monitoringStatusText = "Live metrics stopped"; - - [ObservableProperty] - private DateTime lastUpdateTime; - - [ObservableProperty] - private double totalCpuUsage; - - [ObservableProperty] - private long totalMemoryUsage; - - [ObservableProperty] - private long totalMemory; - - [ObservableProperty] - private long availableMemory; - - [ObservableProperty] - private double memoryUsagePercentage; - - [ObservableProperty] - private int activeProcessCount; - - [ObservableProperty] - private string cpuUsageText = "0.0%"; - - [ObservableProperty] - private string memoryUsageText = "0 MB / 0 MB"; - - [ObservableProperty] - private string processCountText = "0"; - - [ObservableProperty] - private string currentGlobalPowerPlanText = "Unknown"; - - [ObservableProperty] - private string monitoringStateText = "Stopped"; - - [ObservableProperty] - private string selectedProcessName = "No hotspot selected"; - - [ObservableProperty] - private string selectedProcessExecutable = "-"; - - [ObservableProperty] - private string selectedProcessCpuText = "-"; - - [ObservableProperty] - private string selectedProcessMemoryText = "-"; - - [ObservableProperty] - private string selectedProcessRuleStatus = "No linked rule"; - - [ObservableProperty] - private string selectedProcessRuleSummary = "Create a rule from this process to automate affinity and priority behavior."; - - [ObservableProperty] - private string selectedProcessLastApplyText = "No recent automation event"; - - [ObservableProperty] - private bool canCreateRuleFromSelectedProcess; - - [ObservableProperty] - private string timelineSampleCountText = "0 samples"; - - [ObservableProperty] - private string lastTimelineEventText = "No events yet"; - - [ObservableProperty] - private int updateInterval = 2000; - - [ObservableProperty] - private bool showCoreDetails = true; - - [ObservableProperty] - private bool showProcessDetails = true; - - [ObservableProperty] - private bool showOnlyRuleBackedHotspots; - - [ObservableProperty] - private bool showOnlyActionableHotspots = true; - - [ObservableProperty] - private string sortMode = "Cpu"; - - [ObservableProperty] - private string lastManualRefreshText = "Not refreshed yet"; - - [ObservableProperty] - private string processSearchText = string.Empty; - - [ObservableProperty] - private bool isRuleCreateBusy; - - [ObservableProperty] - private bool isPopupVisible; - - [ObservableProperty] - private string popupTitle = string.Empty; - - [ObservableProperty] - private string popupContent = string.Empty; - - [ObservableProperty] - private int blurRadius; - - private readonly Dictionary lastRuleApplyByExecutable = new(StringComparer.OrdinalIgnoreCase); - private readonly SemaphoreSlim topProcessRefreshGate = new(1, 1); - private bool pendingTopProcessRefresh; - private bool diagnosticsActivated; - - public PerformanceViewModel( - IPerformanceMonitoringService performanceService, - IProcessService processService, - IProcessPowerPlanAssociationService associationService, - IPowerPlanService powerPlanService, - IProcessMonitorManagerService processMonitorManagerService, - ISystemTweaksService systemTweaksService, - ILogger logger, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null) - : base(logger, enhancedLoggingService, activityAuditService) - { - this.performanceService = performanceService; - this.processService = processService; - this.associationService = associationService; - this.powerPlanService = powerPlanService; - this.processMonitorManagerService = processMonitorManagerService; - this.systemTweaksService = systemTweaksService; - this.logger = logger; - - this.performanceService.MetricsUpdated += this.OnMetricsUpdated; - this.processMonitorManagerService.ProcessPowerPlanChanged += this.OnProcessPowerPlanChanged; - this.powerPlanService.PowerPlanChanged += this.OnPowerPlanChanged; - this.systemTweaksService.TweakStatusChanged += this.OnTweakStatusChanged; - } - - public override async Task InitializeAsync() - { - this.MonitoringStateText = "Stopped"; - this.MonitoringStatusText = "Diagnostics inactive"; - this.SetStatus("Diagnostics are inactive until opened.", false); - await Task.CompletedTask; - } - - public async Task ActivateDiagnosticsAsync() - { - await this.ActivateDiagnosticsCoreAsync(auditActivity: false); - } - - private async Task ActivateDiagnosticsCoreAsync(bool auditActivity) - { - try - { - this.SetStatus("Loading optional diagnostics..."); - - var snapshotLoaded = await this.RefreshMetricsSnapshotAsync(auditActivity); - await this.LoadHistoricalDataAsync(); - - this.diagnosticsActivated = true; - this.MonitoringStateText = this.IsMonitoring ? "Active" : "Stopped"; - if (snapshotLoaded) - { - this.MonitoringStatusText = this.IsMonitoring ? "Live metrics active" : "Diagnostics snapshot loaded"; - this.SetStatus("Optional diagnostics loaded", false); - } - else - { - this.MonitoringStatusText = "Diagnostics snapshot failed"; - } - } - catch (Exception ex) - { - this.SetError("Failed to load optional diagnostics", ex); - this.logger.LogError(ex, "Error loading optional diagnostics"); - } - } - - public async Task DeactivateDiagnosticsAsync() - { - try - { - if (this.IsMonitoring) - { - await this.performanceService.StopMonitoringAsync(); - } - - this.IsMonitoring = false; - this.MonitoringStatusText = this.diagnosticsActivated - ? "Diagnostics inactive" - : "Live metrics stopped"; - this.MonitoringStateText = "Stopped"; - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to deactivate optional diagnostics"); - } - } - - [RelayCommand] - private async Task StartMonitoringAsync() - { - try - { - if (!this.diagnosticsActivated) - { - await this.ActivateDiagnosticsAsync(); - } - - this.SetStatus("Starting performance monitoring..."); - await this.performanceService.StartMonitoringAsync(); - - this.IsMonitoring = true; - this.MonitoringStatusText = "Live metrics active"; - this.MonitoringStateText = "Active"; - this.AddTimelineEvent("Live Metrics", "Live metrics started.", "Info"); - - this.SetStatus("Performance monitoring started", false); - await this.LogUserActionAsync("OptimizationMonitoringStarted", "Performance monitoring started"); - } - catch (Exception ex) - { - this.SetError("Failed to start performance monitoring", ex); - await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to start performance monitoring: {ex.Message}"); - } - } - - [RelayCommand] - private async Task StopMonitoringAsync() - { - try - { - this.SetStatus("Stopping performance monitoring..."); - await this.performanceService.StopMonitoringAsync(); - - this.IsMonitoring = false; - this.MonitoringStatusText = "Live metrics stopped"; - this.MonitoringStateText = "Stopped"; - this.AddTimelineEvent("Live Metrics", "Live metrics stopped.", "Warning"); - - this.SetStatus("Performance monitoring stopped", false); - await this.LogUserActionAsync("OptimizationMonitoringStopped", "Performance monitoring stopped"); - } - catch (Exception ex) - { - this.SetError("Failed to stop performance monitoring", ex); - await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to stop performance monitoring: {ex.Message}"); - } - } - - public async Task SuspendBackgroundMonitoringAsync() - { - try - { - await this.DeactivateDiagnosticsAsync(); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to suspend performance diagnostics"); - } - } - - public async Task ResumeBackgroundMonitoringAsync() - { - await Task.CompletedTask; - } - - [RelayCommand] - private async Task RefreshMetricsAsync() - { - if (!this.diagnosticsActivated) - { - await this.ActivateDiagnosticsCoreAsync(auditActivity: true); - return; - } - - await this.RefreshMetricsSnapshotAsync(auditActivity: true); - } - - private async Task RefreshMetricsSnapshotAsync(bool auditActivity) - { - try - { - this.SetStatus("Refreshing performance snapshot..."); - - var metrics = await this.performanceService.GetSystemMetricsAsync(); - await this.RefreshGlobalPowerPlanAsync(); - await this.LoadTopProcessesAsync(); - this.UpdateMetrics(metrics); - - this.LastManualRefreshText = $"Refreshed at {DateTime.Now:HH:mm:ss}"; - this.SetStatus("Performance snapshot refreshed", false); - if (auditActivity) - { - await this.LogUserActionAsync("OptimizationSnapshotRefreshed", "Performance snapshot refreshed"); - } - return true; - } - catch (Exception ex) - { - this.SetError("Failed to refresh performance snapshot", ex); - if (auditActivity) - { - await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to refresh performance snapshot: {ex.Message}"); - } - return false; - } - } - - [RelayCommand] - private async Task ClearHistoricalDataAsync() - { - try - { - await this.performanceService.ClearHistoricalDataAsync(); - this.HistoricalData.Clear(); - this.UpdateTimelineSummary(); - this.AddTimelineEvent("History", "Historical metrics cleared.", "Info"); - this.SetStatus("Historical data cleared", false); - await this.LogUserActionAsync("OptimizationHistoryCleared", "Historical metrics cleared"); - } - catch (Exception ex) - { - this.SetError("Failed to clear historical data", ex); - await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to clear historical data: {ex.Message}"); - } - } - - [RelayCommand] - private async Task LoadHistoricalDataAsync() - { - try - { - var history = await this.performanceService.GetHistoricalDataAsync(TimeSpan.FromHours(1)); - this.HistoricalData = new ObservableCollection(history); - this.UpdateTimelineSummary(); - } - catch (Exception ex) - { - this.SetError("Failed to load historical data", ex); - } - } - - [RelayCommand] - private async Task CreateRuleFromSelectedProcessAsync() - { - if (this.SelectedHotspotProcess == null || this.IsRuleCreateBusy) - { - return; - } - - this.IsRuleCreateBusy = true; - - try - { - var liveProcesses = await this.processService.GetProcessesAsync(); - var targetProcess = liveProcesses.FirstOrDefault(p => p.ProcessId == this.SelectedHotspotProcess.ProcessId) - ?? liveProcesses.FirstOrDefault(p => - string.Equals(p.Name, this.SelectedHotspotProcess.ProcessName, StringComparison.OrdinalIgnoreCase)); - - if (targetProcess == null) - { - this.SetStatus("Selected hotspot process is no longer running", false); - return; - } - - var activePlan = await this.powerPlanService.GetActivePowerPlan(); - if (activePlan == null) - { - this.SetStatus("Could not resolve active global power plan", false); - return; - } - - var executableName = NormalizeExecutableName(targetProcess.Name); - var existing = await this.associationService.FindAssociationByExecutableAsync(executableName); - - if (existing == null) - { - var association = new ProcessPowerPlanAssociation - { - ExecutableName = executableName, - ExecutablePath = targetProcess.ExecutablePath ?? string.Empty, - PowerPlanGuid = activePlan.Guid, - PowerPlanName = activePlan.Name, - ProcessPriority = targetProcess.Priority.ToString(), - MatchByPath = !string.IsNullOrWhiteSpace(targetProcess.ExecutablePath), - Priority = 0, - Description = $"Created from Performance hotspot on {DateTime.Now:g}", - IsEnabled = true, - UpdatedAt = DateTime.UtcNow, - }; - - var added = await this.associationService.AddAssociationAsync(association); - if (!added) - { - this.SetStatus("A rule already exists and could not be created", false); - return; - } - - this.AddTimelineEvent("Rule", $"Rule created for {executableName} from hotspot panel.", "Success"); - this.SetStatus($"Rule created for {executableName} and ready for automation.", false); - await this.LogUserActionAsync("PersistentRuleSaved", $"Rule created for {executableName} from hotspot panel"); - } - else - { - existing.ExecutablePath = targetProcess.ExecutablePath ?? existing.ExecutablePath; - existing.PowerPlanGuid = activePlan.Guid; - existing.PowerPlanName = activePlan.Name; - existing.ProcessPriority = targetProcess.Priority.ToString(); - existing.IsEnabled = true; - existing.MatchByPath = !string.IsNullOrWhiteSpace(existing.ExecutablePath); - existing.Description = $"Updated from Performance hotspot on {DateTime.Now:g}"; - existing.UpdatedAt = DateTime.UtcNow; - - var updated = await this.associationService.UpdateAssociationAsync(existing); - if (!updated) - { - this.SetStatus("Failed to update existing rule from hotspot", false); - return; - } - - this.AddTimelineEvent("Rule", $"Rule updated for {executableName} from hotspot panel.", "Success"); - this.SetStatus($"Rule updated for {executableName} from hotspot panel.", false); - await this.LogUserActionAsync("PersistentRuleUpdated", $"Rule updated for {executableName} from hotspot panel"); - } - - await this.RefreshSelectedProcessRuleImpactAsync(); - await this.LoadTopProcessesAsync(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to create or update rule from performance hotspot"); - this.SetError("Failed to create rule from selected hotspot", ex); - await this.LogUserActionAsync("PersistentRuleSaveFailed", $"Failed to create rule from selected hotspot: {ex.Message}"); - } - finally - { - this.IsRuleCreateBusy = false; - } - } - - [RelayCommand] - private void ToggleCoreDetails() - { - this.ShowCoreDetails = !this.ShowCoreDetails; - } - - [RelayCommand] - private void ToggleProcessDetails() - { - this.ShowProcessDetails = !this.ShowProcessDetails; - } - - [RelayCommand] - private void ShowPopup((string Title, string Content) parameters) - { - this.PopupTitle = parameters.Title; - this.PopupContent = parameters.Content; - this.IsPopupVisible = true; - } - - [RelayCommand] - private void HidePopup() - { - this.IsPopupVisible = false; - } - - partial void OnSelectedHotspotProcessChanged(ProcessPerformanceInfo? value) - { - _ = RefreshSelectedProcessRuleImpactAsync(); - CanCreateRuleFromSelectedProcess = value != null; - } - - partial void OnShowOnlyRuleBackedHotspotsChanged(bool value) - { - if (this.diagnosticsActivated) - { - _ = LoadTopProcessesAsync(); - } - } - - partial void OnShowOnlyActionableHotspotsChanged(bool value) - { - if (this.diagnosticsActivated) - { - _ = LoadTopProcessesAsync(); - } - } - - partial void OnSortModeChanged(string value) - { - if (this.diagnosticsActivated) - { - _ = LoadTopProcessesAsync(); - } - } - - partial void OnProcessSearchTextChanged(string value) - { - if (this.diagnosticsActivated) - { - _ = LoadTopProcessesAsync(); - } - } - - partial void OnIsPopupVisibleChanged(bool value) - { - this.BlurRadius = value ? 15 : 0; - } - - private async Task RefreshSelectedProcessRuleImpactAsync() - { - try - { - if (this.SelectedHotspotProcess == null) - { - this.SelectedProcessName = "No hotspot selected"; - this.SelectedProcessExecutable = "-"; - this.SelectedProcessCpuText = "-"; - this.SelectedProcessMemoryText = "-"; - this.SelectedProcessRuleStatus = "No linked rule"; - this.SelectedProcessRuleSummary = "Create a rule from this process to automate affinity and priority behavior."; - this.SelectedProcessLastApplyText = "No recent automation event"; - return; - } - - var executableName = NormalizeExecutableName(this.SelectedHotspotProcess.ProcessName); - var association = await this.associationService.FindAssociationByExecutableAsync(executableName); - - this.SelectedProcessName = this.SelectedHotspotProcess.ProcessName; - this.SelectedProcessExecutable = string.IsNullOrWhiteSpace(this.SelectedHotspotProcess.ExecutablePath) - ? executableName - : this.SelectedHotspotProcess.ExecutablePath; - this.SelectedProcessCpuText = $"{this.SelectedHotspotProcess.CpuUsage:F1}% CPU"; - this.SelectedProcessMemoryText = FormatBytes(this.SelectedHotspotProcess.MemoryUsage); - - if (association == null) - { - this.SelectedProcessRuleStatus = "No linked rule"; - this.SelectedProcessRuleSummary = "No automation rule matches this executable yet."; - } - else - { - this.SelectedProcessRuleStatus = association.IsEnabled ? "Linked rule is active" : "Linked rule is disabled"; - this.SelectedProcessRuleSummary = BuildRuleSummary(association); - } - - if (this.lastRuleApplyByExecutable.TryGetValue(executableName, out var appliedAt)) - { - this.SelectedProcessLastApplyText = $"Last rule application: {appliedAt:HH:mm:ss}"; - } - else - { - this.SelectedProcessLastApplyText = "No recent automation event"; - } - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to refresh rule impact panel"); - } - } - - private async Task LoadTopProcessesAsync() - { - if (this.topProcessRefreshGate.CurrentCount == 0) - { - this.pendingTopProcessRefresh = true; - return; - } - - await this.topProcessRefreshGate.WaitAsync(); - - try - { - do - { - this.pendingTopProcessRefresh = false; - - var topCpu = await this.performanceService.GetTopCpuProcessesAsync(25); - var topMemory = await this.performanceService.GetTopMemoryProcessesAsync(25); - - var merged = topCpu - .Concat(topMemory) - .GroupBy(p => p.ProcessId) - .Select(g => g.OrderByDescending(x => x.CpuUsage).First()) - .ToList(); - - var associations = await this.associationService.GetAssociationsAsync(); - var associationSet = associations - .Select(a => NormalizeExecutableName(a.ExecutableName)) - .Where(name => !string.IsNullOrWhiteSpace(name)) - .ToHashSet(StringComparer.OrdinalIgnoreCase); - - IEnumerable filtered = merged; - - if (!string.IsNullOrWhiteSpace(this.ProcessSearchText)) - { - filtered = filtered.Where(p => p.ProcessName.Contains(this.ProcessSearchText, StringComparison.OrdinalIgnoreCase)); - } - - if (this.ShowOnlyRuleBackedHotspots) - { - filtered = filtered.Where(p => associationSet.Contains(NormalizeExecutableName(p.ProcessName))); - } - - if (this.ShowOnlyActionableHotspots) - { - filtered = filtered.Where(p => p.CpuUsage >= 1.0 || p.MemoryUsage >= (200L * 1024 * 1024)); - } - - filtered = this.SortMode switch - { - "Memory" => filtered.OrderByDescending(p => p.MemoryUsage), - "Name" => filtered.OrderBy(p => p.ProcessName), - _ => filtered.OrderByDescending(p => p.CpuUsage), - }; - - var snapshot = filtered.Take(50).ToList(); - - var dispatcher = System.Windows.Application.Current?.Dispatcher; - void Apply() - { - this.TopCpuProcesses = new ObservableCollection(snapshot); - - if (this.SelectedHotspotProcess != null) - { - var refreshedSelection = this.TopCpuProcesses.FirstOrDefault(p => p.ProcessId == this.SelectedHotspotProcess.ProcessId); - if (refreshedSelection != null) - { - this.SelectedHotspotProcess = refreshedSelection; - } - } - } - - if (dispatcher != null && !dispatcher.CheckAccess()) - { - await dispatcher.InvokeAsync(Apply); - } - else - { - Apply(); - } - - await this.RefreshSelectedProcessRuleImpactAsync(); - } - while (this.pendingTopProcessRefresh); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error loading hotspot process lists"); - } - finally - { - this.topProcessRefreshGate.Release(); - } - } - - private async Task RefreshGlobalPowerPlanAsync() - { - try - { - var activePlan = await this.powerPlanService.GetActivePowerPlan(); - this.CurrentGlobalPowerPlanText = activePlan?.Name ?? "Unknown"; - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed to refresh global power plan text"); - this.CurrentGlobalPowerPlanText = "Unknown"; - } - } - - private void OnMetricsUpdated(object? sender, PerformanceMetricsUpdatedEventArgs e) - { - try - { - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - this.UpdateMetrics(e.Metrics); - _ = this.LoadTopProcessesAsync(); - }); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error updating performance metrics in UI"); - } - } - - private void UpdateMetrics(SystemPerformanceMetrics metrics) - { - this.TotalCpuUsage = metrics.TotalCpuUsage; - this.TotalMemoryUsage = metrics.TotalMemoryUsage; - this.AvailableMemory = metrics.AvailableMemory; - this.TotalMemory = metrics.TotalMemory; - this.MemoryUsagePercentage = metrics.MemoryUsagePercentage; - this.ActiveProcessCount = metrics.ActiveProcessCount; - this.LastUpdateTime = metrics.Timestamp; - - this.CpuUsageText = $"{this.TotalCpuUsage:F1}%"; - this.MemoryUsageText = $"{FormatBytes(this.TotalMemoryUsage)} / {FormatBytes(this.TotalMemory)}"; - this.ProcessCountText = this.ActiveProcessCount.ToString(); - - void Apply() - { - this.CoreUsages = new ObservableCollection(metrics.CpuCoreUsages); - - if (this.IsMonitoring) - { - this.HistoricalData.Add(metrics); - while (this.HistoricalData.Count > 360) - { - this.HistoricalData.RemoveAt(0); - } - } - - this.UpdateTimelineSummary(); - } - - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher != null && !dispatcher.CheckAccess()) - { - dispatcher.Invoke(Apply); - } - else - { - Apply(); - } - } - - private void OnProcessPowerPlanChanged(object? sender, ProcessPowerPlanChangeEventArgs e) - { - try - { - var executable = NormalizeExecutableName(e.Process.Name); - this.lastRuleApplyByExecutable[executable] = e.Timestamp; - - var detail = $"{e.Action}: {e.Process.Name} -> {e.NewPowerPlan?.Name ?? "Unknown"}"; - this.AddTimelineEvent("Rule Applied", detail, "Success"); - - _ = this.RefreshSelectedProcessRuleImpactAsync(); - } - catch (Exception ex) - { - this.logger.LogWarning(ex, "Failed handling process power plan change event"); - } - } - - private void OnPowerPlanChanged(object? sender, PowerPlanChangedEventArgs e) - { - var detail = $"Global plan changed to {e.NewPowerPlan?.Name ?? "Unknown"}"; - this.AddTimelineEvent("Power Plan", detail, "Info"); - this.CurrentGlobalPowerPlanText = e.NewPowerPlan?.Name ?? "Unknown"; - } - - private void OnTweakStatusChanged(object? sender, TweakStatusChangedEventArgs e) - { - var state = e.Status.IsEnabled ? "enabled" : "disabled"; - this.AddTimelineEvent("Tweak", $"{e.TweakName} {state}", "Warning"); - } - - private void AddTimelineEvent(string category, string detail, string severity) - { - var evt = new PerformanceTimelineEvent - { - Category = category, - Detail = detail, - Severity = severity, - Timestamp = DateTime.Now, - }; - - void Apply() - { - this.TimelineEvents.Insert(0, evt); - while (this.TimelineEvents.Count > 200) - { - this.TimelineEvents.RemoveAt(this.TimelineEvents.Count - 1); - } - - this.UpdateTimelineSummary(); - } - - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher != null && !dispatcher.CheckAccess()) - { - dispatcher.Invoke(Apply); - } - else - { - Apply(); - } - } - - private void UpdateTimelineSummary() - { - this.TimelineSampleCountText = $"{this.HistoricalData.Count} samples"; - if (this.TimelineEvents.Count == 0) - { - this.LastTimelineEventText = "No events yet"; - return; - } - - var latest = this.TimelineEvents[0]; - this.LastTimelineEventText = $"{latest.Timestamp:HH:mm:ss} - {latest.Category}"; - } - - private static string BuildRuleSummary(ProcessPowerPlanAssociation association) - { - var parts = new List(); - if (!string.IsNullOrWhiteSpace(association.PowerPlanName)) - { - parts.Add($"Plan: {association.PowerPlanName}"); - } - - if (!string.IsNullOrWhiteSpace(association.CoreMaskName)) - { - parts.Add($"Mask: {association.CoreMaskName}"); - } - - if (!string.IsNullOrWhiteSpace(association.ProcessPriority)) - { - parts.Add($"Priority: {association.ProcessPriority}"); - } - - return parts.Count == 0 - ? "Rule exists but has no advanced affinity/priority settings." - : string.Join(" | ", parts); - } - - private static string NormalizeExecutableName(string? name) - { - if (string.IsNullOrWhiteSpace(name)) - { - return string.Empty; - } - - return System.IO.Path.GetFileNameWithoutExtension(name.Trim()); - } - - private static string FormatBytes(long bytes) - { - if (bytes <= 0) - { - return "0 MB"; - } - - const double kb = 1024d; - const double mb = kb * 1024d; - const double gb = mb * 1024d; - - if (bytes >= gb) - { - return $"{bytes / gb:F2} GB"; - } - - return $"{bytes / mb:F0} MB"; - } - - protected override void OnDispose() - { - this.performanceService.MetricsUpdated -= this.OnMetricsUpdated; - this.processMonitorManagerService.ProcessPowerPlanChanged -= this.OnProcessPowerPlanChanged; - this.powerPlanService.PowerPlanChanged -= this.OnPowerPlanChanged; - this.systemTweaksService.TweakStatusChanged -= this.OnTweakStatusChanged; - - this.topProcessRefreshGate.Dispose(); - - if (this.IsMonitoring) - { - _ = Task.Run(async () => await this.performanceService.StopMonitoringAsync()); - } - - base.OnDispose(); - } - } - - public class PerformanceTimelineEvent - { - public DateTime Timestamp { get; set; } - - public string Category { get; set; } = string.Empty; - - public string Detail { get; set; } = string.Empty; - - public string Severity { get; set; } = "Info"; - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.Diagnostics; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public partial class PerformanceViewModel : BaseViewModel + { + private readonly IPerformanceMonitoringService performanceService; + private readonly IProcessService processService; + private readonly IProcessPowerPlanAssociationService associationService; + private readonly IPowerPlanService powerPlanService; + private readonly IProcessMonitorManagerService processMonitorManagerService; + private readonly ISystemTweaksService systemTweaksService; + private readonly ILogger logger; + + [ObservableProperty] + private ObservableCollection coreUsages = new(); + + [ObservableProperty] + private ObservableCollection topCpuProcesses = new(); + + [ObservableProperty] + private ObservableCollection historicalData = new(); + + [ObservableProperty] + private ObservableCollection timelineEvents = new(); + + [ObservableProperty] + private ProcessPerformanceInfo? selectedHotspotProcess; + + [ObservableProperty] + private bool isMonitoring; + + [ObservableProperty] + private string monitoringStatusText = "Live metrics stopped"; + + [ObservableProperty] + private DateTime lastUpdateTime; + + [ObservableProperty] + private double totalCpuUsage; + + [ObservableProperty] + private long totalMemoryUsage; + + [ObservableProperty] + private long totalMemory; + + [ObservableProperty] + private long availableMemory; + + [ObservableProperty] + private double memoryUsagePercentage; + + [ObservableProperty] + private int activeProcessCount; + + [ObservableProperty] + private string cpuUsageText = "0.0%"; + + [ObservableProperty] + private string memoryUsageText = "0 MB / 0 MB"; + + [ObservableProperty] + private string processCountText = "0"; + + [ObservableProperty] + private string currentGlobalPowerPlanText = "Unknown"; + + [ObservableProperty] + private string monitoringStateText = "Stopped"; + + [ObservableProperty] + private string selectedProcessName = "No hotspot selected"; + + [ObservableProperty] + private string selectedProcessExecutable = "-"; + + [ObservableProperty] + private string selectedProcessCpuText = "-"; + + [ObservableProperty] + private string selectedProcessMemoryText = "-"; + + [ObservableProperty] + private string selectedProcessRuleStatus = "No linked rule"; + + [ObservableProperty] + private string selectedProcessRuleSummary = "Create a rule from this process to automate affinity and priority behavior."; + + [ObservableProperty] + private string selectedProcessLastApplyText = "No recent automation event"; + + [ObservableProperty] + private bool canCreateRuleFromSelectedProcess; + + [ObservableProperty] + private string timelineSampleCountText = "0 samples"; + + [ObservableProperty] + private string lastTimelineEventText = "No events yet"; + + [ObservableProperty] + private int updateInterval = 2000; + + [ObservableProperty] + private bool showCoreDetails = true; + + [ObservableProperty] + private bool showProcessDetails = true; + + [ObservableProperty] + private bool showOnlyRuleBackedHotspots; + + [ObservableProperty] + private bool showOnlyActionableHotspots = true; + + [ObservableProperty] + private string sortMode = "Cpu"; + + [ObservableProperty] + private string lastManualRefreshText = "Not refreshed yet"; + + [ObservableProperty] + private string processSearchText = string.Empty; + + [ObservableProperty] + private bool isRuleCreateBusy; + + [ObservableProperty] + private bool isPopupVisible; + + [ObservableProperty] + private string popupTitle = string.Empty; + + [ObservableProperty] + private string popupContent = string.Empty; + + [ObservableProperty] + private int blurRadius; + + private readonly Dictionary lastRuleApplyByExecutable = new(StringComparer.OrdinalIgnoreCase); + private readonly SemaphoreSlim topProcessRefreshGate = new(1, 1); + private bool pendingTopProcessRefresh; + private bool diagnosticsActivated; + + public PerformanceViewModel( + IPerformanceMonitoringService performanceService, + IProcessService processService, + IProcessPowerPlanAssociationService associationService, + IPowerPlanService powerPlanService, + IProcessMonitorManagerService processMonitorManagerService, + ISystemTweaksService systemTweaksService, + ILogger logger, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null) + : base(logger, enhancedLoggingService, activityAuditService) + { + this.performanceService = performanceService; + this.processService = processService; + this.associationService = associationService; + this.powerPlanService = powerPlanService; + this.processMonitorManagerService = processMonitorManagerService; + this.systemTweaksService = systemTweaksService; + this.logger = logger; + + this.performanceService.MetricsUpdated += this.OnMetricsUpdated; + this.processMonitorManagerService.ProcessPowerPlanChanged += this.OnProcessPowerPlanChanged; + this.powerPlanService.PowerPlanChanged += this.OnPowerPlanChanged; + this.systemTweaksService.TweakStatusChanged += this.OnTweakStatusChanged; + } + + public override async Task InitializeAsync() + { + this.MonitoringStateText = "Stopped"; + this.MonitoringStatusText = "Diagnostics inactive"; + this.SetStatus("Diagnostics are inactive until opened.", false); + await Task.CompletedTask; + } + + public async Task ActivateDiagnosticsAsync() + { + await this.ActivateDiagnosticsCoreAsync(auditActivity: false); + } + + private async Task ActivateDiagnosticsCoreAsync(bool auditActivity) + { + try + { + this.SetStatus("Loading optional diagnostics..."); + + var snapshotLoaded = await this.RefreshMetricsSnapshotAsync(auditActivity); + await this.LoadHistoricalDataAsync(); + + this.diagnosticsActivated = true; + this.MonitoringStateText = this.IsMonitoring ? "Active" : "Stopped"; + if (snapshotLoaded) + { + this.MonitoringStatusText = this.IsMonitoring ? "Live metrics active" : "Diagnostics snapshot loaded"; + this.SetStatus("Optional diagnostics loaded", false); + } + else + { + this.MonitoringStatusText = "Diagnostics snapshot failed"; + } + } + catch (Exception ex) + { + this.SetError("Failed to load optional diagnostics", ex); + this.logger.LogError(ex, "Error loading optional diagnostics"); + } + } + + public async Task DeactivateDiagnosticsAsync() + { + try + { + if (this.IsMonitoring) + { + await this.performanceService.StopMonitoringAsync(); + } + + this.IsMonitoring = false; + this.MonitoringStatusText = this.diagnosticsActivated + ? "Diagnostics inactive" + : "Live metrics stopped"; + this.MonitoringStateText = "Stopped"; + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to deactivate optional diagnostics"); + } + } + + [RelayCommand] + private async Task StartMonitoringAsync() + { + try + { + if (!this.diagnosticsActivated) + { + await this.ActivateDiagnosticsAsync(); + } + + this.SetStatus("Starting performance monitoring..."); + await this.performanceService.StartMonitoringAsync(); + + this.IsMonitoring = true; + this.MonitoringStatusText = "Live metrics active"; + this.MonitoringStateText = "Active"; + this.AddTimelineEvent("Live Metrics", "Live metrics started.", "Info"); + + this.SetStatus("Performance monitoring started", false); + await this.LogUserActionAsync("OptimizationMonitoringStarted", "Performance monitoring started"); + } + catch (Exception ex) + { + this.SetError("Failed to start performance monitoring", ex); + await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to start performance monitoring: {ex.Message}"); + } + } + + [RelayCommand] + private async Task StopMonitoringAsync() + { + try + { + this.SetStatus("Stopping performance monitoring..."); + await this.performanceService.StopMonitoringAsync(); + + this.IsMonitoring = false; + this.MonitoringStatusText = "Live metrics stopped"; + this.MonitoringStateText = "Stopped"; + this.AddTimelineEvent("Live Metrics", "Live metrics stopped.", "Warning"); + + this.SetStatus("Performance monitoring stopped", false); + await this.LogUserActionAsync("OptimizationMonitoringStopped", "Performance monitoring stopped"); + } + catch (Exception ex) + { + this.SetError("Failed to stop performance monitoring", ex); + await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to stop performance monitoring: {ex.Message}"); + } + } + + public async Task SuspendBackgroundMonitoringAsync() + { + try + { + await this.DeactivateDiagnosticsAsync(); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to suspend performance diagnostics"); + } + } + + public async Task ResumeBackgroundMonitoringAsync() + { + await Task.CompletedTask; + } + + [RelayCommand] + private async Task RefreshMetricsAsync() + { + if (!this.diagnosticsActivated) + { + await this.ActivateDiagnosticsCoreAsync(auditActivity: true); + return; + } + + await this.RefreshMetricsSnapshotAsync(auditActivity: true); + } + + private async Task RefreshMetricsSnapshotAsync(bool auditActivity) + { + try + { + this.SetStatus("Refreshing performance snapshot..."); + + var metrics = await this.performanceService.GetSystemMetricsAsync(); + await this.RefreshGlobalPowerPlanAsync(); + await this.LoadTopProcessesAsync(); + this.UpdateMetrics(metrics); + + this.LastManualRefreshText = $"Refreshed at {DateTime.Now:HH:mm:ss}"; + this.SetStatus("Performance snapshot refreshed", false); + if (auditActivity) + { + await this.LogUserActionAsync("OptimizationSnapshotRefreshed", "Performance snapshot refreshed"); + } + return true; + } + catch (Exception ex) + { + this.SetError("Failed to refresh performance snapshot", ex); + if (auditActivity) + { + await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to refresh performance snapshot: {ex.Message}"); + } + return false; + } + } + + [RelayCommand] + private async Task ClearHistoricalDataAsync() + { + try + { + await this.performanceService.ClearHistoricalDataAsync(); + this.HistoricalData.Clear(); + this.UpdateTimelineSummary(); + this.AddTimelineEvent("History", "Historical metrics cleared.", "Info"); + this.SetStatus("Historical data cleared", false); + await this.LogUserActionAsync("OptimizationHistoryCleared", "Historical metrics cleared"); + } + catch (Exception ex) + { + this.SetError("Failed to clear historical data", ex); + await this.LogUserActionAsync("OptimizationActionFailed", $"Failed to clear historical data: {ex.Message}"); + } + } + + [RelayCommand] + private async Task LoadHistoricalDataAsync() + { + try + { + var history = await this.performanceService.GetHistoricalDataAsync(TimeSpan.FromHours(1)); + this.HistoricalData = new ObservableCollection(history); + this.UpdateTimelineSummary(); + } + catch (Exception ex) + { + this.SetError("Failed to load historical data", ex); + } + } + + [RelayCommand] + private async Task CreateRuleFromSelectedProcessAsync() + { + if (this.SelectedHotspotProcess == null || this.IsRuleCreateBusy) + { + return; + } + + this.IsRuleCreateBusy = true; + + try + { + var liveProcesses = await this.processService.GetProcessesAsync(); + var targetProcess = liveProcesses.FirstOrDefault(p => p.ProcessId == this.SelectedHotspotProcess.ProcessId) + ?? liveProcesses.FirstOrDefault(p => + string.Equals(p.Name, this.SelectedHotspotProcess.ProcessName, StringComparison.OrdinalIgnoreCase)); + + if (targetProcess == null) + { + this.SetStatus("Selected hotspot process is no longer running", false); + return; + } + + var activePlan = await this.powerPlanService.GetActivePowerPlan(); + if (activePlan == null) + { + this.SetStatus("Could not resolve active global power plan", false); + return; + } + + var executableName = NormalizeExecutableName(targetProcess.Name); + var existing = await this.associationService.FindAssociationByExecutableAsync(executableName); + + if (existing == null) + { + var association = new ProcessPowerPlanAssociation + { + ExecutableName = executableName, + ExecutablePath = targetProcess.ExecutablePath ?? string.Empty, + PowerPlanGuid = activePlan.Guid, + PowerPlanName = activePlan.Name, + ProcessPriority = targetProcess.Priority.ToString(), + MatchByPath = !string.IsNullOrWhiteSpace(targetProcess.ExecutablePath), + Priority = 0, + Description = $"Created from Performance hotspot on {DateTime.Now:g}", + IsEnabled = true, + UpdatedAt = DateTime.UtcNow, + }; + + var added = await this.associationService.AddAssociationAsync(association); + if (!added) + { + this.SetStatus("A rule already exists and could not be created", false); + return; + } + + this.AddTimelineEvent("Rule", $"Rule created for {executableName} from hotspot panel.", "Success"); + this.SetStatus($"Rule created for {executableName} and ready for automation.", false); + await this.LogUserActionAsync("PersistentRuleSaved", $"Rule created for {executableName} from hotspot panel"); + } + else + { + existing.ExecutablePath = targetProcess.ExecutablePath ?? existing.ExecutablePath; + existing.PowerPlanGuid = activePlan.Guid; + existing.PowerPlanName = activePlan.Name; + existing.ProcessPriority = targetProcess.Priority.ToString(); + existing.IsEnabled = true; + existing.MatchByPath = !string.IsNullOrWhiteSpace(existing.ExecutablePath); + existing.Description = $"Updated from Performance hotspot on {DateTime.Now:g}"; + existing.UpdatedAt = DateTime.UtcNow; + + var updated = await this.associationService.UpdateAssociationAsync(existing); + if (!updated) + { + this.SetStatus("Failed to update existing rule from hotspot", false); + return; + } + + this.AddTimelineEvent("Rule", $"Rule updated for {executableName} from hotspot panel.", "Success"); + this.SetStatus($"Rule updated for {executableName} from hotspot panel.", false); + await this.LogUserActionAsync("PersistentRuleUpdated", $"Rule updated for {executableName} from hotspot panel"); + } + + await this.RefreshSelectedProcessRuleImpactAsync(); + await this.LoadTopProcessesAsync(); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to create or update rule from performance hotspot"); + this.SetError("Failed to create rule from selected hotspot", ex); + await this.LogUserActionAsync("PersistentRuleSaveFailed", $"Failed to create rule from selected hotspot: {ex.Message}"); + } + finally + { + this.IsRuleCreateBusy = false; + } + } + + [RelayCommand] + private void ToggleCoreDetails() + { + this.ShowCoreDetails = !this.ShowCoreDetails; + } + + [RelayCommand] + private void ToggleProcessDetails() + { + this.ShowProcessDetails = !this.ShowProcessDetails; + } + + [RelayCommand] + private void ShowPopup((string Title, string Content) parameters) + { + this.PopupTitle = parameters.Title; + this.PopupContent = parameters.Content; + this.IsPopupVisible = true; + } + + [RelayCommand] + private void HidePopup() + { + this.IsPopupVisible = false; + } + + partial void OnSelectedHotspotProcessChanged(ProcessPerformanceInfo? value) + { + _ = RefreshSelectedProcessRuleImpactAsync(); + CanCreateRuleFromSelectedProcess = value != null; + } + + partial void OnShowOnlyRuleBackedHotspotsChanged(bool value) + { + if (this.diagnosticsActivated) + { + _ = LoadTopProcessesAsync(); + } + } + + partial void OnShowOnlyActionableHotspotsChanged(bool value) + { + if (this.diagnosticsActivated) + { + _ = LoadTopProcessesAsync(); + } + } + + partial void OnSortModeChanged(string value) + { + if (this.diagnosticsActivated) + { + _ = LoadTopProcessesAsync(); + } + } + + partial void OnProcessSearchTextChanged(string value) + { + if (this.diagnosticsActivated) + { + _ = LoadTopProcessesAsync(); + } + } + + partial void OnIsPopupVisibleChanged(bool value) + { + this.BlurRadius = value ? 15 : 0; + } + + private async Task RefreshSelectedProcessRuleImpactAsync() + { + try + { + if (this.SelectedHotspotProcess == null) + { + this.SelectedProcessName = "No hotspot selected"; + this.SelectedProcessExecutable = "-"; + this.SelectedProcessCpuText = "-"; + this.SelectedProcessMemoryText = "-"; + this.SelectedProcessRuleStatus = "No linked rule"; + this.SelectedProcessRuleSummary = "Create a rule from this process to automate affinity and priority behavior."; + this.SelectedProcessLastApplyText = "No recent automation event"; + return; + } + + var executableName = NormalizeExecutableName(this.SelectedHotspotProcess.ProcessName); + var association = await this.associationService.FindAssociationByExecutableAsync(executableName); + + this.SelectedProcessName = this.SelectedHotspotProcess.ProcessName; + this.SelectedProcessExecutable = string.IsNullOrWhiteSpace(this.SelectedHotspotProcess.ExecutablePath) + ? executableName + : this.SelectedHotspotProcess.ExecutablePath; + this.SelectedProcessCpuText = $"{this.SelectedHotspotProcess.CpuUsage:F1}% CPU"; + this.SelectedProcessMemoryText = FormatBytes(this.SelectedHotspotProcess.MemoryUsage); + + if (association == null) + { + this.SelectedProcessRuleStatus = "No linked rule"; + this.SelectedProcessRuleSummary = "No automation rule matches this executable yet."; + } + else + { + this.SelectedProcessRuleStatus = association.IsEnabled ? "Linked rule is active" : "Linked rule is disabled"; + this.SelectedProcessRuleSummary = BuildRuleSummary(association); + } + + if (this.lastRuleApplyByExecutable.TryGetValue(executableName, out var appliedAt)) + { + this.SelectedProcessLastApplyText = $"Last rule application: {appliedAt:HH:mm:ss}"; + } + else + { + this.SelectedProcessLastApplyText = "No recent automation event"; + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "Failed to refresh rule impact panel"); + } + } + + private async Task LoadTopProcessesAsync() + { + if (this.topProcessRefreshGate.CurrentCount == 0) + { + this.pendingTopProcessRefresh = true; + return; + } + + await this.topProcessRefreshGate.WaitAsync(); + + try + { + do + { + this.pendingTopProcessRefresh = false; + + var topCpu = await this.performanceService.GetTopCpuProcessesAsync(25); + var topMemory = await this.performanceService.GetTopMemoryProcessesAsync(25); + + var merged = topCpu + .Concat(topMemory) + .GroupBy(p => p.ProcessId) + .Select(g => g.OrderByDescending(x => x.CpuUsage).First()) + .ToList(); + + var associations = await this.associationService.GetAssociationsAsync(); + var associationSet = associations + .Select(a => NormalizeExecutableName(a.ExecutableName)) + .Where(name => !string.IsNullOrWhiteSpace(name)) + .ToHashSet(StringComparer.OrdinalIgnoreCase); + + IEnumerable filtered = merged; + + if (!string.IsNullOrWhiteSpace(this.ProcessSearchText)) + { + filtered = filtered.Where(p => p.ProcessName.Contains(this.ProcessSearchText, StringComparison.OrdinalIgnoreCase)); + } + + if (this.ShowOnlyRuleBackedHotspots) + { + filtered = filtered.Where(p => associationSet.Contains(NormalizeExecutableName(p.ProcessName))); + } + + if (this.ShowOnlyActionableHotspots) + { + filtered = filtered.Where(p => p.CpuUsage >= 1.0 || p.MemoryUsage >= (200L * 1024 * 1024)); + } + + filtered = this.SortMode switch + { + "Memory" => filtered.OrderByDescending(p => p.MemoryUsage), + "Name" => filtered.OrderBy(p => p.ProcessName), + _ => filtered.OrderByDescending(p => p.CpuUsage), + }; + + var snapshot = filtered.Take(50).ToList(); + + var dispatcher = System.Windows.Application.Current?.Dispatcher; + void Apply() + { + this.TopCpuProcesses = new ObservableCollection(snapshot); + + if (this.SelectedHotspotProcess != null) + { + var refreshedSelection = this.TopCpuProcesses.FirstOrDefault(p => p.ProcessId == this.SelectedHotspotProcess.ProcessId); + if (refreshedSelection != null) + { + this.SelectedHotspotProcess = refreshedSelection; + } + } + } + + if (dispatcher != null && !dispatcher.CheckAccess()) + { + await dispatcher.InvokeAsync(Apply); + } + else + { + Apply(); + } + + await this.RefreshSelectedProcessRuleImpactAsync(); + } + while (this.pendingTopProcessRefresh); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error loading hotspot process lists"); + } + finally + { + this.topProcessRefreshGate.Release(); + } + } + + private async Task RefreshGlobalPowerPlanAsync() + { + try + { + var activePlan = await this.powerPlanService.GetActivePowerPlan(); + this.CurrentGlobalPowerPlanText = activePlan?.Name ?? "Unknown"; + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed to refresh global power plan text"); + this.CurrentGlobalPowerPlanText = "Unknown"; + } + } + + private void OnMetricsUpdated(object? sender, PerformanceMetricsUpdatedEventArgs e) + { + try + { + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + this.UpdateMetrics(e.Metrics); + _ = this.LoadTopProcessesAsync(); + }); + } + catch (Exception ex) + { + this.logger.LogError(ex, "Error updating performance metrics in UI"); + } + } + + private void UpdateMetrics(SystemPerformanceMetrics metrics) + { + this.TotalCpuUsage = metrics.TotalCpuUsage; + this.TotalMemoryUsage = metrics.TotalMemoryUsage; + this.AvailableMemory = metrics.AvailableMemory; + this.TotalMemory = metrics.TotalMemory; + this.MemoryUsagePercentage = metrics.MemoryUsagePercentage; + this.ActiveProcessCount = metrics.ActiveProcessCount; + this.LastUpdateTime = metrics.Timestamp; + + this.CpuUsageText = $"{this.TotalCpuUsage:F1}%"; + this.MemoryUsageText = $"{FormatBytes(this.TotalMemoryUsage)} / {FormatBytes(this.TotalMemory)}"; + this.ProcessCountText = this.ActiveProcessCount.ToString(); + + void Apply() + { + this.CoreUsages = new ObservableCollection(metrics.CpuCoreUsages); + + if (this.IsMonitoring) + { + this.HistoricalData.Add(metrics); + while (this.HistoricalData.Count > 360) + { + this.HistoricalData.RemoveAt(0); + } + } + + this.UpdateTimelineSummary(); + } + + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher != null && !dispatcher.CheckAccess()) + { + dispatcher.Invoke(Apply); + } + else + { + Apply(); + } + } + + private void OnProcessPowerPlanChanged(object? sender, ProcessPowerPlanChangeEventArgs e) + { + try + { + var executable = NormalizeExecutableName(e.Process.Name); + this.lastRuleApplyByExecutable[executable] = e.Timestamp; + + var detail = $"{e.Action}: {e.Process.Name} -> {e.NewPowerPlan?.Name ?? "Unknown"}"; + this.AddTimelineEvent("Rule Applied", detail, "Success"); + + _ = this.RefreshSelectedProcessRuleImpactAsync(); + } + catch (Exception ex) + { + this.logger.LogWarning(ex, "Failed handling process power plan change event"); + } + } + + private void OnPowerPlanChanged(object? sender, PowerPlanChangedEventArgs e) + { + var detail = $"Global plan changed to {e.NewPowerPlan?.Name ?? "Unknown"}"; + this.AddTimelineEvent("Power Plan", detail, "Info"); + this.CurrentGlobalPowerPlanText = e.NewPowerPlan?.Name ?? "Unknown"; + } + + private void OnTweakStatusChanged(object? sender, TweakStatusChangedEventArgs e) + { + var state = e.Status.IsEnabled ? "enabled" : "disabled"; + this.AddTimelineEvent("Tweak", $"{e.TweakName} {state}", "Warning"); + } + + private void AddTimelineEvent(string category, string detail, string severity) + { + var evt = new PerformanceTimelineEvent + { + Category = category, + Detail = detail, + Severity = severity, + Timestamp = DateTime.Now, + }; + + void Apply() + { + this.TimelineEvents.Insert(0, evt); + while (this.TimelineEvents.Count > 200) + { + this.TimelineEvents.RemoveAt(this.TimelineEvents.Count - 1); + } + + this.UpdateTimelineSummary(); + } + + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher != null && !dispatcher.CheckAccess()) + { + dispatcher.Invoke(Apply); + } + else + { + Apply(); + } + } + + private void UpdateTimelineSummary() + { + this.TimelineSampleCountText = $"{this.HistoricalData.Count} samples"; + if (this.TimelineEvents.Count == 0) + { + this.LastTimelineEventText = "No events yet"; + return; + } + + var latest = this.TimelineEvents[0]; + this.LastTimelineEventText = $"{latest.Timestamp:HH:mm:ss} - {latest.Category}"; + } + + private static string BuildRuleSummary(ProcessPowerPlanAssociation association) + { + var parts = new List(); + if (!string.IsNullOrWhiteSpace(association.PowerPlanName)) + { + parts.Add($"Plan: {association.PowerPlanName}"); + } + + if (!string.IsNullOrWhiteSpace(association.CoreMaskName)) + { + parts.Add($"Mask: {association.CoreMaskName}"); + } + + if (!string.IsNullOrWhiteSpace(association.ProcessPriority)) + { + parts.Add($"Priority: {association.ProcessPriority}"); + } + + return parts.Count == 0 + ? "Rule exists but has no advanced affinity/priority settings." + : string.Join(" | ", parts); + } + + private static string NormalizeExecutableName(string? name) + { + if (string.IsNullOrWhiteSpace(name)) + { + return string.Empty; + } + + return System.IO.Path.GetFileNameWithoutExtension(name.Trim()); + } + + private static string FormatBytes(long bytes) + { + if (bytes <= 0) + { + return "0 MB"; + } + + const double kb = 1024d; + const double mb = kb * 1024d; + const double gb = mb * 1024d; + + if (bytes >= gb) + { + return $"{bytes / gb:F2} GB"; + } + + return $"{bytes / mb:F0} MB"; + } + + protected override void OnDispose() + { + this.performanceService.MetricsUpdated -= this.OnMetricsUpdated; + this.processMonitorManagerService.ProcessPowerPlanChanged -= this.OnProcessPowerPlanChanged; + this.powerPlanService.PowerPlanChanged -= this.OnPowerPlanChanged; + this.systemTweaksService.TweakStatusChanged -= this.OnTweakStatusChanged; + + this.topProcessRefreshGate.Dispose(); + + if (this.IsMonitoring) + { + _ = Task.Run(async () => await this.performanceService.StopMonitoringAsync()); + } + + base.OnDispose(); + } + } + + public class PerformanceTimelineEvent + { + public DateTime Timestamp { get; set; } + + public string Category { get; set; } = string.Empty; + + public string Detail { get; set; } = string.Empty; + + public string Severity { get; set; } = "Info"; + } +} diff --git a/ViewModels/PowerPlanViewModel.cs b/ViewModels/PowerPlanViewModel.cs index eceb7b2..1a39584 100644 --- a/ViewModels/PowerPlanViewModel.cs +++ b/ViewModels/PowerPlanViewModel.cs @@ -1,341 +1,325 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.ObjectModel; - using System.Linq; - using System.Threading; - using System.Threading.Tasks; - using System.Windows.Input; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public partial class PowerPlanViewModel : BaseViewModel - { - private readonly IPowerPlanService powerPlanService; - private System.Timers.Timer? refreshTimer; - private bool isAutoRefreshPaused = true; - private int isRefreshInProgress; - - [ObservableProperty] - private ObservableCollection powerPlans = new(); - - [ObservableProperty] - private ObservableCollection customPowerPlans = new(); - - [ObservableProperty] - private PowerPlanModel? selectedPowerPlan; - - [ObservableProperty] - private PowerPlanModel? selectedCustomPlan; - - [ObservableProperty] - private PowerPlanModel? activePowerPlan; - - public PowerPlanViewModel( - ILogger logger, - IPowerPlanService powerPlanService, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null) - : base(logger, enhancedLoggingService, activityAuditService) - { - this.powerPlanService = powerPlanService; - this.SetupRefreshTimer(); - } - - private void SetupRefreshTimer() - { - this.refreshTimer = new System.Timers.Timer(10000); // PERFORMANCE OPTIMIZATION: Increased to 10 second refresh - power plans change infrequently - this.refreshTimer.Elapsed += async (s, e) => - { - if (this.isAutoRefreshPaused) - { - return; - } - - if (Interlocked.Exchange(ref this.isRefreshInProgress, 1) == 1) - { - return; - } - - try - { - // Marshal timer callback to UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - if (!this.isAutoRefreshPaused) - { - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - } - }); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Power plan refresh timer error: {ex.Message}"); - } - finally - { - Interlocked.Exchange(ref this.isRefreshInProgress, 0); - } - }; - } - - public void PauseAutoRefresh() - { - this.isAutoRefreshPaused = true; - this.refreshTimer?.Stop(); - } - - public void ResumeAutoRefresh(bool refreshImmediately = true) - { - var wasPaused = this.isAutoRefreshPaused; - this.isAutoRefreshPaused = false; - this.refreshTimer?.Start(); - - if (!refreshImmediately || !wasPaused) - { - return; - } - - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - try - { - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Power plan immediate refresh error: {ex.Message}"); - } - }); - } - - [RelayCommand] - public async Task LoadPowerPlans() - { - try - { - this.SetStatus("Loading power plans..."); - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - this.SetStatus("Power plans loaded.", false); - } - catch (Exception ex) - { - await this.SetOperationFailedAsync($"Error loading power plans: {ex.Message}", "PowerPlanLoadFailed"); - } - } - - [RelayCommand] - private async Task RefreshPowerPlans() - { - if (this.IsBusy) - { - return; - } - - try - { - await this.RefreshPowerPlansCoreAsync(reportStatus: true); - } - catch (Exception ex) - { - await this.SetOperationFailedAsync($"Error refreshing power plans: {ex.Message}", "PowerPlanRefreshFailed"); - } - } - - [RelayCommand] - private async Task SetActivePlan() - { - if (this.SelectedPowerPlan == null) - { - return; - } - - try - { - var targetPlan = this.SelectedPowerPlan; - this.SetStatus($"Setting active power plan to {targetPlan.Name}..."); - var success = await this.powerPlanService.SetActivePowerPlan(targetPlan); - - if (success) - { - this.ActivePowerPlan = targetPlan; - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - this.SetStatus($"Power plan applied: {targetPlan.Name}.", false); - await this.LogUserActionAsync("PowerPlanApplied", $"Applied power plan {targetPlan.Name}", $"Guid: {targetPlan.Guid}"); - } - else - { - await this.SetOperationFailedAsync($"Failed to set power plan {targetPlan.Name}", "PowerPlanApplyFailed"); - } - } - catch (Exception ex) - { - await this.SetOperationFailedAsync($"Error setting power plan: {ex.Message}", "PowerPlanApplyFailed"); - } - } - - [RelayCommand] - private async Task ImportCustomPlan() - { - if (this.SelectedCustomPlan == null) - { - return; - } - - try - { - var customPlan = this.SelectedCustomPlan; - this.SetStatus($"Importing custom power plan {customPlan.Name}..."); - var success = await this.powerPlanService.ImportCustomPowerPlan(customPlan.FilePath); - - if (success) - { - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - this.SetStatus($"Power plan imported: {customPlan.Name}.", false); - await this.LogUserActionAsync("PowerPlanImported", $"Imported power plan {customPlan.Name}", customPlan.FilePath); - } - else - { - await this.SetOperationFailedAsync($"Failed to import power plan {customPlan.Name}", "PowerPlanImportFailed"); - } - } - catch (Exception ex) - { - await this.SetOperationFailedAsync($"Error importing power plan: {ex.Message}", "PowerPlanImportFailed"); - } - } - - [RelayCommand] - private async Task AddCustomPlanFile() - { - try - { - var dialog = new OpenFileDialog - { - Title = "Select custom power plan", - Filter = "Power Plan Files (*.pow)|*.pow|All Files (*.*)|*.*", - FilterIndex = 1, - CheckFileExists = true, - CheckPathExists = true, - Multiselect = false, - }; - - if (dialog.ShowDialog() != true) - { - return; - } - - this.SetStatus("Adding custom power plan file..."); - var success = await this.powerPlanService.AddCustomPowerPlanFileAsync(dialog.FileName); - - if (success) - { - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - this.SetStatus("Custom power plan added to library.", false); - await this.LogUserActionAsync("PowerPlanAdded", "Added custom power plan file", dialog.FileName); - } - else - { - await this.SetOperationFailedAsync("Failed to add custom power plan file.", "PowerPlanAddFailed"); - } - } - catch (Exception ex) - { - await this.SetOperationFailedAsync($"Error adding custom power plan file: {ex.Message}", "PowerPlanAddFailed"); - } - } - - [RelayCommand] - private async Task DeletePowerPlan(PowerPlanModel? powerPlan) - { - var targetPlan = powerPlan ?? this.SelectedPowerPlan; - if (targetPlan == null) - { - return; - } - - var activePlan = this.ActivePowerPlan ?? await this.powerPlanService.GetActivePowerPlan(); - if (targetPlan.IsActive || string.Equals(targetPlan.Guid, activePlan?.Guid, StringComparison.OrdinalIgnoreCase)) - { - await this.SetOperationFailedAsync("Switch to another power plan before deleting the active plan.", "PowerPlanDeleteBlocked"); - return; - } - - try - { - this.SetStatus($"Deleting power plan {targetPlan.Name}..."); - var success = await this.powerPlanService.DeletePowerPlanAsync(targetPlan.Guid); - if (!success) - { - await this.SetOperationFailedAsync( - $"Could not delete power plan {targetPlan.Name}. Windows may not allow this plan to be removed.", - "PowerPlanDeleteFailed"); - return; - } - - await this.RefreshPowerPlansCoreAsync(reportStatus: false); - this.SetStatus($"Power plan deleted: {targetPlan.Name}.", false); - await this.LogUserActionAsync("PowerPlanDeleted", $"Deleted power plan {targetPlan.Name}", $"Guid: {targetPlan.Guid}"); - } - catch (Exception ex) - { - await this.SetOperationFailedAsync($"Error deleting power plan: {ex.Message}", "PowerPlanDeleteFailed"); - } - } - - private async Task RefreshPowerPlansCoreAsync(bool reportStatus) - { - var currentPlans = await this.powerPlanService.GetPowerPlansAsync(); - var currentActive = await this.powerPlanService.GetActivePowerPlan(); - var customPlans = await this.powerPlanService.GetCustomPowerPlansAsync(); - - this.PowerPlans = new ObservableCollection(currentPlans); - this.CustomPowerPlans = new ObservableCollection(customPlans); - this.ActivePowerPlan = currentActive; - - foreach (var plan in this.PowerPlans) - { - plan.IsActive = string.Equals(plan.Guid, currentActive?.Guid, StringComparison.OrdinalIgnoreCase); - } - - if (this.SelectedPowerPlan != null) - { - this.SelectedPowerPlan = this.PowerPlans.FirstOrDefault(p => p.Guid == this.SelectedPowerPlan.Guid); - } - - if (reportStatus) - { - this.SetStatus("Power plans refreshed.", false); - await this.LogUserActionAsync("PowerPlansRefreshed", "Refreshed power plan list"); - } - } - - private async Task SetOperationFailedAsync(string message, string action) - { - this.SetStatus(message, false); - this.SetError(message); - await this.LogUserActionAsync(action, message); - } - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.ObjectModel; + using System.Linq; + using System.Threading; + using System.Threading.Tasks; + using System.Windows.Input; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public partial class PowerPlanViewModel : BaseViewModel + { + private readonly IPowerPlanService powerPlanService; + private System.Timers.Timer? refreshTimer; + private bool isAutoRefreshPaused = true; + private int isRefreshInProgress; + + [ObservableProperty] + private ObservableCollection powerPlans = new(); + + [ObservableProperty] + private ObservableCollection customPowerPlans = new(); + + [ObservableProperty] + private PowerPlanModel? selectedPowerPlan; + + [ObservableProperty] + private PowerPlanModel? selectedCustomPlan; + + [ObservableProperty] + private PowerPlanModel? activePowerPlan; + + public PowerPlanViewModel( + ILogger logger, + IPowerPlanService powerPlanService, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null) + : base(logger, enhancedLoggingService, activityAuditService) + { + this.powerPlanService = powerPlanService; + this.SetupRefreshTimer(); + } + + private void SetupRefreshTimer() + { + this.refreshTimer = new System.Timers.Timer(10000); // PERFORMANCE OPTIMIZATION: Increased to 10 second refresh - power plans change infrequently + this.refreshTimer.Elapsed += async (s, e) => + { + if (this.isAutoRefreshPaused) + { + return; + } + + if (Interlocked.Exchange(ref this.isRefreshInProgress, 1) == 1) + { + return; + } + + try + { + // Marshal timer callback to UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + if (!this.isAutoRefreshPaused) + { + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + } + }); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Power plan refresh timer error: {ex.Message}"); + } + finally + { + Interlocked.Exchange(ref this.isRefreshInProgress, 0); + } + }; + } + + public void PauseAutoRefresh() + { + this.isAutoRefreshPaused = true; + this.refreshTimer?.Stop(); + } + + public void ResumeAutoRefresh(bool refreshImmediately = true) + { + var wasPaused = this.isAutoRefreshPaused; + this.isAutoRefreshPaused = false; + this.refreshTimer?.Start(); + + if (!refreshImmediately || !wasPaused) + { + return; + } + + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + try + { + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Power plan immediate refresh error: {ex.Message}"); + } + }); + } + + [RelayCommand] + public async Task LoadPowerPlans() + { + try + { + this.SetStatus("Loading power plans..."); + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + this.SetStatus("Power plans loaded.", false); + } + catch (Exception ex) + { + await this.SetOperationFailedAsync($"Error loading power plans: {ex.Message}", "PowerPlanLoadFailed"); + } + } + + [RelayCommand] + private async Task RefreshPowerPlans() + { + if (this.IsBusy) + { + return; + } + + try + { + await this.RefreshPowerPlansCoreAsync(reportStatus: true); + } + catch (Exception ex) + { + await this.SetOperationFailedAsync($"Error refreshing power plans: {ex.Message}", "PowerPlanRefreshFailed"); + } + } + + [RelayCommand] + private async Task SetActivePlan() + { + if (this.SelectedPowerPlan == null) + { + return; + } + + try + { + var targetPlan = this.SelectedPowerPlan; + this.SetStatus($"Setting active power plan to {targetPlan.Name}..."); + var success = await this.powerPlanService.SetActivePowerPlan(targetPlan); + + if (success) + { + this.ActivePowerPlan = targetPlan; + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + this.SetStatus($"Power plan applied: {targetPlan.Name}.", false); + await this.LogUserActionAsync("PowerPlanApplied", $"Applied power plan {targetPlan.Name}", $"Guid: {targetPlan.Guid}"); + } + else + { + await this.SetOperationFailedAsync($"Failed to set power plan {targetPlan.Name}", "PowerPlanApplyFailed"); + } + } + catch (Exception ex) + { + await this.SetOperationFailedAsync($"Error setting power plan: {ex.Message}", "PowerPlanApplyFailed"); + } + } + + [RelayCommand] + private async Task ImportCustomPlan() + { + if (this.SelectedCustomPlan == null) + { + return; + } + + try + { + var customPlan = this.SelectedCustomPlan; + this.SetStatus($"Importing custom power plan {customPlan.Name}..."); + var success = await this.powerPlanService.ImportCustomPowerPlan(customPlan.FilePath); + + if (success) + { + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + this.SetStatus($"Power plan imported: {customPlan.Name}.", false); + await this.LogUserActionAsync("PowerPlanImported", $"Imported power plan {customPlan.Name}", customPlan.FilePath); + } + else + { + await this.SetOperationFailedAsync($"Failed to import power plan {customPlan.Name}", "PowerPlanImportFailed"); + } + } + catch (Exception ex) + { + await this.SetOperationFailedAsync($"Error importing power plan: {ex.Message}", "PowerPlanImportFailed"); + } + } + + [RelayCommand] + private async Task AddCustomPlanFile() + { + try + { + var dialog = new OpenFileDialog + { + Title = "Select custom power plan", + Filter = "Power Plan Files (*.pow)|*.pow|All Files (*.*)|*.*", + FilterIndex = 1, + CheckFileExists = true, + CheckPathExists = true, + Multiselect = false, + }; + + if (dialog.ShowDialog() != true) + { + return; + } + + this.SetStatus("Adding custom power plan file..."); + var success = await this.powerPlanService.AddCustomPowerPlanFileAsync(dialog.FileName); + + if (success) + { + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + this.SetStatus("Custom power plan added to library.", false); + await this.LogUserActionAsync("PowerPlanAdded", "Added custom power plan file", dialog.FileName); + } + else + { + await this.SetOperationFailedAsync("Failed to add custom power plan file.", "PowerPlanAddFailed"); + } + } + catch (Exception ex) + { + await this.SetOperationFailedAsync($"Error adding custom power plan file: {ex.Message}", "PowerPlanAddFailed"); + } + } + + [RelayCommand] + private async Task DeletePowerPlan(PowerPlanModel? powerPlan) + { + var targetPlan = powerPlan ?? this.SelectedPowerPlan; + if (targetPlan == null) + { + return; + } + + var activePlan = this.ActivePowerPlan ?? await this.powerPlanService.GetActivePowerPlan(); + if (targetPlan.IsActive || string.Equals(targetPlan.Guid, activePlan?.Guid, StringComparison.OrdinalIgnoreCase)) + { + await this.SetOperationFailedAsync("Switch to another power plan before deleting the active plan.", "PowerPlanDeleteBlocked"); + return; + } + + try + { + this.SetStatus($"Deleting power plan {targetPlan.Name}..."); + var success = await this.powerPlanService.DeletePowerPlanAsync(targetPlan.Guid); + if (!success) + { + await this.SetOperationFailedAsync( + $"Could not delete power plan {targetPlan.Name}. Windows may not allow this plan to be removed.", + "PowerPlanDeleteFailed"); + return; + } + + await this.RefreshPowerPlansCoreAsync(reportStatus: false); + this.SetStatus($"Power plan deleted: {targetPlan.Name}.", false); + await this.LogUserActionAsync("PowerPlanDeleted", $"Deleted power plan {targetPlan.Name}", $"Guid: {targetPlan.Guid}"); + } + catch (Exception ex) + { + await this.SetOperationFailedAsync($"Error deleting power plan: {ex.Message}", "PowerPlanDeleteFailed"); + } + } + + private async Task RefreshPowerPlansCoreAsync(bool reportStatus) + { + var currentPlans = await this.powerPlanService.GetPowerPlansAsync(); + var currentActive = await this.powerPlanService.GetActivePowerPlan(); + var customPlans = await this.powerPlanService.GetCustomPowerPlansAsync(); + + this.PowerPlans = new ObservableCollection(currentPlans); + this.CustomPowerPlans = new ObservableCollection(customPlans); + this.ActivePowerPlan = currentActive; + + foreach (var plan in this.PowerPlans) + { + plan.IsActive = string.Equals(plan.Guid, currentActive?.Guid, StringComparison.OrdinalIgnoreCase); + } + + if (this.SelectedPowerPlan != null) + { + this.SelectedPowerPlan = this.PowerPlans.FirstOrDefault(p => p.Guid == this.SelectedPowerPlan.Guid); + } + + if (reportStatus) + { + this.SetStatus("Power plans refreshed.", false); + await this.LogUserActionAsync("PowerPlansRefreshed", "Refreshed power plan list"); + } + } + + private async Task SetOperationFailedAsync(string message, string action) + { + this.SetStatus(message, false); + this.SetError(message); + await this.LogUserActionAsync(action, message); + } + } +} diff --git a/ViewModels/ProcessPowerPlanAssociationViewModel.cs b/ViewModels/ProcessPowerPlanAssociationViewModel.cs index 3346e08..e8a9e19 100644 --- a/ViewModels/ProcessPowerPlanAssociationViewModel.cs +++ b/ViewModels/ProcessPowerPlanAssociationViewModel.cs @@ -1,601 +1,585 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.ObjectModel; - using System.IO; - using System.Linq; - using System.Threading.Tasks; - using System.Windows.Input; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - using ThreadPilot.Models; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - public partial class ProcessPowerPlanAssociationViewModel : BaseViewModel - { - private readonly IProcessPowerPlanAssociationService associationService; - private readonly IPowerPlanService powerPlanService; - private readonly IProcessService processService; - private readonly IProcessMonitorManagerService monitorManagerService; - private readonly ICoreMaskService coreMaskService; - - [ObservableProperty] - private ObservableCollection associations = new(); - - [ObservableProperty] - private ObservableCollection availablePowerPlans = new(); - - [ObservableProperty] - private ObservableCollection availableCoreMasks = new(); - - [ObservableProperty] - private ObservableCollection availablePriorities = new() - { - "Idle", - "BelowNormal", - "Normal", - "AboveNormal", - "High", - "RealTime", - }; - - [ObservableProperty] - private ObservableCollection runningProcesses = new(); - - [ObservableProperty] - private ProcessPowerPlanAssociation? selectedAssociation; - - [ObservableProperty] - private PowerPlanModel? selectedPowerPlan; - - [ObservableProperty] - private CoreMask? selectedCoreMask; - - [ObservableProperty] - private string? selectedProcessPriority; - - [ObservableProperty] - private ProcessModel? selectedProcess; - - [ObservableProperty] - private string newExecutableName = string.Empty; - - [ObservableProperty] - private string newExecutablePath = string.Empty; - - // Properties for the selected executable (read-only display) - [ObservableProperty] - private string selectedExecutableDisplayName = "No executable selected"; - - [ObservableProperty] - private string selectedExecutableFullPath = string.Empty; - - [ObservableProperty] - private bool hasSelectedExecutable = false; - - [ObservableProperty] - private bool matchByPath = false; - - [ObservableProperty] - private int priority = 0; - - [ObservableProperty] - private string description = string.Empty; - - [ObservableProperty] - private PowerPlanModel? defaultPowerPlan; - - [ObservableProperty] - private bool isMonitoringEnabled = true; - - [ObservableProperty] - private bool isEventBasedMonitoringEnabled = true; - - [ObservableProperty] - private bool isFallbackPollingEnabled = true; - - [ObservableProperty] - private int pollingIntervalSeconds = 5; - - [ObservableProperty] - private bool preventDuplicatePowerPlanChanges = true; - - [ObservableProperty] - private int powerPlanChangeDelayMs = 250; - - [ObservableProperty] - private string serviceStatus = "Stopped"; - - [ObservableProperty] - private bool isServiceRunning = false; - - public ProcessPowerPlanAssociationViewModel( - ILogger logger, - IProcessPowerPlanAssociationService associationService, - IPowerPlanService powerPlanService, - IProcessService processService, - IProcessMonitorManagerService monitorManagerService, - ICoreMaskService coreMaskService, - IEnhancedLoggingService? enhancedLoggingService = null) - : base(logger, enhancedLoggingService) - { - this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); - this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.monitorManagerService = monitorManagerService ?? throw new ArgumentNullException(nameof(monitorManagerService)); - this.coreMaskService = coreMaskService ?? throw new ArgumentNullException(nameof(coreMaskService)); - - // Subscribe to events - this.associationService.ConfigurationChanged += this.OnConfigurationChanged; - this.monitorManagerService.ServiceStatusChanged += this.OnServiceStatusChanged; - this.monitorManagerService.ProcessPowerPlanChanged += this.OnProcessPowerPlanChanged; - - // Initialize - _ = this.InitializeAsync(); - } - - public override async Task InitializeAsync() - { - await this.LoadDataAsync(); - this.UpdateServiceStatus(); - } - - partial void OnSelectedAssociationChanged(ProcessPowerPlanAssociation? value) - { - if (value == null) - { - return; - } - - PopulateEditorFromAssociation(value); - } - - [RelayCommand] - public async Task LoadDataAsync() - { - try - { - this.SetStatus("Loading data..."); - - // Load associations - var associationsData = await this.associationService.GetAssociationsAsync(); - this.Associations = new ObservableCollection(associationsData); - - // Load power plans - var powerPlans = await this.powerPlanService.GetPowerPlansAsync(); - this.AvailablePowerPlans = powerPlans; - - // Load core masks - await this.coreMaskService.InitializeAsync(); - this.AvailableCoreMasks = this.coreMaskService.AvailableMasks; - - // Load running processes - var processes = await this.processService.GetProcessesAsync(); - this.RunningProcesses = processes; - - // Load configuration settings - var config = this.associationService.Configuration; - this.IsEventBasedMonitoringEnabled = config.IsEventBasedMonitoringEnabled; - this.IsFallbackPollingEnabled = config.IsFallbackPollingEnabled; - this.PollingIntervalSeconds = config.PollingIntervalSeconds; - this.PreventDuplicatePowerPlanChanges = config.PreventDuplicatePowerPlanChanges; - this.PowerPlanChangeDelayMs = config.PowerPlanChangeDelayMs; - - // Load default power plan - var (defaultGuid, defaultName) = await this.associationService.GetDefaultPowerPlanAsync(); - this.DefaultPowerPlan = this.AvailablePowerPlans.FirstOrDefault(p => p.Guid == defaultGuid); - - this.ClearStatus(); - } - catch (Exception ex) - { - this.SetStatus($"Error loading data: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task AddAssociationAsync() - { - try - { - if (string.IsNullOrWhiteSpace(this.NewExecutableName) || this.SelectedPowerPlan == null) - { - this.SetStatus("Please select an executable and a power plan", false); - return; - } - - this.SetStatus("Adding association..."); - - var association = new ProcessPowerPlanAssociation - { - ExecutableName = this.NewExecutableName.Trim(), - ExecutablePath = this.NewExecutablePath.Trim(), - PowerPlanGuid = this.SelectedPowerPlan.Guid, - PowerPlanName = this.SelectedPowerPlan.Name, - CoreMaskId = this.SelectedCoreMask?.Id, - CoreMaskName = this.SelectedCoreMask?.Name, - ProcessPriority = this.SelectedProcessPriority, - MatchByPath = this.MatchByPath, - Priority = this.Priority, - Description = this.Description.Trim(), - IsEnabled = true, - }; - - var success = await this.associationService.AddAssociationAsync(association); - if (success) - { - // Clear form - this.NewExecutableName = string.Empty; - this.NewExecutablePath = string.Empty; - this.SelectedPowerPlan = null; - this.SelectedCoreMask = null; - this.SelectedProcessPriority = null; - this.MatchByPath = false; - this.Priority = 0; - this.Description = string.Empty; - this.SelectedAssociation = null; - - await this.LoadDataAsync(); - this.SetStatus("Rule created and applied successfully.", false); - } - else - { - this.SetStatus("Failed to add rule - it may already exist", false); - } - } - catch (Exception ex) - { - this.SetStatus($"Error adding rule: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task UpdateAssociationAsync() - { - try - { - if (this.SelectedAssociation == null) - { - this.SetStatus("Please select a rule to update", false); - return; - } - - if (string.IsNullOrWhiteSpace(this.NewExecutableName) || this.SelectedPowerPlan == null) - { - this.SetStatus("Executable and power plan are required", false); - return; - } - - this.SetStatus("Updating rule..."); - - this.ApplyEditorToAssociation(this.SelectedAssociation); - - var success = await this.associationService.UpdateAssociationAsync(this.SelectedAssociation); - if (success) - { - await this.LoadDataAsync(); - this.SetStatus("Rule updated and applied successfully.", false); - } - else - { - this.SetStatus("Failed to update rule", false); - } - } - catch (Exception ex) - { - this.SetStatus($"Error updating rule: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task RemoveAssociationAsync() - { - try - { - if (this.SelectedAssociation == null) - { - this.SetStatus("Please select a rule to remove", false); - return; - } - - this.SetStatus("Removing rule..."); - - var success = await this.associationService.RemoveAssociationAsync(this.SelectedAssociation.Id); - if (success) - { - this.SelectedAssociation = null; - await this.LoadDataAsync(); - this.SetStatus("Rule removed successfully"); - } - else - { - this.SetStatus("Failed to remove rule", false); - } - } - catch (Exception ex) - { - this.SetStatus($"Error removing rule: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task SetDefaultPowerPlanAsync() - { - try - { - if (this.DefaultPowerPlan == null) - { - this.SetStatus("Please select a default power plan", false); - return; - } - - this.SetStatus("Setting default power plan..."); - - var success = await this.associationService.SetDefaultPowerPlanAsync(this.DefaultPowerPlan.Guid, this.DefaultPowerPlan.Name); - if (success) - { - this.SetStatus("Default power plan set successfully"); - } - else - { - this.SetStatus("Failed to set default power plan", false); - } - } - catch (Exception ex) - { - this.SetStatus($"Error setting default power plan: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task StartMonitoringAsync() - { - try - { - this.SetStatus("Starting automation monitoring..."); - await this.monitorManagerService.StartAsync(); - } - catch (Exception ex) - { - this.SetStatus($"Error starting automation monitoring: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task StopMonitoringAsync() - { - try - { - this.SetStatus("Stopping automation monitoring..."); - await this.monitorManagerService.StopAsync(); - } - catch (Exception ex) - { - this.SetStatus($"Error stopping automation monitoring: {ex.Message}", false); - } - } - - [RelayCommand] - public async Task SaveConfigurationAsync() - { - try - { - this.SetStatus("Saving configuration..."); - - // Update configuration with current settings - var config = this.associationService.Configuration; - config.IsEventBasedMonitoringEnabled = this.IsEventBasedMonitoringEnabled; - config.IsFallbackPollingEnabled = this.IsFallbackPollingEnabled; - config.PollingIntervalSeconds = this.PollingIntervalSeconds; - config.PreventDuplicatePowerPlanChanges = this.PreventDuplicatePowerPlanChanges; - config.PowerPlanChangeDelayMs = this.PowerPlanChangeDelayMs; - - var success = await this.associationService.SaveConfigurationAsync(); - if (success) - { - this.SetStatus("Configuration saved and active.", false); - } - else - { - this.SetStatus("Failed to save configuration", false); - } - } - catch (Exception ex) - { - this.SetStatus($"Error saving configuration: {ex.Message}", false); - } - } - - [RelayCommand] - public void UseSelectedProcessForAssociation() - { - if (this.SelectedProcess != null) - { - this.NewExecutableName = this.SelectedProcess.Name; - this.NewExecutablePath = this.SelectedProcess.ExecutablePath; - - // Update the selected executable display - this.UpdateSelectedExecutableDisplay(this.SelectedProcess.ExecutablePath, this.SelectedProcess.Name); - } - } - - [RelayCommand] - public void BrowseExecutable() - { - try - { - var openFileDialog = new Microsoft.Win32.OpenFileDialog - { - Title = "Select Executable File", - Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*", - FilterIndex = 1, - CheckFileExists = true, - CheckPathExists = true, - Multiselect = false, - }; - - if (openFileDialog.ShowDialog() == true) - { - var selectedFilePath = openFileDialog.FileName; - - // Validate that it's an executable file - if (!this.IsValidExecutable(selectedFilePath)) - { - this.SetStatus("Selected file is not a valid executable", false); - return; - } - - // Extract executable name from the full path - var executableName = Path.GetFileName(selectedFilePath); - - // Auto-populate the fields - this.NewExecutableName = executableName; - this.NewExecutablePath = selectedFilePath; - - // Update the display - this.UpdateSelectedExecutableDisplay(selectedFilePath, executableName); - - this.SetStatus($"Selected executable: {executableName}"); - } - } - catch (Exception ex) - { - this.SetStatus($"Error selecting executable: {ex.Message}", false); - } - } - - [RelayCommand] - public void ClearSelectedExecutable() - { - this.NewExecutableName = string.Empty; - this.NewExecutablePath = string.Empty; - this.SelectedExecutableDisplayName = "No executable selected"; - this.SelectedExecutableFullPath = string.Empty; - this.HasSelectedExecutable = false; - this.SetStatus("Executable selection cleared"); - } - - private void OnConfigurationChanged(object? sender, ConfigurationChangedEventArgs e) - { - // Reload data when configuration changes - marshal to UI thread to prevent cross-thread access exceptions - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => await this.LoadDataAsync()); - } - - private void OnServiceStatusChanged(object? sender, ServiceStatusEventArgs e) - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.ServiceStatus = e.Status; - this.IsServiceRunning = e.IsRunning; - }); - } - - private bool IsValidExecutable(string filePath) - { - try - { - if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath)) - { - return false; - } - - var extension = Path.GetExtension(filePath); - return string.Equals(extension, ".exe", StringComparison.OrdinalIgnoreCase); - } - catch - { - return false; - } - } - - private void UpdateSelectedExecutableDisplay(string fullPath, string executableName) - { - if (string.IsNullOrWhiteSpace(fullPath)) - { - this.SelectedExecutableDisplayName = "No executable selected"; - this.SelectedExecutableFullPath = string.Empty; - this.HasSelectedExecutable = false; - } - else - { - this.SelectedExecutableDisplayName = executableName; - this.SelectedExecutableFullPath = fullPath; - this.HasSelectedExecutable = true; - } - } - - private void PopulateEditorFromAssociation(ProcessPowerPlanAssociation association) - { - this.NewExecutableName = association.ExecutableName ?? string.Empty; - this.NewExecutablePath = association.ExecutablePath ?? string.Empty; - this.MatchByPath = association.MatchByPath; - this.Priority = association.Priority; - this.Description = association.Description ?? string.Empty; - this.SelectedProcessPriority = association.ProcessPriority; - - this.SelectedPowerPlan = this.AvailablePowerPlans.FirstOrDefault(p => - string.Equals(p.Guid, association.PowerPlanGuid, StringComparison.OrdinalIgnoreCase)); - - this.SelectedCoreMask = this.AvailableCoreMasks.FirstOrDefault(m => - string.Equals(m.Id, association.CoreMaskId, StringComparison.Ordinal)); - - this.UpdateSelectedExecutableDisplay( - this.NewExecutablePath, - string.IsNullOrWhiteSpace(this.NewExecutableName) - ? Path.GetFileName(this.NewExecutablePath) - : this.NewExecutableName); - } - - private void ApplyEditorToAssociation(ProcessPowerPlanAssociation association) - { - association.ExecutableName = this.NewExecutableName.Trim(); - association.ExecutablePath = this.NewExecutablePath.Trim(); - association.MatchByPath = this.MatchByPath; - association.Priority = this.Priority; - association.Description = this.Description.Trim(); - association.ProcessPriority = this.SelectedProcessPriority; - association.PowerPlanGuid = this.SelectedPowerPlan?.Guid ?? string.Empty; - association.PowerPlanName = this.SelectedPowerPlan?.Name ?? string.Empty; - association.CoreMaskId = this.SelectedCoreMask?.Id; - association.CoreMaskName = this.SelectedCoreMask?.Name; - association.UpdatedAt = DateTime.UtcNow; - } - - private void OnProcessPowerPlanChanged(object? sender, ProcessPowerPlanChangeEventArgs e) - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - // Update status when power plan changes occur - this.SetStatus($"Power plan changed: {e.NewPowerPlan?.Name} for {e.Process.Name}", false); - }); - } - - private void UpdateServiceStatus() - { - this.ServiceStatus = this.monitorManagerService.Status; - this.IsServiceRunning = this.monitorManagerService.IsRunning; - } - } -} - +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.ObjectModel; + using System.IO; + using System.Linq; + using System.Threading.Tasks; + using System.Windows.Input; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + using ThreadPilot.Models; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public partial class ProcessPowerPlanAssociationViewModel : BaseViewModel + { + private readonly IProcessPowerPlanAssociationService associationService; + private readonly IPowerPlanService powerPlanService; + private readonly IProcessService processService; + private readonly IProcessMonitorManagerService monitorManagerService; + private readonly ICoreMaskService coreMaskService; + + [ObservableProperty] + private ObservableCollection associations = new(); + + [ObservableProperty] + private ObservableCollection availablePowerPlans = new(); + + [ObservableProperty] + private ObservableCollection availableCoreMasks = new(); + + [ObservableProperty] + private ObservableCollection availablePriorities = new() + { + "Idle", + "BelowNormal", + "Normal", + "AboveNormal", + "High", + "RealTime", + }; + + [ObservableProperty] + private ObservableCollection runningProcesses = new(); + + [ObservableProperty] + private ProcessPowerPlanAssociation? selectedAssociation; + + [ObservableProperty] + private PowerPlanModel? selectedPowerPlan; + + [ObservableProperty] + private CoreMask? selectedCoreMask; + + [ObservableProperty] + private string? selectedProcessPriority; + + [ObservableProperty] + private ProcessModel? selectedProcess; + + [ObservableProperty] + private string newExecutableName = string.Empty; + + [ObservableProperty] + private string newExecutablePath = string.Empty; + + // Properties for the selected executable (read-only display) + [ObservableProperty] + private string selectedExecutableDisplayName = "No executable selected"; + + [ObservableProperty] + private string selectedExecutableFullPath = string.Empty; + + [ObservableProperty] + private bool hasSelectedExecutable = false; + + [ObservableProperty] + private bool matchByPath = false; + + [ObservableProperty] + private int priority = 0; + + [ObservableProperty] + private string description = string.Empty; + + [ObservableProperty] + private PowerPlanModel? defaultPowerPlan; + + [ObservableProperty] + private bool isMonitoringEnabled = true; + + [ObservableProperty] + private bool isEventBasedMonitoringEnabled = true; + + [ObservableProperty] + private bool isFallbackPollingEnabled = true; + + [ObservableProperty] + private int pollingIntervalSeconds = 5; + + [ObservableProperty] + private bool preventDuplicatePowerPlanChanges = true; + + [ObservableProperty] + private int powerPlanChangeDelayMs = 250; + + [ObservableProperty] + private string serviceStatus = "Stopped"; + + [ObservableProperty] + private bool isServiceRunning = false; + + public ProcessPowerPlanAssociationViewModel( + ILogger logger, + IProcessPowerPlanAssociationService associationService, + IPowerPlanService powerPlanService, + IProcessService processService, + IProcessMonitorManagerService monitorManagerService, + ICoreMaskService coreMaskService, + IEnhancedLoggingService? enhancedLoggingService = null) + : base(logger, enhancedLoggingService) + { + this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); + this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.monitorManagerService = monitorManagerService ?? throw new ArgumentNullException(nameof(monitorManagerService)); + this.coreMaskService = coreMaskService ?? throw new ArgumentNullException(nameof(coreMaskService)); + + // Subscribe to events + this.associationService.ConfigurationChanged += this.OnConfigurationChanged; + this.monitorManagerService.ServiceStatusChanged += this.OnServiceStatusChanged; + this.monitorManagerService.ProcessPowerPlanChanged += this.OnProcessPowerPlanChanged; + + // Initialize + _ = this.InitializeAsync(); + } + + public override async Task InitializeAsync() + { + await this.LoadDataAsync(); + this.UpdateServiceStatus(); + } + + partial void OnSelectedAssociationChanged(ProcessPowerPlanAssociation? value) + { + if (value == null) + { + return; + } + + PopulateEditorFromAssociation(value); + } + + [RelayCommand] + public async Task LoadDataAsync() + { + try + { + this.SetStatus("Loading data..."); + + // Load associations + var associationsData = await this.associationService.GetAssociationsAsync(); + this.Associations = new ObservableCollection(associationsData); + + // Load power plans + var powerPlans = await this.powerPlanService.GetPowerPlansAsync(); + this.AvailablePowerPlans = powerPlans; + + // Load core masks + await this.coreMaskService.InitializeAsync(); + this.AvailableCoreMasks = this.coreMaskService.AvailableMasks; + + // Load running processes + var processes = await this.processService.GetProcessesAsync(); + this.RunningProcesses = processes; + + // Load configuration settings + var config = this.associationService.Configuration; + this.IsEventBasedMonitoringEnabled = config.IsEventBasedMonitoringEnabled; + this.IsFallbackPollingEnabled = config.IsFallbackPollingEnabled; + this.PollingIntervalSeconds = config.PollingIntervalSeconds; + this.PreventDuplicatePowerPlanChanges = config.PreventDuplicatePowerPlanChanges; + this.PowerPlanChangeDelayMs = config.PowerPlanChangeDelayMs; + + // Load default power plan + var (defaultGuid, defaultName) = await this.associationService.GetDefaultPowerPlanAsync(); + this.DefaultPowerPlan = this.AvailablePowerPlans.FirstOrDefault(p => p.Guid == defaultGuid); + + this.ClearStatus(); + } + catch (Exception ex) + { + this.SetStatus($"Error loading data: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task AddAssociationAsync() + { + try + { + if (string.IsNullOrWhiteSpace(this.NewExecutableName) || this.SelectedPowerPlan == null) + { + this.SetStatus("Please select an executable and a power plan", false); + return; + } + + this.SetStatus("Adding association..."); + + var association = new ProcessPowerPlanAssociation + { + ExecutableName = this.NewExecutableName.Trim(), + ExecutablePath = this.NewExecutablePath.Trim(), + PowerPlanGuid = this.SelectedPowerPlan.Guid, + PowerPlanName = this.SelectedPowerPlan.Name, + CoreMaskId = this.SelectedCoreMask?.Id, + CoreMaskName = this.SelectedCoreMask?.Name, + ProcessPriority = this.SelectedProcessPriority, + MatchByPath = this.MatchByPath, + Priority = this.Priority, + Description = this.Description.Trim(), + IsEnabled = true, + }; + + var success = await this.associationService.AddAssociationAsync(association); + if (success) + { + // Clear form + this.NewExecutableName = string.Empty; + this.NewExecutablePath = string.Empty; + this.SelectedPowerPlan = null; + this.SelectedCoreMask = null; + this.SelectedProcessPriority = null; + this.MatchByPath = false; + this.Priority = 0; + this.Description = string.Empty; + this.SelectedAssociation = null; + + await this.LoadDataAsync(); + this.SetStatus("Rule created and applied successfully.", false); + } + else + { + this.SetStatus("Failed to add rule - it may already exist", false); + } + } + catch (Exception ex) + { + this.SetStatus($"Error adding rule: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task UpdateAssociationAsync() + { + try + { + if (this.SelectedAssociation == null) + { + this.SetStatus("Please select a rule to update", false); + return; + } + + if (string.IsNullOrWhiteSpace(this.NewExecutableName) || this.SelectedPowerPlan == null) + { + this.SetStatus("Executable and power plan are required", false); + return; + } + + this.SetStatus("Updating rule..."); + + this.ApplyEditorToAssociation(this.SelectedAssociation); + + var success = await this.associationService.UpdateAssociationAsync(this.SelectedAssociation); + if (success) + { + await this.LoadDataAsync(); + this.SetStatus("Rule updated and applied successfully.", false); + } + else + { + this.SetStatus("Failed to update rule", false); + } + } + catch (Exception ex) + { + this.SetStatus($"Error updating rule: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task RemoveAssociationAsync() + { + try + { + if (this.SelectedAssociation == null) + { + this.SetStatus("Please select a rule to remove", false); + return; + } + + this.SetStatus("Removing rule..."); + + var success = await this.associationService.RemoveAssociationAsync(this.SelectedAssociation.Id); + if (success) + { + this.SelectedAssociation = null; + await this.LoadDataAsync(); + this.SetStatus("Rule removed successfully"); + } + else + { + this.SetStatus("Failed to remove rule", false); + } + } + catch (Exception ex) + { + this.SetStatus($"Error removing rule: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task SetDefaultPowerPlanAsync() + { + try + { + if (this.DefaultPowerPlan == null) + { + this.SetStatus("Please select a default power plan", false); + return; + } + + this.SetStatus("Setting default power plan..."); + + var success = await this.associationService.SetDefaultPowerPlanAsync(this.DefaultPowerPlan.Guid, this.DefaultPowerPlan.Name); + if (success) + { + this.SetStatus("Default power plan set successfully"); + } + else + { + this.SetStatus("Failed to set default power plan", false); + } + } + catch (Exception ex) + { + this.SetStatus($"Error setting default power plan: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task StartMonitoringAsync() + { + try + { + this.SetStatus("Starting automation monitoring..."); + await this.monitorManagerService.StartAsync(); + } + catch (Exception ex) + { + this.SetStatus($"Error starting automation monitoring: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task StopMonitoringAsync() + { + try + { + this.SetStatus("Stopping automation monitoring..."); + await this.monitorManagerService.StopAsync(); + } + catch (Exception ex) + { + this.SetStatus($"Error stopping automation monitoring: {ex.Message}", false); + } + } + + [RelayCommand] + public async Task SaveConfigurationAsync() + { + try + { + this.SetStatus("Saving configuration..."); + + // Update configuration with current settings + var config = this.associationService.Configuration; + config.IsEventBasedMonitoringEnabled = this.IsEventBasedMonitoringEnabled; + config.IsFallbackPollingEnabled = this.IsFallbackPollingEnabled; + config.PollingIntervalSeconds = this.PollingIntervalSeconds; + config.PreventDuplicatePowerPlanChanges = this.PreventDuplicatePowerPlanChanges; + config.PowerPlanChangeDelayMs = this.PowerPlanChangeDelayMs; + + var success = await this.associationService.SaveConfigurationAsync(); + if (success) + { + this.SetStatus("Configuration saved and active.", false); + } + else + { + this.SetStatus("Failed to save configuration", false); + } + } + catch (Exception ex) + { + this.SetStatus($"Error saving configuration: {ex.Message}", false); + } + } + + [RelayCommand] + public void UseSelectedProcessForAssociation() + { + if (this.SelectedProcess != null) + { + this.NewExecutableName = this.SelectedProcess.Name; + this.NewExecutablePath = this.SelectedProcess.ExecutablePath; + + // Update the selected executable display + this.UpdateSelectedExecutableDisplay(this.SelectedProcess.ExecutablePath, this.SelectedProcess.Name); + } + } + + [RelayCommand] + public void BrowseExecutable() + { + try + { + var openFileDialog = new Microsoft.Win32.OpenFileDialog + { + Title = "Select Executable File", + Filter = "Executable Files (*.exe)|*.exe|All Files (*.*)|*.*", + FilterIndex = 1, + CheckFileExists = true, + CheckPathExists = true, + Multiselect = false, + }; + + if (openFileDialog.ShowDialog() == true) + { + var selectedFilePath = openFileDialog.FileName; + + // Validate that it's an executable file + if (!this.IsValidExecutable(selectedFilePath)) + { + this.SetStatus("Selected file is not a valid executable", false); + return; + } + + // Extract executable name from the full path + var executableName = Path.GetFileName(selectedFilePath); + + // Auto-populate the fields + this.NewExecutableName = executableName; + this.NewExecutablePath = selectedFilePath; + + // Update the display + this.UpdateSelectedExecutableDisplay(selectedFilePath, executableName); + + this.SetStatus($"Selected executable: {executableName}"); + } + } + catch (Exception ex) + { + this.SetStatus($"Error selecting executable: {ex.Message}", false); + } + } + + [RelayCommand] + public void ClearSelectedExecutable() + { + this.NewExecutableName = string.Empty; + this.NewExecutablePath = string.Empty; + this.SelectedExecutableDisplayName = "No executable selected"; + this.SelectedExecutableFullPath = string.Empty; + this.HasSelectedExecutable = false; + this.SetStatus("Executable selection cleared"); + } + + private void OnConfigurationChanged(object? sender, ConfigurationChangedEventArgs e) + { + // Reload data when configuration changes - marshal to UI thread to prevent cross-thread access exceptions + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => await this.LoadDataAsync()); + } + + private void OnServiceStatusChanged(object? sender, ServiceStatusEventArgs e) + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.ServiceStatus = e.Status; + this.IsServiceRunning = e.IsRunning; + }); + } + + private bool IsValidExecutable(string filePath) + { + try + { + if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath)) + { + return false; + } + + var extension = Path.GetExtension(filePath); + return string.Equals(extension, ".exe", StringComparison.OrdinalIgnoreCase); + } + catch + { + return false; + } + } + + private void UpdateSelectedExecutableDisplay(string fullPath, string executableName) + { + if (string.IsNullOrWhiteSpace(fullPath)) + { + this.SelectedExecutableDisplayName = "No executable selected"; + this.SelectedExecutableFullPath = string.Empty; + this.HasSelectedExecutable = false; + } + else + { + this.SelectedExecutableDisplayName = executableName; + this.SelectedExecutableFullPath = fullPath; + this.HasSelectedExecutable = true; + } + } + + private void PopulateEditorFromAssociation(ProcessPowerPlanAssociation association) + { + this.NewExecutableName = association.ExecutableName ?? string.Empty; + this.NewExecutablePath = association.ExecutablePath ?? string.Empty; + this.MatchByPath = association.MatchByPath; + this.Priority = association.Priority; + this.Description = association.Description ?? string.Empty; + this.SelectedProcessPriority = association.ProcessPriority; + + this.SelectedPowerPlan = this.AvailablePowerPlans.FirstOrDefault(p => + string.Equals(p.Guid, association.PowerPlanGuid, StringComparison.OrdinalIgnoreCase)); + + this.SelectedCoreMask = this.AvailableCoreMasks.FirstOrDefault(m => + string.Equals(m.Id, association.CoreMaskId, StringComparison.Ordinal)); + + this.UpdateSelectedExecutableDisplay( + this.NewExecutablePath, + string.IsNullOrWhiteSpace(this.NewExecutableName) + ? Path.GetFileName(this.NewExecutablePath) + : this.NewExecutableName); + } + + private void ApplyEditorToAssociation(ProcessPowerPlanAssociation association) + { + association.ExecutableName = this.NewExecutableName.Trim(); + association.ExecutablePath = this.NewExecutablePath.Trim(); + association.MatchByPath = this.MatchByPath; + association.Priority = this.Priority; + association.Description = this.Description.Trim(); + association.ProcessPriority = this.SelectedProcessPriority; + association.PowerPlanGuid = this.SelectedPowerPlan?.Guid ?? string.Empty; + association.PowerPlanName = this.SelectedPowerPlan?.Name ?? string.Empty; + association.CoreMaskId = this.SelectedCoreMask?.Id; + association.CoreMaskName = this.SelectedCoreMask?.Name; + association.UpdatedAt = DateTime.UtcNow; + } + + private void OnProcessPowerPlanChanged(object? sender, ProcessPowerPlanChangeEventArgs e) + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + // Update status when power plan changes occur + this.SetStatus($"Power plan changed: {e.NewPowerPlan?.Name} for {e.Process.Name}", false); + }); + } + + private void UpdateServiceStatus() + { + this.ServiceStatus = this.monitorManagerService.Status; + this.IsServiceRunning = this.monitorManagerService.IsRunning; + } + } +} + diff --git a/ViewModels/ProcessViewModel.Behaviors.partial.cs b/ViewModels/ProcessViewModel.Behaviors.partial.cs index fc14e5f..5b995cf 100644 --- a/ViewModels/ProcessViewModel.Behaviors.partial.cs +++ b/ViewModels/ProcessViewModel.Behaviors.partial.cs @@ -1,2438 +1,2409 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.ObjectModel; - using System.ComponentModel; - using System.Diagnostics; - using System.IO; - using System.Linq; - using System.Text; - using System.Threading; - using System.Threading.Tasks; - using System.Windows.Input; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public partial class ProcessViewModel : BaseViewModel - { - private async Task ApplyFiltersOnUiAsync() - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(this.FilterProcesses); - } - - private void SetupVirtualizedProcessService() - { - // Configure virtualization settings - this.virtualizedProcessService.Configuration.BatchSize = 50; - this.virtualizedProcessService.Configuration.EnableBackgroundLoading = true; - - // Subscribe to events - this.virtualizedProcessService.BatchLoadProgress += this.OnBatchLoadProgress; - this.virtualizedProcessService.BackgroundBatchLoaded += this.OnBackgroundBatchLoaded; - } - - private void OnBatchLoadProgress(object? sender, BatchLoadProgressEventArgs e) - { - if (this.isUiRefreshPaused || !this.isProcessViewActive) - { - return; - } - - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.LoadingProgress = e.ProgressPercentage; - this.LoadingStatusText = e.StatusMessage; - }); - } - - private void OnBackgroundBatchLoaded(object? sender, ProcessBatchResult e) - { - this.Logger.LogDebug( - "Background batch {BatchIndex} loaded with {ProcessCount} processes", - e.BatchIndex, e.Processes.Count); - } - - public override async Task InitializeAsync() - { - try - { - // Update status on UI thread - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus("Initializing CPU topology and power plans..."); - }); - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Starting initialization"); - - // Initialize CPU topology - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to detect CPU topology"); - await this.cpuTopologyService.DetectTopologyAsync(); - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: CPU topology detection completed"); - - // Initialize core masks service - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to initialize core masks"); - await this.coreMaskService.InitializeAsync(); - this.AvailableCoreMasks = this.coreMaskService.AvailableMasks; - this.SelectedCoreMask = this.coreMaskService.DefaultMask; - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Core masks initialized"); - - // Load power plans - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to load power plans"); - await this.RefreshPowerPlansAsync(); - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Power plans loaded"); - - // Load processes automatically on startup (Bug #8 fix) - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to load processes automatically"); - await this.LoadProcessesCommand.ExecuteAsync(null); - - // Access process count on UI thread to avoid threading issues - int processCount = 0; - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - processCount = this.Processes?.Count ?? 0; - }); - System.Diagnostics.Debug.WriteLine($"ProcessViewModel.InitializeAsync: Processes loaded automatically, count: {processCount}"); - - // Start refresh timer for real-time updates - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Starting refresh timer"); - this.refreshTimer?.Start(); - System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Initialization completed successfully"); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"ProcessViewModel.InitializeAsync: Exception occurred: {ex.Message}"); - // Update status on UI thread - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Failed to initialize: {ex.Message}", false); - }); - } - } - - private async Task RefreshPowerPlansAsync() - { - try - { - var plans = await this.powerPlanService.GetPowerPlansAsync(); - var activePlan = await this.powerPlanService.GetActivePowerPlan(); - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.PowerPlans.Clear(); - foreach (var plan in plans) - { - plan.IsActive = plan.Guid == activePlan?.Guid; - this.PowerPlans.Add(plan); - } - - this.SelectedPowerPlan = this.PowerPlans.FirstOrDefault(p => p.Guid == activePlan?.Guid); - }); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Failed to load power plans: {ex.Message}", false); - }); - } - } - - partial void OnSelectedProcessChanged(ProcessModel? value) - { - this.UpdateSelectedProcessSummary(value); - - if (value != null && CpuTopology != null) - { - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - // Immediately fetch and display real-time process information - TaskSafety.FireAndForget(HandleSelectedProcessChangedAsync(value), ex => - { - this.Logger.LogWarning(ex, "Failed while handling selected process change for {ProcessName}", value.Name); - }); - } - else if (value == null) - { - // Clear selection - this.ClearProcessSelection(); - } - - // Update system tray context menu - this.systemTrayService.UpdateContextMenu(value?.Name, value != null); - } - - private void UpdateSelectedProcessSummary(ProcessModel? process) - { - TaskSafety.FireAndForget( - this.UpdateSelectedProcessSummaryAsync(process), - ex => this.Logger.LogWarning(ex, "Failed to update selected process summary")); - } - - private Task UpdateSelectedProcessSummaryAsync(ProcessModel? process) - { - return this.SelectedProcessSummary.UpdateAsync(process, this.StatusMessage, this.HasError); - } - - private async Task HandleSelectedProcessChangedAsync(ProcessModel value) - { - try - { - // First check if the process is still running - bool isStillRunning = await this.processService.IsProcessStillRunning(value); - if (!isStillRunning) - { - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - this.SetStatus($"Process {value.Name} (PID: {value.ProcessId}) has terminated", false); - this.SelectedProcess = null; - this.ClearProcessSelection(); - }); - return; - } - - // Refresh process info to get current state from OS - await this.processService.RefreshProcessInfo(value); - - // Update UI on main thread with fresh data - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - this.UpdateCoreSelections(value.ProcessorAffinity); - this.UpdateAffinityDisplayState(); - value.ForceNotifyProcessorAffinityChanged(); - - // Update priority display - trigger property change to refresh ComboBox - this.OnPropertyChanged(nameof(this.SelectedProcess)); - - // Update feature states from the selected process - this.IsIdleServerDisabled = value.IsIdleServerDisabled; - this.IsRegistryPriorityEnabled = value.IsRegistryPriorityEnabled; - - // BUG FIX: Update status without setting busy state for process selection - this.SetStatus( - $"Selected process: {value.Name} (PID: {value.ProcessId}) - " + - $"Priority: {value.Priority}, Affinity: 0x{value.ProcessorAffinity:X}", false); - }); - if (ReferenceEquals(this.SelectedProcess, value)) - { - // Keep this second update for refreshed process fields and the latest operation message. - this.UpdateSelectedProcessSummary(value); - } - - // Load current power plan association if available - await this.LoadProcessPowerPlanAssociation(value); - } - catch (InvalidOperationException ex) when (ex.Message.Contains("terminated") || ex.Message.Contains("exited") || ex.Message.Contains("no longer exists")) - { - // Process has terminated - this.Logger.LogInformation("Process {ProcessName} (PID: {ProcessId}) has terminated", value.Name, value.ProcessId); - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - this.SetStatus($"Process {value.Name} (PID: {value.ProcessId}) has terminated", false); - this.SelectedProcess = null; - this.ClearProcessSelection(); - }); - } - catch (Exception ex) - { - this.Logger.LogWarning(ex, "Failed to refresh process info for {ProcessName}", value.Name); - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - this.SetStatus($"Warning: Could not access process {value.Name} - it may have terminated or require elevated privileges", false); - }); - if (ReferenceEquals(this.SelectedProcess, value)) - { - this.UpdateSelectedProcessSummary(value); - } - } - } - - private void OnTrayQuickApplyRequested(object? sender, EventArgs e) - { - TaskSafety.FireAndForget(this.OnTrayQuickApplyRequestedAsync(), ex => - { - this.Logger.LogWarning(ex, "Quick apply request failed"); - }); - } - - private async Task OnTrayQuickApplyRequestedAsync() - { - try - { - // Marshal UI operations to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - await this.QuickApplyAffinityAndPowerPlanCommand.ExecuteAsync(null); - this.systemTrayService.ShowBalloonTip( - "ThreadPilot", - $"Pending settings applied to {this.SelectedProcess?.Name ?? "selected process"}", 2000); - }); - } - catch (Exception ex) - { - // Marshal UI operations to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.systemTrayService.ShowBalloonTip( - "ThreadPilot Error", - $"Failed to apply pending settings: {ex.Message}", 3000); - }); - } - } - - private void OnTopologyDetected(object? sender, CpuTopologyDetectedEventArgs e) - { - // Ensure all UI updates happen on the dispatcher thread - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - this.CpuTopology = e.Topology; - this.IsTopologyDetectionSuccessful = e.DetectionSuccessful; - - if (e.DetectionSuccessful) - { - this.TopologyStatus = $"Detected: {e.Topology.TotalLogicalCores} logical CPUs, " + - $"{e.Topology.TotalPhysicalCores} physical CPUs"; - this.AreAdvancedFeaturesAvailable = e.Topology.HasIntelHybrid || e.Topology.HasAmdCcd || e.Topology.HasHyperThreading; - } - else - { - this.TopologyStatus = $"Detection failed: {e.ErrorMessage ?? "Unknown error"}"; - this.AreAdvancedFeaturesAvailable = false; - } - - this.UpdateCpuCores(); - this.UpdateAffinityPresets(); - this.UpdateHyperThreadingStatus(); - }); - } - - private void UpdateCpuCores() - { - if (this.CpuTopology == null) - { - return; - } - - this.CpuCores.Clear(); - foreach (var core in this.CpuTopology.LogicalCores) - { - core.PropertyChanged -= this.OnCorePropertyChanged; - core.PropertyChanged += this.OnCorePropertyChanged; - this.CpuCores.Add(core); - } - } - - private void OnCorePropertyChanged(object? sender, PropertyChangedEventArgs e) - { - // Note: Advanced CPU Affinity cores are now read-only (ProcessView.xaml has IsHitTestVisible="False") - // This event handler is kept for compatibility but should not be triggered - // Core modifications are done exclusively through the Core Mask tab - if (this.suppressCoreSelectionEvents) - { - return; - } - - this.Logger.LogDebug("Core property changed but cores are read-only - no action taken"); - } - - private void UpdateHyperThreadingStatus() - { - if (this.CpuTopology == null) - { - this.HyperThreadingStatusText = "Multi-Threading: Unknown"; - this.IsHyperThreadingActive = false; - return; - } - - // Determine if hyperthreading/SMT is present and active - bool hasMultiThreading = this.CpuTopology.HasHyperThreading; - this.IsHyperThreadingActive = hasMultiThreading; - - // Determine the appropriate technology name based on CPU vendor - string technologyName = "Multi-Threading"; - if (this.CpuTopology.CpuBrand.Contains("Intel", StringComparison.OrdinalIgnoreCase)) - { - technologyName = "Hyper-Threading"; - } - else if (this.CpuTopology.CpuBrand.Contains("AMD", StringComparison.OrdinalIgnoreCase)) - { - technologyName = "SMT"; - } - - // Set the status text - string status = hasMultiThreading ? "Active" : "Not Available"; - this.HyperThreadingStatusText = $"{technologyName}: {status}"; - - this.Logger.LogInformation( - "Updated hyperthreading status: {StatusText} (Active: {IsActive})", - this.HyperThreadingStatusText, this.IsHyperThreadingActive); - } - - private void UpdateAffinityPresets() - { - this.AffinityPresets.Clear(); - var presets = this.cpuTopologyService.GetAffinityPresets(); - foreach (var preset in presets) - { - this.AffinityPresets.Add(preset); - } - } - - private void UpdateCoreSelections(long affinityMask, bool forceSync = false) - { - if (this.CpuTopology == null || this.CpuCores.Count == 0) - { - this.Logger.LogWarning( - "Cannot update core selections: CpuTopology={CpuTopology}, CpuCores.Count={CpuCoresCount}", - this.CpuTopology != null, this.CpuCores.Count); - return; - } - - if (this.HasPendingAffinityEdits && !forceSync) - { - this.Logger.LogDebug("Skipping affinity sync because user edits are pending"); - return; - } - - this.Logger.LogDebug( - "Updating core selections for affinity mask 0x{AffinityMask:X} ({AffinityMaskBinary})", - affinityMask, Convert.ToString(affinityMask, 2).PadLeft(Environment.ProcessorCount, '0')); - - // Update each core's selection state based on the actual OS affinity mask - var updatedCores = new List<(int CoreId, bool WasSelected, bool IsSelected)>(); - - try - { - this.suppressCoreSelectionEvents = true; - - foreach (var core in this.CpuCores) - { - bool wasSelected = core.IsSelected; - bool shouldBeSelected = (affinityMask & core.AffinityMask) != 0; - - if (wasSelected != shouldBeSelected) - { - core.IsSelected = shouldBeSelected; - updatedCores.Add((core.LogicalCoreId, wasSelected, shouldBeSelected)); - } - } - } - finally - { - this.suppressCoreSelectionEvents = false; - } - - // The UI will automatically update since CpuCoreModel now implements INotifyPropertyChanged - // No need to force collection refresh as individual property changes will be notified - - // Log the affinity update for debugging - var selectedCoreIds = this.CpuCores.Where(c => c.IsSelected).Select(c => c.LogicalCoreId).OrderBy(id => id).ToList(); - var totalCores = this.CpuCores.Count; - var selectedCount = selectedCoreIds.Count; - - this.Logger.LogInformation( - "Updated core selections for affinity mask 0x{AffinityMask:X}: " + - "Selected {SelectedCount}/{TotalCores} cores: [{CoreIds}]", - affinityMask, selectedCount, totalCores, string.Join(", ", selectedCoreIds)); - - if (updatedCores.Count > 0) - { - this.Logger.LogDebug( - "Core selection changes: {Changes}", - string.Join("; ", updatedCores.Select(c => $"Core {c.CoreId}: {c.WasSelected} -> {c.IsSelected}"))); - } - else - { - this.Logger.LogDebug("No core selection changes needed - UI already matches affinity mask"); - } - - if (forceSync) - { - this.HasPendingAffinityEdits = false; - } - - this.UpdateAffinityDisplayState(); - } - - private long CalculateAffinityMask() - { - if (this.CpuTopology == null) - { - return 0; - } - - var selectedCores = this.CpuCores.Where(core => core.IsSelected); - - // Note: Removed hyperthreading filtering - user can manually select desired cores - // All selected cores (including HT siblings) are now included in the affinity mask - - return selectedCores.Aggregate(0L, (mask, core) => mask | core.AffinityMask); - } - - private List GetPendingCoreSelectionMask() - { - return this.CpuCores - .OrderBy(core => core.LogicalCoreId) - .Select(core => core.IsSelected) - .ToList(); - } - - private void UpdateAffinityDisplayState() - { - var currentMask = this.SelectedProcess?.ProcessorAffinity; - this.CurrentAffinityText = currentMask.HasValue - ? $"Current OS affinity: 0x{currentMask.Value:X}" - : "Current OS affinity: no process selected"; - - if (this.SelectedProcess == null) - { - this.PendingAffinityText = "Pending core mask: none"; - this.AffinityEditStateText = "Select a process to view its current Windows affinity."; - return; - } - - if (!this.HasPendingAffinityEdits) - { - this.PendingAffinityText = "Pending core mask: none"; - this.AffinityEditStateText = "Current OS affinity is displayed. Select a core mask to stage a change."; - return; - } - - var pendingMask = this.CalculateAffinityMask(); - this.PendingAffinityText = pendingMask > 0 - ? $"Pending core mask: 0x{pendingMask:X}" - : "Pending core mask: no cores selected"; - this.AffinityEditStateText = "Core mask staged. Use Apply Affinity to change Windows affinity."; - } - - [RelayCommand] - public async Task LoadMoreProcesses() - { - if (!this.ShouldRunProcessUiRefresh() || !this.IsVirtualizationEnabled || !this.HasMoreBatches || this.IsBusy) - { - return; - } - - try - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Loading more processes (batch {this.CurrentBatchIndex + 2})..."); - }); - - var nextBatchIndex = this.CurrentBatchIndex + 1; - var batch = await this.virtualizedProcessService.LoadProcessBatchAsync(nextBatchIndex, this.ShowActiveApplicationsOnly); - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - // Add new processes to existing collection - foreach (var process in batch.Processes) - { - this.Processes.Add(process); - } - - this.CurrentBatchIndex = batch.BatchIndex; - this.TotalBatches = batch.TotalBatches; - this.HasMoreBatches = batch.HasMoreBatches; - this.TotalProcessCount = batch.TotalProcessCount; - - this.FilterProcesses(); - - // BUG FIX: Ensure loading state is properly cleared - this.ClearStatus(); - this.LoadingProgress = 0.0; - this.LoadingStatusText = string.Empty; - }); - - await this.PreloadNextBatchIfAllowedAsync(this.CurrentBatchIndex); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - // BUG FIX: Ensure loading state is cleared even on error - this.LoadingProgress = 0.0; - this.LoadingStatusText = string.Empty; - this.SetStatus($"Error loading more processes: {ex.Message}", false); - }); - } - } - - [RelayCommand] - public async Task LoadProcesses() - { - if (!this.ShouldRunProcessUiRefresh()) - { - return; - } - - try - { - System.Diagnostics.Debug.WriteLine($"LoadProcesses: Starting, ShowActiveApplicationsOnly={this.ShowActiveApplicationsOnly}"); - - // PERFORMANCE IMPROVEMENT: Progressive loading with status updates - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.LoadingProgress = 0.0; - this.LoadingStatusText = this.ShowActiveApplicationsOnly ? "Loading active applications..." : "Loading processes..."; - this.SetStatus(this.LoadingStatusText); - }); - - ObservableCollection newProcesses; - - // VIRTUALIZATION ENHANCEMENT: Use virtualized loading for large process lists - if (this.IsVirtualizationEnabled) - { - System.Diagnostics.Debug.WriteLine("LoadProcesses: Using virtualized loading"); - await this.virtualizedProcessService.InitializeAsync(); - - var totalCount = await this.virtualizedProcessService.GetTotalProcessCountAsync(this.ShowActiveApplicationsOnly); - if (totalCount > this.virtualizedProcessService.Configuration.BatchSize) - { - // Load first batch only - var batch = await this.virtualizedProcessService.LoadProcessBatchAsync(0, this.ShowActiveApplicationsOnly); - newProcesses = new ObservableCollection(batch.Processes); - - // Update virtualization state - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.CurrentBatchIndex = batch.BatchIndex; - this.TotalBatches = batch.TotalBatches; - this.HasMoreBatches = batch.HasMoreBatches; - this.TotalProcessCount = batch.TotalProcessCount; - }); - - await this.PreloadNextBatchIfAllowedAsync(0); - } - else - { - // Small list, load all processes normally - newProcesses = this.ShowActiveApplicationsOnly - ? await this.processService.GetActiveApplicationsAsync() - : await this.processService.GetProcessesAsync(); - } - } - else - { - // Traditional loading - if (this.ShowActiveApplicationsOnly) - { - System.Diagnostics.Debug.WriteLine("LoadProcesses: Getting active applications"); - newProcesses = await this.processService.GetActiveApplicationsAsync(); - } - else - { - System.Diagnostics.Debug.WriteLine("LoadProcesses: Getting all processes"); - newProcesses = await this.processService.GetProcessesAsync(); - } - } - - // Update UI on the UI thread - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.Processes = newProcesses; - System.Diagnostics.Debug.WriteLine($"LoadProcesses: Retrieved {this.Processes?.Count ?? 0} processes"); - this.FilterProcesses(); - System.Diagnostics.Debug.WriteLine($"LoadProcesses: After filtering, {this.FilteredProcesses?.Count ?? 0} processes visible"); - - // BUG FIX: Ensure loading state is properly cleared - this.ClearStatus(); - this.LoadingProgress = 0.0; - this.LoadingStatusText = string.Empty; - }); - - System.Diagnostics.Debug.WriteLine("LoadProcesses: Completed successfully"); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"LoadProcesses: Exception occurred: {ex.Message}"); - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - // BUG FIX: Ensure loading state is cleared even on error - this.LoadingProgress = 0.0; - this.LoadingStatusText = string.Empty; - this.SetStatus($"Error loading processes: {ex.Message}", false); - }); - } - } - - [RelayCommand] - private async Task RefreshProcesses() - { - if (!this.ShouldRunProcessUiRefresh()) - { - return; - } - - if (this.IsBusy || Interlocked.Exchange(ref this.isRefreshProcessesInProgress, 1) == 1) - { - return; - } - - try - { - var selectedProcessId = this.SelectedProcess?.ProcessId; - - var currentProcesses = this.ShowActiveApplicationsOnly - ? await this.processService.GetActiveApplicationsAsync() - : await this.processService.GetProcessesAsync(); - - await InvokeOnUiAsync(() => - { - var deltaResult = ProcessListDeltaUpdater.ApplyDelta( - this.Processes, - currentProcesses, - selectedProcessId); - - this.FilterProcesses(); - - if (deltaResult.SelectedProcess != null) - { - var processToSelect = this.FilteredProcesses.FirstOrDefault( - p => p.ProcessId == deltaResult.SelectedProcess.ProcessId); - if (processToSelect != null) - { - this.SelectedProcess = processToSelect; - } - } - else if (deltaResult.SelectedProcessTerminated) - { - this.SelectedProcess = null; - this.ClearProcessSelection(); - } - }); - } - catch (Exception ex) - { - await InvokeOnUiAsync(() => - { - this.SetStatus($"Error refreshing processes: {ex.Message}", false); - }); - } - finally - { - Interlocked.Exchange(ref this.isRefreshProcessesInProgress, 0); - } - } - - [RelayCommand] - private async Task SetAffinity() - { - var selectedProcess = this.SelectedProcess; - if (selectedProcess == null) - { - return; - } - - await this.ApplyAffinityToProcessAsync(selectedProcess, "Manual Process tab CPU selection"); - } - - [RelayCommand] - private async Task ApplyContextAffinity(ProcessModel? process) - { - if (process == null) - { - return; - } - - if (!ReferenceEquals(this.SelectedProcess, process)) - { - this.SelectedProcess = process; - } - - await this.ApplyAffinityToProcessAsync(process, "Manual Process tab context menu CPU selection"); - } - - [RelayCommand] - private async Task SaveCurrentSettingsAsRule(ProcessModel? process) - { - var targetProcess = process ?? this.SelectedProcess; - if (targetProcess == null) - { - return; - } - - if (this.processRuleCreationService == null) - { - this.SetContextError("Persistent rules are unavailable."); - await this.UpdateSelectedProcessSummaryAsync(targetProcess); - return; - } - - if (!ReferenceEquals(this.SelectedProcess, targetProcess)) - { - this.SelectedProcess = targetProcess; - } - - await this.UpdateSelectedProcessSummaryAsync(targetProcess); - - var currentCoreSelection = this.HasPendingAffinityEdits && this.CpuCores.Count > 0 - ? this.GetPendingCoreSelectionMask() - : null; - var result = await this.processRuleCreationService.SaveCurrentSettingsAsRuleAsync( - targetProcess, - currentCoreSelection, - this.SelectedProcessSummary.MemoryPriority); - - this.ApplyRuleCreationResultStatus(result); - await this.LogUserActionAsync( - result.Success ? "PersistentRuleSaved" : "PersistentRuleSaveFailed", - result.UserMessage, - $"Process: {targetProcess.Name}, PID: {targetProcess.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(targetProcess); - } - - [RelayCommand] - private async Task ApplyAffinityAndSaveAsRule(ProcessModel? process) - { - if (process == null) - { - return; - } - - if (this.processRuleCreationService == null) - { - this.SetContextError("Persistent rules are unavailable."); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - if (!ReferenceEquals(this.SelectedProcess, process)) - { - this.SelectedProcess = process; - } - - var pendingSelection = this.GetPendingCoreSelectionMask(); - var applyResult = await this.processAffinityApplyCoordinator.ApplyCoreSelectionAsync( - process, - pendingSelection, - "Manual Process tab context menu CPU selection"); - - if (!applyResult.Success) - { - this.SetContextError(applyResult.Message); - await this.LogUserActionAsync( - "ProcessAffinityFailed", - applyResult.Message, - $"Process: {process.Name}, PID: {process.ProcessId}, RequestedMask: 0x{applyResult.RequestedMask:X}"); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - if (!applyResult.UsedCpuSets) - { - this.UpdateCoreSelections(process.ProcessorAffinity, true); - } - - process.ForceNotifyProcessorAffinityChanged(); - this.OnPropertyChanged(nameof(this.SelectedProcess)); - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - - var saveResult = applyResult.UsedCpuSets - ? await this.processRuleCreationService.SaveCurrentSettingsAsRuleAsync( - process, - pendingSelection, - currentMemoryPriority: null) - : await this.processRuleCreationService.SaveRuleAsync( - process, - new ProcessRuleCreationPayload - { - LegacyAffinityMask = applyResult.VerifiedMask == 0 - ? applyResult.RequestedMask - : applyResult.VerifiedMask, - }); - - this.ApplyRuleCreationResultStatus(saveResult); - await this.LogUserActionAsync( - saveResult.Success ? "PersistentRuleSaved" : "PersistentRuleSaveFailed", - saveResult.UserMessage, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - - private void ApplyRuleCreationResultStatus(ProcessRuleCreationResult result) - { - if (result.Success) - { - this.SetStatus(result.UserMessage, false); - return; - } - - this.SetContextError(string.IsNullOrWhiteSpace(result.UserMessage) - ? ProcessRuleCreationService.NoCurrentSettingsMessage - : result.UserMessage); - } - - private async Task ApplyAffinityToProcessAsync(ProcessModel selectedProcess, string selectionReason) - { - try - { - var pendingSelection = this.GetPendingCoreSelectionMask(); - - await InvokeOnUiAsync(() => - { - this.SetStatus($"Setting affinity for {selectedProcess.Name}..."); - }); - - var result = await this.processAffinityApplyCoordinator.ApplyCoreSelectionAsync( - selectedProcess, - pendingSelection, - selectionReason); - - await InvokeOnUiAsync(() => - { - if (!result.UsedCpuSets) - { - this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); - } - - selectedProcess.ForceNotifyProcessorAffinityChanged(); - this.OnPropertyChanged(nameof(this.SelectedProcess)); - - if (result.Success) - { - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - this.SetStatus($"Affinity applied successfully to {selectedProcess.Name} (0x{result.VerifiedMask:X}).", false); - _ = this.notificationService.ShowNotificationAsync("Affinity applied", $"{selectedProcess.Name}: 0x{result.VerifiedMask:X}", NotificationType.Success); - } - else if (result.FailureReason == AffinityApplyFailureReason.VerificationMismatch) - { - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - this.SetStatus(result.Message, false); - _ = this.notificationService.ShowNotificationAsync("Affinity adjusted", result.Message, NotificationType.Warning); - } - else if (result.FailureReason == AffinityApplyFailureReason.ProcessTerminated) - { - this.SelectedProcess = null; - this.ClearProcessSelection(); - this.SetCriticalStatus(result.Message); - _ = this.notificationService.ShowNotificationAsync("Affinity failed", result.Message, NotificationType.Warning); - } - else if (result.FailureReason == AffinityApplyFailureReason.AccessDenied) - { - this.SetCriticalStatus(result.Message); - _ = this.notificationService.ShowNotificationAsync("Affinity blocked", result.Message, NotificationType.Warning); - } - else if (result.IsInvalidTopology || result.IsLegacyFallbackBlocked) - { - this.SetCriticalStatus(result.Message); - _ = this.notificationService.ShowNotificationAsync("Affinity blocked", result.Message, NotificationType.Warning); - } - else - { - this.SetStatus(result.Message, false); - _ = this.notificationService.ShowNotificationAsync("Affinity error", result.Message, NotificationType.Error); - } - }); - - await this.LogUserActionAsync( - result.Success ? "ProcessAffinityApplied" : "ProcessAffinityFailed", - result.Message, - $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}, RequestedMask: 0x{result.RequestedMask:X}, VerifiedMask: 0x{result.VerifiedMask:X}"); - await this.UpdateSelectedProcessSummaryAsync(selectedProcess); - } - catch (Exception ex) - { - var friendly = ex.Message; - _ = this.notificationService.ShowNotificationAsync("Affinity error", friendly, NotificationType.Error); - await this.LogUserActionAsync( - "ProcessAffinityFailed", - friendly, - $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}"); - - await InvokeOnUiAsync(() => - { - this.SetCriticalStatus($"Error setting affinity: {friendly}"); - }); - - // Try to refresh process info even if setting failed, to show current state - try - { - if (this.SelectedProcess != null) - { - await this.processService.RefreshProcessInfo(this.SelectedProcess); - } - - await InvokeOnUiAsync(() => - { - if (this.SelectedProcess != null) - { - this.UpdateCoreSelections(this.SelectedProcess.ProcessorAffinity, true); - this.OnPropertyChanged(nameof(this.SelectedProcess)); - } - }); - } - catch - { - // Process may have terminated - } - - await this.UpdateSelectedProcessSummaryAsync(selectedProcess); - } - finally - { - await InvokeOnUiAsync(() => - { - this.ClearStatus(); - }); - } - } - - private static Task InvokeOnUiAsync(Action action) - { - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher == null || dispatcher.CheckAccess()) - { - action(); - return Task.CompletedTask; - } - - return dispatcher.InvokeAsync(action).Task; - } - - private static Task InvokeOnUiAsync(Func action) - { - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher == null || dispatcher.CheckAccess()) - { - return action(); - } - - return dispatcher.InvokeAsync(action).Task.Unwrap(); - } - - [RelayCommand] - private async Task ApplyAffinityPreset(CpuAffinityPreset preset) - { - if (preset == null || !preset.IsAvailable || this.CpuTopology == null) - { - return; - } - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - try - { - this.suppressCoreSelectionEvents = true; - - // Clear all selections first - foreach (var core in this.CpuCores) - { - core.IsSelected = false; - } - - // Apply preset mask - foreach (var core in this.CpuCores) - { - core.IsSelected = (preset.AffinityMask & core.AffinityMask) != 0; - } - - // Notify UI of changes - this.OnPropertyChanged(nameof(this.CpuCores)); - this.SetStatus($"Applied preset: {preset.Name}"); - } - finally - { - this.suppressCoreSelectionEvents = false; - } - - // Keep the preset as a pending selection; affinity changes require an explicit apply command. - this.HasPendingAffinityEdits = true; - this.UpdateAffinityDisplayState(); - }); - } - - - [RelayCommand] - private void CreateCustomMask() - { - // Request to switch to Core Masks tab - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - var mainWindow = System.Windows.Application.Current.MainWindow; - if (mainWindow != null) - { - // Find the TabControl in MainWindow - var tabControl = FindVisualChild(mainWindow); - if (tabControl != null) - { - // Switch to Core Masks tab (index 1) - tabControl.SelectedIndex = 1; - } - } - }); - } - - private static T? FindVisualChild(System.Windows.DependencyObject obj) - where T : System.Windows.DependencyObject - { - for (int i = 0; i < System.Windows.Media.VisualTreeHelper.GetChildrenCount(obj); i++) - { - var child = System.Windows.Media.VisualTreeHelper.GetChild(obj, i); - if (child is T typedChild) - { - return typedChild; - } - - var childOfChild = FindVisualChild(child); - if (childOfChild != null) - { - return childOfChild; - } - } - return null; - } - - /// - /// Called when a CoreMask is selected from the ComboBox. - /// - partial void OnSelectedCoreMaskChanged(CoreMask? oldValue, CoreMask? newValue) - { - if (newValue == null) - return; - - UpdateCoreSelectionsFromMask(newValue); - } - - private async Task ApplyCoreMaskToProcessAsync(CoreMask mask) - { - var selectedProcess = this.SelectedProcess; - if (selectedProcess == null || mask == null) - { - return; - } - - this.IsBusy = true; - try - { - this.Logger.LogInformation( - "Applying mask '{MaskName}' to process {ProcessName} (PID: {ProcessId})", - mask.Name, selectedProcess.Name, selectedProcess.ProcessId); - - // Disable Windows Game Mode for better CPU affinity control - // Game Mode can interfere with CPU Sets, particularly on AMD systems - await this.gameModeService.DisableGameModeForAffinityAsync(); - - var result = await this.processAffinityApplyCoordinator.ApplyCoreMaskAsync(selectedProcess, mask); - - System.Windows.Application.Current.Dispatcher.Invoke(() => - { - selectedProcess.ForceNotifyProcessorAffinityChanged(); - if (!result.UsedCpuSets) - { - this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); - } - - this.OnPropertyChanged(nameof(this.SelectedProcess)); - }); - - if (!result.Success) - { - this.SetStatus(result.Message); - this.Logger.LogWarning( - "Failed to apply mask '{MaskName}' to process {ProcessName}: {Message}", - mask.Name, - selectedProcess.Name, - result.Message); - return; - } - - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - this.SetStatus($"Applied mask '{mask.Name}' to {selectedProcess.Name}"); - this.Logger.LogInformation("Successfully applied mask '{MaskName}' to {ProcessName}", mask.Name, selectedProcess.Name); - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Failed to apply mask '{MaskName}' to process {ProcessName}", - mask.Name, selectedProcess.Name); - this.SetStatus($"Error applying mask: {ex.Message}"); - } - finally - { - this.IsBusy = false; - } - } - - private void UpdateCoreSelectionsFromMask(CoreMask mask) - { - if (mask == null || this.CpuCores.Count == 0) - { - return; - } - - try - { - this.suppressCoreSelectionEvents = true; - - for (int i = 0; i < this.CpuCores.Count && i < mask.BoolMask.Count; i++) - { - this.CpuCores[i].IsSelected = mask.BoolMask[i]; - } - - this.OnPropertyChanged(nameof(this.CpuCores)); - this.HasPendingAffinityEdits = this.SelectedProcess != null; - this.UpdateAffinityDisplayState(); - } - finally - { - this.suppressCoreSelectionEvents = false; - } - } - - - [RelayCommand] - private async Task QuickApplyAffinityAndPowerPlan() - { - var selectedProcess = this.SelectedProcess; - if (selectedProcess == null) - { - return; - } - - try - { - var affinityAppliedWithCpuSets = false; - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Applying pending settings to {selectedProcess.Name}..."); - }); - - // Apply CPU affinity - var pendingSelection = this.GetPendingCoreSelectionMask(); - if (pendingSelection.Any(selected => selected)) - { - var result = await this.processAffinityApplyCoordinator.ApplyCoreSelectionAsync( - selectedProcess, - pendingSelection, - "Manual Process tab quick apply CPU selection"); - if (!result.Success) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - if (!result.UsedCpuSets) - { - this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); - } - - selectedProcess.ForceNotifyProcessorAffinityChanged(); - this.OnPropertyChanged(nameof(this.SelectedProcess)); - this.SetStatus(result.Message, false); - }); - return; - } - - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - affinityAppliedWithCpuSets = result.UsedCpuSets; - } - - // Apply power plan if selected - if (this.SelectedPowerPlan != null) - { - await this.powerPlanService.SetActivePowerPlan(this.SelectedPowerPlan); - } - - await this.processService.RefreshProcessInfo(selectedProcess); - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - if (!affinityAppliedWithCpuSets) - { - this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); - } - else - { - this.UpdateAffinityDisplayState(); - } - - selectedProcess.ForceNotifyProcessorAffinityChanged(); - this.OnPropertyChanged(nameof(this.SelectedProcess)); - }); - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Pending settings applied to {selectedProcess.Name}.", false); - }); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Error applying pending settings: {ex.Message}", false); - }); - } - } - - [RelayCommand] - private async Task RefreshTopology() - { - try - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus("Refreshing CPU topology..."); - }); - await this.cpuTopologyService.RefreshTopologyAsync(); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Error refreshing topology: {ex.Message}", false); - }); - } - } - - [RelayCommand] - private async Task SetPowerPlan() - { - if (this.SelectedPowerPlan == null) - { - return; - } - - try - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Setting power plan to {this.SelectedPowerPlan.Name}..."); - }); - - var success = await this.powerPlanService.SetActivePowerPlan(this.SelectedPowerPlan); - - await this.RefreshPowerPlansAsync(); - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - var activePlan = this.PowerPlans.FirstOrDefault(p => p.IsActive); - if (success && activePlan?.Guid == this.SelectedPowerPlan.Guid) - { - this.SetStatus($"Power plan set successfully to {this.SelectedPowerPlan.Name}", false); - } - else - { - this.SetStatus($"Power plan change attempted - current plan: {activePlan?.Name ?? "Unknown"}", false); - } - }); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Error setting power plan: {ex.Message}", false); - }); - - try - { - await this.RefreshPowerPlansAsync(); - } - catch - { - // ignored - } - } - finally - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(this.ClearStatus); - } - } - - [RelayCommand] - private async Task SetPriority(ProcessPriorityClass priority) - { - var selectedProcess = this.SelectedProcess; - if (selectedProcess == null) - { - return; - } - - if (ProcessPriorityGuardrails.IsBlocked(priority)) - { - var message = ProcessOperationUserMessages.RealtimePriorityBlocked; - await InvokeOnUiAsync(() => - { - this.SetCriticalStatus(message); - }); - _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); - await this.LogUserActionAsync( - "ProcessPriorityBlocked", - message, - $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}, Priority: {priority}"); - return; - } - - try - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Setting priority for {selectedProcess.Name} to {priority}..."); - }); - - // Apply the priority change - await this.processService.SetProcessPriority(selectedProcess, priority); - - // Immediately refresh the process to get the actual system state - await this.processService.RefreshProcessInfo(selectedProcess); - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - // Notify UI that the process properties have changed - this.OnPropertyChanged(nameof(this.SelectedProcess)); - - // Verify the priority was set correctly - if (selectedProcess.Priority == priority) - { - var warning = ProcessPriorityGuardrails.GetWarning(priority); - if (!string.IsNullOrWhiteSpace(warning)) - { - this.SetCriticalStatus(warning); - _ = this.notificationService.ShowNotificationAsync("Priority warning", warning, NotificationType.Warning); - } - else - { - this.SetStatus($"Priority applied successfully to {selectedProcess.Name}: {priority}.", false); - _ = this.notificationService.ShowNotificationAsync("Priority applied", $"{selectedProcess.Name}: {priority}", NotificationType.Success); - } - } - else - { - this.SetStatus($"Priority adjusted by system for {selectedProcess.Name} to {selectedProcess.Priority}.", false); - _ = this.notificationService.ShowNotificationAsync("Priority adjusted", $"{selectedProcess.Name}: {selectedProcess.Priority}", NotificationType.Warning); - } - }); - await this.LogUserActionAsync( - "ProcessPriorityChanged", - $"CPU priority changed for {selectedProcess.Name}: {priority}", - $"PID: {selectedProcess.ProcessId}"); - } - catch (Exception ex) - { - var message = ex.Message; - if (message.Contains("Realtime priority is blocked", StringComparison.OrdinalIgnoreCase)) - { - message = ProcessOperationUserMessages.RealtimePriorityBlocked; - _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); - } - else if (message.Contains("Access denied", StringComparison.OrdinalIgnoreCase) || - message.Contains("anti-cheat", StringComparison.OrdinalIgnoreCase)) - { - message = ProcessOperationUserMessages.AccessDenied; - _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); - } - else - { - _ = this.notificationService.ShowNotificationAsync("Priority error", message, NotificationType.Error); - } - - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetCriticalStatus($"Error setting priority: {message}"); - }); - await this.LogUserActionAsync( - message == ProcessOperationUserMessages.RealtimePriorityBlocked ? "ProcessPriorityBlocked" : "ProcessPriorityChangeFailed", - message, - $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}, Priority: {priority}"); - - // Try to refresh process info even if setting failed, to show current state - try - { - await this.processService.RefreshProcessInfo(selectedProcess); - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.OnPropertyChanged(nameof(this.SelectedProcess)); - }); - } - catch - { - // Process may have terminated - } - } - finally - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(this.ClearStatus); - } - } - - [RelayCommand] - private Task SetContextBelowNormalPriority(ProcessModel? process) => - this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.BelowNormal); - - [RelayCommand] - private Task SetContextNormalPriority(ProcessModel? process) => - this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.Normal); - - [RelayCommand] - private Task SetContextAboveNormalPriority(ProcessModel? process) => - this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.AboveNormal); - - [RelayCommand] - private Task SetContextHighPriority(ProcessModel? process) => - this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.High); - - [RelayCommand] - private Task SetContextMemoryPriorityVeryLow(ProcessModel? process) => - this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.VeryLow); - - [RelayCommand] - private Task SetContextMemoryPriorityLow(ProcessModel? process) => - this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.Low); - - [RelayCommand] - private Task SetContextMemoryPriorityMedium(ProcessModel? process) => - this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.Medium); - - [RelayCommand] - private Task SetContextMemoryPriorityBelowNormal(ProcessModel? process) => - this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.BelowNormal); - - [RelayCommand] - private Task SetContextMemoryPriorityNormal(ProcessModel? process) => - this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.Normal); - - [RelayCommand] - private async Task ClearContextCpuSets(ProcessModel? process) - { - if (process == null) - { - return; - } - - try - { - var success = await this.processService.ClearProcessCpuSetAsync(process); - if (!success) - { - this.SetContextError(ProcessOperationUserMessages.AccessDenied); - await this.LogUserActionAsync( - "CpuSetsClearFailed", - ProcessOperationUserMessages.AccessDenied, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - await this.processService.RefreshProcessInfo(process); - this.SetStatus($"CPU Sets cleared for {process.Name}.", false); - await this.LogUserActionAsync( - "CpuSetsCleared", - $"CPU Sets cleared for {process.Name}", - $"PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - catch (Exception ex) - { - var message = MapProcessOperationException(ex); - this.SetContextError(message); - await this.LogUserActionAsync( - "CpuSetsClearFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.TryRefreshContextProcessSummaryAsync(process); - } - } - - [RelayCommand] - private async Task RefreshContextProcessInfo(ProcessModel? process) - { - if (process == null) - { - return; - } - - try - { - await this.processService.RefreshProcessInfo(process); - this.SetStatus($"Process info refreshed for {process.Name}.", false); - await this.LogUserActionAsync( - "ProcessInfoRefreshed", - $"Process info refreshed for {process.Name}.", - $"PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - catch (Exception ex) - { - var message = MapProcessOperationException(ex); - this.SetContextError(message); - await this.LogUserActionAsync( - "ProcessInfoRefreshFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.TryRefreshContextProcessSummaryAsync(process); - } - } - - [RelayCommand] - private async Task OpenContextExecutableLocation(ProcessModel? process) - { - if (process == null) - { - return; - } - - var path = process.ExecutablePath; - if (string.IsNullOrWhiteSpace(path) || !File.Exists(path)) - { - var message = $"Executable path is unavailable for {process.Name}."; - this.SetContextError(message); - await this.LogUserActionAsync( - "ProcessExecutableOpenFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - try - { - this.executableLocationOpener(path); - this.SetStatus($"Opened executable location for {process.Name}.", false); - await this.LogUserActionAsync( - "ProcessExecutableLocationOpened", - $"Opened executable location for {process.Name}.", - path); - await this.UpdateSelectedProcessSummaryAsync(process); - } - catch (Exception ex) - { - var message = $"Could not open executable location: {ex.Message}"; - this.SetContextError(message); - await this.LogUserActionAsync( - "ProcessExecutableOpenFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - } - - [RelayCommand] - private async Task CopyContextProcessInfo(ProcessModel? process) - { - if (process == null) - { - return; - } - - await this.UpdateSelectedProcessSummaryAsync(process); - - var path = string.IsNullOrWhiteSpace(process.ExecutablePath) - ? "unavailable" - : process.ExecutablePath; - var builder = new StringBuilder() - .AppendLine($"Name: {process.Name}") - .AppendLine($"PID: {process.ProcessId}") - .AppendLine($"Path: {path}") - .AppendLine($"CPU priority: {process.Priority}") - .AppendLine($"Memory priority: {this.SelectedProcessSummary.MemoryPriority?.ToString() ?? "unavailable"}") - .AppendLine($"Affinity: 0x{process.ProcessorAffinity:X}") - .AppendLine($"Rule status: {this.SelectedProcessSummary.RuleStatusText}"); - - try - { - this.clipboardSetter(builder.ToString().TrimEnd()); - this.SetStatus($"Copied process info for {process.Name}.", false); - await this.LogUserActionAsync( - "ProcessInfoCopied", - $"Copied process info for {process.Name}.", - $"PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - catch (Exception ex) - { - var message = $"Could not copy process info: {ex.Message}"; - this.SetContextError(message); - await this.LogUserActionAsync( - "ProcessInfoCopyFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - } - - private async Task SetContextCpuPriorityAsync(ProcessModel? process, ProcessPriorityClass priority) - { - if (process == null) - { - return; - } - - if (ProcessPriorityGuardrails.IsBlocked(priority)) - { - this.SetContextError(ProcessOperationUserMessages.RealtimePriorityBlocked); - await this.LogUserActionAsync( - "ProcessPriorityBlocked", - ProcessOperationUserMessages.RealtimePriorityBlocked, - $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - try - { - await this.processService.SetProcessPriority(process, priority); - await this.processService.RefreshProcessInfo(process); - - var warning = ProcessPriorityGuardrails.GetWarning(priority); - if (!string.IsNullOrWhiteSpace(warning)) - { - this.SetCriticalStatus(warning); - _ = this.notificationService.ShowNotificationAsync("Priority warning", warning, NotificationType.Warning); - } - else - { - this.SetStatus($"Priority applied successfully to {process.Name}: {priority}.", false); - _ = this.notificationService.ShowNotificationAsync("Priority applied", $"{process.Name}: {priority}", NotificationType.Success); - } - - await this.LogUserActionAsync( - "ProcessPriorityChanged", - $"CPU priority changed for {process.Name}: {priority}", - $"PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - catch (Exception ex) - { - var message = MapProcessOperationException(ex); - this.SetContextError(message); - _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); - await this.LogUserActionAsync( - "ProcessPriorityChangeFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); - await this.TryRefreshContextProcessSummaryAsync(process); - } - } - - private async Task SetContextMemoryPriorityAsync(ProcessModel? process, ProcessMemoryPriority priority) - { - if (process == null) - { - return; - } - - if (this.memoryPriorityService == null) - { - this.SetContextError("Memory priority is unavailable on this system."); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - try - { - var result = await this.memoryPriorityService.SetMemoryPriorityAsync(process, priority); - if (!result.Success) - { - var message = string.IsNullOrWhiteSpace(result.UserMessage) - ? ProcessOperationUserMessages.AccessDenied - : result.UserMessage; - this.SetContextError(message); - await this.LogUserActionAsync( - "ProcessMemoryPriorityFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); - await this.UpdateSelectedProcessSummaryAsync(process); - return; - } - - this.SetStatus($"Memory priority applied successfully to {process.Name}: {priority}.", false); - await this.LogUserActionAsync( - "ProcessMemoryPriorityChanged", - $"Memory priority changed for {process.Name}: {priority}", - $"PID: {process.ProcessId}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - catch (Exception ex) - { - var message = MapProcessOperationException(ex); - this.SetContextError(message); - await this.LogUserActionAsync( - "ProcessMemoryPriorityFailed", - message, - $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); - await this.UpdateSelectedProcessSummaryAsync(process); - } - } - - private async Task TryRefreshContextProcessSummaryAsync(ProcessModel process) - { - try - { - await this.processService.RefreshProcessInfo(process); - } - catch - { - // The selected process may have exited or become inaccessible; keep the safe user message. - } - - await this.UpdateSelectedProcessSummaryAsync(process); - } - - private void SetContextError(string message) - { - this.SetStatus(message, false); - this.SetError(message); - } - - private static string MapProcessOperationException(Exception exception) - { - var message = exception.Message ?? string.Empty; - if (message.Contains("Realtime priority", StringComparison.OrdinalIgnoreCase)) - { - return ProcessOperationUserMessages.RealtimePriorityBlocked; - } - - if (message.Contains("anti-cheat", StringComparison.OrdinalIgnoreCase) || - message.Contains("protected", StringComparison.OrdinalIgnoreCase)) - { - return ProcessOperationUserMessages.AntiCheatProtectedLikely; - } - - if (message.Contains("exited", StringComparison.OrdinalIgnoreCase) || - message.Contains("terminated", StringComparison.OrdinalIgnoreCase) || - message.Contains("no longer exists", StringComparison.OrdinalIgnoreCase)) - { - return ProcessOperationUserMessages.ProcessExited; - } - - if (exception is UnauthorizedAccessException || - message.Contains("access denied", StringComparison.OrdinalIgnoreCase) || - message.Contains("denied", StringComparison.OrdinalIgnoreCase)) - { - return ProcessOperationUserMessages.AccessDenied; - } - - return string.IsNullOrWhiteSpace(message) ? ProcessOperationUserMessages.AccessDenied : message; - } - - [RelayCommand] - private async Task SaveProfile() - { - if (this.SelectedProcess == null || string.IsNullOrWhiteSpace(this.ProfileName)) - { - return; - } - - try - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Saving profile {this.ProfileName}..."); - }); - await this.processService.SaveProcessProfile(this.ProfileName, this.SelectedProcess); - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.ClearStatus(); - }); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Error saving profile: {ex.Message}", false); - }); - } - } - - [RelayCommand] - private async Task LoadProfile() - { - if (this.SelectedProcess == null || string.IsNullOrWhiteSpace(this.ProfileName)) - { - return; - } - - try - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetStatus($"Loading profile {this.ProfileName}..."); - }); - var success = await this.processService.LoadProcessProfile(this.ProfileName, this.SelectedProcess); - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - if (success) - { - this.ClearStatus(); - } - else - { - this.SetCriticalStatus($"Profile {this.ProfileName} could not be fully applied."); - } - }); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetCriticalStatus($"Error loading profile: {ex.Message}"); - }); - } - } - - private void SetupRefreshTimer() - { - this.refreshTimer = new System.Timers.Timer(5000); // PERFORMANCE OPTIMIZATION: Increased to 5 second refresh for better performance - this.refreshTimer.Elapsed += async (s, e) => - { - if (this.isUiRefreshPaused || !this.isProcessViewActive) - { - return; - } - - try - { - // Marshal timer callback to UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - if (this.isUiRefreshPaused || !this.isProcessViewActive) - { - return; - } - - await this.RefreshProcessesCommand.ExecuteAsync(null); - }); - } - catch (Exception ex) - { - System.Diagnostics.Debug.WriteLine($"Timer refresh error: {ex.Message}"); - } - }; - // Don't start automatically - only start when needed - } - - public void PauseRefresh() - { - this.SetUiRefreshEnabled(false, refreshImmediately: false); - } - - public void ResumeRefresh() - { - this.SetUiRefreshEnabled(true, refreshImmediately: true); - } - - public void ApplyRefreshDecision(AppRefreshDecision decision) - { - ArgumentNullException.ThrowIfNull(decision); - - this.isVirtualizedPreloadAllowedByPolicy = decision.VirtualizedPreloadEnabled; - this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); - this.SetUiRefreshEnabled( - decision.ProcessUiRefreshEnabled && !this.IsProcessListLocked, - decision.ImmediateProcessRefresh && !this.IsProcessListLocked); - } - - public void SetProcessViewActive(bool isActive) - { - if (this.isProcessViewActive == isActive) - { - this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); - return; - } - - this.isProcessViewActive = isActive; - this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); - - if (!isActive) - { - this.refreshTimer?.Stop(); - return; - } - - if (!this.isUiRefreshPaused) - { - this.refreshTimer?.Start(); - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - try - { - await this.RefreshProcessesCommand.ExecuteAsync(null); - } - catch (Exception ex) - { - this.Logger.LogDebug(ex, "Immediate process refresh after returning to process view failed"); - } - }); - } - } - - public void SetUiRefreshEnabled(bool enabled, bool refreshImmediately = true) - { - this.isUiRefreshPaused = !enabled; - this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); - - if (!enabled) - { - this.refreshTimer?.Stop(); - return; - } - - if (this.isProcessViewActive) - { - this.refreshTimer?.Start(); - } - - if (!refreshImmediately || !this.isProcessViewActive) - { - return; - } - - TaskSafety.FireAndForget( - InvokeOnUiAsync(async () => - { - if (this.isUiRefreshPaused) - { - return; - } - - try - { - this.ClearStatus(); - await this.RefreshProcessesCommand.ExecuteAsync(null); - } - catch (Exception ex) - { - this.Logger.LogDebug(ex, "Immediate process refresh after resume failed"); - } - }), - ex => this.Logger.LogDebug(ex, "Immediate process refresh dispatch after resume failed")); - } - - partial void OnIsProcessListLockedChanged(bool value) - { - this.SetUiRefreshEnabled(!value, refreshImmediately: !value); - - _ = this.LogUserActionAsync( - "ProcessListLockChanged", - value ? "Lock process list enabled." : "Lock process list disabled."); - } - - private bool ShouldRunProcessUiRefresh() - { - return this.isProcessViewActive && !this.isUiRefreshPaused && !this.IsProcessListLocked; - } - - private bool ShouldPreloadVirtualizedBatches() - { - return this.IsVirtualizationEnabled - && this.isVirtualizedPreloadAllowedByPolicy - && this.ShouldRunProcessUiRefresh() - && !this.IsProcessListLocked; - } - - private Task PreloadNextBatchIfAllowedAsync(int currentBatchIndex) - { - return this.ShouldPreloadVirtualizedBatches() - ? this.virtualizedProcessService.PreloadNextBatchAsync(currentBatchIndex, this.ShowActiveApplicationsOnly) - : Task.CompletedTask; - } - - partial void OnSearchTextChanged(string value) - { - this.searchRefreshCoordinator.Schedule(); - } - - partial void OnShowActiveApplicationsOnlyChanged(bool value) - { - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - await LoadProcessesCommand.ExecuteAsync(null); - }); - } - - partial void OnHideSystemProcessesChanged(bool value) - { - this.filterRefreshCoordinator.Schedule(); - } - - partial void OnHideIdleProcessesChanged(bool value) - { - this.filterRefreshCoordinator.Schedule(); - } - - partial void OnSortModeChanged(string value) - { - this.filterRefreshCoordinator.Schedule(); - } - - partial void OnIsIdleServerDisabledChanged(bool value) - { - if (SelectedProcess != null) - { - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - await ToggleIdleServerAsync(value); - }); - } - } - - partial void OnIsRegistryPriorityEnabledChanged(bool value) - { - if (SelectedProcess != null) - { - _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => - { - await ToggleRegistryPriorityAsync(value); - }); - } - } - - private void FilterProcesses() - { - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher != null && !dispatcher.CheckAccess()) - { - dispatcher.Invoke(this.FilterProcesses); - return; - } - - if (this.isApplyingFilter) - { - this.filterRefreshPending = true; - return; - } - - this.isApplyingFilter = true; - - try - { - do - { - this.filterRefreshPending = false; - - var criteria = new ProcessFilterCriteria - { - SearchText = this.SearchText, - HideSystemProcesses = this.HideSystemProcesses, - HideIdleProcesses = this.HideIdleProcesses, - SortMode = this.SortMode, - }; - - var filteredResults = this.processFilterService.FilterAndSort(this.Processes, criteria); - this.FilteredProcesses = new ObservableCollection(filteredResults); - } - while (this.filterRefreshPending); - } - finally - { - this.isApplyingFilter = false; - } - } - - private async Task LoadProcessPowerPlanAssociation(ProcessModel process) - { - try - { - await this.RefreshPowerPlansAsync(); - } - catch (Exception ex) - { - this.Logger.LogWarning(ex, "Failed to load power plan association for process {ProcessName}", process.Name); - } - } - - private void ClearProcessSelection() - { - // Clear CPU core selections - foreach (var core in this.CpuCores) - { - core.IsSelected = false; - } - - this.HasPendingAffinityEdits = false; - this.UpdateAffinityDisplayState(); - - // Reset power plan to current system default - _ = Task.Run(async () => - { - try - { - await this.RefreshPowerPlansAsync(); - } - catch (Exception ex) - { - this.Logger.LogWarning(ex, "Failed to reset power plan selection"); - } - }); - - // Notify UI of changes - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - // Reset feature states - this.IsIdleServerDisabled = false; - this.IsRegistryPriorityEnabled = false; - - this.OnPropertyChanged(nameof(this.CpuCores)); - - // BUG FIX: Clear status without setting busy state and auto-clear after delay - this.SetStatus("Process selection cleared", false); - - // Clear the status after a short delay - _ = Task.Delay(2000).ContinueWith(_ => - { - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - if (this.StatusMessage == "Process selection cleared") - { - this.ClearStatus(); - } - }); - }); - }); - } - - /// - /// Toggles the idle server functionality for the selected process. - /// - private async Task ToggleIdleServerAsync(bool disable) - { - if (this.SelectedProcess == null) - { - return; - } - - try - { - this.SetStatus($"{(disable ? "Disabling" : "Enabling")} idle server for {this.SelectedProcess.Name}..."); - - // Implementation for disabling/enabling idle server - // This typically involves setting process execution state or power management settings - var success = await this.processService.SetIdleServerStateAsync(this.SelectedProcess, !disable); - - if (success) - { - this.SelectedProcess.IsIdleServerDisabled = disable; - this.SetStatus($"Idle server {(disable ? "disabled" : "enabled")} for {this.SelectedProcess.Name}"); - - await this.LogUserActionAsync( - "IdleServer", - $"Idle server {(disable ? "disabled" : "enabled")} for process {this.SelectedProcess.Name}", - $"PID: {this.SelectedProcess.ProcessId}"); - } - else - { - this.SetStatus($"Failed to {(disable ? "disable" : "enable")} idle server for {this.SelectedProcess.Name}", false); - // Revert the UI state - this.IsIdleServerDisabled = !disable; - } - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Error toggling idle server for process {ProcessName}", this.SelectedProcess.Name); - this.SetStatus($"Error: {ex.Message}", false); - // Revert the UI state - this.IsIdleServerDisabled = !disable; - } - } - - /// - /// Toggles registry-based priority enforcement for the selected process. - /// - private async Task ToggleRegistryPriorityAsync(bool enable) - { - if (this.SelectedProcess == null) - { - return; - } - - try - { - this.SetStatus($"{(enable ? "Enabling" : "Disabling")} registry priority enforcement for {this.SelectedProcess.Name}..."); - - // Implementation for registry-based priority setting - var success = await this.processService.SetRegistryPriorityAsync(this.SelectedProcess, enable, this.SelectedProcess.Priority); - - if (success) - { - this.SelectedProcess.IsRegistryPriorityEnabled = enable; - - if (enable) - { - this.SetStatus($"Registry priority enforcement enabled for {this.SelectedProcess.Name}. Process restart required for changes to take effect."); - - // Show notification about restart requirement - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - System.Windows.MessageBox.Show( - $"Registry priority has been set for {this.SelectedProcess.Name}.\n\n" + - "The process must be restarted for the registry changes to take effect.\n\n" + - $"{ProcessOperationUserMessages.PersistentLaunchTimePriorityNotice}\n\n" + - "This setting will persist across system reboots and will automatically apply the selected priority when the process starts.", - "Registry Priority Set - Restart Required", - System.Windows.MessageBoxButton.OK, - System.Windows.MessageBoxImage.Information); - }); - } - else - { - this.SetStatus($"Registry priority enforcement disabled for {this.SelectedProcess.Name}"); - } - - await this.LogUserActionAsync( - "RegistryPriority", - $"Registry priority enforcement {(enable ? "enabled" : "disabled")} for process {this.SelectedProcess.Name}", - $"PID: {this.SelectedProcess.ProcessId}, Priority: {this.SelectedProcess.Priority}"); - } - else - { - this.SetStatus($"Failed to {(enable ? "enable" : "disable")} registry priority enforcement for {this.SelectedProcess.Name}", false); - // Revert the UI state - this.IsRegistryPriorityEnabled = !enable; - } - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Error toggling registry priority for process {ProcessName}", this.SelectedProcess.Name); - this.SetStatus($"Error: {ex.Message}", false); - // Revert the UI state - this.IsRegistryPriorityEnabled = !enable; - } - } - - /// - /// Saves the current process settings (affinity mask, priority, power plan) as an association - /// Based on CPUSetSetter's SetMask pattern. - /// - [RelayCommand] - private void OpenRulesTab() - { - this.OpenRulesRequested?.Invoke(this, EventArgs.Empty); - } - - [RelayCommand] - private async Task SaveCurrentAsAssociation() - { - if (this.SelectedProcess == null) - { - await this.notificationService.ShowNotificationAsync( - "No Process Selected", - "Please select a process to save as an association", NotificationType.Warning); - return; - } - - try - { - this.SetStatus($"Saving rule for {this.SelectedProcess.Name}..."); - - // Get current power plan - var currentPowerPlan = await this.powerPlanService.GetActivePowerPlan(); - - // Create new association - var association = new ProcessPowerPlanAssociation - { - ExecutableName = this.SelectedProcess.Name, - ExecutablePath = this.SelectedProcess.ExecutablePath ?? string.Empty, - PowerPlanGuid = currentPowerPlan?.Guid ?? string.Empty, - PowerPlanName = currentPowerPlan?.Name ?? "Unknown", - CoreMaskId = this.SelectedCoreMask?.Id, - CoreMaskName = this.SelectedCoreMask?.Name, - ProcessPriority = this.SelectedProcess.Priority.ToString(), - MatchByPath = !string.IsNullOrEmpty(this.SelectedProcess.ExecutablePath), - Priority = 0, - Description = $"Saved from Process Management on {DateTime.Now:g}", - IsEnabled = true, - }; - - // Try to add the association - var success = await this.associationService.AddAssociationAsync(association); - - if (success) - { - this.SetStatus($"Rule created for {this.SelectedProcess.Name} and ready for auto-apply.", false); - await this.notificationService.ShowNotificationAsync( - "Rule Saved", - $"Settings for {this.SelectedProcess.Name} saved successfully", NotificationType.Success); - - await this.LogUserActionAsync( - "SaveAssociation", - $"Saved association for process {this.SelectedProcess.Name}", - $"PID: {this.SelectedProcess.ProcessId}, PowerPlan: {currentPowerPlan?.Name}, " + - $"CoreMask: {this.SelectedCoreMask?.Name ?? "None"}, Priority: {this.SelectedProcess.Priority}"); - } - else - { - var existingAssociation = await this.associationService.FindAssociationByExecutableAsync(this.SelectedProcess.Name); - if (existingAssociation != null) - { - existingAssociation.ExecutablePath = association.ExecutablePath; - existingAssociation.PowerPlanGuid = association.PowerPlanGuid; - existingAssociation.PowerPlanName = association.PowerPlanName; - existingAssociation.CoreMaskId = association.CoreMaskId; - existingAssociation.CoreMaskName = association.CoreMaskName; - existingAssociation.ProcessPriority = association.ProcessPriority; - existingAssociation.MatchByPath = association.MatchByPath; - existingAssociation.Description = association.Description; - existingAssociation.IsEnabled = true; - existingAssociation.UpdatedAt = DateTime.UtcNow; - - var updated = await this.associationService.UpdateAssociationAsync(existingAssociation); - if (updated) - { - this.SetStatus($"Existing rule updated for {this.SelectedProcess.Name}.", false); - await this.notificationService.ShowNotificationAsync( - "Rule Updated", - $"Existing rule for {this.SelectedProcess.Name} was updated", NotificationType.Information); - } - else - { - this.SetStatus($"Failed to update existing rule for {this.SelectedProcess.Name}", false); - await this.notificationService.ShowNotificationAsync( - "Rule Update Failed", - $"Could not update existing rule for {this.SelectedProcess.Name}", NotificationType.Warning); - } - } - else - { - this.SetStatus($"Rule already exists for {this.SelectedProcess.Name}", false); - await this.notificationService.ShowNotificationAsync( - "Rule Exists", - $"A rule for {this.SelectedProcess.Name} already exists", NotificationType.Warning); - } - } - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Error saving association for process {ProcessName}", this.SelectedProcess.Name); - this.SetStatus($"Error saving rule: {ex.Message}", false); - await this.notificationService.ShowNotificationAsync( - "Error", - $"Failed to save rule: {ex.Message}", NotificationType.Error); - } - } - - protected override void OnDispose() - { - this.refreshTimer?.Stop(); - this.refreshTimer?.Dispose(); - this.refreshTimer = null; - - this.searchRefreshCoordinator.Dispose(); - this.filterRefreshCoordinator.Dispose(); - - this.cpuTopologyService.TopologyDetected -= this.OnTopologyDetected; - this.systemTrayService.QuickApplyRequested -= this.OnTrayQuickApplyRequested; - - base.OnDispose(); - } - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.ObjectModel; + using System.ComponentModel; + using System.Diagnostics; + using System.IO; + using System.Linq; + using System.Text; + using System.Threading; + using System.Threading.Tasks; + using System.Windows.Input; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public partial class ProcessViewModel : BaseViewModel + { + private async Task ApplyFiltersOnUiAsync() + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(this.FilterProcesses); + } + + private void SetupVirtualizedProcessService() + { + // Configure virtualization settings + this.virtualizedProcessService.Configuration.BatchSize = 50; + this.virtualizedProcessService.Configuration.EnableBackgroundLoading = true; + + // Subscribe to events + this.virtualizedProcessService.BatchLoadProgress += this.OnBatchLoadProgress; + this.virtualizedProcessService.BackgroundBatchLoaded += this.OnBackgroundBatchLoaded; + } + + private void OnBatchLoadProgress(object? sender, BatchLoadProgressEventArgs e) + { + if (this.isUiRefreshPaused || !this.isProcessViewActive) + { + return; + } + + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.LoadingProgress = e.ProgressPercentage; + this.LoadingStatusText = e.StatusMessage; + }); + } + + private void OnBackgroundBatchLoaded(object? sender, ProcessBatchResult e) + { + this.Logger.LogDebug( + "Background batch {BatchIndex} loaded with {ProcessCount} processes", + e.BatchIndex, e.Processes.Count); + } + + public override async Task InitializeAsync() + { + try + { + // Update status on UI thread + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus("Initializing CPU topology and power plans..."); + }); + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Starting initialization"); + + // Initialize CPU topology + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to detect CPU topology"); + await this.cpuTopologyService.DetectTopologyAsync(); + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: CPU topology detection completed"); + + // Initialize core masks service + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to initialize core masks"); + await this.coreMaskService.InitializeAsync(); + this.AvailableCoreMasks = this.coreMaskService.AvailableMasks; + this.SelectedCoreMask = this.coreMaskService.DefaultMask; + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Core masks initialized"); + + // Load power plans + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to load power plans"); + await this.RefreshPowerPlansAsync(); + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Power plans loaded"); + + // Load processes automatically on startup (Bug #8 fix) + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: About to load processes automatically"); + await this.LoadProcessesCommand.ExecuteAsync(null); + + // Access process count on UI thread to avoid threading issues + int processCount = 0; + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + processCount = this.Processes?.Count ?? 0; + }); + System.Diagnostics.Debug.WriteLine($"ProcessViewModel.InitializeAsync: Processes loaded automatically, count: {processCount}"); + + // Start refresh timer for real-time updates + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Starting refresh timer"); + this.refreshTimer?.Start(); + System.Diagnostics.Debug.WriteLine("ProcessViewModel.InitializeAsync: Initialization completed successfully"); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"ProcessViewModel.InitializeAsync: Exception occurred: {ex.Message}"); + // Update status on UI thread + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Failed to initialize: {ex.Message}", false); + }); + } + } + + private async Task RefreshPowerPlansAsync() + { + try + { + var plans = await this.powerPlanService.GetPowerPlansAsync(); + var activePlan = await this.powerPlanService.GetActivePowerPlan(); + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.PowerPlans.Clear(); + foreach (var plan in plans) + { + plan.IsActive = plan.Guid == activePlan?.Guid; + this.PowerPlans.Add(plan); + } + + this.SelectedPowerPlan = this.PowerPlans.FirstOrDefault(p => p.Guid == activePlan?.Guid); + }); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Failed to load power plans: {ex.Message}", false); + }); + } + } + + partial void OnSelectedProcessChanged(ProcessModel? value) + { + this.UpdateSelectedProcessSummary(value); + + if (value != null && CpuTopology != null) + { + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + // Immediately fetch and display real-time process information + TaskSafety.FireAndForget(HandleSelectedProcessChangedAsync(value), ex => + { + this.Logger.LogWarning(ex, "Failed while handling selected process change for {ProcessName}", value.Name); + }); + } + else if (value == null) + { + // Clear selection + this.ClearProcessSelection(); + } + + // Update system tray context menu + this.systemTrayService.UpdateContextMenu(value?.Name, value != null); + } + + private void UpdateSelectedProcessSummary(ProcessModel? process) + { + TaskSafety.FireAndForget( + this.UpdateSelectedProcessSummaryAsync(process), + ex => this.Logger.LogWarning(ex, "Failed to update selected process summary")); + } + + private Task UpdateSelectedProcessSummaryAsync(ProcessModel? process) + { + return this.SelectedProcessSummary.UpdateAsync(process, this.StatusMessage, this.HasError); + } + + private async Task HandleSelectedProcessChangedAsync(ProcessModel value) + { + try + { + // First check if the process is still running + bool isStillRunning = await this.processService.IsProcessStillRunning(value); + if (!isStillRunning) + { + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + this.SetStatus($"Process {value.Name} (PID: {value.ProcessId}) has terminated", false); + this.SelectedProcess = null; + this.ClearProcessSelection(); + }); + return; + } + + // Refresh process info to get current state from OS + await this.processService.RefreshProcessInfo(value); + + // Update UI on main thread with fresh data + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + this.UpdateCoreSelections(value.ProcessorAffinity); + this.UpdateAffinityDisplayState(); + value.ForceNotifyProcessorAffinityChanged(); + + // Update priority display - trigger property change to refresh ComboBox + this.OnPropertyChanged(nameof(this.SelectedProcess)); + + // Update feature states from the selected process + this.IsIdleServerDisabled = value.IsIdleServerDisabled; + this.IsRegistryPriorityEnabled = value.IsRegistryPriorityEnabled; + + // BUG FIX: Update status without setting busy state for process selection + this.SetStatus( + $"Selected process: {value.Name} (PID: {value.ProcessId}) - " + + $"Priority: {value.Priority}, Affinity: 0x{value.ProcessorAffinity:X}", false); + }); + if (ReferenceEquals(this.SelectedProcess, value)) + { + // Keep this second update for refreshed process fields and the latest operation message. + this.UpdateSelectedProcessSummary(value); + } + + // Load current power plan association if available + await this.LoadProcessPowerPlanAssociation(value); + } + catch (InvalidOperationException ex) when (ex.Message.Contains("terminated") || ex.Message.Contains("exited") || ex.Message.Contains("no longer exists")) + { + // Process has terminated + this.Logger.LogInformation("Process {ProcessName} (PID: {ProcessId}) has terminated", value.Name, value.ProcessId); + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + this.SetStatus($"Process {value.Name} (PID: {value.ProcessId}) has terminated", false); + this.SelectedProcess = null; + this.ClearProcessSelection(); + }); + } + catch (Exception ex) + { + this.Logger.LogWarning(ex, "Failed to refresh process info for {ProcessName}", value.Name); + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + this.SetStatus($"Warning: Could not access process {value.Name} - it may have terminated or require elevated privileges", false); + }); + if (ReferenceEquals(this.SelectedProcess, value)) + { + this.UpdateSelectedProcessSummary(value); + } + } + } + + private void OnTrayQuickApplyRequested(object? sender, EventArgs e) + { + TaskSafety.FireAndForget(this.OnTrayQuickApplyRequestedAsync(), ex => + { + this.Logger.LogWarning(ex, "Quick apply request failed"); + }); + } + + private async Task OnTrayQuickApplyRequestedAsync() + { + try + { + // Marshal UI operations to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + await this.QuickApplyAffinityAndPowerPlanCommand.ExecuteAsync(null); + this.systemTrayService.ShowBalloonTip( + "ThreadPilot", + $"Pending settings applied to {this.SelectedProcess?.Name ?? "selected process"}", 2000); + }); + } + catch (Exception ex) + { + // Marshal UI operations to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.systemTrayService.ShowBalloonTip( + "ThreadPilot Error", + $"Failed to apply pending settings: {ex.Message}", 3000); + }); + } + } + + private void OnTopologyDetected(object? sender, CpuTopologyDetectedEventArgs e) + { + // Ensure all UI updates happen on the dispatcher thread + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + this.CpuTopology = e.Topology; + this.IsTopologyDetectionSuccessful = e.DetectionSuccessful; + + if (e.DetectionSuccessful) + { + this.TopologyStatus = $"Detected: {e.Topology.TotalLogicalCores} logical CPUs, " + + $"{e.Topology.TotalPhysicalCores} physical CPUs"; + this.AreAdvancedFeaturesAvailable = e.Topology.HasIntelHybrid || e.Topology.HasAmdCcd || e.Topology.HasHyperThreading; + } + else + { + this.TopologyStatus = $"Detection failed: {e.ErrorMessage ?? "Unknown error"}"; + this.AreAdvancedFeaturesAvailable = false; + } + + this.UpdateCpuCores(); + this.UpdateAffinityPresets(); + this.UpdateHyperThreadingStatus(); + }); + } + + private void UpdateCpuCores() + { + if (this.CpuTopology == null) + { + return; + } + + this.CpuCores.Clear(); + foreach (var core in this.CpuTopology.LogicalCores) + { + core.PropertyChanged -= this.OnCorePropertyChanged; + core.PropertyChanged += this.OnCorePropertyChanged; + this.CpuCores.Add(core); + } + } + + private void OnCorePropertyChanged(object? sender, PropertyChangedEventArgs e) + { + // Note: Advanced CPU Affinity cores are now read-only (ProcessView.xaml has IsHitTestVisible="False") + // This event handler is kept for compatibility but should not be triggered + // Core modifications are done exclusively through the Core Mask tab + if (this.suppressCoreSelectionEvents) + { + return; + } + + this.Logger.LogDebug("Core property changed but cores are read-only - no action taken"); + } + + private void UpdateHyperThreadingStatus() + { + if (this.CpuTopology == null) + { + this.HyperThreadingStatusText = "Multi-Threading: Unknown"; + this.IsHyperThreadingActive = false; + return; + } + + // Determine if hyperthreading/SMT is present and active + bool hasMultiThreading = this.CpuTopology.HasHyperThreading; + this.IsHyperThreadingActive = hasMultiThreading; + + // Determine the appropriate technology name based on CPU vendor + string technologyName = "Multi-Threading"; + if (this.CpuTopology.CpuBrand.Contains("Intel", StringComparison.OrdinalIgnoreCase)) + { + technologyName = "Hyper-Threading"; + } + else if (this.CpuTopology.CpuBrand.Contains("AMD", StringComparison.OrdinalIgnoreCase)) + { + technologyName = "SMT"; + } + + // Set the status text + string status = hasMultiThreading ? "Active" : "Not Available"; + this.HyperThreadingStatusText = $"{technologyName}: {status}"; + + this.Logger.LogInformation( + "Updated hyperthreading status: {StatusText} (Active: {IsActive})", + this.HyperThreadingStatusText, this.IsHyperThreadingActive); + } + + private void UpdateAffinityPresets() + { + this.AffinityPresets.Clear(); + var presets = this.cpuTopologyService.GetAffinityPresets(); + foreach (var preset in presets) + { + this.AffinityPresets.Add(preset); + } + } + + private void UpdateCoreSelections(long affinityMask, bool forceSync = false) + { + if (this.CpuTopology == null || this.CpuCores.Count == 0) + { + this.Logger.LogWarning( + "Cannot update core selections: CpuTopology={CpuTopology}, CpuCores.Count={CpuCoresCount}", + this.CpuTopology != null, this.CpuCores.Count); + return; + } + + if (this.HasPendingAffinityEdits && !forceSync) + { + this.Logger.LogDebug("Skipping affinity sync because user edits are pending"); + return; + } + + this.Logger.LogDebug( + "Updating core selections for affinity mask 0x{AffinityMask:X} ({AffinityMaskBinary})", + affinityMask, Convert.ToString(affinityMask, 2).PadLeft(Environment.ProcessorCount, '0')); + + // Update each core's selection state based on the actual OS affinity mask + var updatedCores = new List<(int CoreId, bool WasSelected, bool IsSelected)>(); + + try + { + this.suppressCoreSelectionEvents = true; + + foreach (var core in this.CpuCores) + { + bool wasSelected = core.IsSelected; + bool shouldBeSelected = (affinityMask & core.AffinityMask) != 0; + + if (wasSelected != shouldBeSelected) + { + core.IsSelected = shouldBeSelected; + updatedCores.Add((core.LogicalCoreId, wasSelected, shouldBeSelected)); + } + } + } + finally + { + this.suppressCoreSelectionEvents = false; + } + + // The UI will automatically update since CpuCoreModel now implements INotifyPropertyChanged + // No need to force collection refresh as individual property changes will be notified + + // Log the affinity update for debugging + var selectedCoreIds = this.CpuCores.Where(c => c.IsSelected).Select(c => c.LogicalCoreId).OrderBy(id => id).ToList(); + var totalCores = this.CpuCores.Count; + var selectedCount = selectedCoreIds.Count; + + this.Logger.LogInformation( + "Updated core selections for affinity mask 0x{AffinityMask:X}: " + + "Selected {SelectedCount}/{TotalCores} cores: [{CoreIds}]", + affinityMask, selectedCount, totalCores, string.Join(", ", selectedCoreIds)); + + if (updatedCores.Count > 0) + { + this.Logger.LogDebug( + "Core selection changes: {Changes}", + string.Join("; ", updatedCores.Select(c => $"Core {c.CoreId}: {c.WasSelected} -> {c.IsSelected}"))); + } + else + { + this.Logger.LogDebug("No core selection changes needed - UI already matches affinity mask"); + } + + if (forceSync) + { + this.HasPendingAffinityEdits = false; + } + + this.UpdateAffinityDisplayState(); + } + + private long CalculateAffinityMask() + { + if (this.CpuTopology == null) + { + return 0; + } + + var selectedCores = this.CpuCores.Where(core => core.IsSelected); + + // Note: Removed hyperthreading filtering - user can manually select desired cores + // All selected cores (including HT siblings) are now included in the affinity mask + + return selectedCores.Aggregate(0L, (mask, core) => mask | core.AffinityMask); + } + + private List GetPendingCoreSelectionMask() + { + return this.CpuCores + .OrderBy(core => core.LogicalCoreId) + .Select(core => core.IsSelected) + .ToList(); + } + + private void UpdateAffinityDisplayState() + { + var currentMask = this.SelectedProcess?.ProcessorAffinity; + this.CurrentAffinityText = currentMask.HasValue + ? $"Current OS affinity: 0x{currentMask.Value:X}" + : "Current OS affinity: no process selected"; + + if (this.SelectedProcess == null) + { + this.PendingAffinityText = "Pending core mask: none"; + this.AffinityEditStateText = "Select a process to view its current Windows affinity."; + return; + } + + if (!this.HasPendingAffinityEdits) + { + this.PendingAffinityText = "Pending core mask: none"; + this.AffinityEditStateText = "Current OS affinity is displayed. Select a core mask to stage a change."; + return; + } + + var pendingMask = this.CalculateAffinityMask(); + this.PendingAffinityText = pendingMask > 0 + ? $"Pending core mask: 0x{pendingMask:X}" + : "Pending core mask: no cores selected"; + this.AffinityEditStateText = "Core mask staged. Use Apply Affinity to change Windows affinity."; + } + + [RelayCommand] + public async Task LoadMoreProcesses() + { + if (!this.ShouldRunProcessUiRefresh() || !this.IsVirtualizationEnabled || !this.HasMoreBatches || this.IsBusy) + { + return; + } + + try + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Loading more processes (batch {this.CurrentBatchIndex + 2})..."); + }); + + var nextBatchIndex = this.CurrentBatchIndex + 1; + var batch = await this.virtualizedProcessService.LoadProcessBatchAsync(nextBatchIndex, this.ShowActiveApplicationsOnly); + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + // Add new processes to existing collection + foreach (var process in batch.Processes) + { + this.Processes.Add(process); + } + + this.CurrentBatchIndex = batch.BatchIndex; + this.TotalBatches = batch.TotalBatches; + this.HasMoreBatches = batch.HasMoreBatches; + this.TotalProcessCount = batch.TotalProcessCount; + + this.FilterProcesses(); + + // BUG FIX: Ensure loading state is properly cleared + this.ClearStatus(); + this.LoadingProgress = 0.0; + this.LoadingStatusText = string.Empty; + }); + + await this.PreloadNextBatchIfAllowedAsync(this.CurrentBatchIndex); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + // BUG FIX: Ensure loading state is cleared even on error + this.LoadingProgress = 0.0; + this.LoadingStatusText = string.Empty; + this.SetStatus($"Error loading more processes: {ex.Message}", false); + }); + } + } + + [RelayCommand] + public async Task LoadProcesses() + { + if (!this.ShouldRunProcessUiRefresh()) + { + return; + } + + try + { + System.Diagnostics.Debug.WriteLine($"LoadProcesses: Starting, ShowActiveApplicationsOnly={this.ShowActiveApplicationsOnly}"); + + // PERFORMANCE IMPROVEMENT: Progressive loading with status updates + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.LoadingProgress = 0.0; + this.LoadingStatusText = this.ShowActiveApplicationsOnly ? "Loading active applications..." : "Loading processes..."; + this.SetStatus(this.LoadingStatusText); + }); + + ObservableCollection newProcesses; + + // VIRTUALIZATION ENHANCEMENT: Use virtualized loading for large process lists + if (this.IsVirtualizationEnabled) + { + System.Diagnostics.Debug.WriteLine("LoadProcesses: Using virtualized loading"); + await this.virtualizedProcessService.InitializeAsync(); + + var totalCount = await this.virtualizedProcessService.GetTotalProcessCountAsync(this.ShowActiveApplicationsOnly); + if (totalCount > this.virtualizedProcessService.Configuration.BatchSize) + { + // Load first batch only + var batch = await this.virtualizedProcessService.LoadProcessBatchAsync(0, this.ShowActiveApplicationsOnly); + newProcesses = new ObservableCollection(batch.Processes); + + // Update virtualization state + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.CurrentBatchIndex = batch.BatchIndex; + this.TotalBatches = batch.TotalBatches; + this.HasMoreBatches = batch.HasMoreBatches; + this.TotalProcessCount = batch.TotalProcessCount; + }); + + await this.PreloadNextBatchIfAllowedAsync(0); + } + else + { + // Small list, load all processes normally + newProcesses = this.ShowActiveApplicationsOnly + ? await this.processService.GetActiveApplicationsAsync() + : await this.processService.GetProcessesAsync(); + } + } + else + { + // Traditional loading + if (this.ShowActiveApplicationsOnly) + { + System.Diagnostics.Debug.WriteLine("LoadProcesses: Getting active applications"); + newProcesses = await this.processService.GetActiveApplicationsAsync(); + } + else + { + System.Diagnostics.Debug.WriteLine("LoadProcesses: Getting all processes"); + newProcesses = await this.processService.GetProcessesAsync(); + } + } + + // Update UI on the UI thread + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.Processes = newProcesses; + System.Diagnostics.Debug.WriteLine($"LoadProcesses: Retrieved {this.Processes?.Count ?? 0} processes"); + this.FilterProcesses(); + System.Diagnostics.Debug.WriteLine($"LoadProcesses: After filtering, {this.FilteredProcesses?.Count ?? 0} processes visible"); + + // BUG FIX: Ensure loading state is properly cleared + this.ClearStatus(); + this.LoadingProgress = 0.0; + this.LoadingStatusText = string.Empty; + }); + + System.Diagnostics.Debug.WriteLine("LoadProcesses: Completed successfully"); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"LoadProcesses: Exception occurred: {ex.Message}"); + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + // BUG FIX: Ensure loading state is cleared even on error + this.LoadingProgress = 0.0; + this.LoadingStatusText = string.Empty; + this.SetStatus($"Error loading processes: {ex.Message}", false); + }); + } + } + + [RelayCommand] + private async Task RefreshProcesses() + { + if (!this.ShouldRunProcessUiRefresh()) + { + return; + } + + if (this.IsBusy || Interlocked.Exchange(ref this.isRefreshProcessesInProgress, 1) == 1) + { + return; + } + + try + { + var selectedProcessId = this.SelectedProcess?.ProcessId; + + var currentProcesses = this.ShowActiveApplicationsOnly + ? await this.processService.GetActiveApplicationsAsync() + : await this.processService.GetProcessesAsync(); + + await InvokeOnUiAsync(() => + { + var deltaResult = ProcessListDeltaUpdater.ApplyDelta( + this.Processes, + currentProcesses, + selectedProcessId); + + this.FilterProcesses(); + + if (deltaResult.SelectedProcess != null) + { + var processToSelect = this.FilteredProcesses.FirstOrDefault( + p => p.ProcessId == deltaResult.SelectedProcess.ProcessId); + if (processToSelect != null) + { + this.SelectedProcess = processToSelect; + } + } + else if (deltaResult.SelectedProcessTerminated) + { + this.SelectedProcess = null; + this.ClearProcessSelection(); + } + }); + } + catch (Exception ex) + { + await InvokeOnUiAsync(() => + { + this.SetStatus($"Error refreshing processes: {ex.Message}", false); + }); + } + finally + { + Interlocked.Exchange(ref this.isRefreshProcessesInProgress, 0); + } + } + + [RelayCommand] + private async Task SetAffinity() + { + var selectedProcess = this.SelectedProcess; + if (selectedProcess == null) + { + return; + } + + await this.ApplyAffinityToProcessAsync(selectedProcess, "Manual Process tab CPU selection"); + } + + [RelayCommand] + private async Task ApplyContextAffinity(ProcessModel? process) + { + if (process == null) + { + return; + } + + if (!ReferenceEquals(this.SelectedProcess, process)) + { + this.SelectedProcess = process; + } + + await this.ApplyAffinityToProcessAsync(process, "Manual Process tab context menu CPU selection"); + } + + [RelayCommand] + private async Task SaveCurrentSettingsAsRule(ProcessModel? process) + { + var targetProcess = process ?? this.SelectedProcess; + if (targetProcess == null) + { + return; + } + + if (this.processRuleCreationService == null) + { + this.SetContextError("Persistent rules are unavailable."); + await this.UpdateSelectedProcessSummaryAsync(targetProcess); + return; + } + + if (!ReferenceEquals(this.SelectedProcess, targetProcess)) + { + this.SelectedProcess = targetProcess; + } + + await this.UpdateSelectedProcessSummaryAsync(targetProcess); + + var currentCoreSelection = this.HasPendingAffinityEdits && this.CpuCores.Count > 0 + ? this.GetPendingCoreSelectionMask() + : null; + var result = await this.processRuleCreationService.SaveCurrentSettingsAsRuleAsync( + targetProcess, + currentCoreSelection, + this.SelectedProcessSummary.MemoryPriority); + + this.ApplyRuleCreationResultStatus(result); + await this.LogUserActionAsync( + result.Success ? "PersistentRuleSaved" : "PersistentRuleSaveFailed", + result.UserMessage, + $"Process: {targetProcess.Name}, PID: {targetProcess.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(targetProcess); + } + + [RelayCommand] + private async Task ApplyAffinityAndSaveAsRule(ProcessModel? process) + { + if (process == null) + { + return; + } + + if (this.processRuleCreationService == null) + { + this.SetContextError("Persistent rules are unavailable."); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + if (!ReferenceEquals(this.SelectedProcess, process)) + { + this.SelectedProcess = process; + } + + var pendingSelection = this.GetPendingCoreSelectionMask(); + var applyResult = await this.processAffinityApplyCoordinator.ApplyCoreSelectionAsync( + process, + pendingSelection, + "Manual Process tab context menu CPU selection"); + + if (!applyResult.Success) + { + this.SetContextError(applyResult.Message); + await this.LogUserActionAsync( + "ProcessAffinityFailed", + applyResult.Message, + $"Process: {process.Name}, PID: {process.ProcessId}, RequestedMask: 0x{applyResult.RequestedMask:X}"); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + if (!applyResult.UsedCpuSets) + { + this.UpdateCoreSelections(process.ProcessorAffinity, true); + } + + process.ForceNotifyProcessorAffinityChanged(); + this.OnPropertyChanged(nameof(this.SelectedProcess)); + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + + var saveResult = applyResult.UsedCpuSets + ? await this.processRuleCreationService.SaveCurrentSettingsAsRuleAsync( + process, + pendingSelection, + currentMemoryPriority: null) + : await this.processRuleCreationService.SaveRuleAsync( + process, + new ProcessRuleCreationPayload + { + LegacyAffinityMask = applyResult.VerifiedMask == 0 + ? applyResult.RequestedMask + : applyResult.VerifiedMask, + }); + + this.ApplyRuleCreationResultStatus(saveResult); + await this.LogUserActionAsync( + saveResult.Success ? "PersistentRuleSaved" : "PersistentRuleSaveFailed", + saveResult.UserMessage, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + + private void ApplyRuleCreationResultStatus(ProcessRuleCreationResult result) + { + if (result.Success) + { + this.SetStatus(result.UserMessage, false); + return; + } + + this.SetContextError(string.IsNullOrWhiteSpace(result.UserMessage) + ? ProcessRuleCreationService.NoCurrentSettingsMessage + : result.UserMessage); + } + + private async Task ApplyAffinityToProcessAsync(ProcessModel selectedProcess, string selectionReason) + { + try + { + var pendingSelection = this.GetPendingCoreSelectionMask(); + + await InvokeOnUiAsync(() => + { + this.SetStatus($"Setting affinity for {selectedProcess.Name}..."); + }); + + var result = await this.processAffinityApplyCoordinator.ApplyCoreSelectionAsync( + selectedProcess, + pendingSelection, + selectionReason); + + await InvokeOnUiAsync(() => + { + if (!result.UsedCpuSets) + { + this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); + } + + selectedProcess.ForceNotifyProcessorAffinityChanged(); + this.OnPropertyChanged(nameof(this.SelectedProcess)); + + if (result.Success) + { + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + this.SetStatus($"Affinity applied successfully to {selectedProcess.Name} (0x{result.VerifiedMask:X}).", false); + _ = this.notificationService.ShowNotificationAsync("Affinity applied", $"{selectedProcess.Name}: 0x{result.VerifiedMask:X}", NotificationType.Success); + } + else if (result.FailureReason == AffinityApplyFailureReason.VerificationMismatch) + { + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + this.SetStatus(result.Message, false); + _ = this.notificationService.ShowNotificationAsync("Affinity adjusted", result.Message, NotificationType.Warning); + } + else if (result.FailureReason == AffinityApplyFailureReason.ProcessTerminated) + { + this.SelectedProcess = null; + this.ClearProcessSelection(); + this.SetCriticalStatus(result.Message); + _ = this.notificationService.ShowNotificationAsync("Affinity failed", result.Message, NotificationType.Warning); + } + else if (result.FailureReason == AffinityApplyFailureReason.AccessDenied) + { + this.SetCriticalStatus(result.Message); + _ = this.notificationService.ShowNotificationAsync("Affinity blocked", result.Message, NotificationType.Warning); + } + else if (result.IsInvalidTopology || result.IsLegacyFallbackBlocked) + { + this.SetCriticalStatus(result.Message); + _ = this.notificationService.ShowNotificationAsync("Affinity blocked", result.Message, NotificationType.Warning); + } + else + { + this.SetStatus(result.Message, false); + _ = this.notificationService.ShowNotificationAsync("Affinity error", result.Message, NotificationType.Error); + } + }); + + await this.LogUserActionAsync( + result.Success ? "ProcessAffinityApplied" : "ProcessAffinityFailed", + result.Message, + $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}, RequestedMask: 0x{result.RequestedMask:X}, VerifiedMask: 0x{result.VerifiedMask:X}"); + await this.UpdateSelectedProcessSummaryAsync(selectedProcess); + } + catch (Exception ex) + { + var friendly = ex.Message; + _ = this.notificationService.ShowNotificationAsync("Affinity error", friendly, NotificationType.Error); + await this.LogUserActionAsync( + "ProcessAffinityFailed", + friendly, + $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}"); + + await InvokeOnUiAsync(() => + { + this.SetCriticalStatus($"Error setting affinity: {friendly}"); + }); + + // Try to refresh process info even if setting failed, to show current state + try + { + if (this.SelectedProcess != null) + { + await this.processService.RefreshProcessInfo(this.SelectedProcess); + } + + await InvokeOnUiAsync(() => + { + if (this.SelectedProcess != null) + { + this.UpdateCoreSelections(this.SelectedProcess.ProcessorAffinity, true); + this.OnPropertyChanged(nameof(this.SelectedProcess)); + } + }); + } + catch + { + // Process may have terminated + } + + await this.UpdateSelectedProcessSummaryAsync(selectedProcess); + } + finally + { + await InvokeOnUiAsync(() => + { + this.ClearStatus(); + }); + } + } + + private static Task InvokeOnUiAsync(Action action) + { + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher == null || dispatcher.CheckAccess()) + { + action(); + return Task.CompletedTask; + } + + return dispatcher.InvokeAsync(action).Task; + } + + private static Task InvokeOnUiAsync(Func action) + { + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher == null || dispatcher.CheckAccess()) + { + return action(); + } + + return dispatcher.InvokeAsync(action).Task.Unwrap(); + } + + [RelayCommand] + private async Task ApplyAffinityPreset(CpuAffinityPreset preset) + { + if (preset == null || !preset.IsAvailable || this.CpuTopology == null) + { + return; + } + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + try + { + this.suppressCoreSelectionEvents = true; + + // Clear all selections first + foreach (var core in this.CpuCores) + { + core.IsSelected = false; + } + + // Apply preset mask + foreach (var core in this.CpuCores) + { + core.IsSelected = (preset.AffinityMask & core.AffinityMask) != 0; + } + + // Notify UI of changes + this.OnPropertyChanged(nameof(this.CpuCores)); + this.SetStatus($"Applied preset: {preset.Name}"); + } + finally + { + this.suppressCoreSelectionEvents = false; + } + + // Keep the preset as a pending selection; affinity changes require an explicit apply command. + this.HasPendingAffinityEdits = true; + this.UpdateAffinityDisplayState(); + }); + } + + + [RelayCommand] + private void CreateCustomMask() + { + // Request to switch to Core Masks tab + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + var mainWindow = System.Windows.Application.Current.MainWindow; + if (mainWindow != null) + { + // Find the TabControl in MainWindow + var tabControl = FindVisualChild(mainWindow); + if (tabControl != null) + { + // Switch to Core Masks tab (index 1) + tabControl.SelectedIndex = 1; + } + } + }); + } + + private static T? FindVisualChild(System.Windows.DependencyObject obj) + where T : System.Windows.DependencyObject + { + for (int i = 0; i < System.Windows.Media.VisualTreeHelper.GetChildrenCount(obj); i++) + { + var child = System.Windows.Media.VisualTreeHelper.GetChild(obj, i); + if (child is T typedChild) + { + return typedChild; + } + + var childOfChild = FindVisualChild(child); + if (childOfChild != null) + { + return childOfChild; + } + } + return null; + } + + partial void OnSelectedCoreMaskChanged(CoreMask? oldValue, CoreMask? newValue) + { + if (newValue == null) + return; + + UpdateCoreSelectionsFromMask(newValue); + } + + private async Task ApplyCoreMaskToProcessAsync(CoreMask mask) + { + var selectedProcess = this.SelectedProcess; + if (selectedProcess == null || mask == null) + { + return; + } + + this.IsBusy = true; + try + { + this.Logger.LogInformation( + "Applying mask '{MaskName}' to process {ProcessName} (PID: {ProcessId})", + mask.Name, selectedProcess.Name, selectedProcess.ProcessId); + + // Disable Windows Game Mode for better CPU affinity control + // Game Mode can interfere with CPU Sets, particularly on AMD systems + await this.gameModeService.DisableGameModeForAffinityAsync(); + + var result = await this.processAffinityApplyCoordinator.ApplyCoreMaskAsync(selectedProcess, mask); + + System.Windows.Application.Current.Dispatcher.Invoke(() => + { + selectedProcess.ForceNotifyProcessorAffinityChanged(); + if (!result.UsedCpuSets) + { + this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); + } + + this.OnPropertyChanged(nameof(this.SelectedProcess)); + }); + + if (!result.Success) + { + this.SetStatus(result.Message); + this.Logger.LogWarning( + "Failed to apply mask '{MaskName}' to process {ProcessName}: {Message}", + mask.Name, + selectedProcess.Name, + result.Message); + return; + } + + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + this.SetStatus($"Applied mask '{mask.Name}' to {selectedProcess.Name}"); + this.Logger.LogInformation("Successfully applied mask '{MaskName}' to {ProcessName}", mask.Name, selectedProcess.Name); + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Failed to apply mask '{MaskName}' to process {ProcessName}", + mask.Name, selectedProcess.Name); + this.SetStatus($"Error applying mask: {ex.Message}"); + } + finally + { + this.IsBusy = false; + } + } + + private void UpdateCoreSelectionsFromMask(CoreMask mask) + { + if (mask == null || this.CpuCores.Count == 0) + { + return; + } + + try + { + this.suppressCoreSelectionEvents = true; + + for (int i = 0; i < this.CpuCores.Count && i < mask.BoolMask.Count; i++) + { + this.CpuCores[i].IsSelected = mask.BoolMask[i]; + } + + this.OnPropertyChanged(nameof(this.CpuCores)); + this.HasPendingAffinityEdits = this.SelectedProcess != null; + this.UpdateAffinityDisplayState(); + } + finally + { + this.suppressCoreSelectionEvents = false; + } + } + + + [RelayCommand] + private async Task QuickApplyAffinityAndPowerPlan() + { + var selectedProcess = this.SelectedProcess; + if (selectedProcess == null) + { + return; + } + + try + { + var affinityAppliedWithCpuSets = false; + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Applying pending settings to {selectedProcess.Name}..."); + }); + + // Apply CPU affinity + var pendingSelection = this.GetPendingCoreSelectionMask(); + if (pendingSelection.Any(selected => selected)) + { + var result = await this.processAffinityApplyCoordinator.ApplyCoreSelectionAsync( + selectedProcess, + pendingSelection, + "Manual Process tab quick apply CPU selection"); + if (!result.Success) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + if (!result.UsedCpuSets) + { + this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); + } + + selectedProcess.ForceNotifyProcessorAffinityChanged(); + this.OnPropertyChanged(nameof(this.SelectedProcess)); + this.SetStatus(result.Message, false); + }); + return; + } + + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + affinityAppliedWithCpuSets = result.UsedCpuSets; + } + + // Apply power plan if selected + if (this.SelectedPowerPlan != null) + { + await this.powerPlanService.SetActivePowerPlan(this.SelectedPowerPlan); + } + + await this.processService.RefreshProcessInfo(selectedProcess); + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + if (!affinityAppliedWithCpuSets) + { + this.UpdateCoreSelections(selectedProcess.ProcessorAffinity, true); + } + else + { + this.UpdateAffinityDisplayState(); + } + + selectedProcess.ForceNotifyProcessorAffinityChanged(); + this.OnPropertyChanged(nameof(this.SelectedProcess)); + }); + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Pending settings applied to {selectedProcess.Name}.", false); + }); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Error applying pending settings: {ex.Message}", false); + }); + } + } + + [RelayCommand] + private async Task RefreshTopology() + { + try + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus("Refreshing CPU topology..."); + }); + await this.cpuTopologyService.RefreshTopologyAsync(); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Error refreshing topology: {ex.Message}", false); + }); + } + } + + [RelayCommand] + private async Task SetPowerPlan() + { + if (this.SelectedPowerPlan == null) + { + return; + } + + try + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Setting power plan to {this.SelectedPowerPlan.Name}..."); + }); + + var success = await this.powerPlanService.SetActivePowerPlan(this.SelectedPowerPlan); + + await this.RefreshPowerPlansAsync(); + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + var activePlan = this.PowerPlans.FirstOrDefault(p => p.IsActive); + if (success && activePlan?.Guid == this.SelectedPowerPlan.Guid) + { + this.SetStatus($"Power plan set successfully to {this.SelectedPowerPlan.Name}", false); + } + else + { + this.SetStatus($"Power plan change attempted - current plan: {activePlan?.Name ?? "Unknown"}", false); + } + }); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Error setting power plan: {ex.Message}", false); + }); + + try + { + await this.RefreshPowerPlansAsync(); + } + catch + { + // ignored + } + } + finally + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(this.ClearStatus); + } + } + + [RelayCommand] + private async Task SetPriority(ProcessPriorityClass priority) + { + var selectedProcess = this.SelectedProcess; + if (selectedProcess == null) + { + return; + } + + if (ProcessPriorityGuardrails.IsBlocked(priority)) + { + var message = ProcessOperationUserMessages.RealtimePriorityBlocked; + await InvokeOnUiAsync(() => + { + this.SetCriticalStatus(message); + }); + _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); + await this.LogUserActionAsync( + "ProcessPriorityBlocked", + message, + $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}, Priority: {priority}"); + return; + } + + try + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Setting priority for {selectedProcess.Name} to {priority}..."); + }); + + // Apply the priority change + await this.processService.SetProcessPriority(selectedProcess, priority); + + // Immediately refresh the process to get the actual system state + await this.processService.RefreshProcessInfo(selectedProcess); + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + // Notify UI that the process properties have changed + this.OnPropertyChanged(nameof(this.SelectedProcess)); + + // Verify the priority was set correctly + if (selectedProcess.Priority == priority) + { + var warning = ProcessPriorityGuardrails.GetWarning(priority); + if (!string.IsNullOrWhiteSpace(warning)) + { + this.SetCriticalStatus(warning); + _ = this.notificationService.ShowNotificationAsync("Priority warning", warning, NotificationType.Warning); + } + else + { + this.SetStatus($"Priority applied successfully to {selectedProcess.Name}: {priority}.", false); + _ = this.notificationService.ShowNotificationAsync("Priority applied", $"{selectedProcess.Name}: {priority}", NotificationType.Success); + } + } + else + { + this.SetStatus($"Priority adjusted by system for {selectedProcess.Name} to {selectedProcess.Priority}.", false); + _ = this.notificationService.ShowNotificationAsync("Priority adjusted", $"{selectedProcess.Name}: {selectedProcess.Priority}", NotificationType.Warning); + } + }); + await this.LogUserActionAsync( + "ProcessPriorityChanged", + $"CPU priority changed for {selectedProcess.Name}: {priority}", + $"PID: {selectedProcess.ProcessId}"); + } + catch (Exception ex) + { + var message = ex.Message; + if (message.Contains("Realtime priority is blocked", StringComparison.OrdinalIgnoreCase)) + { + message = ProcessOperationUserMessages.RealtimePriorityBlocked; + _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); + } + else if (message.Contains("Access denied", StringComparison.OrdinalIgnoreCase) || + message.Contains("anti-cheat", StringComparison.OrdinalIgnoreCase)) + { + message = ProcessOperationUserMessages.AccessDenied; + _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); + } + else + { + _ = this.notificationService.ShowNotificationAsync("Priority error", message, NotificationType.Error); + } + + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetCriticalStatus($"Error setting priority: {message}"); + }); + await this.LogUserActionAsync( + message == ProcessOperationUserMessages.RealtimePriorityBlocked ? "ProcessPriorityBlocked" : "ProcessPriorityChangeFailed", + message, + $"Process: {selectedProcess.Name}, PID: {selectedProcess.ProcessId}, Priority: {priority}"); + + // Try to refresh process info even if setting failed, to show current state + try + { + await this.processService.RefreshProcessInfo(selectedProcess); + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.OnPropertyChanged(nameof(this.SelectedProcess)); + }); + } + catch + { + // Process may have terminated + } + } + finally + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(this.ClearStatus); + } + } + + [RelayCommand] + private Task SetContextBelowNormalPriority(ProcessModel? process) => + this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.BelowNormal); + + [RelayCommand] + private Task SetContextNormalPriority(ProcessModel? process) => + this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.Normal); + + [RelayCommand] + private Task SetContextAboveNormalPriority(ProcessModel? process) => + this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.AboveNormal); + + [RelayCommand] + private Task SetContextHighPriority(ProcessModel? process) => + this.SetContextCpuPriorityAsync(process, ProcessPriorityClass.High); + + [RelayCommand] + private Task SetContextMemoryPriorityVeryLow(ProcessModel? process) => + this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.VeryLow); + + [RelayCommand] + private Task SetContextMemoryPriorityLow(ProcessModel? process) => + this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.Low); + + [RelayCommand] + private Task SetContextMemoryPriorityMedium(ProcessModel? process) => + this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.Medium); + + [RelayCommand] + private Task SetContextMemoryPriorityBelowNormal(ProcessModel? process) => + this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.BelowNormal); + + [RelayCommand] + private Task SetContextMemoryPriorityNormal(ProcessModel? process) => + this.SetContextMemoryPriorityAsync(process, ProcessMemoryPriority.Normal); + + [RelayCommand] + private async Task ClearContextCpuSets(ProcessModel? process) + { + if (process == null) + { + return; + } + + try + { + var success = await this.processService.ClearProcessCpuSetAsync(process); + if (!success) + { + this.SetContextError(ProcessOperationUserMessages.AccessDenied); + await this.LogUserActionAsync( + "CpuSetsClearFailed", + ProcessOperationUserMessages.AccessDenied, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + await this.processService.RefreshProcessInfo(process); + this.SetStatus($"CPU Sets cleared for {process.Name}.", false); + await this.LogUserActionAsync( + "CpuSetsCleared", + $"CPU Sets cleared for {process.Name}", + $"PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + catch (Exception ex) + { + var message = MapProcessOperationException(ex); + this.SetContextError(message); + await this.LogUserActionAsync( + "CpuSetsClearFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.TryRefreshContextProcessSummaryAsync(process); + } + } + + [RelayCommand] + private async Task RefreshContextProcessInfo(ProcessModel? process) + { + if (process == null) + { + return; + } + + try + { + await this.processService.RefreshProcessInfo(process); + this.SetStatus($"Process info refreshed for {process.Name}.", false); + await this.LogUserActionAsync( + "ProcessInfoRefreshed", + $"Process info refreshed for {process.Name}.", + $"PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + catch (Exception ex) + { + var message = MapProcessOperationException(ex); + this.SetContextError(message); + await this.LogUserActionAsync( + "ProcessInfoRefreshFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.TryRefreshContextProcessSummaryAsync(process); + } + } + + [RelayCommand] + private async Task OpenContextExecutableLocation(ProcessModel? process) + { + if (process == null) + { + return; + } + + var path = process.ExecutablePath; + if (string.IsNullOrWhiteSpace(path) || !File.Exists(path)) + { + var message = $"Executable path is unavailable for {process.Name}."; + this.SetContextError(message); + await this.LogUserActionAsync( + "ProcessExecutableOpenFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + try + { + this.executableLocationOpener(path); + this.SetStatus($"Opened executable location for {process.Name}.", false); + await this.LogUserActionAsync( + "ProcessExecutableLocationOpened", + $"Opened executable location for {process.Name}.", + path); + await this.UpdateSelectedProcessSummaryAsync(process); + } + catch (Exception ex) + { + var message = $"Could not open executable location: {ex.Message}"; + this.SetContextError(message); + await this.LogUserActionAsync( + "ProcessExecutableOpenFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + } + + [RelayCommand] + private async Task CopyContextProcessInfo(ProcessModel? process) + { + if (process == null) + { + return; + } + + await this.UpdateSelectedProcessSummaryAsync(process); + + var path = string.IsNullOrWhiteSpace(process.ExecutablePath) + ? "unavailable" + : process.ExecutablePath; + var builder = new StringBuilder() + .AppendLine($"Name: {process.Name}") + .AppendLine($"PID: {process.ProcessId}") + .AppendLine($"Path: {path}") + .AppendLine($"CPU priority: {process.Priority}") + .AppendLine($"Memory priority: {this.SelectedProcessSummary.MemoryPriority?.ToString() ?? "unavailable"}") + .AppendLine($"Affinity: 0x{process.ProcessorAffinity:X}") + .AppendLine($"Rule status: {this.SelectedProcessSummary.RuleStatusText}"); + + try + { + this.clipboardSetter(builder.ToString().TrimEnd()); + this.SetStatus($"Copied process info for {process.Name}.", false); + await this.LogUserActionAsync( + "ProcessInfoCopied", + $"Copied process info for {process.Name}.", + $"PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + catch (Exception ex) + { + var message = $"Could not copy process info: {ex.Message}"; + this.SetContextError(message); + await this.LogUserActionAsync( + "ProcessInfoCopyFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + } + + private async Task SetContextCpuPriorityAsync(ProcessModel? process, ProcessPriorityClass priority) + { + if (process == null) + { + return; + } + + if (ProcessPriorityGuardrails.IsBlocked(priority)) + { + this.SetContextError(ProcessOperationUserMessages.RealtimePriorityBlocked); + await this.LogUserActionAsync( + "ProcessPriorityBlocked", + ProcessOperationUserMessages.RealtimePriorityBlocked, + $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + try + { + await this.processService.SetProcessPriority(process, priority); + await this.processService.RefreshProcessInfo(process); + + var warning = ProcessPriorityGuardrails.GetWarning(priority); + if (!string.IsNullOrWhiteSpace(warning)) + { + this.SetCriticalStatus(warning); + _ = this.notificationService.ShowNotificationAsync("Priority warning", warning, NotificationType.Warning); + } + else + { + this.SetStatus($"Priority applied successfully to {process.Name}: {priority}.", false); + _ = this.notificationService.ShowNotificationAsync("Priority applied", $"{process.Name}: {priority}", NotificationType.Success); + } + + await this.LogUserActionAsync( + "ProcessPriorityChanged", + $"CPU priority changed for {process.Name}: {priority}", + $"PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + catch (Exception ex) + { + var message = MapProcessOperationException(ex); + this.SetContextError(message); + _ = this.notificationService.ShowNotificationAsync("Priority blocked", message, NotificationType.Warning); + await this.LogUserActionAsync( + "ProcessPriorityChangeFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); + await this.TryRefreshContextProcessSummaryAsync(process); + } + } + + private async Task SetContextMemoryPriorityAsync(ProcessModel? process, ProcessMemoryPriority priority) + { + if (process == null) + { + return; + } + + if (this.memoryPriorityService == null) + { + this.SetContextError("Memory priority is unavailable on this system."); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + try + { + var result = await this.memoryPriorityService.SetMemoryPriorityAsync(process, priority); + if (!result.Success) + { + var message = string.IsNullOrWhiteSpace(result.UserMessage) + ? ProcessOperationUserMessages.AccessDenied + : result.UserMessage; + this.SetContextError(message); + await this.LogUserActionAsync( + "ProcessMemoryPriorityFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); + await this.UpdateSelectedProcessSummaryAsync(process); + return; + } + + this.SetStatus($"Memory priority applied successfully to {process.Name}: {priority}.", false); + await this.LogUserActionAsync( + "ProcessMemoryPriorityChanged", + $"Memory priority changed for {process.Name}: {priority}", + $"PID: {process.ProcessId}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + catch (Exception ex) + { + var message = MapProcessOperationException(ex); + this.SetContextError(message); + await this.LogUserActionAsync( + "ProcessMemoryPriorityFailed", + message, + $"Process: {process.Name}, PID: {process.ProcessId}, Priority: {priority}"); + await this.UpdateSelectedProcessSummaryAsync(process); + } + } + + private async Task TryRefreshContextProcessSummaryAsync(ProcessModel process) + { + try + { + await this.processService.RefreshProcessInfo(process); + } + catch + { + // The selected process may have exited or become inaccessible; keep the safe user message. + } + + await this.UpdateSelectedProcessSummaryAsync(process); + } + + private void SetContextError(string message) + { + this.SetStatus(message, false); + this.SetError(message); + } + + private static string MapProcessOperationException(Exception exception) + { + var message = exception.Message ?? string.Empty; + if (message.Contains("Realtime priority", StringComparison.OrdinalIgnoreCase)) + { + return ProcessOperationUserMessages.RealtimePriorityBlocked; + } + + if (message.Contains("anti-cheat", StringComparison.OrdinalIgnoreCase) || + message.Contains("protected", StringComparison.OrdinalIgnoreCase)) + { + return ProcessOperationUserMessages.AntiCheatProtectedLikely; + } + + if (message.Contains("exited", StringComparison.OrdinalIgnoreCase) || + message.Contains("terminated", StringComparison.OrdinalIgnoreCase) || + message.Contains("no longer exists", StringComparison.OrdinalIgnoreCase)) + { + return ProcessOperationUserMessages.ProcessExited; + } + + if (exception is UnauthorizedAccessException || + message.Contains("access denied", StringComparison.OrdinalIgnoreCase) || + message.Contains("denied", StringComparison.OrdinalIgnoreCase)) + { + return ProcessOperationUserMessages.AccessDenied; + } + + return string.IsNullOrWhiteSpace(message) ? ProcessOperationUserMessages.AccessDenied : message; + } + + [RelayCommand] + private async Task SaveProfile() + { + if (this.SelectedProcess == null || string.IsNullOrWhiteSpace(this.ProfileName)) + { + return; + } + + try + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Saving profile {this.ProfileName}..."); + }); + await this.processService.SaveProcessProfile(this.ProfileName, this.SelectedProcess); + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.ClearStatus(); + }); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Error saving profile: {ex.Message}", false); + }); + } + } + + [RelayCommand] + private async Task LoadProfile() + { + if (this.SelectedProcess == null || string.IsNullOrWhiteSpace(this.ProfileName)) + { + return; + } + + try + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetStatus($"Loading profile {this.ProfileName}..."); + }); + var success = await this.processService.LoadProcessProfile(this.ProfileName, this.SelectedProcess); + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + if (success) + { + this.ClearStatus(); + } + else + { + this.SetCriticalStatus($"Profile {this.ProfileName} could not be fully applied."); + } + }); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetCriticalStatus($"Error loading profile: {ex.Message}"); + }); + } + } + + private void SetupRefreshTimer() + { + this.refreshTimer = new System.Timers.Timer(5000); // PERFORMANCE OPTIMIZATION: Increased to 5 second refresh for better performance + this.refreshTimer.Elapsed += async (s, e) => + { + if (this.isUiRefreshPaused || !this.isProcessViewActive) + { + return; + } + + try + { + // Marshal timer callback to UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + if (this.isUiRefreshPaused || !this.isProcessViewActive) + { + return; + } + + await this.RefreshProcessesCommand.ExecuteAsync(null); + }); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Timer refresh error: {ex.Message}"); + } + }; + // Don't start automatically - only start when needed + } + + public void PauseRefresh() + { + this.SetUiRefreshEnabled(false, refreshImmediately: false); + } + + public void ResumeRefresh() + { + this.SetUiRefreshEnabled(true, refreshImmediately: true); + } + + public void ApplyRefreshDecision(AppRefreshDecision decision) + { + ArgumentNullException.ThrowIfNull(decision); + + this.isVirtualizedPreloadAllowedByPolicy = decision.VirtualizedPreloadEnabled; + this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); + this.SetUiRefreshEnabled( + decision.ProcessUiRefreshEnabled && !this.IsProcessListLocked, + decision.ImmediateProcessRefresh && !this.IsProcessListLocked); + } + + public void SetProcessViewActive(bool isActive) + { + if (this.isProcessViewActive == isActive) + { + this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); + return; + } + + this.isProcessViewActive = isActive; + this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); + + if (!isActive) + { + this.refreshTimer?.Stop(); + return; + } + + if (!this.isUiRefreshPaused) + { + this.refreshTimer?.Start(); + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + try + { + await this.RefreshProcessesCommand.ExecuteAsync(null); + } + catch (Exception ex) + { + this.Logger.LogDebug(ex, "Immediate process refresh after returning to process view failed"); + } + }); + } + } + + public void SetUiRefreshEnabled(bool enabled, bool refreshImmediately = true) + { + this.isUiRefreshPaused = !enabled; + this.virtualizedProcessService.Configuration.EnableBackgroundLoading = this.ShouldPreloadVirtualizedBatches(); + + if (!enabled) + { + this.refreshTimer?.Stop(); + return; + } + + if (this.isProcessViewActive) + { + this.refreshTimer?.Start(); + } + + if (!refreshImmediately || !this.isProcessViewActive) + { + return; + } + + TaskSafety.FireAndForget( + InvokeOnUiAsync(async () => + { + if (this.isUiRefreshPaused) + { + return; + } + + try + { + this.ClearStatus(); + await this.RefreshProcessesCommand.ExecuteAsync(null); + } + catch (Exception ex) + { + this.Logger.LogDebug(ex, "Immediate process refresh after resume failed"); + } + }), + ex => this.Logger.LogDebug(ex, "Immediate process refresh dispatch after resume failed")); + } + + partial void OnIsProcessListLockedChanged(bool value) + { + this.SetUiRefreshEnabled(!value, refreshImmediately: !value); + + _ = this.LogUserActionAsync( + "ProcessListLockChanged", + value ? "Lock process list enabled." : "Lock process list disabled."); + } + + private bool ShouldRunProcessUiRefresh() + { + return this.isProcessViewActive && !this.isUiRefreshPaused && !this.IsProcessListLocked; + } + + private bool ShouldPreloadVirtualizedBatches() + { + return this.IsVirtualizationEnabled + && this.isVirtualizedPreloadAllowedByPolicy + && this.ShouldRunProcessUiRefresh() + && !this.IsProcessListLocked; + } + + private Task PreloadNextBatchIfAllowedAsync(int currentBatchIndex) + { + return this.ShouldPreloadVirtualizedBatches() + ? this.virtualizedProcessService.PreloadNextBatchAsync(currentBatchIndex, this.ShowActiveApplicationsOnly) + : Task.CompletedTask; + } + + partial void OnSearchTextChanged(string value) + { + this.searchRefreshCoordinator.Schedule(); + } + + partial void OnShowActiveApplicationsOnlyChanged(bool value) + { + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + await LoadProcessesCommand.ExecuteAsync(null); + }); + } + + partial void OnHideSystemProcessesChanged(bool value) + { + this.filterRefreshCoordinator.Schedule(); + } + + partial void OnHideIdleProcessesChanged(bool value) + { + this.filterRefreshCoordinator.Schedule(); + } + + partial void OnSortModeChanged(string value) + { + this.filterRefreshCoordinator.Schedule(); + } + + partial void OnIsIdleServerDisabledChanged(bool value) + { + if (SelectedProcess != null) + { + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + await ToggleIdleServerAsync(value); + }); + } + } + + partial void OnIsRegistryPriorityEnabledChanged(bool value) + { + if (SelectedProcess != null) + { + _ = System.Windows.Application.Current.Dispatcher.InvokeAsync(async () => + { + await ToggleRegistryPriorityAsync(value); + }); + } + } + + private void FilterProcesses() + { + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher != null && !dispatcher.CheckAccess()) + { + dispatcher.Invoke(this.FilterProcesses); + return; + } + + if (this.isApplyingFilter) + { + this.filterRefreshPending = true; + return; + } + + this.isApplyingFilter = true; + + try + { + do + { + this.filterRefreshPending = false; + + var criteria = new ProcessFilterCriteria + { + SearchText = this.SearchText, + HideSystemProcesses = this.HideSystemProcesses, + HideIdleProcesses = this.HideIdleProcesses, + SortMode = this.SortMode, + }; + + var filteredResults = this.processFilterService.FilterAndSort(this.Processes, criteria); + this.FilteredProcesses = new ObservableCollection(filteredResults); + } + while (this.filterRefreshPending); + } + finally + { + this.isApplyingFilter = false; + } + } + + private async Task LoadProcessPowerPlanAssociation(ProcessModel process) + { + try + { + await this.RefreshPowerPlansAsync(); + } + catch (Exception ex) + { + this.Logger.LogWarning(ex, "Failed to load power plan association for process {ProcessName}", process.Name); + } + } + + private void ClearProcessSelection() + { + // Clear CPU core selections + foreach (var core in this.CpuCores) + { + core.IsSelected = false; + } + + this.HasPendingAffinityEdits = false; + this.UpdateAffinityDisplayState(); + + // Reset power plan to current system default + _ = Task.Run(async () => + { + try + { + await this.RefreshPowerPlansAsync(); + } + catch (Exception ex) + { + this.Logger.LogWarning(ex, "Failed to reset power plan selection"); + } + }); + + // Notify UI of changes + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + // Reset feature states + this.IsIdleServerDisabled = false; + this.IsRegistryPriorityEnabled = false; + + this.OnPropertyChanged(nameof(this.CpuCores)); + + // BUG FIX: Clear status without setting busy state and auto-clear after delay + this.SetStatus("Process selection cleared", false); + + // Clear the status after a short delay + _ = Task.Delay(2000).ContinueWith(_ => + { + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + if (this.StatusMessage == "Process selection cleared") + { + this.ClearStatus(); + } + }); + }); + }); + } + + private async Task ToggleIdleServerAsync(bool disable) + { + if (this.SelectedProcess == null) + { + return; + } + + try + { + this.SetStatus($"{(disable ? "Disabling" : "Enabling")} idle server for {this.SelectedProcess.Name}..."); + + // Implementation for disabling/enabling idle server + // This typically involves setting process execution state or power management settings + var success = await this.processService.SetIdleServerStateAsync(this.SelectedProcess, !disable); + + if (success) + { + this.SelectedProcess.IsIdleServerDisabled = disable; + this.SetStatus($"Idle server {(disable ? "disabled" : "enabled")} for {this.SelectedProcess.Name}"); + + await this.LogUserActionAsync( + "IdleServer", + $"Idle server {(disable ? "disabled" : "enabled")} for process {this.SelectedProcess.Name}", + $"PID: {this.SelectedProcess.ProcessId}"); + } + else + { + this.SetStatus($"Failed to {(disable ? "disable" : "enable")} idle server for {this.SelectedProcess.Name}", false); + // Revert the UI state + this.IsIdleServerDisabled = !disable; + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Error toggling idle server for process {ProcessName}", this.SelectedProcess.Name); + this.SetStatus($"Error: {ex.Message}", false); + // Revert the UI state + this.IsIdleServerDisabled = !disable; + } + } + + private async Task ToggleRegistryPriorityAsync(bool enable) + { + if (this.SelectedProcess == null) + { + return; + } + + try + { + this.SetStatus($"{(enable ? "Enabling" : "Disabling")} registry priority enforcement for {this.SelectedProcess.Name}..."); + + // Implementation for registry-based priority setting + var success = await this.processService.SetRegistryPriorityAsync(this.SelectedProcess, enable, this.SelectedProcess.Priority); + + if (success) + { + this.SelectedProcess.IsRegistryPriorityEnabled = enable; + + if (enable) + { + this.SetStatus($"Registry priority enforcement enabled for {this.SelectedProcess.Name}. Process restart required for changes to take effect."); + + // Show notification about restart requirement + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + System.Windows.MessageBox.Show( + $"Registry priority has been set for {this.SelectedProcess.Name}.\n\n" + + "The process must be restarted for the registry changes to take effect.\n\n" + + $"{ProcessOperationUserMessages.PersistentLaunchTimePriorityNotice}\n\n" + + "This setting will persist across system reboots and will automatically apply the selected priority when the process starts.", + "Registry Priority Set - Restart Required", + System.Windows.MessageBoxButton.OK, + System.Windows.MessageBoxImage.Information); + }); + } + else + { + this.SetStatus($"Registry priority enforcement disabled for {this.SelectedProcess.Name}"); + } + + await this.LogUserActionAsync( + "RegistryPriority", + $"Registry priority enforcement {(enable ? "enabled" : "disabled")} for process {this.SelectedProcess.Name}", + $"PID: {this.SelectedProcess.ProcessId}, Priority: {this.SelectedProcess.Priority}"); + } + else + { + this.SetStatus($"Failed to {(enable ? "enable" : "disable")} registry priority enforcement for {this.SelectedProcess.Name}", false); + // Revert the UI state + this.IsRegistryPriorityEnabled = !enable; + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Error toggling registry priority for process {ProcessName}", this.SelectedProcess.Name); + this.SetStatus($"Error: {ex.Message}", false); + // Revert the UI state + this.IsRegistryPriorityEnabled = !enable; + } + } + + [RelayCommand] + private void OpenRulesTab() + { + this.OpenRulesRequested?.Invoke(this, EventArgs.Empty); + } + + [RelayCommand] + private async Task SaveCurrentAsAssociation() + { + if (this.SelectedProcess == null) + { + await this.notificationService.ShowNotificationAsync( + "No Process Selected", + "Please select a process to save as an association", NotificationType.Warning); + return; + } + + try + { + this.SetStatus($"Saving rule for {this.SelectedProcess.Name}..."); + + // Get current power plan + var currentPowerPlan = await this.powerPlanService.GetActivePowerPlan(); + + // Create new association + var association = new ProcessPowerPlanAssociation + { + ExecutableName = this.SelectedProcess.Name, + ExecutablePath = this.SelectedProcess.ExecutablePath ?? string.Empty, + PowerPlanGuid = currentPowerPlan?.Guid ?? string.Empty, + PowerPlanName = currentPowerPlan?.Name ?? "Unknown", + CoreMaskId = this.SelectedCoreMask?.Id, + CoreMaskName = this.SelectedCoreMask?.Name, + ProcessPriority = this.SelectedProcess.Priority.ToString(), + MatchByPath = !string.IsNullOrEmpty(this.SelectedProcess.ExecutablePath), + Priority = 0, + Description = $"Saved from Process Management on {DateTime.Now:g}", + IsEnabled = true, + }; + + // Try to add the association + var success = await this.associationService.AddAssociationAsync(association); + + if (success) + { + this.SetStatus($"Rule created for {this.SelectedProcess.Name} and ready for auto-apply.", false); + await this.notificationService.ShowNotificationAsync( + "Rule Saved", + $"Settings for {this.SelectedProcess.Name} saved successfully", NotificationType.Success); + + await this.LogUserActionAsync( + "SaveAssociation", + $"Saved association for process {this.SelectedProcess.Name}", + $"PID: {this.SelectedProcess.ProcessId}, PowerPlan: {currentPowerPlan?.Name}, " + + $"CoreMask: {this.SelectedCoreMask?.Name ?? "None"}, Priority: {this.SelectedProcess.Priority}"); + } + else + { + var existingAssociation = await this.associationService.FindAssociationByExecutableAsync(this.SelectedProcess.Name); + if (existingAssociation != null) + { + existingAssociation.ExecutablePath = association.ExecutablePath; + existingAssociation.PowerPlanGuid = association.PowerPlanGuid; + existingAssociation.PowerPlanName = association.PowerPlanName; + existingAssociation.CoreMaskId = association.CoreMaskId; + existingAssociation.CoreMaskName = association.CoreMaskName; + existingAssociation.ProcessPriority = association.ProcessPriority; + existingAssociation.MatchByPath = association.MatchByPath; + existingAssociation.Description = association.Description; + existingAssociation.IsEnabled = true; + existingAssociation.UpdatedAt = DateTime.UtcNow; + + var updated = await this.associationService.UpdateAssociationAsync(existingAssociation); + if (updated) + { + this.SetStatus($"Existing rule updated for {this.SelectedProcess.Name}.", false); + await this.notificationService.ShowNotificationAsync( + "Rule Updated", + $"Existing rule for {this.SelectedProcess.Name} was updated", NotificationType.Information); + } + else + { + this.SetStatus($"Failed to update existing rule for {this.SelectedProcess.Name}", false); + await this.notificationService.ShowNotificationAsync( + "Rule Update Failed", + $"Could not update existing rule for {this.SelectedProcess.Name}", NotificationType.Warning); + } + } + else + { + this.SetStatus($"Rule already exists for {this.SelectedProcess.Name}", false); + await this.notificationService.ShowNotificationAsync( + "Rule Exists", + $"A rule for {this.SelectedProcess.Name} already exists", NotificationType.Warning); + } + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Error saving association for process {ProcessName}", this.SelectedProcess.Name); + this.SetStatus($"Error saving rule: {ex.Message}", false); + await this.notificationService.ShowNotificationAsync( + "Error", + $"Failed to save rule: {ex.Message}", NotificationType.Error); + } + } + + protected override void OnDispose() + { + this.refreshTimer?.Stop(); + this.refreshTimer?.Dispose(); + this.refreshTimer = null; + + this.searchRefreshCoordinator.Dispose(); + this.filterRefreshCoordinator.Dispose(); + + this.cpuTopologyService.TopologyDetected -= this.OnTopologyDetected; + this.systemTrayService.QuickApplyRequested -= this.OnTrayQuickApplyRequested; + + base.OnDispose(); + } + } +} diff --git a/ViewModels/ProcessViewModel.cs b/ViewModels/ProcessViewModel.cs index 31ba5fc..62e9af8 100644 --- a/ViewModels/ProcessViewModel.cs +++ b/ViewModels/ProcessViewModel.cs @@ -1,282 +1,266 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.ComponentModel; - using System.Diagnostics; - using System.Linq; - using System.Threading.Tasks; - using System.Windows.Input; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using Microsoft.Extensions.Logging.Abstractions; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public partial class ProcessViewModel : BaseViewModel - { - public event EventHandler? OpenRulesRequested; - - private readonly IProcessService processService; - private readonly ProcessFilterService processFilterService; - private readonly IVirtualizedProcessService virtualizedProcessService; - private readonly ICpuTopologyService cpuTopologyService; - private readonly IPowerPlanService powerPlanService; - private readonly INotificationService notificationService; - private readonly ISystemTrayService systemTrayService; - private readonly ICoreMaskService coreMaskService; - private readonly IProcessPowerPlanAssociationService associationService; - private readonly IGameModeService gameModeService; - private readonly IAffinityApplyService affinityApplyService; - private readonly IProcessAffinityApplyCoordinator processAffinityApplyCoordinator; - private readonly IProcessMemoryPriorityService? memoryPriorityService; - private readonly IProcessRuleCreationService? processRuleCreationService; - private readonly Action clipboardSetter; - private readonly Action executableLocationOpener; - private System.Timers.Timer? refreshTimer; - private bool isUiRefreshPaused; - private bool isProcessViewActive = true; - private bool isVirtualizedPreloadAllowedByPolicy = true; - private int isRefreshProcessesInProgress; - private readonly ThrottledRefreshCoordinator searchRefreshCoordinator; - private readonly ThrottledRefreshCoordinator filterRefreshCoordinator; - private bool isApplyingFilter; - private bool filterRefreshPending; - private bool suppressCoreSelectionEvents; - - [ObservableProperty] - private ObservableCollection processes = new(); - - [ObservableProperty] - private ProcessModel? selectedProcess; - - [ObservableProperty] - private string searchText = string.Empty; - - [ObservableProperty] - private ObservableCollection filteredProcesses = new(); - - [ObservableProperty] - private string profileName = string.Empty; - - // CPU Topology and Affinity - [ObservableProperty] - private CpuTopologyModel? cpuTopology; - - [ObservableProperty] - private ObservableCollection cpuCores = new(); - - [ObservableProperty] - private ObservableCollection affinityPresets = new(); - - // Core Masks - Available masks from the service - [ObservableProperty] - private ObservableCollection availableCoreMasks = new(); - - [ObservableProperty] - private CoreMask? selectedCoreMask; - - [ObservableProperty] - private bool hasPendingAffinityEdits; - - [ObservableProperty] - private string currentAffinityText = "Current OS affinity: no process selected"; - - [ObservableProperty] - private string pendingAffinityText = "Pending core mask: none"; - - [ObservableProperty] - private string affinityEditStateText = "Select a process to view its current Windows affinity."; - - [ObservableProperty] - private bool isTopologyDetectionSuccessful = false; - - [ObservableProperty] - private string topologyStatus = "Detecting CPU topology..."; - - [ObservableProperty] - private bool areAdvancedFeaturesAvailable = false; - - [ObservableProperty] - private PowerPlanModel? selectedPowerPlan; - - [ObservableProperty] - private ObservableCollection powerPlans = new(); - - // Note: EnableHyperThreading property removed - now using read-only status indicator - - [ObservableProperty] - private bool showActiveApplicationsOnly = false; - - [ObservableProperty] - private bool hideSystemProcesses = false; - - [ObservableProperty] - private bool hideIdleProcesses = false; - - [ObservableProperty] - private string sortMode = "CpuUsage"; - - // Hyperthreading/SMT Status Properties - [ObservableProperty] - private string hyperThreadingStatusText = "Multi-Threading: Unknown"; - - [ObservableProperty] - private bool isHyperThreadingActive = false; - - // New feature properties - [ObservableProperty] - private bool isIdleServerDisabled = false; - - [ObservableProperty] - private bool isRegistryPriorityEnabled = false; - - [ObservableProperty] - private bool isProcessListLocked = false; - - // PERFORMANCE IMPROVEMENT: Progressive loading support - [ObservableProperty] - private double loadingProgress = 0.0; - - [ObservableProperty] - private string loadingStatusText = string.Empty; - - // VIRTUALIZATION ENHANCEMENT: Batch loading support - [ObservableProperty] - private int currentBatchIndex = 0; - - [ObservableProperty] - private int totalBatches = 0; - - [ObservableProperty] - private int totalProcessCount = 0; - - [ObservableProperty] - private bool hasMoreBatches = false; - - [ObservableProperty] - private bool isVirtualizationEnabled = true; - - public ProcessViewModel( - ILogger logger, - IProcessService processService, - ProcessFilterService processFilterService, - IVirtualizedProcessService virtualizedProcessService, - ICpuTopologyService cpuTopologyService, - IPowerPlanService powerPlanService, - INotificationService notificationService, - ISystemTrayService systemTrayService, - ICoreMaskService coreMaskService, - IProcessPowerPlanAssociationService associationService, - IGameModeService gameModeService, - IAffinityApplyService? affinityApplyService = null, - IProcessAffinityApplyCoordinator? processAffinityApplyCoordinator = null, - ICpuTopologyProvider? cpuTopologyProvider = null, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null, - IProcessMemoryPriorityService? memoryPriorityService = null, - IPersistentProcessRuleStore? persistentRuleStore = null, - IPersistentProcessRuleMatcher? persistentRuleMatcher = null, - IProcessRuleCreationService? processRuleCreationService = null, - Action? clipboardSetter = null, - Action? executableLocationOpener = null, - ILocalizationService? localizationService = null) - : base(logger, enhancedLoggingService, activityAuditService) - { - this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); - this.processFilterService = processFilterService ?? throw new ArgumentNullException(nameof(processFilterService)); - this.virtualizedProcessService = virtualizedProcessService ?? throw new ArgumentNullException(nameof(virtualizedProcessService)); - this.cpuTopologyService = cpuTopologyService ?? throw new ArgumentNullException(nameof(cpuTopologyService)); - this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); - this.notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); - this.systemTrayService = systemTrayService ?? throw new ArgumentNullException(nameof(systemTrayService)); - this.coreMaskService = coreMaskService ?? throw new ArgumentNullException(nameof(coreMaskService)); - this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); - this.gameModeService = gameModeService ?? throw new ArgumentNullException(nameof(gameModeService)); - this.affinityApplyService = affinityApplyService ?? new AffinityApplyService( - this.processService, - this.cpuTopologyService, - NullLogger.Instance); - this.processAffinityApplyCoordinator = processAffinityApplyCoordinator ?? new ProcessAffinityApplyCoordinator( - this.affinityApplyService, - cpuTopologyProvider, - new CpuSelectionMigrationService(), - NullLogger.Instance); - this.memoryPriorityService = memoryPriorityService; - this.processRuleCreationService = processRuleCreationService ?? (persistentRuleStore == null - ? null - : new ProcessRuleCreationService( - persistentRuleStore, - cpuTopologyProvider, - new CpuSelectionMigrationService(), - NullLogger.Instance)); - this.clipboardSetter = clipboardSetter ?? System.Windows.Clipboard.SetText; - this.executableLocationOpener = executableLocationOpener ?? OpenExecutableLocationInExplorer; - this.SelectedProcessSummary = new SelectedProcessSummaryViewModel( - memoryPriorityService, - persistentRuleStore, - persistentRuleMatcher, - localizationService); - - // Subscribe to topology detection events - this.cpuTopologyService.TopologyDetected += this.OnTopologyDetected; - - // Subscribe to system tray events - this.systemTrayService.QuickApplyRequested += this.OnTrayQuickApplyRequested; - - this.searchRefreshCoordinator = new ThrottledRefreshCoordinator( - TimeSpan.FromMilliseconds(300), - this.ApplyFiltersOnUiAsync, - ex => this.Logger.LogWarning(ex, "Search filter refresh failed")); - - this.filterRefreshCoordinator = new ThrottledRefreshCoordinator( - TimeSpan.FromMilliseconds(100), - this.ApplyFiltersOnUiAsync, - ex => this.Logger.LogWarning(ex, "Filter refresh failed")); - - this.SetupRefreshTimer(); - this.SetupVirtualizedProcessService(); - // Note: InitializeAsync() will be called explicitly by MainWindow loading overlay - } - - public IReadOnlyList ContextMenuCpuPriorityActions { get; } = - [ - ProcessPriorityClass.BelowNormal, - ProcessPriorityClass.Normal, - ProcessPriorityClass.AboveNormal, - ProcessPriorityClass.High, - ]; - - public SelectedProcessSummaryViewModel SelectedProcessSummary { get; } - - private static void OpenExecutableLocationInExplorer(string executablePath) - { - var startInfo = new ProcessStartInfo - { - FileName = "explorer.exe", - Arguments = $"/select,\"{executablePath}\"", - UseShellExecute = true, - }; - - Process.Start(startInfo); - } - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.ComponentModel; + using System.Diagnostics; + using System.Linq; + using System.Threading.Tasks; + using System.Windows.Input; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using Microsoft.Extensions.Logging.Abstractions; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public partial class ProcessViewModel : BaseViewModel + { + public event EventHandler? OpenRulesRequested; + + private readonly IProcessService processService; + private readonly ProcessFilterService processFilterService; + private readonly IVirtualizedProcessService virtualizedProcessService; + private readonly ICpuTopologyService cpuTopologyService; + private readonly IPowerPlanService powerPlanService; + private readonly INotificationService notificationService; + private readonly ISystemTrayService systemTrayService; + private readonly ICoreMaskService coreMaskService; + private readonly IProcessPowerPlanAssociationService associationService; + private readonly IGameModeService gameModeService; + private readonly IAffinityApplyService affinityApplyService; + private readonly IProcessAffinityApplyCoordinator processAffinityApplyCoordinator; + private readonly IProcessMemoryPriorityService? memoryPriorityService; + private readonly IProcessRuleCreationService? processRuleCreationService; + private readonly Action clipboardSetter; + private readonly Action executableLocationOpener; + private System.Timers.Timer? refreshTimer; + private bool isUiRefreshPaused; + private bool isProcessViewActive = true; + private bool isVirtualizedPreloadAllowedByPolicy = true; + private int isRefreshProcessesInProgress; + private readonly ThrottledRefreshCoordinator searchRefreshCoordinator; + private readonly ThrottledRefreshCoordinator filterRefreshCoordinator; + private bool isApplyingFilter; + private bool filterRefreshPending; + private bool suppressCoreSelectionEvents; + + [ObservableProperty] + private ObservableCollection processes = new(); + + [ObservableProperty] + private ProcessModel? selectedProcess; + + [ObservableProperty] + private string searchText = string.Empty; + + [ObservableProperty] + private ObservableCollection filteredProcesses = new(); + + [ObservableProperty] + private string profileName = string.Empty; + + // CPU Topology and Affinity + [ObservableProperty] + private CpuTopologyModel? cpuTopology; + + [ObservableProperty] + private ObservableCollection cpuCores = new(); + + [ObservableProperty] + private ObservableCollection affinityPresets = new(); + + // Core Masks - Available masks from the service + [ObservableProperty] + private ObservableCollection availableCoreMasks = new(); + + [ObservableProperty] + private CoreMask? selectedCoreMask; + + [ObservableProperty] + private bool hasPendingAffinityEdits; + + [ObservableProperty] + private string currentAffinityText = "Current OS affinity: no process selected"; + + [ObservableProperty] + private string pendingAffinityText = "Pending core mask: none"; + + [ObservableProperty] + private string affinityEditStateText = "Select a process to view its current Windows affinity."; + + [ObservableProperty] + private bool isTopologyDetectionSuccessful = false; + + [ObservableProperty] + private string topologyStatus = "Detecting CPU topology..."; + + [ObservableProperty] + private bool areAdvancedFeaturesAvailable = false; + + [ObservableProperty] + private PowerPlanModel? selectedPowerPlan; + + [ObservableProperty] + private ObservableCollection powerPlans = new(); + + // Note: EnableHyperThreading property removed - now using read-only status indicator + + [ObservableProperty] + private bool showActiveApplicationsOnly = false; + + [ObservableProperty] + private bool hideSystemProcesses = false; + + [ObservableProperty] + private bool hideIdleProcesses = false; + + [ObservableProperty] + private string sortMode = "CpuUsage"; + + // Hyperthreading/SMT Status Properties + [ObservableProperty] + private string hyperThreadingStatusText = "Multi-Threading: Unknown"; + + [ObservableProperty] + private bool isHyperThreadingActive = false; + + // New feature properties + [ObservableProperty] + private bool isIdleServerDisabled = false; + + [ObservableProperty] + private bool isRegistryPriorityEnabled = false; + + [ObservableProperty] + private bool isProcessListLocked = false; + + // PERFORMANCE IMPROVEMENT: Progressive loading support + [ObservableProperty] + private double loadingProgress = 0.0; + + [ObservableProperty] + private string loadingStatusText = string.Empty; + + // VIRTUALIZATION ENHANCEMENT: Batch loading support + [ObservableProperty] + private int currentBatchIndex = 0; + + [ObservableProperty] + private int totalBatches = 0; + + [ObservableProperty] + private int totalProcessCount = 0; + + [ObservableProperty] + private bool hasMoreBatches = false; + + [ObservableProperty] + private bool isVirtualizationEnabled = true; + + public ProcessViewModel( + ILogger logger, + IProcessService processService, + ProcessFilterService processFilterService, + IVirtualizedProcessService virtualizedProcessService, + ICpuTopologyService cpuTopologyService, + IPowerPlanService powerPlanService, + INotificationService notificationService, + ISystemTrayService systemTrayService, + ICoreMaskService coreMaskService, + IProcessPowerPlanAssociationService associationService, + IGameModeService gameModeService, + IAffinityApplyService? affinityApplyService = null, + IProcessAffinityApplyCoordinator? processAffinityApplyCoordinator = null, + ICpuTopologyProvider? cpuTopologyProvider = null, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null, + IProcessMemoryPriorityService? memoryPriorityService = null, + IPersistentProcessRuleStore? persistentRuleStore = null, + IPersistentProcessRuleMatcher? persistentRuleMatcher = null, + IProcessRuleCreationService? processRuleCreationService = null, + Action? clipboardSetter = null, + Action? executableLocationOpener = null, + ILocalizationService? localizationService = null) + : base(logger, enhancedLoggingService, activityAuditService) + { + this.processService = processService ?? throw new ArgumentNullException(nameof(processService)); + this.processFilterService = processFilterService ?? throw new ArgumentNullException(nameof(processFilterService)); + this.virtualizedProcessService = virtualizedProcessService ?? throw new ArgumentNullException(nameof(virtualizedProcessService)); + this.cpuTopologyService = cpuTopologyService ?? throw new ArgumentNullException(nameof(cpuTopologyService)); + this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); + this.notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); + this.systemTrayService = systemTrayService ?? throw new ArgumentNullException(nameof(systemTrayService)); + this.coreMaskService = coreMaskService ?? throw new ArgumentNullException(nameof(coreMaskService)); + this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); + this.gameModeService = gameModeService ?? throw new ArgumentNullException(nameof(gameModeService)); + this.affinityApplyService = affinityApplyService ?? new AffinityApplyService( + this.processService, + this.cpuTopologyService, + NullLogger.Instance); + this.processAffinityApplyCoordinator = processAffinityApplyCoordinator ?? new ProcessAffinityApplyCoordinator( + this.affinityApplyService, + cpuTopologyProvider, + new CpuSelectionMigrationService(), + NullLogger.Instance); + this.memoryPriorityService = memoryPriorityService; + this.processRuleCreationService = processRuleCreationService ?? (persistentRuleStore == null + ? null + : new ProcessRuleCreationService( + persistentRuleStore, + cpuTopologyProvider, + new CpuSelectionMigrationService(), + NullLogger.Instance)); + this.clipboardSetter = clipboardSetter ?? System.Windows.Clipboard.SetText; + this.executableLocationOpener = executableLocationOpener ?? OpenExecutableLocationInExplorer; + this.SelectedProcessSummary = new SelectedProcessSummaryViewModel( + memoryPriorityService, + persistentRuleStore, + persistentRuleMatcher, + localizationService); + + // Subscribe to topology detection events + this.cpuTopologyService.TopologyDetected += this.OnTopologyDetected; + + // Subscribe to system tray events + this.systemTrayService.QuickApplyRequested += this.OnTrayQuickApplyRequested; + + this.searchRefreshCoordinator = new ThrottledRefreshCoordinator( + TimeSpan.FromMilliseconds(300), + this.ApplyFiltersOnUiAsync, + ex => this.Logger.LogWarning(ex, "Search filter refresh failed")); + + this.filterRefreshCoordinator = new ThrottledRefreshCoordinator( + TimeSpan.FromMilliseconds(100), + this.ApplyFiltersOnUiAsync, + ex => this.Logger.LogWarning(ex, "Filter refresh failed")); + + this.SetupRefreshTimer(); + this.SetupVirtualizedProcessService(); + // Note: InitializeAsync() will be called explicitly by MainWindow loading overlay + } + + public IReadOnlyList ContextMenuCpuPriorityActions { get; } = + [ + ProcessPriorityClass.BelowNormal, + ProcessPriorityClass.Normal, + ProcessPriorityClass.AboveNormal, + ProcessPriorityClass.High, + ]; + + public SelectedProcessSummaryViewModel SelectedProcessSummary { get; } + + private static void OpenExecutableLocationInExplorer(string executablePath) + { + var startInfo = new ProcessStartInfo + { + FileName = "explorer.exe", + Arguments = $"/select,\"{executablePath}\"", + UseShellExecute = true, + }; + + Process.Start(startInfo); + } + } +} diff --git a/ViewModels/SelectedProcessSummaryViewModel.cs b/ViewModels/SelectedProcessSummaryViewModel.cs index 2828231..2802061 100644 --- a/ViewModels/SelectedProcessSummaryViewModel.cs +++ b/ViewModels/SelectedProcessSummaryViewModel.cs @@ -1,365 +1,365 @@ -/* - * ThreadPilot - lightweight selected process summary view model. - */ -namespace ThreadPilot.ViewModels -{ - using System.Diagnostics; - using System.Threading; - using CommunityToolkit.Mvvm.ComponentModel; - using ThreadPilot.Models; - using ThreadPilot.Services; - - public sealed class SelectedProcessSummaryViewModel : ObservableObject - { - private readonly IProcessMemoryPriorityService? memoryPriorityService; - private readonly IPersistentProcessRuleStore? persistentRuleStore; - private readonly IPersistentProcessRuleMatcher? persistentRuleMatcher; - private readonly ILocalizationService? localizationService; - private bool hasSelection; - private int processId; - private string processName = string.Empty; - private string executablePath = string.Empty; - private double cpuUsage; - private long memoryUsage; - private ProcessPriorityClass cpuPriority; - private long processorAffinity; - private ProcessMemoryPriority? memoryPriority; - private string processTitle = "No process selected"; - private string currentProcessStatusText = "No process selected"; - private string cpuUsageText = "CPU: unavailable"; - private string memoryUsageText = "Memory: unavailable"; - private string cpuPriorityText = "CPU priority: unavailable"; - private string memoryPriorityText = "Memory priority unavailable"; - private string affinityText = "Affinity: unavailable"; - private string ruleStatusText = "No saved rule"; - private string lastOperationMessage = "No recent ThreadPilot action"; - private string lastOperationSeverity = "Information"; - private bool isProtectedOrAccessDenied; - private bool hasThreadPilotRule; - private int updateVersion; - - public SelectedProcessSummaryViewModel( - IProcessMemoryPriorityService? memoryPriorityService = null, - IPersistentProcessRuleStore? persistentRuleStore = null, - IPersistentProcessRuleMatcher? persistentRuleMatcher = null, - ILocalizationService? localizationService = null) - { - this.memoryPriorityService = memoryPriorityService; - this.persistentRuleStore = persistentRuleStore; - this.persistentRuleMatcher = persistentRuleMatcher; - this.localizationService = localizationService; - this.Clear(version: 0, lastOperationMessage: null, lastOperationIsError: false); - } - - public bool HasSelection - { - get => this.hasSelection; - private set => this.SetProperty(ref this.hasSelection, value); - } - - public int ProcessId - { - get => this.processId; - private set => this.SetProperty(ref this.processId, value); - } - - public string ProcessName - { - get => this.processName; - private set => this.SetProperty(ref this.processName, value); - } - - public string ExecutablePath - { - get => this.executablePath; - private set => this.SetProperty(ref this.executablePath, value); - } - - public double CpuUsage - { - get => this.cpuUsage; - private set => this.SetProperty(ref this.cpuUsage, value); - } - - public long MemoryUsage - { - get => this.memoryUsage; - private set => this.SetProperty(ref this.memoryUsage, value); - } - - public ProcessPriorityClass CpuPriority - { - get => this.cpuPriority; - private set => this.SetProperty(ref this.cpuPriority, value); - } - - public long ProcessorAffinity - { - get => this.processorAffinity; - private set => this.SetProperty(ref this.processorAffinity, value); - } - - public ProcessMemoryPriority? MemoryPriority - { - get => this.memoryPriority; - private set => this.SetProperty(ref this.memoryPriority, value); - } - - public string ProcessTitle - { - get => this.processTitle; - private set => this.SetProperty(ref this.processTitle, value); - } - - public string CurrentProcessStatusText - { - get => this.currentProcessStatusText; - private set => this.SetProperty(ref this.currentProcessStatusText, value); - } - - public string CpuUsageText - { - get => this.cpuUsageText; - private set => this.SetProperty(ref this.cpuUsageText, value); - } - - public string MemoryUsageText - { - get => this.memoryUsageText; - private set => this.SetProperty(ref this.memoryUsageText, value); - } - - public string CpuPriorityText - { - get => this.cpuPriorityText; - private set => this.SetProperty(ref this.cpuPriorityText, value); - } - - public string MemoryPriorityText - { - get => this.memoryPriorityText; - private set => this.SetProperty(ref this.memoryPriorityText, value); - } - - public string AffinityText - { - get => this.affinityText; - private set => this.SetProperty(ref this.affinityText, value); - } - - public string RuleStatusText - { - get => this.ruleStatusText; - private set => this.SetProperty(ref this.ruleStatusText, value); - } - - public string LastOperationMessage - { - get => this.lastOperationMessage; - private set => this.SetProperty(ref this.lastOperationMessage, value); - } - - public string LastOperationSeverity - { - get => this.lastOperationSeverity; - private set => this.SetProperty(ref this.lastOperationSeverity, value); - } - - public bool IsProtectedOrAccessDenied - { - get => this.isProtectedOrAccessDenied; - private set => this.SetProperty(ref this.isProtectedOrAccessDenied, value); - } - - public bool HasThreadPilotRule - { - get => this.hasThreadPilotRule; - private set => this.SetProperty(ref this.hasThreadPilotRule, value); - } - - public async Task UpdateAsync( - ProcessModel? process, - string? lastOperationMessage = null, - bool lastOperationIsError = false) - { - var version = Interlocked.Increment(ref this.updateVersion); - if (process == null) - { - this.Clear(version, lastOperationMessage, lastOperationIsError); - return; - } - - this.HasSelection = true; - this.ProcessId = process.ProcessId; - this.ProcessName = process.Name ?? string.Empty; - this.ExecutablePath = process.ExecutablePath ?? string.Empty; - this.CpuUsage = process.CpuUsage; - this.MemoryUsage = process.MemoryUsage; - this.CpuPriority = process.Priority; - this.ProcessorAffinity = process.ProcessorAffinity; - this.IsProtectedOrAccessDenied = process.Classification == ProcessClassification.ProtectedOrAccessDenied; - this.ProcessTitle = this.L("ProcessSummary_SelectedProcessFormat", "Selected process: {0} (PID {1})", this.ProcessName, this.ProcessId); - this.CurrentProcessStatusText = this.IsProtectedOrAccessDenied - ? this.L("ProcessSummary_StatusProtected", "Current process status: protected or access denied") - : this.L("ProcessSummary_StatusSelected", "Current process status: selected"); - this.CpuUsageText = this.L("ProcessSummary_CpuFormat", "CPU: {0:N1}%", this.CpuUsage); - this.MemoryUsageText = this.L("ProcessSummary_MemoryFormat", "Memory: {0}", FormatMemory(this.MemoryUsage)); - this.CpuPriorityText = this.L("ProcessSummary_CpuPriorityFormat", "CPU priority: {0}", this.CpuPriority); - this.AffinityText = this.L("ProcessSummary_AffinityLegacyFormat", "Affinity: legacy mask 0x{0:X}", this.ProcessorAffinity); - this.UpdateLastOperation(lastOperationMessage, lastOperationIsError); - - await this.UpdateMemoryPriorityAsync(process, version); - if (!this.IsCurrentVersion(version)) - { - return; - } - - await this.UpdateRuleStatusAsync(process, version); - } - - private static string FormatMemory(long bytes) - { - if (bytes <= 0) - { - return "0 MB"; - } - - var megabytes = bytes / 1024d / 1024d; - return $"{megabytes:N0} MB"; - } - - private void Clear(int version, string? lastOperationMessage, bool lastOperationIsError) - { - if (!this.IsCurrentVersion(version)) - { - return; - } - - this.HasSelection = false; - this.ProcessId = 0; - this.ProcessName = string.Empty; - this.ExecutablePath = string.Empty; - this.CpuUsage = 0; - this.MemoryUsage = 0; - this.CpuPriority = default; - this.ProcessorAffinity = 0; - this.MemoryPriority = null; - this.IsProtectedOrAccessDenied = false; - this.HasThreadPilotRule = false; - this.ProcessTitle = this.L("ProcessView_NoProcessSelected", "No process selected"); - this.CurrentProcessStatusText = this.L("ProcessView_NoProcessSelected", "No process selected"); - this.CpuUsageText = this.L("ProcessSummary_CpuUnavailable", "CPU: unavailable"); - this.MemoryUsageText = this.L("ProcessSummary_MemoryUnavailable", "Memory: unavailable"); - this.CpuPriorityText = this.L("ProcessSummary_CpuPriorityUnavailable", "CPU priority: unavailable"); - this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityUnavailable", "Memory priority unavailable"); - this.AffinityText = this.L("ProcessSummary_AffinityUnavailable", "Affinity: unavailable"); - this.RuleStatusText = this.L("ProcessSummary_NoSavedRule", "No saved rule"); - this.UpdateLastOperation(lastOperationMessage, lastOperationIsError); - } - - private async Task UpdateMemoryPriorityAsync(ProcessModel process, int version) - { - this.MemoryPriority = null; - this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityUnavailable", "Memory priority unavailable"); - - if (this.memoryPriorityService == null) - { - return; - } - - try - { - var priority = await this.memoryPriorityService.GetMemoryPriorityAsync(process); - if (!this.IsCurrentVersion(version)) - { - return; - } - - if (priority == null) - { - return; - } - - this.MemoryPriority = priority.Value; - this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityFormat", "Memory priority: {0}", priority.Value); - } - catch (Exception) - { - if (!this.IsCurrentVersion(version)) - { - return; - } - - this.MemoryPriority = null; - this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityUnavailable", "Memory priority unavailable"); - } - } - - private async Task UpdateRuleStatusAsync(ProcessModel process, int version) - { - this.HasThreadPilotRule = false; - this.RuleStatusText = this.L("ProcessSummary_NoSavedRule", "No saved rule"); - - if (this.persistentRuleStore == null || this.persistentRuleMatcher == null) - { - return; - } - - try - { - var rules = await this.persistentRuleStore.LoadAsync(); - if (!this.IsCurrentVersion(version)) - { - return; - } - - var matchingRule = rules.FirstOrDefault(rule => this.persistentRuleMatcher.IsMatch(rule, process)); - if (matchingRule == null) - { - return; - } - - this.HasThreadPilotRule = true; - var ruleName = string.IsNullOrWhiteSpace(matchingRule.Name) - ? this.L("ProcessSummary_SavedRuleFallback", "saved rule") - : matchingRule.Name.Trim(); - this.RuleStatusText = this.L("ProcessSummary_SavedRuleExistsFormat", "Saved rule exists: {0}", ruleName); - } - catch (Exception) - { - if (!this.IsCurrentVersion(version)) - { - return; - } - - this.HasThreadPilotRule = false; - this.RuleStatusText = this.L("ProcessSummary_NoSavedRule", "No saved rule"); - } - } - - private bool IsCurrentVersion(int version) => Volatile.Read(ref this.updateVersion) == version; - - private void UpdateLastOperation(string? message, bool isError) - { - if (string.IsNullOrWhiteSpace(message)) - { - this.LastOperationMessage = this.L("ProcessSummary_NoRecentAction", "No recent ThreadPilot action"); - this.LastOperationSeverity = "Information"; - return; - } - - this.LastOperationMessage = message.Trim(); - this.LastOperationSeverity = isError ? "Error" : "Information"; - } - - private string L(string key, string fallback, params object[] args) - { - var localized = this.localizationService?.GetString(key); - var format = string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) - ? fallback - : localized; - - return args.Length == 0 ? format : string.Format(format, args); - } - } -} +/* + * ThreadPilot - lightweight selected process summary view model. + */ +namespace ThreadPilot.ViewModels +{ + using System.Diagnostics; + using System.Threading; + using CommunityToolkit.Mvvm.ComponentModel; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public sealed class SelectedProcessSummaryViewModel : ObservableObject + { + private readonly IProcessMemoryPriorityService? memoryPriorityService; + private readonly IPersistentProcessRuleStore? persistentRuleStore; + private readonly IPersistentProcessRuleMatcher? persistentRuleMatcher; + private readonly ILocalizationService? localizationService; + private bool hasSelection; + private int processId; + private string processName = string.Empty; + private string executablePath = string.Empty; + private double cpuUsage; + private long memoryUsage; + private ProcessPriorityClass cpuPriority; + private long processorAffinity; + private ProcessMemoryPriority? memoryPriority; + private string processTitle = "No process selected"; + private string currentProcessStatusText = "No process selected"; + private string cpuUsageText = "CPU: unavailable"; + private string memoryUsageText = "Memory: unavailable"; + private string cpuPriorityText = "CPU priority: unavailable"; + private string memoryPriorityText = "Memory priority unavailable"; + private string affinityText = "Affinity: unavailable"; + private string ruleStatusText = "No saved rule"; + private string lastOperationMessage = "No recent ThreadPilot action"; + private string lastOperationSeverity = "Information"; + private bool isProtectedOrAccessDenied; + private bool hasThreadPilotRule; + private int updateVersion; + + public SelectedProcessSummaryViewModel( + IProcessMemoryPriorityService? memoryPriorityService = null, + IPersistentProcessRuleStore? persistentRuleStore = null, + IPersistentProcessRuleMatcher? persistentRuleMatcher = null, + ILocalizationService? localizationService = null) + { + this.memoryPriorityService = memoryPriorityService; + this.persistentRuleStore = persistentRuleStore; + this.persistentRuleMatcher = persistentRuleMatcher; + this.localizationService = localizationService; + this.Clear(version: 0, lastOperationMessage: null, lastOperationIsError: false); + } + + public bool HasSelection + { + get => this.hasSelection; + private set => this.SetProperty(ref this.hasSelection, value); + } + + public int ProcessId + { + get => this.processId; + private set => this.SetProperty(ref this.processId, value); + } + + public string ProcessName + { + get => this.processName; + private set => this.SetProperty(ref this.processName, value); + } + + public string ExecutablePath + { + get => this.executablePath; + private set => this.SetProperty(ref this.executablePath, value); + } + + public double CpuUsage + { + get => this.cpuUsage; + private set => this.SetProperty(ref this.cpuUsage, value); + } + + public long MemoryUsage + { + get => this.memoryUsage; + private set => this.SetProperty(ref this.memoryUsage, value); + } + + public ProcessPriorityClass CpuPriority + { + get => this.cpuPriority; + private set => this.SetProperty(ref this.cpuPriority, value); + } + + public long ProcessorAffinity + { + get => this.processorAffinity; + private set => this.SetProperty(ref this.processorAffinity, value); + } + + public ProcessMemoryPriority? MemoryPriority + { + get => this.memoryPriority; + private set => this.SetProperty(ref this.memoryPriority, value); + } + + public string ProcessTitle + { + get => this.processTitle; + private set => this.SetProperty(ref this.processTitle, value); + } + + public string CurrentProcessStatusText + { + get => this.currentProcessStatusText; + private set => this.SetProperty(ref this.currentProcessStatusText, value); + } + + public string CpuUsageText + { + get => this.cpuUsageText; + private set => this.SetProperty(ref this.cpuUsageText, value); + } + + public string MemoryUsageText + { + get => this.memoryUsageText; + private set => this.SetProperty(ref this.memoryUsageText, value); + } + + public string CpuPriorityText + { + get => this.cpuPriorityText; + private set => this.SetProperty(ref this.cpuPriorityText, value); + } + + public string MemoryPriorityText + { + get => this.memoryPriorityText; + private set => this.SetProperty(ref this.memoryPriorityText, value); + } + + public string AffinityText + { + get => this.affinityText; + private set => this.SetProperty(ref this.affinityText, value); + } + + public string RuleStatusText + { + get => this.ruleStatusText; + private set => this.SetProperty(ref this.ruleStatusText, value); + } + + public string LastOperationMessage + { + get => this.lastOperationMessage; + private set => this.SetProperty(ref this.lastOperationMessage, value); + } + + public string LastOperationSeverity + { + get => this.lastOperationSeverity; + private set => this.SetProperty(ref this.lastOperationSeverity, value); + } + + public bool IsProtectedOrAccessDenied + { + get => this.isProtectedOrAccessDenied; + private set => this.SetProperty(ref this.isProtectedOrAccessDenied, value); + } + + public bool HasThreadPilotRule + { + get => this.hasThreadPilotRule; + private set => this.SetProperty(ref this.hasThreadPilotRule, value); + } + + public async Task UpdateAsync( + ProcessModel? process, + string? lastOperationMessage = null, + bool lastOperationIsError = false) + { + var version = Interlocked.Increment(ref this.updateVersion); + if (process == null) + { + this.Clear(version, lastOperationMessage, lastOperationIsError); + return; + } + + this.HasSelection = true; + this.ProcessId = process.ProcessId; + this.ProcessName = process.Name ?? string.Empty; + this.ExecutablePath = process.ExecutablePath ?? string.Empty; + this.CpuUsage = process.CpuUsage; + this.MemoryUsage = process.MemoryUsage; + this.CpuPriority = process.Priority; + this.ProcessorAffinity = process.ProcessorAffinity; + this.IsProtectedOrAccessDenied = process.Classification == ProcessClassification.ProtectedOrAccessDenied; + this.ProcessTitle = this.L("ProcessSummary_SelectedProcessFormat", "Selected process: {0} (PID {1})", this.ProcessName, this.ProcessId); + this.CurrentProcessStatusText = this.IsProtectedOrAccessDenied + ? this.L("ProcessSummary_StatusProtected", "Current process status: protected or access denied") + : this.L("ProcessSummary_StatusSelected", "Current process status: selected"); + this.CpuUsageText = this.L("ProcessSummary_CpuFormat", "CPU: {0:N1}%", this.CpuUsage); + this.MemoryUsageText = this.L("ProcessSummary_MemoryFormat", "Memory: {0}", FormatMemory(this.MemoryUsage)); + this.CpuPriorityText = this.L("ProcessSummary_CpuPriorityFormat", "CPU priority: {0}", this.CpuPriority); + this.AffinityText = this.L("ProcessSummary_AffinityLegacyFormat", "Affinity: legacy mask 0x{0:X}", this.ProcessorAffinity); + this.UpdateLastOperation(lastOperationMessage, lastOperationIsError); + + await this.UpdateMemoryPriorityAsync(process, version); + if (!this.IsCurrentVersion(version)) + { + return; + } + + await this.UpdateRuleStatusAsync(process, version); + } + + private static string FormatMemory(long bytes) + { + if (bytes <= 0) + { + return "0 MB"; + } + + var megabytes = bytes / 1024d / 1024d; + return $"{megabytes:N0} MB"; + } + + private void Clear(int version, string? lastOperationMessage, bool lastOperationIsError) + { + if (!this.IsCurrentVersion(version)) + { + return; + } + + this.HasSelection = false; + this.ProcessId = 0; + this.ProcessName = string.Empty; + this.ExecutablePath = string.Empty; + this.CpuUsage = 0; + this.MemoryUsage = 0; + this.CpuPriority = default; + this.ProcessorAffinity = 0; + this.MemoryPriority = null; + this.IsProtectedOrAccessDenied = false; + this.HasThreadPilotRule = false; + this.ProcessTitle = this.L("ProcessView_NoProcessSelected", "No process selected"); + this.CurrentProcessStatusText = this.L("ProcessView_NoProcessSelected", "No process selected"); + this.CpuUsageText = this.L("ProcessSummary_CpuUnavailable", "CPU: unavailable"); + this.MemoryUsageText = this.L("ProcessSummary_MemoryUnavailable", "Memory: unavailable"); + this.CpuPriorityText = this.L("ProcessSummary_CpuPriorityUnavailable", "CPU priority: unavailable"); + this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityUnavailable", "Memory priority unavailable"); + this.AffinityText = this.L("ProcessSummary_AffinityUnavailable", "Affinity: unavailable"); + this.RuleStatusText = this.L("ProcessSummary_NoSavedRule", "No saved rule"); + this.UpdateLastOperation(lastOperationMessage, lastOperationIsError); + } + + private async Task UpdateMemoryPriorityAsync(ProcessModel process, int version) + { + this.MemoryPriority = null; + this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityUnavailable", "Memory priority unavailable"); + + if (this.memoryPriorityService == null) + { + return; + } + + try + { + var priority = await this.memoryPriorityService.GetMemoryPriorityAsync(process); + if (!this.IsCurrentVersion(version)) + { + return; + } + + if (priority == null) + { + return; + } + + this.MemoryPriority = priority.Value; + this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityFormat", "Memory priority: {0}", priority.Value); + } + catch (Exception) + { + if (!this.IsCurrentVersion(version)) + { + return; + } + + this.MemoryPriority = null; + this.MemoryPriorityText = this.L("ProcessSummary_MemoryPriorityUnavailable", "Memory priority unavailable"); + } + } + + private async Task UpdateRuleStatusAsync(ProcessModel process, int version) + { + this.HasThreadPilotRule = false; + this.RuleStatusText = this.L("ProcessSummary_NoSavedRule", "No saved rule"); + + if (this.persistentRuleStore == null || this.persistentRuleMatcher == null) + { + return; + } + + try + { + var rules = await this.persistentRuleStore.LoadAsync(); + if (!this.IsCurrentVersion(version)) + { + return; + } + + var matchingRule = rules.FirstOrDefault(rule => this.persistentRuleMatcher.IsMatch(rule, process)); + if (matchingRule == null) + { + return; + } + + this.HasThreadPilotRule = true; + var ruleName = string.IsNullOrWhiteSpace(matchingRule.Name) + ? this.L("ProcessSummary_SavedRuleFallback", "saved rule") + : matchingRule.Name.Trim(); + this.RuleStatusText = this.L("ProcessSummary_SavedRuleExistsFormat", "Saved rule exists: {0}", ruleName); + } + catch (Exception) + { + if (!this.IsCurrentVersion(version)) + { + return; + } + + this.HasThreadPilotRule = false; + this.RuleStatusText = this.L("ProcessSummary_NoSavedRule", "No saved rule"); + } + } + + private bool IsCurrentVersion(int version) => Volatile.Read(ref this.updateVersion) == version; + + private void UpdateLastOperation(string? message, bool isError) + { + if (string.IsNullOrWhiteSpace(message)) + { + this.LastOperationMessage = this.L("ProcessSummary_NoRecentAction", "No recent ThreadPilot action"); + this.LastOperationSeverity = "Information"; + return; + } + + this.LastOperationMessage = message.Trim(); + this.LastOperationSeverity = isError ? "Error" : "Information"; + } + + private string L(string key, string fallback, params object[] args) + { + var localized = this.localizationService?.GetString(key); + var format = string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) + ? fallback + : localized; + + return args.Length == 0 ? format : string.Format(format, args); + } + } +} diff --git a/ViewModels/SettingsViewModel.cs b/ViewModels/SettingsViewModel.cs index fdbcde9..901c61e 100644 --- a/ViewModels/SettingsViewModel.cs +++ b/ViewModels/SettingsViewModel.cs @@ -1,925 +1,900 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.IO; - using System.Linq; - using System.Reflection; - using System.Text; - using System.Text.Json; - using System.Threading.Tasks; - using System.Windows; - using System.Windows.Input; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using Microsoft.Win32; - using ThreadPilot.Models; - using ThreadPilot.Services; - - /// - /// ViewModel for application settings. - /// - public partial class SettingsViewModel : BaseViewModel - { - private readonly IApplicationSettingsService settingsService; - private readonly INotificationService notificationService; - private readonly IAutostartService autostartService; - private readonly IPowerPlanService powerPlanService; - private readonly IProcessPowerPlanAssociationService associationService; - private readonly IProcessMonitorManagerService processMonitorManagerService; - private readonly IThemeService themeService; - private readonly ISystemTrayService systemTrayService; - private readonly IUpdateService updateService; - private readonly IApplicationVersionProvider versionProvider; - private readonly ILocalizationService localizationService; - private ApplicationSettingsModel savedSettingsSnapshot; - private bool isSyncingFromService = false; - private bool? appliedThemePreference; - private string cachedDefaultPowerPlanGuid = string.Empty; - private string cachedDefaultPowerPlanName = string.Empty; - private UpdateReleaseInfo? availableUpdate; - private static readonly JsonSerializerOptions ImportExportJsonOptions = new() - { - WriteIndented = true, - PropertyNamingPolicy = JsonNamingPolicy.CamelCase, - PropertyNameCaseInsensitive = true, - ReadCommentHandling = JsonCommentHandling.Skip, - AllowTrailingCommas = true, - }; - - [ObservableProperty] - private ApplicationSettingsModel settings; - - [ObservableProperty] - private bool hasUnsavedChanges = false; - - [ObservableProperty] - private bool isLoading = false; - - public bool CanSaveSettings => this.HasUnsavedChanges && !this.IsLoading; - - public bool HasPendingChanges => this.HasUnsavedChanges; - - [ObservableProperty] - private ObservableCollection availablePowerPlans = new(); - - public string ApplicationVersion { get; } - - public ICommand SaveSettingsCommand { get; } - - public ICommand ResetToDefaultsCommand { get; } - - public ICommand ExportSettingsCommand { get; } - - public ICommand ImportSettingsCommand { get; } - - public ICommand TestNotificationCommand { get; } - - public ICommand RefreshPowerPlansCommand { get; } - - public ICommand CheckUpdatesCommand { get; } - - public IAsyncRelayCommand DownloadAndInstallUpdateCommand { get; } - - [ObservableProperty] - private string latestUpdateVersion = string.Empty; - - [ObservableProperty] - private string lastUpdateCheckText = string.Empty; - - [ObservableProperty] - private bool isUpdateAvailable = false; - - public bool CanDownloadAndInstallUpdate => this.IsUpdateAvailable && !this.IsLoading; - - public SettingsViewModel( - ILogger logger, - IApplicationSettingsService settingsService, - INotificationService notificationService, - IAutostartService autostartService, - IPowerPlanService powerPlanService, - IProcessPowerPlanAssociationService associationService, - IProcessMonitorManagerService processMonitorManagerService, - IThemeService themeService, - ISystemTrayService systemTrayService, - IUpdateService updateService, - IApplicationVersionProvider versionProvider, - ILocalizationService localizationService, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null) - : base(logger, enhancedLoggingService, activityAuditService) - { - this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); - this.notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); - this.autostartService = autostartService ?? throw new ArgumentNullException(nameof(autostartService)); - this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); - this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); - this.processMonitorManagerService = processMonitorManagerService ?? throw new ArgumentNullException(nameof(processMonitorManagerService)); - this.themeService = themeService ?? throw new ArgumentNullException(nameof(themeService)); - this.systemTrayService = systemTrayService ?? throw new ArgumentNullException(nameof(systemTrayService)); - this.updateService = updateService ?? throw new ArgumentNullException(nameof(updateService)); - this.versionProvider = versionProvider ?? throw new ArgumentNullException(nameof(versionProvider)); - this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); - - this.ApplicationVersion = this.versionProvider.DisplayVersion; - - // Initialize with current settings - this.settings = (ApplicationSettingsModel)this.settingsService.Settings.Clone(); - this.savedSettingsSnapshot = (ApplicationSettingsModel)this.settings.Clone(); - this.appliedThemePreference = this.settings.UseDarkTheme; - this.LatestUpdateVersion = this.GetLocalizedString("Settings_UpdateNotChecked", "Not checked"); - this.UpdateLastCheckedText(); - - // Initialize commands - this.SaveSettingsCommand = new AsyncRelayCommand(this.SaveSettingsAsync); - this.ResetToDefaultsCommand = new AsyncRelayCommand(this.ResetToDefaultsAsync); - this.ExportSettingsCommand = new AsyncRelayCommand(this.ExportSettingsAsync); - this.ImportSettingsCommand = new AsyncRelayCommand(this.ImportSettingsAsync); - this.TestNotificationCommand = new AsyncRelayCommand(this.TestNotificationAsync); - this.RefreshPowerPlansCommand = new AsyncRelayCommand(this.RefreshPowerPlansAsync); - this.CheckUpdatesCommand = new AsyncRelayCommand(this.CheckUpdatesAsync); - this.DownloadAndInstallUpdateCommand = new AsyncRelayCommand( - this.DownloadAndInstallUpdateAsync, - () => this.CanDownloadAndInstallUpdate); - - // Subscribe to property changes to track unsaved changes - this.Settings.PropertyChanged += this.OnSettingsPropertyChanged; - - // Keep viewmodel in sync with persisted settings - this.settingsService.SettingsChanged += this.OnSettingsServiceSettingsChanged; - - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher != null) - { - // Ensure we load the latest persisted settings on startup. - _ = dispatcher.InvokeAsync(async () => await this.RefreshSettingsAsync()); - - // Initialize data - marshal to UI thread to prevent cross-thread access exceptions. - _ = dispatcher.InvokeAsync(async () => await this.RefreshPowerPlansAsync()); - } - - this.Logger.LogInformation("Settings ViewModel initialized"); - } - - private void OnSettingsPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e) - { - if (this.isSyncingFromService) - { - return; - } - - if (string.Equals(e.PropertyName, nameof(ApplicationSettingsModel.UseDarkTheme), StringComparison.Ordinal)) - { - this.Settings.HasUserThemePreference = true; - this.UpdatePendingChangesState(); - this.ApplyThemePreference(this.Settings.UseDarkTheme, logUserAction: true); - return; - } - - if (string.Equals(e.PropertyName, nameof(ApplicationSettingsModel.Language), StringComparison.Ordinal)) - { - this.UpdatePendingChangesState(); - this.ApplyLanguagePreference(this.Settings.Language, logUserAction: true); - return; - } - - if (string.Equals(e.PropertyName, nameof(ApplicationSettingsModel.ApplyPersistentRulesOnProcessStart), StringComparison.Ordinal)) - { - this.UpdatePendingChangesState(); - var state = this.Settings.ApplyPersistentRulesOnProcessStart ? "enabled" : "disabled"; - _ = this.LogUserActionAsync( - "SettingsChanged", - $"[Settings] Apply saved rules at process start {state}."); - return; - } - - this.UpdatePendingChangesState(); - } - - private void ApplyThemePreference(bool useDarkTheme, bool logUserAction) - { - if (this.appliedThemePreference == useDarkTheme) - { - return; - } - - var themeName = useDarkTheme - ? this.GetLocalizedString("Settings_ThemeDark", "Dark") - : this.GetLocalizedString("Settings_ThemeLight", "Light"); - try - { - this.themeService.ApplyTheme(useDarkTheme); - this.systemTrayService.ApplyTheme(useDarkTheme); - this.appliedThemePreference = useDarkTheme; - this.StatusMessage = this.GetLocalizedString("Settings_StatusThemeChangedFormat", "Theme changed to {0}.", themeName); - - if (logUserAction) - { - _ = this.LogUserActionAsync("ThemeChanged", $"Theme changed to {themeName}"); - } - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusThemeChangeFailedFormat", "Failed to change theme to {0}.", themeName); - this.Logger.LogError(ex, "Failed to apply theme preference {ThemeName}", themeName); - _ = this.LogUserActionAsync("ThemeChangeFailed", $"Failed to change theme to {themeName}: {ex.Message}"); - } - } - - private void ApplyLanguagePreference(string language, bool logUserAction) - { - var normalizedLanguage = LocalizationService.NormalizeLanguage(language); - try - { - this.localizationService.ApplyLanguage(normalizedLanguage); - this.Settings.Language = normalizedLanguage; - var languageName = normalizedLanguage == LocalizationService.SimplifiedChineseLanguage - ? this.GetLocalizedString("Settings_LanguageSimplifiedChinese", "Simplified Chinese") - : this.GetLocalizedString("Settings_LanguageEnglish", "English"); - this.StatusMessage = this.GetLocalizedString("Settings_StatusLanguageChangedFormat", "Language changed to {0}.", languageName); - - if (logUserAction) - { - _ = this.LogUserActionAsync("LanguageChanged", $"Language changed to {languageName}"); - } - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusLanguageChangeFailed", "Failed to change language."); - this.Logger.LogError(ex, "Failed to apply language preference {Language}", normalizedLanguage); - _ = this.LogUserActionAsync("LanguageChangeFailed", $"Failed to change language to {normalizedLanguage}: {ex.Message}"); - } - } - - partial void OnHasUnsavedChangesChanged(bool value) - { - OnPropertyChanged(nameof(CanSaveSettings)); - } - - partial void OnIsLoadingChanged(bool value) - { - OnPropertyChanged(nameof(CanSaveSettings)); - OnPropertyChanged(nameof(CanDownloadAndInstallUpdate)); - this.DownloadAndInstallUpdateCommand.NotifyCanExecuteChanged(); - } - - partial void OnIsUpdateAvailableChanged(bool value) - { - OnPropertyChanged(nameof(CanDownloadAndInstallUpdate)); - this.DownloadAndInstallUpdateCommand.NotifyCanExecuteChanged(); - } - - private async Task SaveSettingsAsync() - { - string previousDefaultPowerPlanGuid = string.Empty; - string previousDefaultPowerPlanName = string.Empty; - - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusSaving", "Saving settings..."); - var warnings = new List(); - - previousDefaultPowerPlanGuid = this.Settings.DefaultPowerPlanId; - previousDefaultPowerPlanName = this.Settings.DefaultPowerPlanName; - - // Handle autostart setting - var currentAutostartState = await this.autostartService.CheckAutostartStatusAsync(); - if (this.Settings.AutostartWithWindows != currentAutostartState) - { - bool autostartUpdated; - if (this.Settings.AutostartWithWindows) - { - autostartUpdated = await this.autostartService.EnableAutostartAsync(this.Settings.StartMinimized); - } - else - { - autostartUpdated = await this.autostartService.DisableAutostartAsync(); - } - - if (!autostartUpdated) - { - warnings.Add(this.GetLocalizedString( - "Settings_WarningAutostartFailed", - "Failed to update Windows autostart. Keeping previous autostart state.")); - this.Settings.AutostartWithWindows = currentAutostartState; - } - else - { - this.Settings.AutostartWithWindows = await this.autostartService.CheckAutostartStatusAsync(); - } - } - - await this.settingsService.UpdateSettingsAsync(this.Settings); - - var useDarkTheme = this.Settings.HasUserThemePreference - ? this.Settings.UseDarkTheme - : this.themeService.GetSystemUsesDarkTheme(); - - this.isSyncingFromService = true; - this.Settings.UseDarkTheme = useDarkTheme; - this.isSyncingFromService = false; - this.ApplyThemePreference(useDarkTheme, logUserAction: false); - this.ApplyLanguagePreference(this.Settings.Language, logUserAction: false); - - // Update monitoring services with new settings - this.processMonitorManagerService.UpdateSettings(); - - this.SetSavedSettingsSnapshot(this.Settings); - if (warnings.Count > 0) - { - this.StatusMessage = this.GetLocalizedString( - "Settings_StatusSavedWarningsFormat", - "Settings saved with warnings: {0}", - string.Join(" ", warnings)); - await this.notificationService.ShowNotificationAsync( - "Settings Saved with Warnings", - string.Join(" ", warnings), - NotificationType.Warning); - } - else - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusSavedApplied", "Settings saved and applied successfully."); - await this.notificationService.ShowSuccessNotificationAsync( - "Settings Saved", - "Application settings have been saved successfully"); - } - - await this.LogUserActionAsync("SettingsChanged", "Settings saved and applied"); - this.Logger.LogInformation("Settings saved successfully"); - } - catch (Exception ex) - { - this.Settings.DefaultPowerPlanId = previousDefaultPowerPlanGuid; - this.Settings.DefaultPowerPlanName = previousDefaultPowerPlanName; - - this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorSavingFormat", "Error saving settings: {0}", ex.Message); - this.Logger.LogError(ex, "Error saving settings"); - - await this.notificationService.ShowErrorNotificationAsync( - "Settings Error", - "Failed to save settings", - ex); - await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to save settings: {ex.Message}"); - } - finally - { - this.IsLoading = false; - } - } - - private async Task ResetToDefaultsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusResetting", "Resetting to defaults..."); - - var defaultSettings = new ApplicationSettingsModel(); - this.Settings.CopyFrom(defaultSettings); - - this.UpdatePendingChangesState(); - this.StatusMessage = this.GetLocalizedString("Settings_StatusResetPending", "Settings reset to defaults (not saved yet)"); - - await this.LogUserActionAsync("SettingsChanged", "Settings reset to defaults pending save"); - this.Logger.LogInformation("Settings reset to defaults"); - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorResettingFormat", "Error resetting settings: {0}", ex.Message); - this.Logger.LogError(ex, "Error resetting settings"); - await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to reset settings: {ex.Message}"); - } - finally - { - this.IsLoading = false; - } - } - - private async Task ExportSettingsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusExporting", "Exporting configuration bundle..."); - - var saveDialog = new SaveFileDialog - { - Title = this.GetLocalizedString("Settings_DialogExportTitle", "Export ThreadPilot Configuration"), - Filter = "ThreadPilot configuration (*.json)|*.json|All files (*.*)|*.*", - DefaultExt = ".json", - FileName = $"ThreadPilot_Configuration_{DateTime.Now:yyyyMMdd_HHmmss}.json", - OverwritePrompt = true, - AddExtension = true, - }; - - if (saveDialog.ShowDialog() != true) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusExportCanceled", "Export canceled"); - return; - } - - var settingsSnapshot = (ApplicationSettingsModel)this.Settings.Clone(); - var rulesSnapshot = CloneConfiguration(this.associationService.Configuration); - - var bundle = new ConfigurationBundle - { - SchemaVersion = "2.0", - ExportedAtUtc = DateTime.UtcNow, - Settings = settingsSnapshot, - ProcessMonitorConfiguration = rulesSnapshot, - }; - - var json = JsonSerializer.Serialize(bundle, ImportExportJsonOptions); - await AtomicFileWriter.WriteAllTextAsync(saveDialog.FileName, json, Encoding.UTF8); - - this.StatusMessage = this.GetLocalizedString("Settings_StatusExportedFormat", "Configuration exported to: {0}", saveDialog.FileName); - - await this.notificationService.ShowSuccessNotificationAsync( - "Configuration Exported", - $"Settings and rules exported to {Path.GetFileName(saveDialog.FileName)}"); - - this.Logger.LogInformation("Configuration bundle exported to {Path}", saveDialog.FileName); - await this.LogUserActionAsync("SettingsChanged", "Configuration exported", Path.GetFileName(saveDialog.FileName)); - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorExportingFormat", "Error exporting settings: {0}", ex.Message); - this.Logger.LogError(ex, "Error exporting settings"); - - await this.notificationService.ShowErrorNotificationAsync( - "Export Error", - "Failed to export settings", - ex); - await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to export settings: {ex.Message}"); - } - finally - { - this.IsLoading = false; - } - } - - private async Task ImportSettingsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusImporting", "Importing configuration..."); - - var openDialog = new OpenFileDialog - { - Title = this.GetLocalizedString("Settings_DialogImportTitle", "Import ThreadPilot Configuration"), - Filter = "JSON files (*.json)|*.json|All files (*.*)|*.*", - Multiselect = false, - CheckFileExists = true, - }; - - if (openDialog.ShowDialog() != true) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusImportCanceled", "Import canceled"); - return; - } - - var importPath = openDialog.FileName; - var json = await File.ReadAllTextAsync(importPath); - - if (TryParseBundle(json, out var bundle)) - { - await this.settingsService.UpdateSettingsAsync(bundle.Settings); - - var importedConfiguration = bundle.ProcessMonitorConfiguration ?? new ProcessMonitorConfiguration(); - var replaced = await this.associationService.ReplaceConfigurationAsync(importedConfiguration); - if (!replaced) - { - throw new InvalidOperationException("Failed to apply imported rules configuration"); - } - - await this.processMonitorManagerService.RefreshConfigurationAsync(); - this.processMonitorManagerService.UpdateSettings(); - await this.RefreshSettingsAsync(); - this.HasUnsavedChanges = false; - - this.StatusMessage = this.GetLocalizedString("Settings_StatusImportedApplied", "Configuration bundle imported and applied"); - await this.notificationService.ShowSuccessNotificationAsync( - "Configuration Imported", - $"Settings and rules imported from {Path.GetFileName(importPath)}"); - - this.Logger.LogInformation("Configuration bundle imported from {Path}", importPath); - await this.LogUserActionAsync("SettingsChanged", "Configuration bundle imported", Path.GetFileName(importPath)); - return; - } - - await this.settingsService.ImportSettingsAsync(importPath); - this.processMonitorManagerService.UpdateSettings(); - await this.RefreshSettingsAsync(); - this.HasUnsavedChanges = false; - - this.StatusMessage = this.GetLocalizedString("Settings_StatusLegacyImported", "Legacy settings imported (rules unchanged)"); - await this.notificationService.ShowNotificationAsync( - "Legacy Import Completed", - $"Imported settings from {Path.GetFileName(importPath)}. Rules were not modified.", - NotificationType.Information); - - this.Logger.LogInformation("Legacy settings imported from {Path}", importPath); - await this.LogUserActionAsync("SettingsChanged", "Legacy settings imported", Path.GetFileName(importPath)); - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorImportingFormat", "Error importing settings: {0}", ex.Message); - this.Logger.LogError(ex, "Error importing settings"); - - await this.notificationService.ShowErrorNotificationAsync( - "Import Error", - "Failed to import configuration", - ex); - await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to import settings: {ex.Message}"); - } - finally - { - this.IsLoading = false; - } - } - - private async Task TestNotificationAsync() - { - try - { - await this.notificationService.ShowNotificationAsync( - "Test Notification", - "This is a test notification to verify your settings are working correctly.", - NotificationType.Information); - - this.StatusMessage = this.GetLocalizedString("Settings_StatusTestSent", "Test notification sent"); - this.Logger.LogInformation("Test notification sent"); - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorTestFormat", "Error sending test notification: {0}", ex.Message); - this.Logger.LogError(ex, "Error sending test notification"); - } - } - - /// - /// Refreshes settings from the service. - /// - public async Task RefreshSettingsAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusLoading", "Loading settings..."); - - await this.settingsService.LoadSettingsAsync(); - await this.associationService.LoadConfigurationAsync(); - - var settingsSnapshot = this.settingsService.Settings; - var (defaultPowerPlanGuid, defaultPowerPlanName) = await this.associationService.GetDefaultPowerPlanAsync(); - this.cachedDefaultPowerPlanGuid = defaultPowerPlanGuid; - this.cachedDefaultPowerPlanName = defaultPowerPlanName; - if (!string.IsNullOrWhiteSpace(defaultPowerPlanGuid)) - { - settingsSnapshot.DefaultPowerPlanId = defaultPowerPlanGuid; - settingsSnapshot.DefaultPowerPlanName = defaultPowerPlanName; - } - - this.isSyncingFromService = true; - this.Settings.CopyFrom(settingsSnapshot); - this.isSyncingFromService = false; - - var useDarkTheme = this.Settings.HasUserThemePreference - ? this.Settings.UseDarkTheme - : this.themeService.GetSystemUsesDarkTheme(); - - this.isSyncingFromService = true; - this.Settings.UseDarkTheme = useDarkTheme; - this.isSyncingFromService = false; - this.ApplyThemePreference(useDarkTheme, logUserAction: false); - this.ApplyLanguagePreference(this.Settings.Language, logUserAction: false); - - this.SetSavedSettingsSnapshot(this.Settings); - this.StatusMessage = this.GetLocalizedString("Settings_StatusLoaded", "Settings loaded"); - - this.Logger.LogInformation("Settings refreshed"); - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorLoadingFormat", "Error loading settings: {0}", ex.Message); - this.Logger.LogError(ex, "Error loading settings"); - } - finally - { - this.isSyncingFromService = false; - this.IsLoading = false; - } - } - - /// - /// Checks if there are unsaved changes. - /// - public bool CanClose() - { - return !this.HasUnsavedChanges; - } - - private void OnSettingsServiceSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) - { - // Marshal to UI thread to avoid cross-thread property change issues - System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.isSyncingFromService = true; - try - { - this.Settings.CopyFrom(e.NewSettings); - if (!string.IsNullOrWhiteSpace(this.cachedDefaultPowerPlanGuid)) - { - this.Settings.DefaultPowerPlanId = this.cachedDefaultPowerPlanGuid; - this.Settings.DefaultPowerPlanName = this.cachedDefaultPowerPlanName; - } - this.SetSavedSettingsSnapshot(this.Settings); - this.ApplyLanguagePreference(this.Settings.Language, logUserAction: false); - this.StatusMessage = this.GetLocalizedString("Settings_StatusSynchronized", "Settings synchronized"); - } - finally - { - this.isSyncingFromService = false; - } - }); - } - - private async Task RefreshPowerPlansAsync() - { - try - { - var powerPlans = await this.powerPlanService.GetPowerPlansAsync(); - - this.AvailablePowerPlans.Clear(); - foreach (var plan in powerPlans) - { - this.AvailablePowerPlans.Add(plan); - } - - this.Logger.LogDebug("Refreshed {Count} power plans", this.AvailablePowerPlans.Count); - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Failed to refresh power plans"); - } - } - - private async Task CheckUpdatesAsync() - { - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusCheckingUpdates", "Checking for updates..."); - - var result = await this.updateService.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Manual)); - this.UpdateLastCheckedText(); - - if (result.Status == UpdateCheckStatus.Failed) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusLatestUnknown", "Unable to determine the latest version."); - await this.notificationService.ShowErrorNotificationAsync( - "Update Check", - result.Message); - return; - } - - if (result.IsUpdateAvailable && result.Release != null) - { - this.availableUpdate = result.Release; - this.LatestUpdateVersion = $"v{result.Release.Version}"; - this.IsUpdateAvailable = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusNewVersionFormat", "New version available: {0}", result.Release.Version); - await this.notificationService.ShowNotificationAsync( - "Update available", - $"ThreadPilot {result.Release.Version} is available.", - NotificationType.Information); - } - else - { - this.availableUpdate = null; - this.LatestUpdateVersion = result.Release != null ? $"v{result.Release.Version}" : this.GetLocalizedString("Settings_UpdateLatestUnknown", "Unknown"); - this.IsUpdateAvailable = false; - this.StatusMessage = this.GetLocalizedString("Settings_StatusUpToDateFormat", "Application is up to date. Installed version: {0}", this.ApplicationVersion); - await this.notificationService.ShowSuccessNotificationAsync( - "Application up to date", - $"Installed version: {this.ApplicationVersion}"); - } - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateErrorFormat", "Error while checking updates: {0}", ex.Message); - this.Logger.LogError(ex, "Error checking for updates"); - - await this.notificationService.ShowErrorNotificationAsync( - "Update check error", - "Unable to verify updates", - ex); - } - finally - { - this.IsLoading = false; - } - } - - private async Task DownloadAndInstallUpdateAsync() - { - if (this.availableUpdate == null) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusLatestUnknown", "Unable to determine the latest version."); - return; - } - - var message = this.GetLocalizedString( - "Settings_UpdateConfirmMessageFormat", - "ThreadPilot will download and verify version {0}, then ask Windows for permission to run the installer. Continue?", - this.availableUpdate.Version); - var confirmation = System.Windows.MessageBox.Show( - message, - this.GetLocalizedString("Settings_UpdateConfirmTitle", "Install ThreadPilot update"), - MessageBoxButton.YesNo, - MessageBoxImage.Information); - - if (confirmation != MessageBoxResult.Yes) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateCanceled", "Update canceled."); - return; - } - - try - { - this.IsLoading = true; - this.StatusMessage = this.GetLocalizedString("Settings_StatusDownloadingUpdate", "Downloading and verifying update..."); - - var result = await this.updateService.DownloadAndInstallAsync(this.availableUpdate); - if (result.Status == UpdateInstallStatus.Started) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateInstallerStarted", "Update installer started."); - await this.notificationService.ShowNotificationAsync( - "Update installer started", - "ThreadPilot will close while the installer runs.", - NotificationType.Information); - } - else - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateInstallFailedFormat", "Update install failed: {0}", result.Message); - await this.notificationService.ShowErrorNotificationAsync( - "Update install failed", - result.Message); - } - } - catch (Exception ex) - { - this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateInstallFailedFormat", "Update install failed: {0}", ex.Message); - this.Logger.LogError(ex, "Error downloading or installing update"); - await this.notificationService.ShowErrorNotificationAsync( - "Update install failed", - "Unable to download or start the update installer", - ex); - } - finally - { - this.IsLoading = false; - } - } - - private void UpdateLastCheckedText() - { - var lastCheck = this.settingsService.Settings.LastUpdateCheckUtc; - this.LastUpdateCheckText = lastCheck.HasValue - ? lastCheck.Value.LocalDateTime.ToString("g", System.Globalization.CultureInfo.CurrentCulture) - : this.GetLocalizedString("Settings_UpdateLastCheckedNever", "Never"); - } - - private string GetLocalizedString(string key, string fallback, params object[] args) - { - var localized = this.localizationService.GetString(key); - var format = string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) - ? fallback - : localized; - - return args.Length == 0 ? format : string.Format(format, args); - } - - public async Task SaveIfDirtyAsync() - { - if (!this.HasUnsavedChanges) - { - return true; - } - - await this.SaveSettingsAsync(); - return !this.HasUnsavedChanges; - } - - public async Task DiscardPendingChangesAsync() - { - if (!this.HasUnsavedChanges) - { - return; - } - - await this.RefreshSettingsAsync(); - } - - private void UpdatePendingChangesState() - { - this.HasUnsavedChanges = !this.Settings.HasSameUserSettingsAs(this.savedSettingsSnapshot); - this.StatusMessage = this.HasUnsavedChanges - ? this.GetLocalizedString("Settings_StatusModified", "Settings have been modified") - : this.GetLocalizedString("Settings_StatusMatchSaved", "Settings match the saved configuration"); - } - - private void SetSavedSettingsSnapshot(ApplicationSettingsModel settingsSnapshot) - { - this.savedSettingsSnapshot = (ApplicationSettingsModel)settingsSnapshot.Clone(); - this.HasUnsavedChanges = false; - } - - private static bool TryParseBundle(string json, out ConfigurationBundle bundle) - { - bundle = new ConfigurationBundle(); - - try - { - using var document = JsonDocument.Parse(json); - if (document.RootElement.ValueKind != JsonValueKind.Object) - { - return false; - } - - if (!document.RootElement.TryGetProperty("settings", out var settingsElement)) - { - return false; - } - - if (!document.RootElement.TryGetProperty("processMonitorConfiguration", out var rulesElement) && - !document.RootElement.TryGetProperty("rulesConfiguration", out rulesElement)) - { - return false; - } - - var parsedBundle = JsonSerializer.Deserialize(json, ImportExportJsonOptions); - if (parsedBundle?.Settings == null) - { - return false; - } - - parsedBundle.ProcessMonitorConfiguration = - parsedBundle.ProcessMonitorConfiguration - ?? parsedBundle.RulesConfiguration - ?? JsonSerializer.Deserialize(rulesElement.GetRawText(), ImportExportJsonOptions) - ?? new ProcessMonitorConfiguration(); - - parsedBundle.ProcessMonitorConfiguration.Associations ??= new List(); - bundle = parsedBundle; - return true; - } - catch (JsonException) - { - return false; - } - } - - private static ProcessMonitorConfiguration CloneConfiguration(ProcessMonitorConfiguration source) - { - var serialized = JsonSerializer.Serialize(source, ImportExportJsonOptions); - var clone = JsonSerializer.Deserialize(serialized, ImportExportJsonOptions) - ?? new ProcessMonitorConfiguration(); - clone.Associations ??= new List(); - return clone; - } - - private sealed class ConfigurationBundle - { - public string SchemaVersion { get; set; } = "2.0"; - - public DateTime ExportedAtUtc { get; set; } = DateTime.UtcNow; - - public ApplicationSettingsModel Settings { get; set; } = new ApplicationSettingsModel(); - - public ProcessMonitorConfiguration? ProcessMonitorConfiguration { get; set; } - - public ProcessMonitorConfiguration? RulesConfiguration { get; set; } - } - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.IO; + using System.Linq; + using System.Reflection; + using System.Text; + using System.Text.Json; + using System.Threading.Tasks; + using System.Windows; + using System.Windows.Input; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using Microsoft.Win32; + using ThreadPilot.Models; + using ThreadPilot.Services; + + public partial class SettingsViewModel : BaseViewModel + { + private readonly IApplicationSettingsService settingsService; + private readonly INotificationService notificationService; + private readonly IAutostartService autostartService; + private readonly IPowerPlanService powerPlanService; + private readonly IProcessPowerPlanAssociationService associationService; + private readonly IProcessMonitorManagerService processMonitorManagerService; + private readonly IThemeService themeService; + private readonly ISystemTrayService systemTrayService; + private readonly IUpdateService updateService; + private readonly IApplicationVersionProvider versionProvider; + private readonly ILocalizationService localizationService; + private ApplicationSettingsModel savedSettingsSnapshot; + private bool isSyncingFromService = false; + private bool? appliedThemePreference; + private string cachedDefaultPowerPlanGuid = string.Empty; + private string cachedDefaultPowerPlanName = string.Empty; + private UpdateReleaseInfo? availableUpdate; + private static readonly JsonSerializerOptions ImportExportJsonOptions = new() + { + WriteIndented = true, + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + PropertyNameCaseInsensitive = true, + ReadCommentHandling = JsonCommentHandling.Skip, + AllowTrailingCommas = true, + }; + + [ObservableProperty] + private ApplicationSettingsModel settings; + + [ObservableProperty] + private bool hasUnsavedChanges = false; + + [ObservableProperty] + private bool isLoading = false; + + public bool CanSaveSettings => this.HasUnsavedChanges && !this.IsLoading; + + public bool HasPendingChanges => this.HasUnsavedChanges; + + [ObservableProperty] + private ObservableCollection availablePowerPlans = new(); + + public string ApplicationVersion { get; } + + public ICommand SaveSettingsCommand { get; } + + public ICommand ResetToDefaultsCommand { get; } + + public ICommand ExportSettingsCommand { get; } + + public ICommand ImportSettingsCommand { get; } + + public ICommand TestNotificationCommand { get; } + + public ICommand RefreshPowerPlansCommand { get; } + + public ICommand CheckUpdatesCommand { get; } + + public IAsyncRelayCommand DownloadAndInstallUpdateCommand { get; } + + [ObservableProperty] + private string latestUpdateVersion = string.Empty; + + [ObservableProperty] + private string lastUpdateCheckText = string.Empty; + + [ObservableProperty] + private bool isUpdateAvailable = false; + + public bool CanDownloadAndInstallUpdate => this.IsUpdateAvailable && !this.IsLoading; + + public SettingsViewModel( + ILogger logger, + IApplicationSettingsService settingsService, + INotificationService notificationService, + IAutostartService autostartService, + IPowerPlanService powerPlanService, + IProcessPowerPlanAssociationService associationService, + IProcessMonitorManagerService processMonitorManagerService, + IThemeService themeService, + ISystemTrayService systemTrayService, + IUpdateService updateService, + IApplicationVersionProvider versionProvider, + ILocalizationService localizationService, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null) + : base(logger, enhancedLoggingService, activityAuditService) + { + this.settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); + this.notificationService = notificationService ?? throw new ArgumentNullException(nameof(notificationService)); + this.autostartService = autostartService ?? throw new ArgumentNullException(nameof(autostartService)); + this.powerPlanService = powerPlanService ?? throw new ArgumentNullException(nameof(powerPlanService)); + this.associationService = associationService ?? throw new ArgumentNullException(nameof(associationService)); + this.processMonitorManagerService = processMonitorManagerService ?? throw new ArgumentNullException(nameof(processMonitorManagerService)); + this.themeService = themeService ?? throw new ArgumentNullException(nameof(themeService)); + this.systemTrayService = systemTrayService ?? throw new ArgumentNullException(nameof(systemTrayService)); + this.updateService = updateService ?? throw new ArgumentNullException(nameof(updateService)); + this.versionProvider = versionProvider ?? throw new ArgumentNullException(nameof(versionProvider)); + this.localizationService = localizationService ?? throw new ArgumentNullException(nameof(localizationService)); + + this.ApplicationVersion = this.versionProvider.DisplayVersion; + + // Initialize with current settings + this.settings = (ApplicationSettingsModel)this.settingsService.Settings.Clone(); + this.savedSettingsSnapshot = (ApplicationSettingsModel)this.settings.Clone(); + this.appliedThemePreference = this.settings.UseDarkTheme; + this.LatestUpdateVersion = this.GetLocalizedString("Settings_UpdateNotChecked", "Not checked"); + this.UpdateLastCheckedText(); + + // Initialize commands + this.SaveSettingsCommand = new AsyncRelayCommand(this.SaveSettingsAsync); + this.ResetToDefaultsCommand = new AsyncRelayCommand(this.ResetToDefaultsAsync); + this.ExportSettingsCommand = new AsyncRelayCommand(this.ExportSettingsAsync); + this.ImportSettingsCommand = new AsyncRelayCommand(this.ImportSettingsAsync); + this.TestNotificationCommand = new AsyncRelayCommand(this.TestNotificationAsync); + this.RefreshPowerPlansCommand = new AsyncRelayCommand(this.RefreshPowerPlansAsync); + this.CheckUpdatesCommand = new AsyncRelayCommand(this.CheckUpdatesAsync); + this.DownloadAndInstallUpdateCommand = new AsyncRelayCommand( + this.DownloadAndInstallUpdateAsync, + () => this.CanDownloadAndInstallUpdate); + + // Subscribe to property changes to track unsaved changes + this.Settings.PropertyChanged += this.OnSettingsPropertyChanged; + + // Keep viewmodel in sync with persisted settings + this.settingsService.SettingsChanged += this.OnSettingsServiceSettingsChanged; + + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher != null) + { + // Ensure we load the latest persisted settings on startup. + _ = dispatcher.InvokeAsync(async () => await this.RefreshSettingsAsync()); + + // Initialize data - marshal to UI thread to prevent cross-thread access exceptions. + _ = dispatcher.InvokeAsync(async () => await this.RefreshPowerPlansAsync()); + } + + this.Logger.LogInformation("Settings ViewModel initialized"); + } + + private void OnSettingsPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e) + { + if (this.isSyncingFromService) + { + return; + } + + if (string.Equals(e.PropertyName, nameof(ApplicationSettingsModel.UseDarkTheme), StringComparison.Ordinal)) + { + this.Settings.HasUserThemePreference = true; + this.UpdatePendingChangesState(); + this.ApplyThemePreference(this.Settings.UseDarkTheme, logUserAction: true); + return; + } + + if (string.Equals(e.PropertyName, nameof(ApplicationSettingsModel.Language), StringComparison.Ordinal)) + { + this.UpdatePendingChangesState(); + this.ApplyLanguagePreference(this.Settings.Language, logUserAction: true); + return; + } + + if (string.Equals(e.PropertyName, nameof(ApplicationSettingsModel.ApplyPersistentRulesOnProcessStart), StringComparison.Ordinal)) + { + this.UpdatePendingChangesState(); + var state = this.Settings.ApplyPersistentRulesOnProcessStart ? "enabled" : "disabled"; + _ = this.LogUserActionAsync( + "SettingsChanged", + $"[Settings] Apply saved rules at process start {state}."); + return; + } + + this.UpdatePendingChangesState(); + } + + private void ApplyThemePreference(bool useDarkTheme, bool logUserAction) + { + if (this.appliedThemePreference == useDarkTheme) + { + return; + } + + var themeName = useDarkTheme + ? this.GetLocalizedString("Settings_ThemeDark", "Dark") + : this.GetLocalizedString("Settings_ThemeLight", "Light"); + try + { + this.themeService.ApplyTheme(useDarkTheme); + this.systemTrayService.ApplyTheme(useDarkTheme); + this.appliedThemePreference = useDarkTheme; + this.StatusMessage = this.GetLocalizedString("Settings_StatusThemeChangedFormat", "Theme changed to {0}.", themeName); + + if (logUserAction) + { + _ = this.LogUserActionAsync("ThemeChanged", $"Theme changed to {themeName}"); + } + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusThemeChangeFailedFormat", "Failed to change theme to {0}.", themeName); + this.Logger.LogError(ex, "Failed to apply theme preference {ThemeName}", themeName); + _ = this.LogUserActionAsync("ThemeChangeFailed", $"Failed to change theme to {themeName}: {ex.Message}"); + } + } + + private void ApplyLanguagePreference(string language, bool logUserAction) + { + var normalizedLanguage = LocalizationService.NormalizeLanguage(language); + try + { + this.localizationService.ApplyLanguage(normalizedLanguage); + this.Settings.Language = normalizedLanguage; + var languageName = normalizedLanguage == LocalizationService.SimplifiedChineseLanguage + ? this.GetLocalizedString("Settings_LanguageSimplifiedChinese", "Simplified Chinese") + : this.GetLocalizedString("Settings_LanguageEnglish", "English"); + this.StatusMessage = this.GetLocalizedString("Settings_StatusLanguageChangedFormat", "Language changed to {0}.", languageName); + + if (logUserAction) + { + _ = this.LogUserActionAsync("LanguageChanged", $"Language changed to {languageName}"); + } + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusLanguageChangeFailed", "Failed to change language."); + this.Logger.LogError(ex, "Failed to apply language preference {Language}", normalizedLanguage); + _ = this.LogUserActionAsync("LanguageChangeFailed", $"Failed to change language to {normalizedLanguage}: {ex.Message}"); + } + } + + partial void OnHasUnsavedChangesChanged(bool value) + { + OnPropertyChanged(nameof(CanSaveSettings)); + } + + partial void OnIsLoadingChanged(bool value) + { + OnPropertyChanged(nameof(CanSaveSettings)); + OnPropertyChanged(nameof(CanDownloadAndInstallUpdate)); + this.DownloadAndInstallUpdateCommand.NotifyCanExecuteChanged(); + } + + partial void OnIsUpdateAvailableChanged(bool value) + { + OnPropertyChanged(nameof(CanDownloadAndInstallUpdate)); + this.DownloadAndInstallUpdateCommand.NotifyCanExecuteChanged(); + } + + private async Task SaveSettingsAsync() + { + string previousDefaultPowerPlanGuid = string.Empty; + string previousDefaultPowerPlanName = string.Empty; + + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusSaving", "Saving settings..."); + var warnings = new List(); + + previousDefaultPowerPlanGuid = this.Settings.DefaultPowerPlanId; + previousDefaultPowerPlanName = this.Settings.DefaultPowerPlanName; + + // Handle autostart setting + var currentAutostartState = await this.autostartService.CheckAutostartStatusAsync(); + if (this.Settings.AutostartWithWindows != currentAutostartState) + { + bool autostartUpdated; + if (this.Settings.AutostartWithWindows) + { + autostartUpdated = await this.autostartService.EnableAutostartAsync(this.Settings.StartMinimized); + } + else + { + autostartUpdated = await this.autostartService.DisableAutostartAsync(); + } + + if (!autostartUpdated) + { + warnings.Add(this.GetLocalizedString( + "Settings_WarningAutostartFailed", + "Failed to update Windows autostart. Keeping previous autostart state.")); + this.Settings.AutostartWithWindows = currentAutostartState; + } + else + { + this.Settings.AutostartWithWindows = await this.autostartService.CheckAutostartStatusAsync(); + } + } + + await this.settingsService.UpdateSettingsAsync(this.Settings); + + var useDarkTheme = this.Settings.HasUserThemePreference + ? this.Settings.UseDarkTheme + : this.themeService.GetSystemUsesDarkTheme(); + + this.isSyncingFromService = true; + this.Settings.UseDarkTheme = useDarkTheme; + this.isSyncingFromService = false; + this.ApplyThemePreference(useDarkTheme, logUserAction: false); + this.ApplyLanguagePreference(this.Settings.Language, logUserAction: false); + + // Update monitoring services with new settings + this.processMonitorManagerService.UpdateSettings(); + + this.SetSavedSettingsSnapshot(this.Settings); + if (warnings.Count > 0) + { + this.StatusMessage = this.GetLocalizedString( + "Settings_StatusSavedWarningsFormat", + "Settings saved with warnings: {0}", + string.Join(" ", warnings)); + await this.notificationService.ShowNotificationAsync( + "Settings Saved with Warnings", + string.Join(" ", warnings), + NotificationType.Warning); + } + else + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusSavedApplied", "Settings saved and applied successfully."); + await this.notificationService.ShowSuccessNotificationAsync( + "Settings Saved", + "Application settings have been saved successfully"); + } + + await this.LogUserActionAsync("SettingsChanged", "Settings saved and applied"); + this.Logger.LogInformation("Settings saved successfully"); + } + catch (Exception ex) + { + this.Settings.DefaultPowerPlanId = previousDefaultPowerPlanGuid; + this.Settings.DefaultPowerPlanName = previousDefaultPowerPlanName; + + this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorSavingFormat", "Error saving settings: {0}", ex.Message); + this.Logger.LogError(ex, "Error saving settings"); + + await this.notificationService.ShowErrorNotificationAsync( + "Settings Error", + "Failed to save settings", + ex); + await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to save settings: {ex.Message}"); + } + finally + { + this.IsLoading = false; + } + } + + private async Task ResetToDefaultsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusResetting", "Resetting to defaults..."); + + var defaultSettings = new ApplicationSettingsModel(); + this.Settings.CopyFrom(defaultSettings); + + this.UpdatePendingChangesState(); + this.StatusMessage = this.GetLocalizedString("Settings_StatusResetPending", "Settings reset to defaults (not saved yet)"); + + await this.LogUserActionAsync("SettingsChanged", "Settings reset to defaults pending save"); + this.Logger.LogInformation("Settings reset to defaults"); + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorResettingFormat", "Error resetting settings: {0}", ex.Message); + this.Logger.LogError(ex, "Error resetting settings"); + await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to reset settings: {ex.Message}"); + } + finally + { + this.IsLoading = false; + } + } + + private async Task ExportSettingsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusExporting", "Exporting configuration bundle..."); + + var saveDialog = new SaveFileDialog + { + Title = this.GetLocalizedString("Settings_DialogExportTitle", "Export ThreadPilot Configuration"), + Filter = "ThreadPilot configuration (*.json)|*.json|All files (*.*)|*.*", + DefaultExt = ".json", + FileName = $"ThreadPilot_Configuration_{DateTime.Now:yyyyMMdd_HHmmss}.json", + OverwritePrompt = true, + AddExtension = true, + }; + + if (saveDialog.ShowDialog() != true) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusExportCanceled", "Export canceled"); + return; + } + + var settingsSnapshot = (ApplicationSettingsModel)this.Settings.Clone(); + var rulesSnapshot = CloneConfiguration(this.associationService.Configuration); + + var bundle = new ConfigurationBundle + { + SchemaVersion = "2.0", + ExportedAtUtc = DateTime.UtcNow, + Settings = settingsSnapshot, + ProcessMonitorConfiguration = rulesSnapshot, + }; + + var json = JsonSerializer.Serialize(bundle, ImportExportJsonOptions); + await AtomicFileWriter.WriteAllTextAsync(saveDialog.FileName, json, Encoding.UTF8); + + this.StatusMessage = this.GetLocalizedString("Settings_StatusExportedFormat", "Configuration exported to: {0}", saveDialog.FileName); + + await this.notificationService.ShowSuccessNotificationAsync( + "Configuration Exported", + $"Settings and rules exported to {Path.GetFileName(saveDialog.FileName)}"); + + this.Logger.LogInformation("Configuration bundle exported to {Path}", saveDialog.FileName); + await this.LogUserActionAsync("SettingsChanged", "Configuration exported", Path.GetFileName(saveDialog.FileName)); + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorExportingFormat", "Error exporting settings: {0}", ex.Message); + this.Logger.LogError(ex, "Error exporting settings"); + + await this.notificationService.ShowErrorNotificationAsync( + "Export Error", + "Failed to export settings", + ex); + await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to export settings: {ex.Message}"); + } + finally + { + this.IsLoading = false; + } + } + + private async Task ImportSettingsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusImporting", "Importing configuration..."); + + var openDialog = new OpenFileDialog + { + Title = this.GetLocalizedString("Settings_DialogImportTitle", "Import ThreadPilot Configuration"), + Filter = "JSON files (*.json)|*.json|All files (*.*)|*.*", + Multiselect = false, + CheckFileExists = true, + }; + + if (openDialog.ShowDialog() != true) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusImportCanceled", "Import canceled"); + return; + } + + var importPath = openDialog.FileName; + var json = await File.ReadAllTextAsync(importPath); + + if (TryParseBundle(json, out var bundle)) + { + await this.settingsService.UpdateSettingsAsync(bundle.Settings); + + var importedConfiguration = bundle.ProcessMonitorConfiguration ?? new ProcessMonitorConfiguration(); + var replaced = await this.associationService.ReplaceConfigurationAsync(importedConfiguration); + if (!replaced) + { + throw new InvalidOperationException("Failed to apply imported rules configuration"); + } + + await this.processMonitorManagerService.RefreshConfigurationAsync(); + this.processMonitorManagerService.UpdateSettings(); + await this.RefreshSettingsAsync(); + this.HasUnsavedChanges = false; + + this.StatusMessage = this.GetLocalizedString("Settings_StatusImportedApplied", "Configuration bundle imported and applied"); + await this.notificationService.ShowSuccessNotificationAsync( + "Configuration Imported", + $"Settings and rules imported from {Path.GetFileName(importPath)}"); + + this.Logger.LogInformation("Configuration bundle imported from {Path}", importPath); + await this.LogUserActionAsync("SettingsChanged", "Configuration bundle imported", Path.GetFileName(importPath)); + return; + } + + await this.settingsService.ImportSettingsAsync(importPath); + this.processMonitorManagerService.UpdateSettings(); + await this.RefreshSettingsAsync(); + this.HasUnsavedChanges = false; + + this.StatusMessage = this.GetLocalizedString("Settings_StatusLegacyImported", "Legacy settings imported (rules unchanged)"); + await this.notificationService.ShowNotificationAsync( + "Legacy Import Completed", + $"Imported settings from {Path.GetFileName(importPath)}. Rules were not modified.", + NotificationType.Information); + + this.Logger.LogInformation("Legacy settings imported from {Path}", importPath); + await this.LogUserActionAsync("SettingsChanged", "Legacy settings imported", Path.GetFileName(importPath)); + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorImportingFormat", "Error importing settings: {0}", ex.Message); + this.Logger.LogError(ex, "Error importing settings"); + + await this.notificationService.ShowErrorNotificationAsync( + "Import Error", + "Failed to import configuration", + ex); + await this.LogUserActionAsync("SettingsChangeFailed", $"Failed to import settings: {ex.Message}"); + } + finally + { + this.IsLoading = false; + } + } + + private async Task TestNotificationAsync() + { + try + { + await this.notificationService.ShowNotificationAsync( + "Test Notification", + "This is a test notification to verify your settings are working correctly.", + NotificationType.Information); + + this.StatusMessage = this.GetLocalizedString("Settings_StatusTestSent", "Test notification sent"); + this.Logger.LogInformation("Test notification sent"); + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorTestFormat", "Error sending test notification: {0}", ex.Message); + this.Logger.LogError(ex, "Error sending test notification"); + } + } + + public async Task RefreshSettingsAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusLoading", "Loading settings..."); + + await this.settingsService.LoadSettingsAsync(); + await this.associationService.LoadConfigurationAsync(); + + var settingsSnapshot = this.settingsService.Settings; + var (defaultPowerPlanGuid, defaultPowerPlanName) = await this.associationService.GetDefaultPowerPlanAsync(); + this.cachedDefaultPowerPlanGuid = defaultPowerPlanGuid; + this.cachedDefaultPowerPlanName = defaultPowerPlanName; + if (!string.IsNullOrWhiteSpace(defaultPowerPlanGuid)) + { + settingsSnapshot.DefaultPowerPlanId = defaultPowerPlanGuid; + settingsSnapshot.DefaultPowerPlanName = defaultPowerPlanName; + } + + this.isSyncingFromService = true; + this.Settings.CopyFrom(settingsSnapshot); + this.isSyncingFromService = false; + + var useDarkTheme = this.Settings.HasUserThemePreference + ? this.Settings.UseDarkTheme + : this.themeService.GetSystemUsesDarkTheme(); + + this.isSyncingFromService = true; + this.Settings.UseDarkTheme = useDarkTheme; + this.isSyncingFromService = false; + this.ApplyThemePreference(useDarkTheme, logUserAction: false); + this.ApplyLanguagePreference(this.Settings.Language, logUserAction: false); + + this.SetSavedSettingsSnapshot(this.Settings); + this.StatusMessage = this.GetLocalizedString("Settings_StatusLoaded", "Settings loaded"); + + this.Logger.LogInformation("Settings refreshed"); + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusErrorLoadingFormat", "Error loading settings: {0}", ex.Message); + this.Logger.LogError(ex, "Error loading settings"); + } + finally + { + this.isSyncingFromService = false; + this.IsLoading = false; + } + } + + public bool CanClose() + { + return !this.HasUnsavedChanges; + } + + private void OnSettingsServiceSettingsChanged(object? sender, ApplicationSettingsChangedEventArgs e) + { + // Marshal to UI thread to avoid cross-thread property change issues + System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.isSyncingFromService = true; + try + { + this.Settings.CopyFrom(e.NewSettings); + if (!string.IsNullOrWhiteSpace(this.cachedDefaultPowerPlanGuid)) + { + this.Settings.DefaultPowerPlanId = this.cachedDefaultPowerPlanGuid; + this.Settings.DefaultPowerPlanName = this.cachedDefaultPowerPlanName; + } + this.SetSavedSettingsSnapshot(this.Settings); + this.ApplyLanguagePreference(this.Settings.Language, logUserAction: false); + this.StatusMessage = this.GetLocalizedString("Settings_StatusSynchronized", "Settings synchronized"); + } + finally + { + this.isSyncingFromService = false; + } + }); + } + + private async Task RefreshPowerPlansAsync() + { + try + { + var powerPlans = await this.powerPlanService.GetPowerPlansAsync(); + + this.AvailablePowerPlans.Clear(); + foreach (var plan in powerPlans) + { + this.AvailablePowerPlans.Add(plan); + } + + this.Logger.LogDebug("Refreshed {Count} power plans", this.AvailablePowerPlans.Count); + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Failed to refresh power plans"); + } + } + + private async Task CheckUpdatesAsync() + { + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusCheckingUpdates", "Checking for updates..."); + + var result = await this.updateService.CheckForUpdatesAsync(new UpdateCheckRequest(UpdateCheckTrigger.Manual)); + this.UpdateLastCheckedText(); + + if (result.Status == UpdateCheckStatus.Failed) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusLatestUnknown", "Unable to determine the latest version."); + await this.notificationService.ShowErrorNotificationAsync( + "Update Check", + result.Message); + return; + } + + if (result.IsUpdateAvailable && result.Release != null) + { + this.availableUpdate = result.Release; + this.LatestUpdateVersion = $"v{result.Release.Version}"; + this.IsUpdateAvailable = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusNewVersionFormat", "New version available: {0}", result.Release.Version); + await this.notificationService.ShowNotificationAsync( + "Update available", + $"ThreadPilot {result.Release.Version} is available.", + NotificationType.Information); + } + else + { + this.availableUpdate = null; + this.LatestUpdateVersion = result.Release != null ? $"v{result.Release.Version}" : this.GetLocalizedString("Settings_UpdateLatestUnknown", "Unknown"); + this.IsUpdateAvailable = false; + this.StatusMessage = this.GetLocalizedString("Settings_StatusUpToDateFormat", "Application is up to date. Installed version: {0}", this.ApplicationVersion); + await this.notificationService.ShowSuccessNotificationAsync( + "Application up to date", + $"Installed version: {this.ApplicationVersion}"); + } + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateErrorFormat", "Error while checking updates: {0}", ex.Message); + this.Logger.LogError(ex, "Error checking for updates"); + + await this.notificationService.ShowErrorNotificationAsync( + "Update check error", + "Unable to verify updates", + ex); + } + finally + { + this.IsLoading = false; + } + } + + private async Task DownloadAndInstallUpdateAsync() + { + if (this.availableUpdate == null) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusLatestUnknown", "Unable to determine the latest version."); + return; + } + + var message = this.GetLocalizedString( + "Settings_UpdateConfirmMessageFormat", + "ThreadPilot will download and verify version {0}, then ask Windows for permission to run the installer. Continue?", + this.availableUpdate.Version); + var confirmation = System.Windows.MessageBox.Show( + message, + this.GetLocalizedString("Settings_UpdateConfirmTitle", "Install ThreadPilot update"), + MessageBoxButton.YesNo, + MessageBoxImage.Information); + + if (confirmation != MessageBoxResult.Yes) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateCanceled", "Update canceled."); + return; + } + + try + { + this.IsLoading = true; + this.StatusMessage = this.GetLocalizedString("Settings_StatusDownloadingUpdate", "Downloading and verifying update..."); + + var result = await this.updateService.DownloadAndInstallAsync(this.availableUpdate); + if (result.Status == UpdateInstallStatus.Started) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateInstallerStarted", "Update installer started."); + await this.notificationService.ShowNotificationAsync( + "Update installer started", + "ThreadPilot will close while the installer runs.", + NotificationType.Information); + } + else + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateInstallFailedFormat", "Update install failed: {0}", result.Message); + await this.notificationService.ShowErrorNotificationAsync( + "Update install failed", + result.Message); + } + } + catch (Exception ex) + { + this.StatusMessage = this.GetLocalizedString("Settings_StatusUpdateInstallFailedFormat", "Update install failed: {0}", ex.Message); + this.Logger.LogError(ex, "Error downloading or installing update"); + await this.notificationService.ShowErrorNotificationAsync( + "Update install failed", + "Unable to download or start the update installer", + ex); + } + finally + { + this.IsLoading = false; + } + } + + private void UpdateLastCheckedText() + { + var lastCheck = this.settingsService.Settings.LastUpdateCheckUtc; + this.LastUpdateCheckText = lastCheck.HasValue + ? lastCheck.Value.LocalDateTime.ToString("g", System.Globalization.CultureInfo.CurrentCulture) + : this.GetLocalizedString("Settings_UpdateLastCheckedNever", "Never"); + } + + private string GetLocalizedString(string key, string fallback, params object[] args) + { + var localized = this.localizationService.GetString(key); + var format = string.IsNullOrWhiteSpace(localized) || string.Equals(localized, key, StringComparison.Ordinal) + ? fallback + : localized; + + return args.Length == 0 ? format : string.Format(format, args); + } + + public async Task SaveIfDirtyAsync() + { + if (!this.HasUnsavedChanges) + { + return true; + } + + await this.SaveSettingsAsync(); + return !this.HasUnsavedChanges; + } + + public async Task DiscardPendingChangesAsync() + { + if (!this.HasUnsavedChanges) + { + return; + } + + await this.RefreshSettingsAsync(); + } + + private void UpdatePendingChangesState() + { + this.HasUnsavedChanges = !this.Settings.HasSameUserSettingsAs(this.savedSettingsSnapshot); + this.StatusMessage = this.HasUnsavedChanges + ? this.GetLocalizedString("Settings_StatusModified", "Settings have been modified") + : this.GetLocalizedString("Settings_StatusMatchSaved", "Settings match the saved configuration"); + } + + private void SetSavedSettingsSnapshot(ApplicationSettingsModel settingsSnapshot) + { + this.savedSettingsSnapshot = (ApplicationSettingsModel)settingsSnapshot.Clone(); + this.HasUnsavedChanges = false; + } + + private static bool TryParseBundle(string json, out ConfigurationBundle bundle) + { + bundle = new ConfigurationBundle(); + + try + { + using var document = JsonDocument.Parse(json); + if (document.RootElement.ValueKind != JsonValueKind.Object) + { + return false; + } + + if (!document.RootElement.TryGetProperty("settings", out var settingsElement)) + { + return false; + } + + if (!document.RootElement.TryGetProperty("processMonitorConfiguration", out var rulesElement) && + !document.RootElement.TryGetProperty("rulesConfiguration", out rulesElement)) + { + return false; + } + + var parsedBundle = JsonSerializer.Deserialize(json, ImportExportJsonOptions); + if (parsedBundle?.Settings == null) + { + return false; + } + + parsedBundle.ProcessMonitorConfiguration = + parsedBundle.ProcessMonitorConfiguration + ?? parsedBundle.RulesConfiguration + ?? JsonSerializer.Deserialize(rulesElement.GetRawText(), ImportExportJsonOptions) + ?? new ProcessMonitorConfiguration(); + + parsedBundle.ProcessMonitorConfiguration.Associations ??= new List(); + bundle = parsedBundle; + return true; + } + catch (JsonException) + { + return false; + } + } + + private static ProcessMonitorConfiguration CloneConfiguration(ProcessMonitorConfiguration source) + { + var serialized = JsonSerializer.Serialize(source, ImportExportJsonOptions); + var clone = JsonSerializer.Deserialize(serialized, ImportExportJsonOptions) + ?? new ProcessMonitorConfiguration(); + clone.Associations ??= new List(); + return clone; + } + + private sealed class ConfigurationBundle + { + public string SchemaVersion { get; set; } = "2.0"; + + public DateTime ExportedAtUtc { get; set; } = DateTime.UtcNow; + + public ApplicationSettingsModel Settings { get; set; } = new ApplicationSettingsModel(); + + public ProcessMonitorConfiguration? ProcessMonitorConfiguration { get; set; } + + public ProcessMonitorConfiguration? RulesConfiguration { get; set; } + } + } +} diff --git a/ViewModels/SystemTweaksViewModel.cs b/ViewModels/SystemTweaksViewModel.cs index 5a86835..e7ebe54 100644 --- a/ViewModels/SystemTweaksViewModel.cs +++ b/ViewModels/SystemTweaksViewModel.cs @@ -1,364 +1,342 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.ObjectModel; - using System.Linq; - using System.Threading.Tasks; - using CommunityToolkit.Mvvm.ComponentModel; - using CommunityToolkit.Mvvm.Input; - using Microsoft.Extensions.Logging; - using ThreadPilot.Services; - - /// - /// ViewModel for the System Tweaks tab. - /// - public partial class SystemTweaksViewModel : BaseViewModel - { - private readonly ISystemTweaksService systemTweaksService; - private readonly INotificationService notificationService; - - [ObservableProperty] - private ObservableCollection tweakItems = new(); - - [ObservableProperty] - private bool isRefreshing; - - [ObservableProperty] - private string refreshStatusText = "Ready"; - - public SystemTweaksViewModel( - ISystemTweaksService systemTweaksService, - INotificationService notificationService, - ILogger logger, - IEnhancedLoggingService? enhancedLoggingService = null, - IActivityAuditService? activityAuditService = null) - : base(logger, enhancedLoggingService, activityAuditService) - { - this.systemTweaksService = systemTweaksService; - this.notificationService = notificationService; - - // Subscribe to tweak status changes - this.systemTweaksService.TweakStatusChanged += this.OnTweakStatusChanged; - - this.InitializeTweakItems(); - } - - private void InitializeTweakItems() - { - this.TweakItems = new ObservableCollection - { - new SystemTweakItem - { - Name = "Core Parking", - Description = "Controls CPU core parking for power management", - TweakType = SystemTweak.CoreParking, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "C-States", - Description = "Controls CPU C-States for power management", - TweakType = SystemTweak.CStates, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "SysMain Service", - Description = "Windows Superfetch/SysMain service for memory management", - TweakType = SystemTweak.SysMain, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "Prefetch", - Description = "Windows Prefetch feature for faster application loading", - TweakType = SystemTweak.Prefetch, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "Power Throttling", - Description = "Windows Power Throttling for energy efficiency", - TweakType = SystemTweak.PowerThrottling, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "HPET", - Description = "High Precision Event Timer for system timing", - TweakType = SystemTweak.Hpet, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "High Scheduling Category", - Description = "High scheduling priority for gaming applications", - TweakType = SystemTweak.HighSchedulingCategory, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), - }, - new SystemTweakItem - { - Name = "Menu Show Delay", - Description = "Delay before showing context menus", - TweakType = SystemTweak.MenuShowDelay, - IsEnabled = false, - IsAvailable = true, - ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync) - }, - }; - } - - [RelayCommand] - public async Task LoadAsync() - { - await this.ExecuteAsync( - async () => - { - await this.RefreshAllTweaksAsync(); - }, "Loading system tweaks...", "System tweaks loaded successfully"); - } - - [RelayCommand] - public async Task RefreshAllTweaksAsync() - { - try - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.IsRefreshing = true; - this.RefreshStatusText = "Refreshing system tweaks..."; - }); - - await this.systemTweaksService.RefreshAllStatusesAsync(); - - // Update each tweak item with current status - foreach (var item in this.TweakItems) - { - await this.UpdateTweakItemStatusAsync(item); - } - - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.RefreshStatusText = $"Last refreshed: {DateTime.Now:HH:mm:ss}"; - }); - } - catch (Exception ex) - { - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.SetError("Failed to refresh system tweaks", ex); - this.RefreshStatusText = "Refresh failed"; - }); - } - finally - { - // Marshal UI updates to the UI thread to prevent cross-thread access exceptions - await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => - { - this.IsRefreshing = false; - }); - } - } - - private async Task UpdateTweakItemStatusAsync(SystemTweakItem item) - { - try - { - TweakStatus status = item.TweakType switch - { - SystemTweak.CoreParking => await this.systemTweaksService.GetCoreParkingStatusAsync(), - SystemTweak.CStates => await this.systemTweaksService.GetCStatesStatusAsync(), - SystemTweak.SysMain => await this.systemTweaksService.GetSysMainStatusAsync(), - SystemTweak.Prefetch => await this.systemTweaksService.GetPrefetchStatusAsync(), - SystemTweak.PowerThrottling => await this.systemTweaksService.GetPowerThrottlingStatusAsync(), - SystemTweak.Hpet => await this.systemTweaksService.GetHpetStatusAsync(), - SystemTweak.HighSchedulingCategory => await this.systemTweaksService.GetHighSchedulingCategoryStatusAsync(), - SystemTweak.MenuShowDelay => await this.systemTweaksService.GetMenuShowDelayStatusAsync(), - _ => new TweakStatus { IsAvailable = false, ErrorMessage = "Unknown tweak type" }, - }; - - item.IsEnabled = status.IsEnabled; - item.IsAvailable = status.IsAvailable; - item.ErrorMessage = status.ErrorMessage; - if (!string.IsNullOrEmpty(status.Description)) - { - item.Description = status.Description; - } - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Error updating status for tweak {TweakName}", item.Name); - item.IsAvailable = false; - item.ErrorMessage = ex.Message; - } - } - - private async Task ToggleTweakAsync(SystemTweakItem? item) - { - if (item == null) - { - return; - } - - try - { - await InvokeOnUiAsync(() => - { - this.SetStatus($"Toggling {item.Name}..."); - }); - - var newState = !item.IsEnabled; - bool success = item.TweakType switch - { - SystemTweak.CoreParking => await this.systemTweaksService.SetCoreParkingAsync(newState), - SystemTweak.CStates => await this.systemTweaksService.SetCStatesAsync(newState), - SystemTweak.SysMain => await this.systemTweaksService.SetSysMainAsync(newState), - SystemTweak.Prefetch => await this.systemTweaksService.SetPrefetchAsync(newState), - SystemTweak.PowerThrottling => await this.systemTweaksService.SetPowerThrottlingAsync(newState), - SystemTweak.Hpet => await this.systemTweaksService.SetHpetAsync(newState), - SystemTweak.HighSchedulingCategory => await this.systemTweaksService.SetHighSchedulingCategoryAsync(newState), - SystemTweak.MenuShowDelay => await this.systemTweaksService.SetMenuShowDelayAsync(newState), - _ => false, - }; - - if (success) - { - await this.UpdateTweakItemStatusAsync(item); - await InvokeOnUiAsync(() => - { - this.SetStatus($"{item.Name} {(newState ? "enabled" : "disabled")} successfully"); - }); - - await this.notificationService.ShowSuccessNotificationAsync( - "System Tweak Updated", - $"{item.Name} has been {(newState ? "enabled" : "disabled")}"); - await this.LogUserActionAsync( - "SystemTweakApplied", - $"{item.Name} {(newState ? "enabled" : "disabled")}", - item.TweakType.ToString()); - } - else - { - await InvokeOnUiAsync(() => - { - this.SetError($"Failed to toggle {item.Name}", null); - }); - - await this.notificationService.ShowErrorNotificationAsync( - "System Tweak Failed", - $"Failed to {(newState ? "enable" : "disable")} {item.Name}"); - await this.LogUserActionAsync( - "SystemTweakFailed", - $"Failed to {(newState ? "enable" : "disable")} {item.Name}", - item.TweakType.ToString()); - } - } - catch (Exception ex) - { - await InvokeOnUiAsync(() => - { - this.SetError($"Error toggling {item.Name}", ex); - }); - this.Logger.LogError(ex, "Error toggling tweak {TweakName}", item.Name); - await this.LogUserActionAsync( - "SystemTweakFailed", - $"Error toggling {item.Name}: {ex.Message}", - item.TweakType.ToString()); - } - } - - private static Task InvokeOnUiAsync(Action action) - { - var dispatcher = System.Windows.Application.Current?.Dispatcher; - if (dispatcher == null) - { - action(); - return Task.CompletedTask; - } - - return dispatcher.InvokeAsync(action).Task; - } - - private void OnTweakStatusChanged(object? sender, TweakStatusChangedEventArgs e) - { - try - { - var item = this.TweakItems.FirstOrDefault(t => t.TweakType.ToString() == e.TweakName); - if (item != null) - { - item.IsEnabled = e.Status.IsEnabled; - item.IsAvailable = e.Status.IsAvailable; - item.ErrorMessage = e.Status.ErrorMessage; - } - } - catch (Exception ex) - { - this.Logger.LogError(ex, "Error handling tweak status change for {TweakName}", e.TweakName); - } - } - - protected override void OnDispose() - { - this.systemTweaksService.TweakStatusChanged -= this.OnTweakStatusChanged; - base.OnDispose(); - } - } - - /// - /// Represents a system tweak item in the UI. - /// - public partial class SystemTweakItem : ObservableObject - { - [ObservableProperty] - private string name = string.Empty; - - [ObservableProperty] - private string description = string.Empty; - - [ObservableProperty] - private SystemTweak tweakType; - - [ObservableProperty] - private bool isEnabled; - - [ObservableProperty] - private bool isAvailable = true; - - [ObservableProperty] - private string? errorMessage; - - public IAsyncRelayCommand? ToggleCommand { get; set; } - } -} +namespace ThreadPilot.ViewModels +{ + using System; + using System.Collections.ObjectModel; + using System.Linq; + using System.Threading.Tasks; + using CommunityToolkit.Mvvm.ComponentModel; + using CommunityToolkit.Mvvm.Input; + using Microsoft.Extensions.Logging; + using ThreadPilot.Services; + + public partial class SystemTweaksViewModel : BaseViewModel + { + private readonly ISystemTweaksService systemTweaksService; + private readonly INotificationService notificationService; + + [ObservableProperty] + private ObservableCollection tweakItems = new(); + + [ObservableProperty] + private bool isRefreshing; + + [ObservableProperty] + private string refreshStatusText = "Ready"; + + public SystemTweaksViewModel( + ISystemTweaksService systemTweaksService, + INotificationService notificationService, + ILogger logger, + IEnhancedLoggingService? enhancedLoggingService = null, + IActivityAuditService? activityAuditService = null) + : base(logger, enhancedLoggingService, activityAuditService) + { + this.systemTweaksService = systemTweaksService; + this.notificationService = notificationService; + + // Subscribe to tweak status changes + this.systemTweaksService.TweakStatusChanged += this.OnTweakStatusChanged; + + this.InitializeTweakItems(); + } + + private void InitializeTweakItems() + { + this.TweakItems = new ObservableCollection + { + new SystemTweakItem + { + Name = "Core Parking", + Description = "Controls CPU core parking for power management", + TweakType = SystemTweak.CoreParking, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "C-States", + Description = "Controls CPU C-States for power management", + TweakType = SystemTweak.CStates, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "SysMain Service", + Description = "Windows Superfetch/SysMain service for memory management", + TweakType = SystemTweak.SysMain, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "Prefetch", + Description = "Windows Prefetch feature for faster application loading", + TweakType = SystemTweak.Prefetch, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "Power Throttling", + Description = "Windows Power Throttling for energy efficiency", + TweakType = SystemTweak.PowerThrottling, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "HPET", + Description = "High Precision Event Timer for system timing", + TweakType = SystemTweak.Hpet, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "High Scheduling Category", + Description = "High scheduling priority for gaming applications", + TweakType = SystemTweak.HighSchedulingCategory, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync), + }, + new SystemTweakItem + { + Name = "Menu Show Delay", + Description = "Delay before showing context menus", + TweakType = SystemTweak.MenuShowDelay, + IsEnabled = false, + IsAvailable = true, + ToggleCommand = new AsyncRelayCommand(this.ToggleTweakAsync) + }, + }; + } + + [RelayCommand] + public async Task LoadAsync() + { + await this.ExecuteAsync( + async () => + { + await this.RefreshAllTweaksAsync(); + }, "Loading system tweaks...", "System tweaks loaded successfully"); + } + + [RelayCommand] + public async Task RefreshAllTweaksAsync() + { + try + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.IsRefreshing = true; + this.RefreshStatusText = "Refreshing system tweaks..."; + }); + + await this.systemTweaksService.RefreshAllStatusesAsync(); + + // Update each tweak item with current status + foreach (var item in this.TweakItems) + { + await this.UpdateTweakItemStatusAsync(item); + } + + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.RefreshStatusText = $"Last refreshed: {DateTime.Now:HH:mm:ss}"; + }); + } + catch (Exception ex) + { + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.SetError("Failed to refresh system tweaks", ex); + this.RefreshStatusText = "Refresh failed"; + }); + } + finally + { + // Marshal UI updates to the UI thread to prevent cross-thread access exceptions + await System.Windows.Application.Current.Dispatcher.InvokeAsync(() => + { + this.IsRefreshing = false; + }); + } + } + + private async Task UpdateTweakItemStatusAsync(SystemTweakItem item) + { + try + { + TweakStatus status = item.TweakType switch + { + SystemTweak.CoreParking => await this.systemTweaksService.GetCoreParkingStatusAsync(), + SystemTweak.CStates => await this.systemTweaksService.GetCStatesStatusAsync(), + SystemTweak.SysMain => await this.systemTweaksService.GetSysMainStatusAsync(), + SystemTweak.Prefetch => await this.systemTweaksService.GetPrefetchStatusAsync(), + SystemTweak.PowerThrottling => await this.systemTweaksService.GetPowerThrottlingStatusAsync(), + SystemTweak.Hpet => await this.systemTweaksService.GetHpetStatusAsync(), + SystemTweak.HighSchedulingCategory => await this.systemTweaksService.GetHighSchedulingCategoryStatusAsync(), + SystemTweak.MenuShowDelay => await this.systemTweaksService.GetMenuShowDelayStatusAsync(), + _ => new TweakStatus { IsAvailable = false, ErrorMessage = "Unknown tweak type" }, + }; + + item.IsEnabled = status.IsEnabled; + item.IsAvailable = status.IsAvailable; + item.ErrorMessage = status.ErrorMessage; + if (!string.IsNullOrEmpty(status.Description)) + { + item.Description = status.Description; + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Error updating status for tweak {TweakName}", item.Name); + item.IsAvailable = false; + item.ErrorMessage = ex.Message; + } + } + + private async Task ToggleTweakAsync(SystemTweakItem? item) + { + if (item == null) + { + return; + } + + try + { + await InvokeOnUiAsync(() => + { + this.SetStatus($"Toggling {item.Name}..."); + }); + + var newState = !item.IsEnabled; + bool success = item.TweakType switch + { + SystemTweak.CoreParking => await this.systemTweaksService.SetCoreParkingAsync(newState), + SystemTweak.CStates => await this.systemTweaksService.SetCStatesAsync(newState), + SystemTweak.SysMain => await this.systemTweaksService.SetSysMainAsync(newState), + SystemTweak.Prefetch => await this.systemTweaksService.SetPrefetchAsync(newState), + SystemTweak.PowerThrottling => await this.systemTweaksService.SetPowerThrottlingAsync(newState), + SystemTweak.Hpet => await this.systemTweaksService.SetHpetAsync(newState), + SystemTweak.HighSchedulingCategory => await this.systemTweaksService.SetHighSchedulingCategoryAsync(newState), + SystemTweak.MenuShowDelay => await this.systemTweaksService.SetMenuShowDelayAsync(newState), + _ => false, + }; + + if (success) + { + await this.UpdateTweakItemStatusAsync(item); + await InvokeOnUiAsync(() => + { + this.SetStatus($"{item.Name} {(newState ? "enabled" : "disabled")} successfully"); + }); + + await this.notificationService.ShowSuccessNotificationAsync( + "System Tweak Updated", + $"{item.Name} has been {(newState ? "enabled" : "disabled")}"); + await this.LogUserActionAsync( + "SystemTweakApplied", + $"{item.Name} {(newState ? "enabled" : "disabled")}", + item.TweakType.ToString()); + } + else + { + await InvokeOnUiAsync(() => + { + this.SetError($"Failed to toggle {item.Name}", null); + }); + + await this.notificationService.ShowErrorNotificationAsync( + "System Tweak Failed", + $"Failed to {(newState ? "enable" : "disable")} {item.Name}"); + await this.LogUserActionAsync( + "SystemTweakFailed", + $"Failed to {(newState ? "enable" : "disable")} {item.Name}", + item.TweakType.ToString()); + } + } + catch (Exception ex) + { + await InvokeOnUiAsync(() => + { + this.SetError($"Error toggling {item.Name}", ex); + }); + this.Logger.LogError(ex, "Error toggling tweak {TweakName}", item.Name); + await this.LogUserActionAsync( + "SystemTweakFailed", + $"Error toggling {item.Name}: {ex.Message}", + item.TweakType.ToString()); + } + } + + private static Task InvokeOnUiAsync(Action action) + { + var dispatcher = System.Windows.Application.Current?.Dispatcher; + if (dispatcher == null) + { + action(); + return Task.CompletedTask; + } + + return dispatcher.InvokeAsync(action).Task; + } + + private void OnTweakStatusChanged(object? sender, TweakStatusChangedEventArgs e) + { + try + { + var item = this.TweakItems.FirstOrDefault(t => t.TweakType.ToString() == e.TweakName); + if (item != null) + { + item.IsEnabled = e.Status.IsEnabled; + item.IsAvailable = e.Status.IsAvailable; + item.ErrorMessage = e.Status.ErrorMessage; + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Error handling tweak status change for {TweakName}", e.TweakName); + } + } + + protected override void OnDispose() + { + this.systemTweaksService.TweakStatusChanged -= this.OnTweakStatusChanged; + base.OnDispose(); + } + } + + public partial class SystemTweakItem : ObservableObject + { + [ObservableProperty] + private string name = string.Empty; + + [ObservableProperty] + private string description = string.Empty; + + [ObservableProperty] + private SystemTweak tweakType; + + [ObservableProperty] + private bool isEnabled; + + [ObservableProperty] + private bool isAvailable = true; + + [ObservableProperty] + private string? errorMessage; + + public IAsyncRelayCommand? ToggleCommand { get; set; } + } +} diff --git a/ViewModels/ViewModelFactory.cs b/ViewModels/ViewModelFactory.cs deleted file mode 100644 index 723d919..0000000 --- a/ViewModels/ViewModelFactory.cs +++ /dev/null @@ -1,150 +0,0 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.ViewModels -{ - using System; - using System.Collections.Generic; - using Microsoft.Extensions.DependencyInjection; - using Microsoft.Extensions.Logging; - using ThreadPilot.Services; - - /// - /// Factory for creating and managing ViewModel instances. - /// - public interface IViewModelFactory - { - /// - /// Create a ViewModel instance of the specified type. - /// - T CreateViewModel() - where T : BaseViewModel; - - /// - /// Create a ViewModel instance with initialization. - /// - Task CreateAndInitializeViewModelAsync() - where T : BaseViewModel; - - /// - /// Dispose all managed ViewModels. - /// - void DisposeAllViewModels(); - } - - /// - /// Implementation of ViewModel factory with dependency injection support. - /// - public class ViewModelFactory : IViewModelFactory, IDisposable - { - private readonly IServiceProvider serviceProvider; - private readonly ILogger logger; - private readonly List managedViewModels = new(); - private bool disposed; - - public ViewModelFactory(IServiceProvider serviceProvider, ILogger logger) - { - this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider)); - this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } - - public T CreateViewModel() - where T : BaseViewModel - { - try - { - var viewModel = this.serviceProvider.GetRequiredService(); - this.managedViewModels.Add(viewModel); - - this.logger.LogDebug("Created ViewModel of type {ViewModelType}", typeof(T).Name); - return viewModel; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to create ViewModel of type {ViewModelType}", typeof(T).Name); - throw; - } - } - - public async Task CreateAndInitializeViewModelAsync() - where T : BaseViewModel - { - var viewModel = this.CreateViewModel(); - - try - { - await viewModel.InitializeAsync(); - this.logger.LogDebug("Initialized ViewModel of type {ViewModelType}", typeof(T).Name); - return viewModel; - } - catch (Exception ex) - { - this.logger.LogError(ex, "Failed to initialize ViewModel of type {ViewModelType}", typeof(T).Name); - - // Dispose the failed ViewModel - viewModel.Dispose(); - this.managedViewModels.Remove(viewModel); - - throw; - } - } - - public void DisposeAllViewModels() - { - this.logger.LogInformation("Disposing all managed ViewModels"); - - foreach (var viewModel in this.managedViewModels) - { - try - { - viewModel.Dispose(); - } - catch (Exception ex) - { - this.logger.LogError(ex, "Error disposing ViewModel {ViewModelType}", viewModel.GetType().Name); - } - } - - this.managedViewModels.Clear(); - this.logger.LogInformation("All managed ViewModels disposed"); - } - - public void Dispose() - { - if (!this.disposed) - { - this.DisposeAllViewModels(); - this.disposed = true; - } - } - } - - /// - /// Extension methods for ViewModel factory registration. - /// - public static class ViewModelFactoryExtensions - { - /// - /// Register ViewModel factory in dependency injection container. - /// - public static IServiceCollection AddViewModelFactory(this IServiceCollection services) - { - services.AddSingleton(); - return services; - } - } -} - diff --git a/Views/LogViewerView.xaml.cs b/Views/LogViewerView.xaml.cs index 80ce1da..70b28e5 100644 --- a/Views/LogViewerView.xaml.cs +++ b/Views/LogViewerView.xaml.cs @@ -1,19 +1,3 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ using System; using System.Globalization; using System.Windows; @@ -24,9 +8,6 @@ namespace ThreadPilot.Views { - /// - /// Interaction logic for LogViewerView.xaml. - /// public partial class LogViewerView : System.Windows.Controls.UserControl { public LogViewerView() @@ -52,9 +33,6 @@ private async Task OnLoadedAsync() } } - /// - /// Converter to convert bytes to megabytes for display. - /// public class BytesToMegabytesConverter : IValueConverter { public static readonly BytesToMegabytesConverter Instance = new(); @@ -74,9 +52,6 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu } } - /// - /// Converter to invert boolean values. - /// public class InverseBooleanConverter : IValueConverter { public static readonly InverseBooleanConverter Instance = new(); @@ -100,9 +75,6 @@ public object ConvertBack(object value, Type targetType, object parameter, Cultu } } - /// - /// Converter to invert boolean values for visibility. - /// public class InverseBooleanToVisibilityConverter : IValueConverter { public static readonly InverseBooleanToVisibilityConverter Instance = new(); diff --git a/Views/MasksView.xaml.cs b/Views/MasksView.xaml.cs index 2a1a23c..4868fd0 100644 --- a/Views/MasksView.xaml.cs +++ b/Views/MasksView.xaml.cs @@ -1,35 +1,15 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using ThreadPilot.Helpers; - using ThreadPilot.ViewModels; - - /// - /// Interaction logic for MasksView.xaml - /// Based on CPUSetSetter's data-binding pattern. - /// - public partial class MasksView : System.Windows.Controls.UserControl - { - public MasksView() - { - this.InitializeComponent(); - this.DataContext = ServiceProviderExtensions.GetService(); - } - } -} - +namespace ThreadPilot.Views +{ + using ThreadPilot.Helpers; + using ThreadPilot.ViewModels; + + public partial class MasksView : System.Windows.Controls.UserControl + { + public MasksView() + { + this.InitializeComponent(); + this.DataContext = ServiceProviderExtensions.GetService(); + } + } +} + diff --git a/Views/PerformanceView.xaml.cs b/Views/PerformanceView.xaml.cs index f804f07..6efe630 100644 --- a/Views/PerformanceView.xaml.cs +++ b/Views/PerformanceView.xaml.cs @@ -1,39 +1,20 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using System.Windows.Controls; - using ThreadPilot.ViewModels; - - /// - /// Interaction logic for PerformanceView.xaml. - /// - public partial class PerformanceView : System.Windows.Controls.UserControl - { - public PerformanceView() - { - this.InitializeComponent(); - } - - public PerformanceView(PerformanceViewModel viewModel) - : this() - { - this.DataContext = viewModel; - } - } -} - +namespace ThreadPilot.Views +{ + using System.Windows.Controls; + using ThreadPilot.ViewModels; + + public partial class PerformanceView : System.Windows.Controls.UserControl + { + public PerformanceView() + { + this.InitializeComponent(); + } + + public PerformanceView(PerformanceViewModel viewModel) + : this() + { + this.DataContext = viewModel; + } + } +} + diff --git a/Views/PowerPlanView.xaml.cs b/Views/PowerPlanView.xaml.cs index 6492b5e..edad373 100644 --- a/Views/PowerPlanView.xaml.cs +++ b/Views/PowerPlanView.xaml.cs @@ -1,35 +1,19 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using System.Windows.Controls; - using ThreadPilot.ViewModels; - - public partial class PowerPlanView : System.Windows.Controls.UserControl - { - public PowerPlanView() - { - this.InitializeComponent(); - } - - public PowerPlanView(PowerPlanViewModel viewModel) - : this() - { - this.DataContext = viewModel; - } - } -} +namespace ThreadPilot.Views +{ + using System.Windows.Controls; + using ThreadPilot.ViewModels; + + public partial class PowerPlanView : System.Windows.Controls.UserControl + { + public PowerPlanView() + { + this.InitializeComponent(); + } + + public PowerPlanView(PowerPlanViewModel viewModel) + : this() + { + this.DataContext = viewModel; + } + } +} diff --git a/Views/ProcessPowerPlanAssociationView.xaml.cs b/Views/ProcessPowerPlanAssociationView.xaml.cs index 7706567..254f522 100644 --- a/Views/ProcessPowerPlanAssociationView.xaml.cs +++ b/Views/ProcessPowerPlanAssociationView.xaml.cs @@ -1,32 +1,13 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using WpfUserControl = System.Windows.Controls.UserControl; - - /// - /// Interaction logic for ProcessPowerPlanAssociationView.xaml. - /// - public partial class ProcessPowerPlanAssociationView : WpfUserControl - { - public ProcessPowerPlanAssociationView() - { - this.InitializeComponent(); - } - } -} - +namespace ThreadPilot.Views +{ + using WpfUserControl = System.Windows.Controls.UserControl; + + public partial class ProcessPowerPlanAssociationView : WpfUserControl + { + public ProcessPowerPlanAssociationView() + { + this.InitializeComponent(); + } + } +} + diff --git a/Views/ProcessView.xaml.cs b/Views/ProcessView.xaml.cs index 70d1767..c4f464d 100644 --- a/Views/ProcessView.xaml.cs +++ b/Views/ProcessView.xaml.cs @@ -1,43 +1,27 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using System.Windows.Controls; - using System.Windows.Input; - using ThreadPilot.Helpers; - using ThreadPilot.ViewModels; - - public partial class ProcessView : System.Windows.Controls.UserControl - { - public ProcessView() - { - this.InitializeComponent(); - this.DataContext = ServiceProviderExtensions.GetService(); - } - - private void ProcessRow_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) - { - if (sender is not DataGridRow row) - { - return; - } - - row.IsSelected = true; - row.Focus(); - } - } -} +namespace ThreadPilot.Views +{ + using System.Windows.Controls; + using System.Windows.Input; + using ThreadPilot.Helpers; + using ThreadPilot.ViewModels; + + public partial class ProcessView : System.Windows.Controls.UserControl + { + public ProcessView() + { + this.InitializeComponent(); + this.DataContext = ServiceProviderExtensions.GetService(); + } + + private void ProcessRow_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e) + { + if (sender is not DataGridRow row) + { + return; + } + + row.IsSelected = true; + row.Focus(); + } + } +} diff --git a/Views/SettingsView.xaml.cs b/Views/SettingsView.xaml.cs index 3172f9a..b9f05e0 100644 --- a/Views/SettingsView.xaml.cs +++ b/Views/SettingsView.xaml.cs @@ -1,58 +1,39 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using System.Windows; - using System.Windows.Controls; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - /// - /// Interaction logic for SettingsView.xaml. - /// - public partial class SettingsView : System.Windows.Controls.UserControl - { - public SettingsView() - { - this.InitializeComponent(); - this.Loaded += this.SettingsView_Loaded; - } - - public SettingsView(SettingsViewModel viewModel) - : this() - { - this.DataContext = viewModel; - } - - private void SettingsView_Loaded(object sender, RoutedEventArgs e) - { - TaskSafety.FireAndForget(this.SettingsView_LoadedAsync(), _ => - { - // Non-critical load refresh failures are handled by the view model. - }); - } - - private async Task SettingsView_LoadedAsync() - { - if (this.DataContext is SettingsViewModel viewModel) - { - await viewModel.RefreshSettingsAsync(); - } - } - } -} - +namespace ThreadPilot.Views +{ + using System.Windows; + using System.Windows.Controls; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public partial class SettingsView : System.Windows.Controls.UserControl + { + public SettingsView() + { + this.InitializeComponent(); + this.Loaded += this.SettingsView_Loaded; + } + + public SettingsView(SettingsViewModel viewModel) + : this() + { + this.DataContext = viewModel; + } + + private void SettingsView_Loaded(object sender, RoutedEventArgs e) + { + TaskSafety.FireAndForget(this.SettingsView_LoadedAsync(), _ => + { + // Non-critical load refresh failures are handled by the view model. + }); + } + + private async Task SettingsView_LoadedAsync() + { + if (this.DataContext is SettingsViewModel viewModel) + { + await viewModel.RefreshSettingsAsync(); + } + } + } +} + diff --git a/Views/SettingsWindow.xaml.cs b/Views/SettingsWindow.xaml.cs index 8632b0a..a3de744 100644 --- a/Views/SettingsWindow.xaml.cs +++ b/Views/SettingsWindow.xaml.cs @@ -1,81 +1,62 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using System; - using System.ComponentModel; - using System.Windows; - using ThreadPilot.ViewModels; - - /// - /// Interaction logic for SettingsWindow.xaml. - /// - public partial class SettingsWindow : Window - { - private readonly SettingsViewModel viewModel; - private bool isClosingAfterUnsavedPrompt; - - public SettingsWindow(SettingsViewModel viewModel) - { - this.InitializeComponent(); - - this.viewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel)); - this.SettingsViewControl.DataContext = this.viewModel; - } - - protected override void OnClosing(CancelEventArgs e) - { - // Check for unsaved changes - if (!this.isClosingAfterUnsavedPrompt && !this.viewModel.CanClose()) - { - e.Cancel = true; - this.UnsavedSettingsOverlay.Visibility = Visibility.Visible; - return; - } - - base.OnClosing(e); - } - - private async void UnsavedSettingsSave_Click(object sender, RoutedEventArgs e) - { - var saved = await this.viewModel.SaveIfDirtyAsync(); - if (saved) - { - this.CloseAfterUnsavedPrompt(); - } - } - - private async void UnsavedSettingsDiscard_Click(object sender, RoutedEventArgs e) - { - await this.viewModel.DiscardPendingChangesAsync(); - this.CloseAfterUnsavedPrompt(); - } - - private void UnsavedSettingsCancel_Click(object sender, RoutedEventArgs e) - { - this.UnsavedSettingsOverlay.Visibility = Visibility.Collapsed; - } - - private void CloseAfterUnsavedPrompt() - { - this.isClosingAfterUnsavedPrompt = true; - this.UnsavedSettingsOverlay.Visibility = Visibility.Collapsed; - this.Close(); - } - } -} - +namespace ThreadPilot.Views +{ + using System; + using System.ComponentModel; + using System.Windows; + using ThreadPilot.ViewModels; + + public partial class SettingsWindow : Window + { + private readonly SettingsViewModel viewModel; + private bool isClosingAfterUnsavedPrompt; + + public SettingsWindow(SettingsViewModel viewModel) + { + this.InitializeComponent(); + + this.viewModel = viewModel ?? throw new ArgumentNullException(nameof(viewModel)); + this.SettingsViewControl.DataContext = this.viewModel; + } + + protected override void OnClosing(CancelEventArgs e) + { + // Check for unsaved changes + if (!this.isClosingAfterUnsavedPrompt && !this.viewModel.CanClose()) + { + e.Cancel = true; + this.UnsavedSettingsOverlay.Visibility = Visibility.Visible; + return; + } + + base.OnClosing(e); + } + + private async void UnsavedSettingsSave_Click(object sender, RoutedEventArgs e) + { + var saved = await this.viewModel.SaveIfDirtyAsync(); + if (saved) + { + this.CloseAfterUnsavedPrompt(); + } + } + + private async void UnsavedSettingsDiscard_Click(object sender, RoutedEventArgs e) + { + await this.viewModel.DiscardPendingChangesAsync(); + this.CloseAfterUnsavedPrompt(); + } + + private void UnsavedSettingsCancel_Click(object sender, RoutedEventArgs e) + { + this.UnsavedSettingsOverlay.Visibility = Visibility.Collapsed; + } + + private void CloseAfterUnsavedPrompt() + { + this.isClosingAfterUnsavedPrompt = true; + this.UnsavedSettingsOverlay.Visibility = Visibility.Collapsed; + this.Close(); + } + } +} + diff --git a/Views/SystemTweaksView.xaml.cs b/Views/SystemTweaksView.xaml.cs index da2d6cf..4f7c25a 100644 --- a/Views/SystemTweaksView.xaml.cs +++ b/Views/SystemTweaksView.xaml.cs @@ -1,50 +1,31 @@ -/* - * ThreadPilot - Advanced Windows Process and Power Plan Manager - * Copyright (C) 2025 Prime Build - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, version 3 only. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -namespace ThreadPilot.Views -{ - using System.Windows.Controls; - using ThreadPilot.Services; - using ThreadPilot.ViewModels; - - /// - /// Interaction logic for SystemTweaksView.xaml. - /// - public partial class SystemTweaksView : System.Windows.Controls.UserControl - { - public SystemTweaksView() - { - this.InitializeComponent(); - } - - private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e) - { - TaskSafety.FireAndForget(this.UserControl_LoadedAsync(), _ => - { - // Ignore non-fatal loading errors to keep the view responsive. - }); - } - - private async Task UserControl_LoadedAsync() - { - if (this.DataContext is SystemTweaksViewModel viewModel) - { - await viewModel.LoadCommand.ExecuteAsync(null); - } - } - } -} - +namespace ThreadPilot.Views +{ + using System.Windows.Controls; + using ThreadPilot.Services; + using ThreadPilot.ViewModels; + + public partial class SystemTweaksView : System.Windows.Controls.UserControl + { + public SystemTweaksView() + { + this.InitializeComponent(); + } + + private void UserControl_Loaded(object sender, System.Windows.RoutedEventArgs e) + { + TaskSafety.FireAndForget(this.UserControl_LoadedAsync(), _ => + { + // Ignore non-fatal loading errors to keep the view responsive. + }); + } + + private async Task UserControl_LoadedAsync() + { + if (this.DataContext is SystemTweaksViewModel viewModel) + { + await viewModel.LoadCommand.ExecuteAsync(null); + } + } + } +} + diff --git a/chocolatey/threadpilot-1.1.2.1-fix.zip b/chocolatey/threadpilot-1.1.2.1-fix.zip deleted file mode 100644 index 882e152925e3562e39849bb6e9362619f60ebfe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3322 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 E07CObyZ`_I diff --git a/docs/archive/CLAUDE.md b/docs/archive/CLAUDE.md deleted file mode 100644 index 564908e..0000000 --- a/docs/archive/CLAUDE.md +++ /dev/null @@ -1,238 +0,0 @@ -# CLAUDE.md - -This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. - -## Project Overview - -ThreadPilot is a professional Windows process and power plan manager built with WPF and .NET 8.0. It provides advanced process management, intelligent power plan automation, ML-based game detection, and system optimization tools for power users, gamers, and system administrators. - -## Build and Development Commands - -### Building -```bash -# Build the project -dotnet build --configuration Release - -# Build for debugging -dotnet build --configuration Debug -``` - -### Running -```bash -# Run the application -dotnet run --configuration Release - -# Run with command-line arguments -dotnet run --configuration Release -- --test # Run tests -dotnet run --configuration Release -- --start-minimized # Start minimized -dotnet run --configuration Release -- --autostart # Autostart mode -``` - -### Publishing -```bash -# Publish as self-contained portable executable -dotnet publish --configuration Release --runtime win-x64 --self-contained true -``` - -### Testing -The application includes an integrated test suite: -- Press `Ctrl+Shift+T` in the running application to execute Game Boost integration tests -- Run `dotnet run --configuration Release -- --test` to run tests in console mode -- Tests are located in the `Tests/` directory - -## Architecture Overview - -### MVVM Pattern with Dependency Injection -The application follows strict MVVM architecture using CommunityToolkit.Mvvm with centralized DI configuration: - -- **Models/** - Data models using ObservableObject base class -- **Views/** - WPF XAML views with code-behind -- **ViewModels/** - View models implementing INotifyPropertyChanged via source generators -- **Services/** - Business logic and system interaction layer - -### Service Configuration -All services are configured in `Services/ServiceConfiguration.cs` using extension methods organized by layer: -- `ConfigureServiceInfrastructure()` - Logging, caching, health monitoring, retry policies -- `ConfigureCoreSystemServices()` - OS interaction (ProcessService, PowerPlanService, CpuTopologyService) -- `ConfigureProcessManagementServices()` - Process monitoring, game detection, boost services -- `ConfigureApplicationLevelServices()` - Settings, notifications, system tray, security -- `ConfigurePresentationLayer()` - ViewModels and Views - -### Service Lifetime Strategy -- **Singletons**: Core services, ViewModels that share state (ProcessViewModel, MasksViewModel) -- **Transients**: UI-specific ViewModels and Views (PowerPlanViewModel, SettingsViewModel, MainWindow) - -### CPU Topology and Affinity Management -The application has sophisticated CPU topology awareness: -- **CpuTopologyService** - Detects P-cores/E-cores (Intel Hybrid), AMD CCD layout, NUMA nodes -- **CoreMaskService** - Manages CPU affinity masks for precise core assignment -- **ProcessCpuSetHandler** (Platforms/Windows/) - Uses Windows CPU Sets API for modern affinity control on Windows 11+ -- Fallback to traditional `ProcessorAffinity` for Windows 10 compatibility - -CPU Sets vs ProcessorAffinity: -- CPU Sets (Windows 11+): More granular control, respects system scheduling policies -- ProcessorAffinity (legacy): Direct affinity mask, used as fallback - -### Power Plan Management -- Integrates with Windows Power Plans via `powercfg` command-line tool -- Supports custom .pow power plan imports from hardcoded path (see PowerPlanService.cs:15) -- Process-based automatic power plan switching via `ProcessPowerPlanAssociationService` -- Real-time power plan monitoring with change event notifications - -### Game Detection and Boost -- **GameDetectionService** - ML-based game detection with 95% accuracy (heuristics-based) -- **GameBoostService** - Automatic performance optimization for detected games -- **PerformanceMonitoringService** - Real-time FPS estimation and resource tracking -- User override system with persistent manual classification - -### Notification System -- **NotificationService** - Basic Windows notifications -- **SmartNotificationService** - Intelligent throttling, deduplication, DND mode, priority queuing -- Category-based notification preferences -- Integrates with system tray for balloon tips - -### Process Monitoring -- **ProcessMonitorService** - Low-level WMI-based process event monitoring -- **ProcessMonitorManagerService** - Orchestrates monitoring, profile application, power plan switching -- **VirtualizedProcessService** - Handles 5000+ processes efficiently with UI virtualization -- Background refresh with intelligent throttling to reduce resource usage - -### System Tweaks -- Core parking control -- C-States management -- System service tweaks (SysMain, Prefetch, power throttling) -- HPET configuration -- High-priority scheduling category management - -### Security and Elevation -- **ElevationService** - Manages administrator privilege detection and elevation requests -- **SecurityService** - Security-related functionality -- Application can run in limited mode without admin privileges -- Prompts for elevation when needed for specific features - -## Key Implementation Details - -### Async Initialization Pattern -MainWindow uses a sophisticated async initialization pattern with loading overlay: -1. Loading overlay displayed during startup -2. ViewModels initialized with timeout protection (prevents hanging) -3. Services initialized in specific order with fallback strategies -4. System tray and monitoring started last -5. Graceful degradation if components fail (e.g., basic tray mode if full init times out) - -### Cross-Thread Marshaling -UI updates from background threads must be marshaled via `Dispatcher.InvokeAsync()`: -```csharp -Dispatcher.InvokeAsync(() => { - // UI updates here -}); -``` - -### Memory Management -- `IServiceHealthMonitor` and `IServiceDisposalCoordinator` for lifecycle management -- `IRetryPolicyService` for automatic retry with exponential backoff -- Memory cache (Microsoft.Extensions.Caching.Memory) for performance optimization -- Proper cleanup of timers, event handlers, and WMI watchers - -### Logging -- Uses Microsoft.Extensions.Logging with console output -- **EnhancedLoggingService** provides correlation IDs and structured logging -- Debug logging to temp file during initialization (see MainWindow.xaml.cs:45) - -### Settings Persistence -- Settings stored via `ApplicationSettingsService` (JSON-based) -- Profiles stored in ApplicationData\ThreadPilot\Profiles as JSON files -- Power plans exported as .pow files in hardcoded directory - -### Keyboard Shortcuts -- **KeyboardShortcutService** manages global hotkeys via Win32 API -- RegisterHotKey/UnregisterHotKey integration -- Actions: ShowMainWindow, ToggleMonitoring, GameBoostToggle, OpenTweaks, OpenSettings, etc. -- Shortcuts loaded from settings - -### System Tray Integration -- **SystemTrayService** with context menu for quick actions -- Power plan switching directly from tray -- Monitoring status display (CPU/Memory usage) -- Game Boost status indicator -- Periodic updates every 10 seconds (performance-optimized) - -### Platform-Specific Code -- Windows-specific functionality isolated in `Platforms/Windows/` -- P/Invoke calls for CPU Sets API (CpuSetNativeMethods.cs) -- Requires `AllowUnsafeBlocks` for native interop - -## Common Development Patterns - -### Creating New Services -1. Define interface in `Services/I*.cs` -2. Implement in `Services/*.cs` with constructor injection -3. Register in `ServiceConfiguration.cs` in appropriate layer method -4. Inject into ViewModels or other services as needed - -### Adding ViewModels -1. Inherit from `BaseViewModel` or `ObservableObject` -2. Use `[ObservableProperty]` source generators for properties -3. Use `[RelayCommand]` for commands -4. Register in `ServiceConfiguration.ConfigurePresentationLayer()` -5. Choose Singleton (shared state) or Transient (per-instance) lifetime - -### Working with Processes -- Use `IProcessService` for basic process operations -- Use `IVirtualizedProcessService` for large process lists in UI -- Update ProcessModel properties to trigger UI updates automatically -- CPU usage calculation requires two samples (see ProcessService.CalculateCpuUsage) - -### Adding System Tweaks -- Implement tweak logic in `SystemTweaksService` -- Add corresponding properties/commands to `SystemTweaksViewModel` -- Update UI in `Views/SystemTweaksView.xaml` -- Most tweaks require administrator privileges - -## Project Structure Notes - -- **Converters/** - WPF value converters (e.g., ItemIndexConverter for list numbering) -- **Models/** - Core data models (ProcessModel, PowerPlanModel, ProcessPowerPlanAssociation, CoreMask) -- **app.manifest** - Defines UAC elevation requirements and compatibility -- **ico.ico** - Application icon used in loading overlay and system tray -- **ThreadPilot.csproj** - Configured for single-file publish, self-contained, win-x64 only - -## Important Implementation Notes - -### Startup Sequence -1. App.xaml.cs configures DI container via ServiceConfiguration -2. Validates core service resolution -3. Checks elevation status (shows warning if not admin) -4. Parses command-line arguments (--test, --start-minimized, --autostart) -5. MainWindow constructor initializes loading overlay -6. Async initialization loads ViewModels, Services, starts monitoring -7. Loading overlay hidden when complete (with timeout protection) - -### Error Handling Strategy -- Global exception handlers in App.xaml.cs (domain + dispatcher) -- Timeout protection on async operations (typically 5-8 seconds) -- Fallback strategies for failed initializations (e.g., basic system tray) -- User-friendly error dialogs with retry options -- Detailed logging with correlation IDs - -### Performance Considerations -- Process list refresh paused when window minimized -- System tray updates throttled to 10-second intervals -- Virtualized UI for large datasets (process lists) -- CPU usage calculations cached per process -- Intelligent notification deduplication and throttling - -### Windows Version Compatibility -- Targets .NET 8.0 Windows only (UseWPF + UseWindowsForms) -- CPU Sets API used on Windows 11+, falls back to ProcessorAffinity on Windows 10 -- Requires Windows 10/11 for full functionality -- Some features require administrator privileges - -## Gotchas and Known Issues - -- PowerPlanService.cs:15 has hardcoded path `C:\Users\Administrator\Desktop\Project\ThreadPilot_1\Powerplans` -- WMI monitoring may fail on some systems (graceful degradation implemented) -- Process CPU Sets require Windows 11 - application auto-detects and falls back -- System tray context menu updates can timeout if performance metrics take too long (2s timeout) -- Loading overlay initialization has 15-second timeout with retry option -- Elevation dialogs can be suppressed during autostart to avoid interrupting user diff --git a/docs/audits/COMPLIANCE_AUDIT.md b/docs/audits/COMPLIANCE_AUDIT.md deleted file mode 100644 index 2b6502e..0000000 --- a/docs/audits/COMPLIANCE_AUDIT.md +++ /dev/null @@ -1,137 +0,0 @@ -# Compliance and Quality Audit - -This document captures the current compliance posture of ThreadPilot and the concrete actions required to align with requested standards. - -## Scope - -- Product: ThreadPilot (`net8.0-windows`, WPF desktop app) -- Baseline date: 2026-04-11 -- Audit method: static repository review + architecture inspection - -## Executive Summary - -- The application has solid architecture foundations (MVVM, DI, structured services, logging, error handling) but lacks formal governance artifacts required for enterprise compliance. -- Most requested standards are process- and evidence-heavy and require dedicated lifecycle artifacts, traceability, and automated pipeline enforcement. -- Immediate technical risk addressed in this pass: UI re-entrancy and collection concurrency faults in fast tab switching scenarios. - -## ISO/Standards Mapping - -### ISO 25010 (Product Quality) - -Current strengths: -- Functional suitability: rich process/power-plan management feature set -- Usability: themed UI with tray integration and status signaling -- Maintainability: modular services + DI configuration (`Services/ServiceConfiguration.cs`) - -Gaps: -- No formal quality model matrix with measurable criteria -- No non-functional acceptance thresholds documented per release - -Required artifacts: -- `docs/quality/iso25010-quality-model.md` -- Quality gates (performance, reliability, security, maintainability) - -### ISO 12207 (Software Lifecycle) - -Current strengths: -- Defined architecture and service layering in docs and code - -Gaps: -- No lifecycle process assets (requirements baseline, verification plan, transition evidence) -- No formal traceability from requirement to tests and releases - -Required artifacts: -- Lifecycle plan -- Requirements traceability matrix -- Release readiness checklist - -### OWASP + ISO 27001 (Security) - -Current strengths: -- Elevated privilege checks and guarded admin operations -- Some defensive error handling and service-level logging - -Gaps: -- Missing threat model and secure coding policy document -- No automated SAST/dependency/secrets scanning pipeline -- No formal control mapping to ISO 27001 Annex A controls - -Required controls: -- SAST + dependency + secrets scan in CI -- Security issue triage SLA -- Signed release and artifact integrity checks - -### CI/CD + DevSecOps - -Current state: -- No repository CI workflows detected - -Required: -- Build, test, and security workflow on pull requests and main -- Release pipeline with immutable artifacts and provenance metadata - -### ISTQB / ISO 29119 (Testing) - -Current strengths: -- Integrated runtime tests in `Tests/` - -Gaps: -- No standardized test specification set (plan/design/cases/procedure) -- Not integrated with `dotnet test` framework and CI coverage reporting - -Required: -- Test strategy and test design docs -- Structured test execution reports in CI - -### Microsoft + HLK Guidance - -Current strengths: -- Windows-targeted app with manifest and platform-specific integration - -Gaps: -- No formal HLK-aligned validation checklist or records -- No packaging/signing verification evidence in pipeline - -Required: -- Windows compatibility checklist -- Release validation records for startup, tray, privilege modes, and resiliency - -### Secure Coding (CERT / MISRA) - -Applicability note: -- CERT secure coding is applicable to C#/.NET development practices. -- MISRA is primarily aimed at C/C++ in safety-critical embedded domains; use only for native interop boundaries if mandated by policy. - -Required: -- Secure coding standard tailored for C# + interop -- Static analysis ruleset and coding exceptions register - -## Immediate Technical Remediation Applied - -- Added re-entrancy guards for fast tab switching in `MainWindow.xaml.cs` -- Hardened collection update patterns in `ViewModels/ProcessViewModel.cs` and `ViewModels/PerformanceViewModel.cs` -- Added UI exception dialog throttling in `App.xaml.cs` to prevent dialog storms -- Removed problematic gear glyph usage and normalized section labels -- Restored denser content spacing while preserving modern visual style in theme dictionaries - -## Recommended Next Implementation Sprint - -1. Add CI workflow: build + smoke tests + static analysis. -2. Add security workflow: dependency audit + CodeQL/SAST + secret scanning. -3. Introduce test project for `dotnet test` and keep integrated runtime tests for operational checks. -4. Publish quality and security governance docs under `docs/` with ownership and review cadence. -5. Add release checklist with HLK-aligned Windows validation evidence. - -## Corrective Actions (2026-04-21) - -- Replaced Docker-based changelog generation in release workflow with runner-native `git-cliff` binary installation using pinned version and checksum verification. -- Removed vendored `gitleaks-bin` artifacts from repository tracking to eliminate recurring secret-scanning false positives from upstream scanner sample content. -- Added repository guardrails in `.gitignore` to prevent recommitting scanner binaries and archives. -- Added operational documentation updates in release and security checklists to keep the remediation stable across future release cycles. - -## Acceptance Criteria For Compliance Baseline - -- CI required on all pull requests and main branch merges. -- Security scans block merges on high/critical findings. -- Traceability matrix links features -> tests -> release notes. -- Documented quality metrics and release thresholds are versioned. diff --git a/docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv b/docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv deleted file mode 100644 index 8b6046a..0000000 --- a/docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv +++ /dev/null @@ -1,31 +0,0 @@ -"PackageType","PackageId","RequestedVersion","ResolvedVersion","LatestVersion","AutoReferenced" -"TopLevel","CommunityToolkit.Mvvm","8.4.0","8.4.0","8.4.2", -"TopLevel","Microsoft.Extensions.Caching.Memory","9.0.0","9.0.0","10.0.6", -"TopLevel","Microsoft.Extensions.DependencyInjection","9.0.0","9.0.0","10.0.6", -"TopLevel","Microsoft.Extensions.Logging","9.0.0","9.0.0","10.0.6", -"TopLevel","Microsoft.Extensions.Logging.Console","9.0.0","9.0.0","10.0.6", -"TopLevel","Microsoft.NET.ILLink.Tasks","[8.0.25, )","8.0.25",,"true" -"TopLevel","StyleCop.Analyzers","1.2.0-beta.556","1.2.0-beta.556",, -"TopLevel","System.Drawing.Common","9.0.7","9.0.7","10.0.6", -"TopLevel","System.Management","8.0.0","8.0.0","10.0.6", -"TopLevel","System.ServiceProcess.ServiceController","9.0.7","9.0.7","10.0.6", -"TopLevel","WPF-UI","4.2.0","4.2.0",, -"Transitive","Microsoft.Extensions.Caching.Abstractions","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Configuration","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Configuration.Abstractions","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Configuration.Binder","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.DependencyInjection.Abstractions","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Logging.Abstractions","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Logging.Configuration","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Options","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Options.ConfigurationExtensions","","9.0.0","10.0.6","" -"Transitive","Microsoft.Extensions.Primitives","","9.0.0","10.0.6","" -"Transitive","Microsoft.Win32.SystemEvents","","9.0.7","10.0.6","" -"Transitive","StyleCop.Analyzers.Unstable","","1.2.0.556",,"" -"Transitive","System.CodeDom","","8.0.0","10.0.6","" -"Transitive","System.Diagnostics.DiagnosticSource","","9.0.0","10.0.6","" -"Transitive","System.Diagnostics.EventLog","","9.0.7","10.0.6","" -"Transitive","System.IO.Pipelines","","9.0.0","10.0.6","" -"Transitive","System.Text.Encodings.Web","","9.0.0","10.0.6","" -"Transitive","System.Text.Json","","9.0.0","10.0.6","" -"Transitive","WPF-UI.Abstractions","","4.2.0",,"" diff --git a/docs/audits/DEPENDENCY_INVENTORY_2026-04-15.json b/docs/audits/DEPENDENCY_INVENTORY_2026-04-15.json deleted file mode 100644 index a37b1af..0000000 --- a/docs/audits/DEPENDENCY_INVENTORY_2026-04-15.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "version": 1, - "parameters": "--include-transitive", - "projects": [ - { - "path": "C:/Users/Lorenzo/Documents/Projects/ThreadPilot/ThreadPilot.csproj", - "frameworks": [ - { - "framework": "net8.0-windows10.0.22000", - "topLevelPackages": [ - { - "id": "CommunityToolkit.Mvvm", - "requestedVersion": "8.4.0", - "resolvedVersion": "8.4.0" - }, - { - "id": "Microsoft.Extensions.Caching.Memory", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.DependencyInjection", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Logging", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Logging.Console", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.NET.ILLink.Tasks", - "requestedVersion": "[8.0.25, )", - "resolvedVersion": "8.0.25", - "autoReferenced": "true" - }, - { - "id": "StyleCop.Analyzers", - "requestedVersion": "1.2.0-beta.556", - "resolvedVersion": "1.2.0-beta.556" - }, - { - "id": "System.Drawing.Common", - "requestedVersion": "9.0.7", - "resolvedVersion": "9.0.7" - }, - { - "id": "System.Management", - "requestedVersion": "8.0.0", - "resolvedVersion": "8.0.0" - }, - { - "id": "System.ServiceProcess.ServiceController", - "requestedVersion": "9.0.7", - "resolvedVersion": "9.0.7" - }, - { - "id": "WPF-UI", - "requestedVersion": "4.2.0", - "resolvedVersion": "4.2.0" - } - ], - "transitivePackages": [ - { - "id": "Microsoft.Extensions.Caching.Abstractions", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Configuration", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Configuration.Abstractions", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Configuration.Binder", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.DependencyInjection.Abstractions", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Logging.Abstractions", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Logging.Configuration", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Options", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Options.ConfigurationExtensions", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Extensions.Primitives", - "resolvedVersion": "9.0.0" - }, - { - "id": "Microsoft.Win32.SystemEvents", - "resolvedVersion": "9.0.7" - }, - { - "id": "StyleCop.Analyzers.Unstable", - "resolvedVersion": "1.2.0.556" - }, - { - "id": "System.CodeDom", - "resolvedVersion": "8.0.0" - }, - { - "id": "System.Diagnostics.DiagnosticSource", - "resolvedVersion": "9.0.0" - }, - { - "id": "System.Diagnostics.EventLog", - "resolvedVersion": "9.0.7" - }, - { - "id": "System.IO.Pipelines", - "resolvedVersion": "9.0.0" - }, - { - "id": "System.Text.Encodings.Web", - "resolvedVersion": "9.0.0" - }, - { - "id": "System.Text.Json", - "resolvedVersion": "9.0.0" - }, - { - "id": "WPF-UI.Abstractions", - "resolvedVersion": "4.2.0" - } - ] - } - ] - } - ] -} diff --git a/docs/audits/DEPENDENCY_REMEDIATION_PLAN_2026-04-15.md b/docs/audits/DEPENDENCY_REMEDIATION_PLAN_2026-04-15.md deleted file mode 100644 index 209a178..0000000 --- a/docs/audits/DEPENDENCY_REMEDIATION_PLAN_2026-04-15.md +++ /dev/null @@ -1,48 +0,0 @@ -# Dependency Remediation Plan - -Date: 2026-04-15 -Reference Artifacts: - -- docs/audits/OUTDATED_PACKAGES_2026-04-15.json -- docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv - -## Current Risk Posture - -- Known vulnerable packages: none detected. -- Update debt: moderate (major-version drift on Microsoft.Extensions and System.* packages). - -## Priority Matrix - -| Priority | Package Group | Current | Latest | Action | -|---|---|---|---|---| -| P0 | Security hotfixes (if any CVE appears) | varies | varies | Immediate patch and release | -| P1 | Microsoft.Extensions.* | 9.0.0 | 10.0.6 | Plan controlled upgrade branch | -| P1 | System.* runtime libraries | 8/9 | 10.0.6 | Upgrade with compatibility test sweep | -| P2 | CommunityToolkit.Mvvm | 8.4.0 | 8.4.2 | Minor update in maintenance window | - -## Remediation Execution Plan - -1. Create branch `chore/dependency-upgrade-wave1`. -2. Upgrade low-risk minor updates first (CommunityToolkit.Mvvm). -3. Run full build/test + manual smoke on Windows 10/11. -4. Upgrade Microsoft.Extensions and System.* as a second wave. -5. Validate: - - startup and tray lifecycle - - process monitoring and affinity flows - - power plan switch and persistence -6. Re-run vulnerability and outdated scans and compare diffs. - -## Validation Gates for Each Wave - -```powershell -dotnet restore ThreadPilot_1.sln -dotnet build ThreadPilot_1.sln --configuration Release --no-restore -dotnet test ThreadPilot_1.sln --configuration Release --no-build -dotnet list ThreadPilot.csproj package --vulnerable --include-transitive -dotnet list ThreadPilot.csproj package --outdated --include-transitive -``` - -## Rollback Strategy - -- Keep each wave in separate commits for quick revert. -- If regressions appear in process control paths, revert affected package group and retain scan artifacts for incident review. diff --git a/docs/audits/GITLEAKS_REPORT_2026-04-15.json b/docs/audits/GITLEAKS_REPORT_2026-04-15.json deleted file mode 100644 index fe51488..0000000 --- a/docs/audits/GITLEAKS_REPORT_2026-04-15.json +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/docs/audits/OUTDATED_PACKAGES_2026-04-15.json b/docs/audits/OUTDATED_PACKAGES_2026-04-15.json deleted file mode 100644 index 3d15d16..0000000 --- a/docs/audits/OUTDATED_PACKAGES_2026-04-15.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "version": 1, - "parameters": "--outdated --include-transitive", - "sources": [ - "https://api.nuget.org/v3/index.json", - "C:/Program Files (x86)/Microsoft SDKs/NuGetPackages/" - ], - "projects": [ - { - "path": "C:/Users/Lorenzo/Documents/Projects/ThreadPilot/ThreadPilot.csproj", - "frameworks": [ - { - "framework": "net8.0-windows10.0.22000", - "topLevelPackages": [ - { - "id": "CommunityToolkit.Mvvm", - "requestedVersion": "8.4.0", - "resolvedVersion": "8.4.0", - "latestVersion": "8.4.2" - }, - { - "id": "Microsoft.Extensions.Caching.Memory", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.DependencyInjection", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Logging", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Logging.Console", - "requestedVersion": "9.0.0", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "System.Drawing.Common", - "requestedVersion": "9.0.7", - "resolvedVersion": "9.0.7", - "latestVersion": "10.0.6" - }, - { - "id": "System.Management", - "requestedVersion": "8.0.0", - "resolvedVersion": "8.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "System.ServiceProcess.ServiceController", - "requestedVersion": "9.0.7", - "resolvedVersion": "9.0.7", - "latestVersion": "10.0.6" - } - ], - "transitivePackages": [ - { - "id": "Microsoft.Extensions.Caching.Abstractions", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Configuration", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Configuration.Abstractions", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Configuration.Binder", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.DependencyInjection.Abstractions", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Logging.Abstractions", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Logging.Configuration", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Options", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Options.ConfigurationExtensions", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Extensions.Primitives", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "Microsoft.Win32.SystemEvents", - "resolvedVersion": "9.0.7", - "latestVersion": "10.0.6" - }, - { - "id": "System.CodeDom", - "resolvedVersion": "8.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "System.Diagnostics.DiagnosticSource", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "System.Diagnostics.EventLog", - "resolvedVersion": "9.0.7", - "latestVersion": "10.0.6" - }, - { - "id": "System.IO.Pipelines", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "System.Text.Encodings.Web", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - }, - { - "id": "System.Text.Json", - "resolvedVersion": "9.0.0", - "latestVersion": "10.0.6" - } - ] - } - ] - } - ] -} diff --git a/docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md b/docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md deleted file mode 100644 index 8fdc90a..0000000 --- a/docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md +++ /dev/null @@ -1,66 +0,0 @@ -# Phase 1.1 Memory and CPU Baseline Audit - -Date: 2026-04-15 -Scope: `RELEASE_PLAN.md` -> Phase 1.1 (memory/CPU footprint, long-running monitoring readiness) - -## Current Status - -- Baseline collection automation added: `build/collect-process-footprint.ps1`. -- Output format aligned with requested deliverable (CSV + summary JSON). -- Initial static audit completed for timer, polling, and process-monitoring paths. - -## Baseline Collection Procedure - -1. Start ThreadPilot in minimized mode and leave it idle in tray. -2. Collect a 30-minute baseline: - -```powershell -pwsh -NoProfile -ExecutionPolicy Bypass -File "build/collect-process-footprint.ps1" ` - -ProcessName "ThreadPilot" ` - -DurationMinutes 30 ` - -SampleIntervalSeconds 5 ` - -WaitForProcess -``` - -3. Optional GC telemetry in parallel (same PID): - -```powershell -dotnet-counters monitor --process-id --refresh-interval 5 --counters System.Runtime -``` - -4. Artifacts produced under `artifacts/perf/`: - - `-footprint-.csv` - - `-footprint-.summary.json` - -CSV fields: -- `WorkingSetMB` -- `PrivateMemoryMB` -- `HandleCount` -- `CpuPercentSingleCore` -- `CpuPercentOverall` -- `ThreadCount` - -## Static Audit Findings (Initial) - -| Priority | Finding | Evidence | Impact | -|---|---|---|---| -| P1 | Tray status refresh marshals full update path to UI dispatcher every cycle | `MainWindow.xaml.cs:1189`, `MainWindow.xaml.cs:1235` | Potential UI-thread stalls during expensive metrics reads | -| P1 | Fallback polling allocates dictionary/list snapshots every iteration | `Services/ProcessMonitorService.cs:452`, `Services/ProcessMonitorService.cs:473` | Increased allocation pressure in prolonged fallback mode | -| P1 | No explicit GC telemetry/alerts for Gen2 duration and pressure | repository-wide search (no `GC.CollectionCount` diagnostics path) | Harder to detect long-run memory regressions before release | -| P2 | Performance monitor uses WMI for physical memory lookup path | `Services/PerformanceMonitoringService.cs:374` | WMI latency risk, partially mitigated by 5-minute cache | -| P2 | Startup and tray paths use multiple timed async operations with timeouts | `MainWindow.xaml.cs:429`, `MainWindow.xaml.cs:1156`, `MainWindow.xaml.cs:1193` | Operationally safe, but requires baseline validation under load | - -## Positive Baseline Readiness Signals - -- Process monitor is already event-first with WMI start/stop watchers and adaptive fallback polling. - - `Services/ProcessMonitorService.cs:241` - - `Services/ProcessMonitorService.cs:491` -- Overlap protection exists for fallback polling and tray refresh loops. - - `Services/ProcessMonitorService.cs:431` - - `MainWindow.xaml.cs:1202` - -## Next Implementation Slice (Phase 1.1 continuation) - -1. Capture real ThreadPilot 30-minute idle baseline in tray mode and archive CSV/summary. -2. Add lightweight runtime GC counters to diagnostics/logging path (`Gen0/1/2 collections`, allocated bytes). -3. Compare baseline after any polling refactor to validate CPU wake-up and memory trend improvements. diff --git a/docs/audits/PINVOKE_AUDIT_REPORT_2026-04-15.md b/docs/audits/PINVOKE_AUDIT_REPORT_2026-04-15.md deleted file mode 100644 index 2749376..0000000 --- a/docs/audits/PINVOKE_AUDIT_REPORT_2026-04-15.md +++ /dev/null @@ -1,27 +0,0 @@ -# P/Invoke Audit Report - -Date: 2026-04-15 -Scope: Native interop declarations and safety posture. - -## Inventory Snapshot - -| File | API/Pattern | Current State | Recommendation | -|---|---|---|---| -| App.xaml.cs | DllImport(kernel32) | Minimal use (debug console) | Keep debug-only guard | -| MainWindow.xaml.cs | DllImport(dwmapi) | UI theme attribute call | Validate return codes and graceful fallback | -| Platforms/Windows/CpuSetNativeMethods.cs | LibraryImport + SafeProcessHandle | Strong pattern | Keep as reference implementation | -| Services/CpuTopologyService.cs | DllImport(kernel32, SetLastError=true) | Acceptable | Add explicit error logging on Win32 failures | -| Services/KeyboardShortcutService.cs | DllImport(user32) | Needs review | Ensure unregister and handle lifecycle coverage | -| Services/ProcessService.cs | DllImport(kernel32 SetThreadExecutionState) | Acceptable | Keep exception boundaries and explicit result checks | - -## Findings - -1. SafeHandle usage is already present in CPU set path and should be preferred for any new handle-based interop. -2. Some legacy DllImport declarations can be gradually migrated to LibraryImport for source-generated marshalling where supported. -3. Interop calls should consistently capture and log Win32 error codes for post-mortem diagnostics. - -## Action Items - -- Add interop-focused analyzer review in release gate checklist. -- Add targeted tests around keyboard shortcut registration/unregistration lifecycle. -- Document safe interop patterns for contributors. diff --git a/docs/audits/README_AUDIT_REPORT_2026-04-15.md b/docs/audits/README_AUDIT_REPORT_2026-04-15.md deleted file mode 100644 index 011d5ee..0000000 --- a/docs/audits/README_AUDIT_REPORT_2026-04-15.md +++ /dev/null @@ -1,25 +0,0 @@ -# README Audit Report - -Date: 2026-04-15 -Scope: Phase 5.3 README/documentation alignment in RELEASE_PLAN.md. - -## Checklist Results - -- Installation requirements and package naming: pass. -- Privilege model text: aligned to least-privilege (`asInvoker`) behavior. -- Release artifact naming and links: pass. -- Build/test commands: pass. -- Repository docs references: pass. -- Security/quality sections: pass. - -## Notes - -- README now describes elevation on-demand for privileged actions, not mandatory startup elevation. -- Packaging details are consistent with `docs/release/PACKAGING.md` and release note templates. - -## Evidence - -- README: `README.md` -- Docs index: `docs/README.md` -- Packaging guide: `docs/release/PACKAGING.md` -- Release notes template: `docs/release/RELEASE_NOTES_TEMPLATE.md` diff --git a/docs/audits/REPOSITORY_ARTIFACT_SCAN_2026-04-15.txt b/docs/audits/REPOSITORY_ARTIFACT_SCAN_2026-04-15.txt deleted file mode 100644 index 55d0962..0000000 --- a/docs/audits/REPOSITORY_ARTIFACT_SCAN_2026-04-15.txt +++ /dev/null @@ -1 +0,0 @@ -No AI/temp artifact directories found for configured patterns. diff --git a/docs/audits/SECURITY_CHECKLIST.md b/docs/audits/SECURITY_CHECKLIST.md deleted file mode 100644 index a2efd37..0000000 --- a/docs/audits/SECURITY_CHECKLIST.md +++ /dev/null @@ -1,47 +0,0 @@ -# Security Checklist and Risk Matrix - -Date: 2026-04-15 -Scope: Release readiness hardening (privileges, interop, process manipulation, configuration safety). - -## Checklist - -- [x] Validate privilege model behavior against product policy (requireAdministrator vs asInvoker). -- [x] Verify all process handle APIs use safe cleanup patterns. -- [x] Verify forbidden critical process list cannot be optimized (System, csrss, lsass, wininit). -- [x] Confirm configuration file writes stay in user-space writable paths. -- [x] Confirm no secrets are persisted in plaintext configuration. -- [x] Confirm structured logging sanitizes user-provided strings. -- [x] Confirm dependency vulnerability scan is green in CI. -- [x] Confirm secret scanning is green in CI. -- [x] Confirm security scanner binaries are downloaded at runtime in CI and not vendored in repository history. - -## Validation Evidence - -- User-space configuration path verified via `StoragePaths.AppDataRoot` (`%AppData%\\ThreadPilot`) and `ApplicationSettingsService` persistence path usage. -- Secret scan evidence: `docs/audits/GITLEAKS_REPORT_2026-04-15.json` (no leaks found). -- Dependency scan evidence: `docs/audits/VULNERABILITY_SCAN_2026-04-15.json` (no vulnerable packages). -- Scanner runtime policy: `.github/workflows/ci-devsecops.yml` downloads Gitleaks to `$RUNNER_TEMP` and does not require vendored scanner artifacts. - -## P/Invoke Audit Snapshot - -| API/Pattern | Location | Current status | Notes | -|---|---|---|---| -| OpenProcess (SafeProcessHandle) | Platforms/Windows/CpuSetNativeMethods.cs | Good | Uses SafeHandle wrapper | -| Process handle lifecycle | Platforms/Windows/ProcessCpuSetHandler.cs | Good | Dispose paths present | -| DllImport declarations | App.xaml.cs, MainWindow.xaml.cs, Services/* | Review required | Validate SetLastError and marshaling consistency | -| Keyboard hooks hotkeys | Services/KeyboardShortcutService.cs | Review required | Ensure unregister on dispose | - -## Privilege Escalation Risk Matrix - -| Risk | Severity | Likelihood | Mitigation | -|---|---|---|---| -| Over-broad elevated runtime | High | Medium | Keep privileged operations minimal and audited | -| Unauthorized process manipulation | High | Low-Medium | Enforce critical-process denylist and validation | -| Handle/resource leak in native interop | Medium | Medium | Continue SafeHandle usage + disposal tests | -| Logging injection via external input | Medium | Medium | Sanitize and structure user-provided strings | - -## Immediate Next Actions - -1. Add automated tests for critical-process denylist enforcement. -2. Add targeted interop analyzer rules for DllImport signatures. -3. Add release gate requiring successful vulnerability + secret scans. diff --git a/docs/audits/SECURITY_REMEDIATION_PLAN_2026-04-15.md b/docs/audits/SECURITY_REMEDIATION_PLAN_2026-04-15.md deleted file mode 100644 index 338606c..0000000 --- a/docs/audits/SECURITY_REMEDIATION_PLAN_2026-04-15.md +++ /dev/null @@ -1,31 +0,0 @@ -# Security Remediation Plan - -Date: 2026-04-15 - -## Inputs - -- docs/audits/VULNERABILITY_SCAN_REPORT_2026-04-15.md -- docs/audits/PINVOKE_AUDIT_REPORT_2026-04-15.md -- docs/audits/SECURITY_CHECKLIST.md - -## Immediate Completed Items - -- Added runtime enforcement for process-protection checks in process mutation paths. -- Added sanitization in security logging paths to reduce log injection risk. -- Added unit tests for protected-process validation logic. -- Adopted least-privilege startup model (`asInvoker`) and removed mandatory elevation gate at startup. - -## Open Remediation Backlog - -| ID | Area | Risk | Priority | Planned Action | -|---|---|---|---|---| -| SR-01 | Interop diagnostics | Medium | P1 | Add explicit Win32 error code logging in all native failure paths | -| SR-02 | Keyboard hook lifecycle | Medium | P1 | Add tests for register/unregister symmetry and dispose safety | -| SR-03 | Dependency update wave | Medium | P1 | Execute controlled upgrade plan from dependency remediation doc | - -## Exit Criteria - -- Zero known vulnerable packages in CI. -- Protected-process denylist enforcement covered by tests. -- Interop audit action items tracked and scheduled. -- Security checklist reviewed and marked for release. diff --git a/docs/audits/VULNERABILITY_SCAN_2026-04-15.json b/docs/audits/VULNERABILITY_SCAN_2026-04-15.json deleted file mode 100644 index 91ae336..0000000 --- a/docs/audits/VULNERABILITY_SCAN_2026-04-15.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": 1, - "parameters": "--vulnerable --include-transitive", - "sources": [ - "https://api.nuget.org/v3/index.json", - "C:/Program Files (x86)/Microsoft SDKs/NuGetPackages/" - ], - "projects": [ - { - "path": "C:/Users/Lorenzo/Documents/Projects/ThreadPilot/ThreadPilot.csproj" - } - ] -} diff --git a/docs/audits/VULNERABILITY_SCAN_REPORT_2026-04-15.md b/docs/audits/VULNERABILITY_SCAN_REPORT_2026-04-15.md deleted file mode 100644 index bf3bf39..0000000 --- a/docs/audits/VULNERABILITY_SCAN_REPORT_2026-04-15.md +++ /dev/null @@ -1,36 +0,0 @@ -# Vulnerability Scan Report - -Date: 2026-04-15 -Scope: ThreadPilot dependency vulnerability assessment (direct + transitive NuGet packages). - -## Commands Executed - -```powershell -dotnet list ThreadPilot.csproj package --vulnerable --include-transitive -dotnet list ThreadPilot.csproj package --vulnerable --include-transitive --format json > docs/audits/VULNERABILITY_SCAN_2026-04-15.json -``` - -## Data Sources - -- https://api.nuget.org/v3/index.json -- C:/Program Files (x86)/Microsoft SDKs/NuGetPackages/ - -## Result Summary - -- Critical vulnerabilities: 0 -- High vulnerabilities: 0 -- Medium vulnerabilities: 0 -- Low vulnerabilities: 0 - -The scan output reported no vulnerable packages for the current package graph. - -## Artifacts - -- Machine-readable scan: docs/audits/VULNERABILITY_SCAN_2026-04-15.json -- Dependency inventory: docs/audits/DEPENDENCY_INVENTORY_2026-04-15.json -- Dependency spreadsheet: docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv - -## Notes - -- A clean vulnerability result does not eliminate operational security risk. -- Keep this scan mandatory in CI and pre-release gates. diff --git a/docs/plans/DOCUMENTATION_AUDIT_CHECKLIST.md b/docs/plans/DOCUMENTATION_AUDIT_CHECKLIST.md deleted file mode 100644 index 72ab1b2..0000000 --- a/docs/plans/DOCUMENTATION_AUDIT_CHECKLIST.md +++ /dev/null @@ -1,12 +0,0 @@ -# Documentation Audit Checklist - -- [x] README installation and package names are current. -- [x] CHANGELOG contains the latest release entry. -- [x] SECURITY policy links and disclosure workflow are valid. -- [x] PACKAGING guide matches current scripts/workflows. -- [x] Release notes template reflects current distribution formats. -- [x] Test plan references existing test projects and commands. -- [x] Quality gates match CI pipeline checks. -- [x] All newly added docs are indexed in docs/README.md. - -Audit date: 2026-04-15. diff --git a/docs/plans/DOCUMENTATION_TEMPLATES.md b/docs/plans/DOCUMENTATION_TEMPLATES.md deleted file mode 100644 index dad8287..0000000 --- a/docs/plans/DOCUMENTATION_TEMPLATES.md +++ /dev/null @@ -1,55 +0,0 @@ -# Documentation Templates - -Use these templates for release-readiness documents. - -## Audit Report Template - -```markdown -# -Date: YYYY-MM-DD -Scope: <area> - -## Method -- Command/Tool 1 -- Command/Tool 2 - -## Findings -| Severity | Finding | Evidence | Action | -|---|---|---|---| - -## Conclusion -- Summary -``` - -## Runbook Template - -```markdown -# <Runbook Name> - -## Preconditions -- Item - -## Steps -1. Step -2. Step - -## Validation -- Command/output check - -## Rollback -- Rollback step -``` - -## Remediation Plan Template - -```markdown -# <Plan Name> - -## Risks -| ID | Risk | Priority | Owner | Due | -|---|---|---|---|---| - -## Actions -1. Action with acceptance criteria -2. Action with acceptance criteria -``` diff --git a/docs/plans/PRE_TAG_RELEASE_CHECKLIST.md b/docs/plans/PRE_TAG_RELEASE_CHECKLIST.md deleted file mode 100644 index 9c92f2d..0000000 --- a/docs/plans/PRE_TAG_RELEASE_CHECKLIST.md +++ /dev/null @@ -1,123 +0,0 @@ -# ThreadPilot Pre-Tag Release Checklist - -Use this checklist before creating a release tag. It is aligned with local build scripts and the GitHub release workflow. - -## Release Meta - -- [ ] Target version: 1.1.1 -- [ ] Target tag: v1.1.1 -- [ ] Branch is correct for release -- [ ] Working tree is clean (except intentionally ignored artifact files) - -## 1) Artifact Cleanup (Local) - -Goal: keep only 1.1.1 artifacts in artifacts/release. - -- [ ] Delete old installer: artifacts/release/installer/ThreadPilot_v1.1.0_Setup.exe -- [ ] Delete old zips: artifacts/release/ThreadPilot_v1.1.0_Installer.zip, artifacts/release/ThreadPilot_v1.1.0_Portable.zip -- [ ] Delete temporary staging dirs: artifacts/release/package-stage, artifacts/release/_stage_installer, artifacts/release/_stage_portable - -Expected state: - -- [ ] artifacts/release/installer/ThreadPilot_v1.1.1_Setup.exe -- [ ] artifacts/release/packages/ThreadPilot_v1.1.1_Installer.zip -- [ ] artifacts/release/packages/ThreadPilot_v1.1.1_Portable.zip - -## 2) Build Gates (Must Pass) - -Run from repository root. - -Commands: - - dotnet restore "ThreadPilot_1.sln" - dotnet build "ThreadPilot_1.sln" --configuration Release --no-restore - dotnet test "ThreadPilot_1.sln" --configuration Release --no-build - -- [ ] Restore passed -- [ ] Build passed -- [ ] Tests passed - -## 3) Packaging Gates (Local) - -Commands: - - ./build/build-installer.ps1 -Version "1.1.1" - ./build/package-release-zips.ps1 -Version "1.1.1" - -- [ ] Installer generated in artifacts/release/installer -- [ ] Zip packages generated in artifacts/release/packages -- [ ] Inno Setup warnings target is zero (artifacts/release/installer_iscc_setup.log) - -## 4) Naming Gate (Local vs CI) - -Local script naming (package-release-zips.ps1): - -- [ ] ThreadPilot_v1.1.1_Installer.zip -- [ ] ThreadPilot_v1.1.1_Portable.zip - -GitHub workflow naming (release.yml package step): - -- [ ] ThreadPilot_v1.1.1_singlefile_win-x64.zip -- [ ] ThreadPilot_v1.1.1_readytorun_win-x64.zip - -Note: naming differs by channel (local script vs CI workflow). Validate the expected set for the channel you are releasing from. - -## 5) Hash + Signature Gate - -Generate and verify SHA256 hashes: - -Commands: - - $hashFile = "artifacts/release/SHA256SUMS.txt" - if (Test-Path $hashFile) { Remove-Item $hashFile -Force } - - $releaseFiles = @() - $releaseFiles += Get-ChildItem "artifacts/release/packages" -File -ErrorAction SilentlyContinue - $releaseFiles += Get-ChildItem "artifacts/release/installer/*.exe" -File -ErrorAction SilentlyContinue - - $releaseFiles | ForEach-Object { - $hash = Get-FileHash $_.FullName -Algorithm SHA256 - "$($hash.Hash) $($_.Name)" | Out-File -FilePath $hashFile -Append -Encoding utf8 - } - -- [ ] SHA256SUMS.txt generated -- [ ] Every shipped artifact has one hash row - -If signing is enabled: - -- [ ] Authenticode signature is valid (Get-AuthenticodeSignature) -- [ ] Timestamp present (DigiCert or equivalent) - -## 6) Smoke Test Installation - -Portable smoke test: - -Commands: - - $tmp = "$env:TEMP/ThreadPilot_Smoke_$(Get-Random)" - Expand-Archive "artifacts/release/packages/ThreadPilot_v1.1.1_Portable.zip" -DestinationPath $tmp -Force - Test-Path "$tmp/ThreadPilot.exe" - -- [ ] Portable archive extracts correctly -- [ ] ThreadPilot.exe exists and starts - -Installer smoke test: - -- [ ] Run artifacts/release/installer/ThreadPilot_v1.1.1_Setup.exe -- [ ] Install completes without errors -- [ ] Start menu and/or desktop shortcut launches app -- [ ] Uninstall path works -- [ ] Theme is coherent on first launch (system dark -> dark UI + checked setting) - -## 7) Pre-Tag Final Gate - -- [ ] All gates above are green -- [ ] Release notes prepared -- [ ] Optional signing decision documented (signed/unsigned) - -Create tag only after all checks pass: - -Commands: - - git tag -a v1.1.1 -m "Release ThreadPilot v1.1.1" - git push origin v1.1.1 diff --git a/docs/plans/RELEASE_PLAN_IMPLEMENTATION_STATUS.md b/docs/plans/RELEASE_PLAN_IMPLEMENTATION_STATUS.md deleted file mode 100644 index f53a38c..0000000 --- a/docs/plans/RELEASE_PLAN_IMPLEMENTATION_STATUS.md +++ /dev/null @@ -1,99 +0,0 @@ -# Release Plan Implementation Status - -Date: 2026-04-15 -Reference: RELEASE_PLAN.md - -## Phase 1 - Background and Performance - -- [x] 1.1 Baseline collection automation and initial audit - - build/collect-process-footprint.ps1 - - docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md -- [x] 1.2 Timer resilience improvements (adaptive backoff on tray updates) - - MainWindow.xaml.cs -- [x] 1.3 GC diagnostics telemetry hooks - - Services/PerformanceMonitoringService.cs - - Services/IPerformanceMonitoringService.cs - - Models/LogEventTypes.cs - -## Phase 2 - Robustness and Testing - -- [x] 2.1 Test plan and additional unit tests - - docs/plans/TEST_PLAN_v1.1.1.md - - Tests/ThreadPilot.Core.Tests/RetryPolicyServiceTests.cs -- [x] 2.2 Global error handling hardening - - App.xaml.cs - - Models/ThreadPilotException.cs - - docs/reference/EXCEPTION_HANDLING_POLICY.md - -## Phase 3 - Security - -- [x] 3.1 Security checklist and risk matrix - - docs/audits/SECURITY_CHECKLIST.md -- [x] 3.2 Full static-analysis remediation backlog - - docs/audits/VULNERABILITY_SCAN_REPORT_2026-04-15.md - - docs/audits/DEPENDENCY_REMEDIATION_PLAN_2026-04-15.md - - docs/audits/PINVOKE_AUDIT_REPORT_2026-04-15.md - - docs/audits/SECURITY_REMEDIATION_PLAN_2026-04-15.md - - docs/audits/DEPENDENCY_AUDIT_2026-04-15.csv - - docs/audits/DEPENDENCY_INVENTORY_2026-04-15.json - - docs/audits/VULNERABILITY_SCAN_2026-04-15.json - - docs/audits/OUTDATED_PACKAGES_2026-04-15.json - - docs/reference/SAFE_WIN32_INTEROP_EXAMPLES.md - - Services/SecurityService.cs - - Services/ProcessService.cs - - Tests/ThreadPilot.Core.Tests/SecurityServiceTests.cs - - Tests/ThreadPilot.Core.Tests/ProcessServiceSecurityTests.cs - - App.xaml.cs - - app.manifest - - sonar-project.properties - - docs/audits/GITLEAKS_REPORT_2026-04-15.json - -## Phase 4 - Repository Cleanup - -- [x] 4.1 .gitignore hardening for local artifacts - - .gitignore -- [x] 4.2 Contributor guidance for artifact cleanup - - docs/CONTRIBUTING.md - - build/install-git-hooks.ps1 - - .githooks/pre-commit.ps1 - - build/repo-cleanup.ps1 - -## Phase 5 - Packaging and Distribution - -- [x] 5.1 Packaging runbook/checksum process - - docs/release/RELEASE_RUNBOOK.md - - docs/release/RELEASE_EXECUTION_LOG_2026-04-15.md - - artifacts/release/SHA256SUMS.txt -- [x] 5.2 GitHub release automation helper - - build/create-github-release.ps1 - - docs/release/RELEASE_NOTES_TEMPLATE.md - - docs/release/RELEASE_NOTES.md -- [x] 5.3 README/docs alignment (index updates) - - docs/README.md - - docs/audits/README_AUDIT_REPORT_2026-04-15.md - -## Phase 6 - Quality Gates - -- [x] 6.1 Quality gate definition - - docs/QUALITY_GATES.md -- [x] 6.2 Pre-tag/runbook alignment - - docs/plans/PRE_TAG_RELEASE_CHECKLIST.md - - docs/release/RELEASE_RUNBOOK.md - - docs/release/GO_NO_GO_MATRIX.md - -## Phase 7 - Documentation Deliverables - -- [x] CHANGELOG baseline added - - docs/CHANGELOG.md -- [x] Additional technical docs introduced - - docs/reference/EXCEPTION_HANDLING_POLICY.md - - docs/reference/runtimeconfig.template.json - - docs/SECURITY.md -- [x] Performance and development operational references - - docs/reference/PERFORMANCE.md - - docs/reference/DEVELOPMENT.md -- [x] Documentation templates and audit checklist - - docs/plans/DOCUMENTATION_TEMPLATES.md - - docs/plans/DOCUMENTATION_AUDIT_CHECKLIST.md -- [x] Release decision governance artifact - - docs/release/GO_NO_GO_MATRIX.md diff --git a/docs/plans/TEST_PLAN_v1.1.1.md b/docs/plans/TEST_PLAN_v1.1.1.md deleted file mode 100644 index 4ba1f63..0000000 --- a/docs/plans/TEST_PLAN_v1.1.1.md +++ /dev/null @@ -1,48 +0,0 @@ -# ThreadPilot Test Plan v1.1.1 - -Date: 2026-04-15 -Scope: Critical-path unit and integration validation aligned to RELEASE_PLAN phases. - -## Coverage Targets - -- Critical services (P0): target >= 80% line coverage. -- Supporting services (P1/P2): target >= 60% line coverage. - -## Coverage Matrix - -| Component | Priority | Current test type | Required additions | -|---|---|---|---| -| ProcessMonitorManagerService | P0 | Integration-lite | Add conflict and recovery scenarios | -| ProcessMonitorService | P0 | Integration-lite | Add fallback polling behavior tests | -| RetryPolicyService | P0 | Unit | Added transient/non-retriable tests | -| PowerPlanService | P0 | Unit (security) | Extend with denied-access and fallback tests | -| ElevationService | P0 | Unit | Add UAC failure-path tests | -| SystemTrayService | P1 | None | Add context menu state tests | -| ApplicationSettingsService | P1 | None | Add persistence corruption tests | - -## Implemented Test Additions (This Cycle) - -- RetryPolicyServiceTests: - - retries transient faults until success - - does not retry when predicate blocks retries - -## Next Test Additions - -1. ProcessMonitorService adaptive polling interval transitions. -2. ProcessMonitorService WMI recovery fallback path. -3. App-level unobserved task exception handler behavior (non-crashing path). -4. Settings import validation for malformed payloads. - -## CI Commands - -```powershell -dotnet restore ThreadPilot_1.sln -dotnet build ThreadPilot_1.sln --configuration Release --no-restore -dotnet test ThreadPilot_1.sln --configuration Release --no-build --collect:"XPlat Code Coverage" -``` - -## Exit Criteria - -- No failing tests on Release configuration. -- No flaky test observed in 3 consecutive CI runs. -- Critical-path coverage trend is non-decreasing. diff --git a/docs/plans/implementation_plan.md b/docs/plans/implementation_plan.md deleted file mode 100644 index e773941..0000000 --- a/docs/plans/implementation_plan.md +++ /dev/null @@ -1,74 +0,0 @@ -# 🌊 Fluent Design Migration Plan (Safe & Incremental) - -This revised plan adopts `Wpf.Ui` to natively implement Windows 11 Fluent Design while strictly avoiding a destructive rewrite. We will use a staged deprecation model to gracefully phase out legacy custom styles without causing UI collapses or broken resource references. - -## 1. Staged Deprecation Plan - -**Rule:** We will *not* delete all custom styles at once. - -| Category | Action | Reasoning | -| :--- | :--- | :--- | -| **Control Templates** (TabControl, TabItem, ComboBox, Button, TextBox) | **Remove Immediately** (in Phase 1) | `Wpf.Ui`'s global `ControlsDictionary` implicitly and instantly styles these when custom styles are cleared. Keeping custom styles causes collisions. | -| **Structural Styles** (Grid, Border layout snaps) | **Preserve Temporarily** | These don't conflict with Fluent Design and prevent immediate layout shifts. | -| **Color Brushes** (SurfaceBrush, AccentBrush, etc.) | **Preserve via Aliasing** | Explicitly mapping our legacy brush names to `Wpf.Ui` keys ensures un-migrated Views do not crash or turn transparent. | -| **State Brushes** (SuccessBackgroundBrush, etc.) | **Preserve Permanently** | `Wpf.Ui` focuses on structural elements; maintaining our custom success/error semantic tokens is necessary for valid status bars. | - -## 2. Brush Migration Strategy & Mapping - -To prevent broken `DynamicResource` bindings during the transition, we will transform `Themes/FluentDark.xaml` into an **Alias Dictionary**. - -| Current Custom Brush | `Wpf.Ui` Equivalent Target | -| :--- | :--- | -| `AppBackgroundBrush` | `ApplicationBackgroundBrush` | -| `SurfaceBrush` | `CardBackgroundFillColorDefaultBrush` (or `ControlFillColorDefaultBrush`) | -| `SurfaceAltBrush` | `CardBackgroundFillColorSecondaryBrush` | -| `TextPrimaryBrush` | `TextFillColorPrimaryBrush` | -| `TextSecondaryBrush` | `TextFillColorSecondaryBrush` | -| `TextDisabledBrush` | `TextFillColorDisabledBrush` | -| `AccentBrush` | `SystemAccentColorPrimaryBrush` | -| `AccentAltBrush` | `SystemAccentColorSecondaryBrush` | -| `BorderBrush` | `CardStrokeColorDefaultBrush` | -| `InputBorderBrush` | `ControlStrokeColorDefaultBrush` | - -*Fallback strategy:* If a specific legacy brush requires an exact opacity/hex that Fluent lacks, we will retain the exact `<SolidColorBrush>` entry rather than mapping it. - -## 3. Control Migration Scope (Phase 1) - -Only the following core interactive elements will be yielded to Fluent styling during the infrastructure phase: - -- **TabControl / TabItem**: Will switch to Fluent tabs. Wpf.Ui native tabs use underline selection effects instead of filled block backgrounds. -- **ComboBox**: Will transition to modern, rounded popup cards. -- **Buttons**: Will adopt Fluent background states and rounded corners (`CornerRadius="4"` default). -- **ListView / DataGrid**: Will adopt Fluent bordered-row styles natively. - -**Known Structural Risks in Scope**: -- Fluent `DataGrid` rows have larger innate vertical padding. This may cause scrollbars to appear earlier in constrained `Heights`. -- Fluent `ComboBox` dropdowns render outside the parent visual tree constraints (Popup), which usually resolves Z-index issues perfectly but may alter perceived alignment if wrapped tightly in a canvas. - -## 4. Risk Mitigation Strategies - -1. **Preventing UI Regressions**: We will explicitly map `System.Windows.Controls` styles prior to deleting any custom XAML headers. Un-migrated tabs will still visually resolve their `Background="{DynamicResource SurfaceBrush}"` to a Fluent native shade. -2. **Preventing Broken Bindings**: No C# `DataContext` or `Binding` logic will be altered during XAML structural updates. -3. **Preventing Layout Collapses**: As elements transition to Fluent geometries, we will systematically strip fixed `Height="XXX"` or `MaxLength` restraints globally from elements, instead leveraging `Grid.RowDefinitions="Auto,*"` to allow fluent elements to define their own organic sizing needs. - -## 5. Incremental Execution Plan - -We divide Phase 2 into strict atomic units to test visually before advancing. - -### Step 1: Framework Base & Aliasing (The Infrastructure) -- `dotnet add package Wpf.Ui` -- Update `App.xaml` with core `.MergedDictionaries`. -- Strip `Themes/FluentDark.xaml` of all `<Style TargetType="Button">`, `<Style TargetType="ComboBox">`, etc. -- Rewrite remaining `SolidColorBrush` definitions in `FluentDark.xaml` to `DynamicResource` aliases to Wpf.Ui. - -### Step 2: MainWindow Integration -- Transform the root `<Window>` into `<ui:FluentWindow>` to unlock Mica backdrop effects and custom titlebars. -- Replace the legacy `<TabControl>` with Wpf.Ui native navigation (or clean native TabControl). Verify it renders precisely. - -### Step 3: View Anchor Migration (LogViewer) -- Target `LogViewerView.xaml`. -- Cleanse it of rigid layout blocks. Implement responsive `<Grid>` expansions to distribute columns evenly. -- Swap explicit legacy Brush calls (e.g. `Foreground="{DynamicResource TextPrimaryBrush}"`) for direct `Wpf.Ui` brush keys. - -### Step 4: Iterative Rollout -Target the remaining views (`ProcessManagementView`, `MasksView`, `PowerPlanView`) sequentially, verifying their respective grids, slider components, and checkboxes adopt Fluent visuals flawlessly. diff --git a/docs/reference/ADVANCED_CPU_FEATURES.md b/docs/reference/ADVANCED_CPU_FEATURES.md deleted file mode 100644 index a73b271..0000000 --- a/docs/reference/ADVANCED_CPU_FEATURES.md +++ /dev/null @@ -1,128 +0,0 @@ -# Advanced CPU Core Detection and Affinity Selection - -## Overview - -ThreadPilot now includes advanced CPU topology detection and dynamic core selection capabilities, supporting modern CPU architectures including multi-socket systems, AMD CCD (Core Complex Die), Intel Hybrid (P-core/E-core), and SMT/HyperThreading. - -## Features - -### 🔍 CPU Topology Detection -- **Automatic Detection**: Uses WMI (Windows Management Instrumentation) to detect CPU topology -- **Fallback Support**: Graceful degradation when advanced topology information is unavailable -- **Real-time Updates**: Event-driven topology detection with UI updates -- **Architecture Support**: - - Intel Hybrid (Performance + Efficiency cores) - - AMD CCD (Core Complex Die) detection - - SMT/HyperThreading identification - - Multi-socket systems - -### 🎯 Quick Selection Controls -- **All Cores**: Select all available CPU cores -- **Physical Cores Only**: Select only physical cores (excludes hyperthreaded siblings) -- **Performance Cores**: Select Intel P-cores only (Intel Hybrid) -- **Efficiency Cores**: Select Intel E-cores only (Intel Hybrid) -- **CCD Selection**: Select cores from specific CCDs (AMD processors) - -### 🖥️ Dynamic UI -- **Adaptive Interface**: CPU core grid adapts to detected topology -- **Visual Indicators**: Color-coded core types and status -- **Topology Status**: Real-time display of detection success/failure -- **Scrollable Grid**: Supports systems with many CPU cores - -### ⚡ Power Plan Integration -- **Combined Application**: Apply both CPU affinity and power plan in one action -- **Quick Apply**: Fast reapplication of settings to selected processes -- **System Tray**: Context menu for quick access without opening main window - -## Usage - -### Basic Usage -1. **Select a Process**: Choose a process from the process list -2. **View Topology**: CPU topology is automatically detected and displayed -3. **Select Cores**: Use quick selection buttons or manually select individual cores -4. **Apply Settings**: Use "Apply Affinity" or "Quick Apply Affinity & Power Plan" - -### Quick Selection Buttons -- **All Cores**: Selects all available CPU cores -- **Physical Only**: Selects only physical cores (useful for avoiding HT conflicts) -- **P-Cores**: Selects Intel Performance cores (Intel 12th gen+) -- **E-Cores**: Selects Intel Efficiency cores (Intel 12th gen+) -- **CCD 0/1/2...**: Selects cores from specific AMD CCDs - -### System Tray Integration -- **Quick Apply**: Right-click tray icon → "Quick Apply to [ProcessName]" -- **Show Window**: Double-click tray icon or right-click → "Show ThreadPilot" -- **Minimize to Tray**: Window minimizes to system tray instead of taskbar - -## Technical Details - -### CPU Topology Models -- **CpuTopologyModel**: Main topology container with architecture detection -- **CpuCoreModel**: Individual core representation with type and topology info -- **CpuAffinityPreset**: Pre-configured affinity selections for quick access - -### Services -- **ICpuTopologyService**: Interface for CPU topology detection and management -- **CpuTopologyService**: WMI-based implementation with fallback mechanisms -- **ISystemTrayService**: System tray icon and context menu management - -### Architecture Detection -- **Intel Hybrid**: Detects P-cores and E-cores using WMI processor information -- **AMD CCD**: Identifies Core Complex Dies for NUMA-aware core selection -- **SMT/HyperThreading**: Distinguishes physical cores from logical threads -- **Multi-socket**: Supports systems with multiple CPU sockets - -## Testing - -### Test Mode -Run the application with `--test` parameter to execute CPU topology detection tests: -``` -ThreadPilot.exe --test -``` - -### Manual Testing -1. Open ThreadPilot -2. Navigate to Process Management tab -3. Select any process -4. Verify CPU topology detection status -5. Test quick selection buttons -6. Apply affinity settings and verify they take effect - -## Troubleshooting - -### Topology Detection Failed -- **Cause**: WMI access restrictions or unsupported hardware -- **Solution**: Run as Administrator or use fallback mode -- **Fallback**: Basic core enumeration without advanced features - -### Quick Selection Not Working -- **Cause**: No process selected or topology detection failed -- **Solution**: Select a process and ensure topology detection succeeded -- **Check**: Topology status indicator in the UI - -### System Tray Not Visible -- **Cause**: Windows Forms package not available or permissions issue -- **Solution**: Ensure System.Windows.Forms package is installed -- **Alternative**: Use main window controls - -## Performance Considerations - -- **WMI Queries**: Topology detection uses cached results to minimize overhead -- **UI Updates**: Core selection changes are batched for better performance -- **Memory Usage**: Topology models are lightweight and reused across processes -- **Background Detection**: Topology detection runs asynchronously without blocking UI - -## Compatibility - -- **Windows Version**: Windows 7 or later (WMI support required) -- **CPU Support**: Intel and AMD processors with standard WMI interfaces -- **Architecture**: x64 and ARM64 (where WMI topology data is available) -- **.NET Version**: .NET 9.0 or later - -## Future Enhancements - -- **NUMA Awareness**: Automatic NUMA node detection and optimization -- **Performance Monitoring**: Real-time CPU usage per core type -- **Profile Management**: Save/load CPU affinity profiles -- **Scheduler Integration**: Windows scheduler hint optimization -- **Advanced Presets**: Custom affinity patterns for specific workloads diff --git a/docs/reference/API_REFERENCE.md b/docs/reference/API_REFERENCE.md deleted file mode 100644 index 4df0029..0000000 --- a/docs/reference/API_REFERENCE.md +++ /dev/null @@ -1,318 +0,0 @@ -# ThreadPilot API Reference - -## Core Interfaces - -### ISystemService -Base interface for all system services providing lifecycle management. - -```csharp -public interface ISystemService -{ - bool IsAvailable { get; } - event EventHandler<ServiceAvailabilityChangedEventArgs>? AvailabilityChanged; - Task InitializeAsync(); - Task DisposeAsync(); -} -``` - -**Key Methods:** -- `InitializeAsync()`: Initialize service resources -- `DisposeAsync()`: Clean up service resources -- `IsAvailable`: Indicates if service is operational - -### IRepository<T> -Generic repository interface for data access operations. - -```csharp -public interface IRepository<T> : IRepository<T, string> where T : class -{ - Task<T?> GetByIdAsync(string id); - Task<IEnumerable<T>> GetAllAsync(); - Task<IEnumerable<T>> FindAsync(Expression<Func<T, bool>> predicate); - Task<T> AddAsync(T entity); - Task<T> UpdateAsync(T entity); - Task<bool> DeleteAsync(string id); - Task<bool> ExistsAsync(string id); - Task<int> CountAsync(); -} -``` - -## Core Services - -### IProcessService -Manages process enumeration and manipulation. - -```csharp -public interface IProcessService -{ - Task<IEnumerable<ProcessModel>> GetRunningProcessesAsync(); - Task<bool> SetProcessPriorityAsync(int processId, ProcessPriorityClass priority); - Task<bool> SetProcessAffinityAsync(int processId, long affinityMask); - Task<ProcessModel?> GetProcessByIdAsync(int processId); - bool IsProcessRunning(string processName); -} -``` - -**Key Features:** -- Async process enumeration -- Priority and affinity management -- Process existence checking - -### IPowerPlanService -Manages Windows power plans. - -```csharp -public interface IPowerPlanService -{ - Task<IEnumerable<PowerPlanModel>> GetAvailablePowerPlansAsync(); - Task<PowerPlanModel?> GetActivePowerPlanAsync(); - Task<bool> SetActivePowerPlanAsync(string powerPlanGuid); - Task<PowerPlanModel?> GetPowerPlanByGuidAsync(string guid); - event EventHandler<PowerPlanChangedEventArgs>? PowerPlanChanged; -} -``` - -**Key Features:** -- Power plan enumeration and activation -- Change event notifications -- GUID-based plan identification - -### ICpuTopologyService -Provides CPU topology detection and affinity management. - -```csharp -public interface ICpuTopologyService -{ - Task<CpuTopologyModel> DetectTopologyAsync(); - Task<bool> SetProcessAffinityAsync(int processId, IEnumerable<int> coreIds); - Task<long> GetProcessAffinityAsync(int processId); - event EventHandler<CpuTopologyDetectedEventArgs>? TopologyDetected; -} -``` - -**Key Features:** -- Modern CPU architecture detection -- Core affinity management -- Support for hybrid architectures - -## Business Logic Services - -### IProcessMonitorManagerService -Orchestrates process monitoring and power plan switching. - -```csharp -public interface IProcessMonitorManagerService -{ - bool IsMonitoringActive { get; } - Task StartMonitoringAsync(); - Task StopMonitoringAsync(); - event EventHandler<ProcessEventArgs>? ProcessStarted; - event EventHandler<ProcessEventArgs>? ProcessStopped; - event EventHandler? MonitoringStarted; - event EventHandler? MonitoringStopped; -} -``` - -**Key Features:** -- WMI-based process monitoring -- Automatic power plan switching -- Fallback polling mechanism - -### IGameBoostService -Manages game detection and performance optimization. - -```csharp -public interface IGameBoostService -{ - bool IsGameBoostActive { get; } - string? CurrentGameName { get; } - Task<bool> ActivateGameBoostAsync(ProcessModel gameProcess); - Task DeactivateGameBoostAsync(); - Task<bool> AddKnownGameAsync(string executableName); - Task<bool> RemoveKnownGameAsync(string executableName); - event EventHandler<GameBoostEventArgs>? GameBoostActivated; - event EventHandler<GameBoostEventArgs>? GameBoostDeactivated; -} -``` - -**Key Features:** -- Automatic game detection -- Performance optimization -- Configurable game database - -## Application Services - -### IApplicationSettingsService -Manages application configuration and persistence. - -```csharp -public interface IApplicationSettingsService -{ - ApplicationSettingsModel Settings { get; } - Task LoadSettingsAsync(); - Task SaveSettingsAsync(); - Task ResetToDefaultsAsync(); - Task<bool> ExportSettingsAsync(string filePath); - Task<bool> ImportSettingsAsync(string filePath); - event EventHandler<SettingsChangedEventArgs>? SettingsChanged; -} -``` - -**Key Features:** -- Automatic settings persistence -- Import/export functionality -- Change notifications - -### INotificationService -Handles user notifications and system tray integration. - -```csharp -public interface INotificationService -{ - Task ShowNotificationAsync(string title, string message, NotificationType type); - Task ShowBalloonNotificationAsync(string title, string message, int duration); - Task ShowToastNotificationAsync(string title, string message); - Task ClearAllNotificationsAsync(); -} -``` - -**Key Features:** -- Multiple notification types -- System tray balloon tips -- Windows toast notifications - -### IEnhancedLoggingService -Provides structured logging with file persistence. - -```csharp -public interface IEnhancedLoggingService -{ - Task LogPowerPlanChangeAsync(string fromPlan, string toPlan, string reason); - Task LogProcessEventAsync(string processName, string eventType, string details); - Task LogGameBoostEventAsync(string gameName, string action, string details); - Task LogUserActionAsync(string action, string details, string? context = null); - Task LogErrorAsync(string source, string error, string? stackTrace = null); - Task<IEnumerable<LogEntry>> GetLogEntriesAsync(DateTime? fromDate = null, DateTime? toDate = null); -} -``` - -**Key Features:** -- Structured event logging -- File rotation and management -- Query capabilities - -## Data Models - -### ProcessModel -Represents a system process with extended information. - -```csharp -public partial class ProcessModel : ObservableObject -{ - public int ProcessId { get; set; } - public string Name { get; set; } - public string ExecutablePath { get; set; } - public ProcessPriorityClass Priority { get; set; } - public long ProcessorAffinity { get; set; } - public double CpuUsage { get; set; } - public long WorkingSet { get; set; } -} -``` - -### PowerPlanModel -Represents a Windows power plan. - -```csharp -public partial class PowerPlanModel : ObservableObject -{ - public string Guid { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public bool IsActive { get; set; } -} -``` - -### CpuTopologyModel -Represents CPU topology information. - -```csharp -public partial class CpuTopologyModel : ObservableObject -{ - public int TotalCores { get; set; } - public int PhysicalCores { get; set; } - public int LogicalCores { get; set; } - public bool HasHybridArchitecture { get; set; } - public ObservableCollection<CpuCoreModel> Cores { get; set; } -} -``` - -## Event Arguments - -### ProcessEventArgs -Provides data for process-related events. - -```csharp -public class ProcessEventArgs : EventArgs -{ - public ProcessModel Process { get; } - public DateTime Timestamp { get; } - public string EventType { get; } -} -``` - -### PowerPlanChangedEventArgs -Provides data for power plan change events. - -```csharp -public class PowerPlanChangedEventArgs : EventArgs -{ - public PowerPlanModel? PreviousPlan { get; } - public PowerPlanModel CurrentPlan { get; } - public string Reason { get; } - public DateTime Timestamp { get; } -} -``` - -### GameBoostEventArgs -Provides data for game boost events. - -```csharp -public class GameBoostEventArgs : EventArgs -{ - public ProcessModel? GameProcess { get; } - public bool IsActivated { get; } - public DateTime Timestamp { get; } -} -``` - -## Configuration Enums - -### NotificationType -Defines notification types for the notification service. - -```csharp -public enum NotificationType -{ - Information, - Warning, - Error, - Success -} -``` - -### ProcessPriorityClass -Standard .NET process priority enumeration. - -```csharp -public enum ProcessPriorityClass -{ - Idle, - BelowNormal, - Normal, - AboveNormal, - High, - RealTime -} -``` - -This API reference provides comprehensive documentation for all public interfaces and key classes in ThreadPilot. diff --git a/docs/reference/ARCHITECTURE_GUIDE.md b/docs/reference/ARCHITECTURE_GUIDE.md deleted file mode 100644 index cce5c37..0000000 --- a/docs/reference/ARCHITECTURE_GUIDE.md +++ /dev/null @@ -1,199 +0,0 @@ -# ThreadPilot Architecture Guide - -## Overview -This document describes the modular architecture of ThreadPilot, designed for maintainability, testability, and future extensibility. - -## Architecture Principles - -### 1. Separation of Concerns -- **Core Services**: Direct OS interaction (Process, Power Plan, CPU Topology) -- **Process Management**: Business logic for process monitoring and management -- **Application Services**: UI and application-level functionality -- **Presentation Layer**: ViewModels and Views with MVVM pattern - -### 2. Dependency Injection -- Centralized service configuration in `ServiceConfiguration.cs` -- Service factory pattern for advanced service management -- Proper lifecycle management for all services - -### 3. Event-Driven Architecture -- Services communicate through well-defined events -- Loose coupling between components -- Reactive UI updates through observable patterns - -## Project Structure - -``` -ThreadPilot/ -├── Services/ -│ ├── Core/ # Base interfaces and implementations -│ │ ├── ISystemService.cs # Base interface for system services -│ │ └── BaseSystemService.cs # Base implementation with common functionality -│ ├── ProcessManagement/ # Process-related services -│ │ └── IProcessManagementService.cs -│ ├── ServiceConfiguration.cs # Centralized DI configuration -│ └── ServiceFactory.cs # Service factory for advanced management -├── Models/ -│ ├── Core/ # Base model interfaces and implementations -│ │ └── IModel.cs # Base model interface and validation -│ ├── Process/ # Process-related models -│ ├── PowerPlan/ # Power plan models -│ └── Configuration/ # Configuration models -├── ViewModels/ -│ ├── BaseViewModel.cs # Enhanced base ViewModel with error handling -│ └── ViewModelFactory.cs # Factory for ViewModel creation and management -├── Views/ # XAML views and code-behind -├── Converters/ # Value converters for data binding -├── Helpers/ # Utility classes and extension methods -└── Tests/ # Unit and integration tests -``` - -## Service Layer Architecture - -### Core Services (`Services/Core/`) -Base interfaces and implementations for all services: - -- **ISystemService**: Base interface with availability tracking and lifecycle management -- **BaseSystemService**: Common functionality for initialization, disposal, and error handling - -### Service Categories - -#### 1. Core System Services -Direct interaction with the operating system: -- `IProcessService`: Process enumeration and manipulation -- `IPowerPlanService`: Windows power plan management -- `ICpuTopologyService`: CPU topology detection and affinity management - -#### 2. Process Management Services -Business logic for process monitoring: -- `IProcessMonitorService`: WMI-based process event monitoring -- `IProcessPowerPlanAssociationService`: Process-to-power plan associations -- `IProcessMonitorManagerService`: Orchestrates process monitoring -- `IGameBoostService`: Game detection and performance optimization - -#### 3. Application Services -Application-level functionality: -- `IApplicationSettingsService`: Configuration persistence -- `INotificationService`: User notifications and system tray -- `IAutostartService`: Windows startup integration -- `IEnhancedLoggingService`: Structured logging with file persistence - -### Service Factory Pattern -The `ServiceFactory` class provides: -- Centralized service creation with dependency resolution -- Lifecycle management for `ISystemService` implementations -- Automatic initialization and disposal of managed services -- Error handling and logging for service operations - -## Presentation Layer Architecture - -### Enhanced BaseViewModel -The `BaseViewModel` class provides: -- **Error Handling**: Centralized error management with logging -- **Status Management**: Busy states and status messages -- **Async Operations**: Helper methods for async operations with error handling -- **Logging Integration**: Automatic user action logging -- **Lifecycle Management**: Proper initialization and disposal - -### ViewModel Factory -The `ViewModelFactory` class provides: -- Dependency injection for ViewModels -- Automatic initialization of ViewModels -- Lifecycle management and disposal -- Error handling during creation and initialization - -## Model Layer Architecture - -### Base Model Interface -The `IModel` interface provides: -- **Identity**: Unique ID and timestamps -- **Validation**: Built-in validation framework -- **Change Tracking**: Property change notifications -- **Cloning**: Deep copy support - -### Domain-Specific Models -Models are organized by domain: -- **Process Models**: Process information and metadata -- **Power Plan Models**: Power plan configurations -- **Configuration Models**: Application settings and associations - -## Configuration and Dependency Injection - -### ServiceConfiguration Class -Centralized configuration with methods for each service category: -- `ConfigureServiceInfrastructure()`: Logging and factories -- `ConfigureCoreSystemServices()`: OS interaction services -- `ConfigureProcessManagementServices()`: Business logic services -- `ConfigureApplicationLevelServices()`: UI and application services -- `ConfigurePresentationLayer()`: ViewModels and Views - -### Service Validation -Automatic validation of service configuration at startup: -- Ensures all required services can be resolved -- Validates service dependencies -- Provides clear error messages for configuration issues - -## Error Handling and Logging - -### Structured Logging -- **Enhanced Logging Service**: File-based logging with rotation -- **Structured Events**: Predefined event types for different operations -- **User Action Logging**: Audit trail for user interactions -- **Error Correlation**: Consistent error tracking across services - -### Error Handling Patterns -- **Service Level**: Try-catch with logging and graceful degradation -- **ViewModel Level**: User-friendly error messages with technical logging -- **Application Level**: Global exception handling with recovery - -## Testing Strategy - -### Unit Testing -- Service interfaces enable easy mocking -- BaseViewModel provides testable error handling -- Model validation can be tested independently - -### Integration Testing -- Service factory enables testing of service interactions -- Event-driven architecture allows testing of component communication -- Configuration validation ensures proper setup - -## Future Extensibility - -### Adding New Services -1. Implement appropriate base interface (`ISystemService` for system services) -2. Add to relevant service category in `ServiceConfiguration` -3. Follow established patterns for error handling and logging - -### Adding New Features -1. Create domain-specific models with validation -2. Implement services following the established patterns -3. Create ViewModels inheriting from `BaseViewModel` -4. Use dependency injection for all dependencies - -### Performance Optimization -- Service factory enables lazy loading of services -- Event-driven architecture allows for efficient updates -- Structured logging provides performance monitoring data - -## Best Practices - -### Service Development -- Always implement proper disposal for resources -- Use structured logging for all operations -- Implement graceful degradation for optional features -- Follow async/await patterns consistently - -### ViewModel Development -- Inherit from `BaseViewModel` for consistent functionality -- Use `ExecuteAsync` methods for error handling -- Implement proper disposal for event subscriptions -- Log user actions for audit purposes - -### Model Development -- Implement validation for all business rules -- Use property change notifications for UI binding -- Provide meaningful error messages -- Support cloning for undo/redo functionality - -This architecture provides a solid foundation for maintainable, testable, and extensible code while following established patterns and best practices. diff --git a/docs/reference/DEVELOPER_GUIDE.md b/docs/reference/DEVELOPER_GUIDE.md deleted file mode 100644 index 5a3f70b..0000000 --- a/docs/reference/DEVELOPER_GUIDE.md +++ /dev/null @@ -1,322 +0,0 @@ -# ThreadPilot Developer Guide - -## Quick Start for New Developers - -### Prerequisites -- .NET 8.0 SDK -- Visual Studio 2022 or VS Code with C# extension -- Windows 10/11 (for WMI and power plan features) - -### Building the Project -```bash -git clone <repository-url> -cd ThreadPilot -dotnet restore -dotnet build -``` - -### Running the Application -```bash -dotnet run --project ThreadPilot -``` - -## Key Architectural Concepts - -### 1. Service-Oriented Architecture -ThreadPilot uses a layered service architecture with dependency injection: - -- **Core Services**: Direct OS interaction (Process, Power Plan, CPU) -- **Business Services**: Application logic (Process Monitoring, Game Boost) -- **Application Services**: UI and configuration (Settings, Notifications) - -### 2. MVVM Pattern with Enhanced BaseViewModel -All ViewModels inherit from `BaseViewModel` which provides: -- Centralized error handling with logging -- Async operation helpers with status management -- User action logging for audit trails -- Proper disposal and lifecycle management - -### 3. Repository Pattern for Data Access -Data persistence uses the repository pattern with: -- Generic `IRepository<T>` interface for CRUD operations -- JSON file-based implementation with thread-safe operations -- Centralized data access through `IDataAccessService` -- Model validation and integrity checking - -## Adding New Features - -### 1. Adding a New Service - -**Step 1**: Create the interface in appropriate folder: -```csharp -// Services/YourDomain/IYourService.cs -public interface IYourService : ISystemService -{ - Task<bool> DoSomethingAsync(); - event EventHandler<YourEventArgs>? SomethingHappened; -} -``` - -**Step 2**: Implement the service: -```csharp -// Services/YourDomain/YourService.cs -public class YourService : BaseSystemService, IYourService -{ - public YourService(ILogger<YourService> logger) : base(logger) { } - - public async Task<bool> DoSomethingAsync() - { - // Implementation - } -} -``` - -**Step 3**: Register in `ServiceConfiguration.cs`: -```csharp -services.AddSingleton<IYourService, YourService>(); -``` - -### 2. Adding a New ViewModel - -**Step 1**: Create ViewModel inheriting from BaseViewModel: -```csharp -public partial class YourViewModel : BaseViewModel -{ - private readonly IYourService _yourService; - - public YourViewModel( - ILogger<YourViewModel> logger, - IYourService yourService, - IEnhancedLoggingService? enhancedLoggingService = null) - : base(logger, enhancedLoggingService) - { - _yourService = yourService; - } - - [RelayCommand] - private async Task DoSomethingAsync() - { - await ExecuteAsync(async () => - { - await _yourService.DoSomethingAsync(); - await LogUserActionAsync("YourAction", "Did something", "User interaction"); - }, "Doing something...", "Operation completed successfully"); - } -} -``` - -**Step 2**: Register in `ServiceConfiguration.cs`: -```csharp -services.AddTransient<YourViewModel>(); -``` - -### 3. Adding a New Model - -**Step 1**: Create model implementing IModel: -```csharp -public partial class YourModel : ObservableObject, IModel -{ - [ObservableProperty] - private string id = Guid.NewGuid().ToString(); - - [ObservableProperty] - private DateTime createdAt = DateTime.UtcNow; - - [ObservableProperty] - private DateTime updatedAt = DateTime.UtcNow; - - [ObservableProperty] - private string name = string.Empty; - - // IModel implementation - public string Id => id; - public DateTime CreatedAt => createdAt; - public DateTime UpdatedAt => updatedAt; - - public ValidationResult Validate() - { - var errors = new List<string>(); - if (string.IsNullOrWhiteSpace(Name)) - errors.Add("Name is required"); - return errors.Count == 0 ? ValidationResult.Success() : ValidationResult.Failure(errors.ToArray()); - } - - public IModel Clone() - { - return new YourModel - { - id = Guid.NewGuid().ToString(), - Name = this.Name, - createdAt = DateTime.UtcNow, - updatedAt = DateTime.UtcNow - }; - } -} -``` - -## Common Patterns and Best Practices - -### Error Handling -Always use the BaseViewModel's error handling methods: -```csharp -// For async operations with user feedback -await ExecuteAsync(async () => -{ - // Your operation -}, "Loading...", "Completed successfully"); - -// For setting errors manually -SetError("Something went wrong", exception); - -// For clearing errors -ClearError(); -``` - -### Logging -Use structured logging throughout the application: -```csharp -// In services -Logger.LogInformation("Operation completed for {EntityId}", entityId); - -// In ViewModels (for user actions) -await LogUserActionAsync("ActionName", "Description", "Context"); -``` - -### Event Handling -Follow the established event pattern: -```csharp -public event EventHandler<YourEventArgs>? YourEvent; - -protected virtual void OnYourEvent(YourEventArgs args) -{ - YourEvent?.Invoke(this, args); -} -``` - -### Async Operations -Always use proper async/await patterns: -```csharp -// Good -public async Task<bool> DoSomethingAsync() -{ - await SomeAsyncOperation(); - return true; -} - -// Avoid blocking calls -public bool DoSomething() -{ - DoSomethingAsync().Wait(); // DON'T DO THIS - return true; -} -``` - -## Testing Guidelines - -### Unit Testing Services -```csharp -[Test] -public async Task YourService_DoSomething_ReturnsExpectedResult() -{ - // Arrange - var logger = Mock.Of<ILogger<YourService>>(); - var service = new YourService(logger); - - // Act - var result = await service.DoSomethingAsync(); - - // Assert - Assert.IsTrue(result); -} -``` - -### Testing ViewModels -```csharp -[Test] -public async Task YourViewModel_DoSomething_UpdatesStatusCorrectly() -{ - // Arrange - var logger = Mock.Of<ILogger<YourViewModel>>(); - var service = Mock.Of<IYourService>(); - var viewModel = new YourViewModel(logger, service); - - // Act - await viewModel.DoSomethingCommand.ExecuteAsync(null); - - // Assert - Assert.IsFalse(viewModel.HasError); -} -``` - -## Performance Considerations - -### Memory Management -- Always dispose of services that implement IDisposable -- Unsubscribe from events in ViewModel disposal -- Use weak event patterns for long-lived subscriptions - -### Threading -- UI operations must be on the UI thread -- Use ConfigureAwait(false) for non-UI async operations -- Protect shared resources with appropriate synchronization - -### Data Access -- Repository operations are thread-safe -- Use batch operations when possible -- Implement proper caching for frequently accessed data - -## Troubleshooting Common Issues - -### Service Resolution Errors -Check `ServiceConfiguration.cs` to ensure all dependencies are registered with correct lifetimes. - -### ViewModel Constructor Issues -Ensure all ViewModels call the base constructor with required logger parameter. - -### Data Persistence Issues -Check file permissions and ensure data directory exists. Use logging to trace repository operations. - -### Event Subscription Leaks -Always unsubscribe from events in the ViewModel's OnDispose method. - -## Configuration and Settings - -### Application Settings -Settings are managed through `IApplicationSettingsService` and persisted automatically: -```csharp -// Access current settings -var settings = _settingsService.Settings; - -// Modify settings -settings.EnableNotifications = true; - -// Save changes (automatic on property change) -await _settingsService.SaveSettingsAsync(); -``` - -### Logging Configuration -Enhanced logging is configured in `ServiceConfiguration.cs`: -- Console logging for development -- File-based logging with rotation for production -- Structured events for different operation types - -### Data Storage Locations -- **Settings**: `%AppData%\ThreadPilot\settings.json` -- **Associations**: `%AppData%\ThreadPilot\Data\ProcessAssociations.json` -- **Profiles**: `%AppData%\ThreadPilot\Data\ProcessProfiles.json` -- **Logs**: `%AppData%\ThreadPilot\Logs\` - -## Deployment and Distribution - -### Release Build -```bash -dotnet publish -c Release -r win-x64 --self-contained true -``` - -### Installer Considerations -- Register for Windows autostart if enabled -- Create application data directories -- Set appropriate file permissions -- Register WMI event handlers - -This guide provides the foundation for extending ThreadPilot while maintaining code quality and architectural consistency. diff --git a/docs/reference/DEVELOPMENT.md b/docs/reference/DEVELOPMENT.md deleted file mode 100644 index d9cbd4d..0000000 --- a/docs/reference/DEVELOPMENT.md +++ /dev/null @@ -1,43 +0,0 @@ -# Development Guide (Operational) - -This file provides a concise operational development workflow. - -## Build - -```powershell -dotnet restore ThreadPilot_1.sln -dotnet build ThreadPilot_1.sln --configuration Release --no-restore -``` - -## Test - -```powershell -dotnet test ThreadPilot_1.sln --configuration Release --no-build -``` - -## Debug Notes - -- Startup/unhandled exception handling is centralized in App.xaml.cs. -- Process monitoring orchestration is in ProcessMonitorManagerService. -- Tray lifecycle and UI startup flow are in MainWindow.xaml.cs. - -## Common Tasks - -- Install local git hooks: - -```powershell -./build/install-git-hooks.ps1 -``` - -- Package release artifacts: - -```powershell -./build/build-installer.ps1 -Version "1.1.1" -./build/package-release-zips.ps1 -Version "1.1.1" -``` - -- Publish GitHub release (after artifacts are built): - -```powershell -./build/create-github-release.ps1 -Version "1.1.1" -NotesFile "docs/release/RELEASE_NOTES.md" -``` diff --git a/docs/reference/EXCEPTION_HANDLING_POLICY.md b/docs/reference/EXCEPTION_HANDLING_POLICY.md deleted file mode 100644 index f917272..0000000 --- a/docs/reference/EXCEPTION_HANDLING_POLICY.md +++ /dev/null @@ -1,62 +0,0 @@ -# Exception Handling Policy - -This policy defines how ThreadPilot handles, classifies, and reports runtime failures. - -## Goals - -- Prevent silent failures in background tasks. -- Keep UI responsive when recoverable faults occur. -- Preserve actionable diagnostics for post-mortem analysis. - -## Exception Hierarchy - -Implemented domain exception tree: - -- ThreadPilotException -- ProcessManagementException -- PrivilegeException -- RuleEngineException -- ResourceOptimizationException -- PersistenceException - -Each domain exception carries an ErrorCode value for structured logging. - -## Global Handlers - -Global safety net handlers are registered in application startup: - -- AppDomain.CurrentDomain.UnhandledException -- Application.DispatcherUnhandledException -- TaskScheduler.UnobservedTaskException - -Behavior summary: - -- AppDomain unhandled: critical log + blocking error dialog. -- Dispatcher unhandled: error log + user choice to continue or terminate. -- Unobserved task: logged and marked observed to avoid process termination from finalizer escalation. - -## Logging and Correlation - -Unhandled exceptions are routed to: - -- ILogger<App> for immediate diagnostic visibility. -- IEnhancedLoggingService for persisted structured telemetry. - -Structured context includes: - -- Source handler -- ErrorCode (domain code when available) -- CorrelationId (if available) -- Termination-level hint - -## Recovery Guidelines - -- Prefer local try/catch + retry policies for known transient operations. -- Use RetryPolicyService with operation-specific predicates. -- Reserve global handlers for truly unhandled paths only. - -## Guard Clause Guidelines - -- Validate external inputs at entry points. -- Throw ArgumentException/ArgumentNullException early for invalid arguments. -- Wrap domain failures in ThreadPilotException-derived types when crossing service boundaries. diff --git a/docs/reference/GAME_BOOST_VALIDATION.md b/docs/reference/GAME_BOOST_VALIDATION.md deleted file mode 100644 index 730c612..0000000 --- a/docs/reference/GAME_BOOST_VALIDATION.md +++ /dev/null @@ -1,153 +0,0 @@ -# Game Boost Integration - Validation and Testing Guide - -## Overview -This document provides comprehensive validation and testing instructions for the Game Boost Mode feature that has been successfully integrated into ThreadPilot. - -## Feature Summary - -### ✅ **Completed Implementation** -The Game Boost Mode feature is **fully implemented** and includes: - -1. **Automatic Game Detection** - Detects games using advanced heuristics and a comprehensive known games database (150+ games) -2. **Process Priority Management** - Automatically sets high priority for detected games -3. **Power Plan Switching** - Switches to high-performance power plan when games are active -4. **CPU Affinity Optimization** - Optimizes CPU core allocation for better gaming performance -5. **System Tray Integration** - Shows Game Boost status in system tray with shield icon -6. **Main Window Status Display** - Visual indicators in the main UI showing active Game Boost status -7. **User Notifications** - Toast notifications when Game Boost activates/deactivates -8. **Manual Game Management** - UI for adding/removing games from the known games list - -### 🔧 **Key Components** - -#### Services -- **GameBoostService** - Core game boost functionality -- **ProcessMonitorManagerService** - Integrates game detection with process monitoring -- **SystemTrayService** - Enhanced with Game Boost status display -- **NotificationService** - Provides user feedback - -#### UI Components -- **SettingsView** - Game management interface -- **MainWindow** - Status display with visual indicators -- **System Tray** - Context menu and icon state management - -#### Models -- **ApplicationSettingsModel** - Game Boost configuration options -- **ProcessModel** - Enhanced for game detection -- **Event Args** - GameBoostActivatedEventArgs, GameBoostDeactivatedEventArgs - -## Testing Instructions - -### 🧪 **Automated Testing** -The application includes built-in integration tests that can be run using: - -**Keyboard Shortcut: `Ctrl+Shift+T`** - -This will execute comprehensive tests including: -1. Service resolution validation -2. Game detection logic testing -3. Known games management testing -4. System tray integration testing - -### 🎮 **Manual Testing Workflow** - -#### 1. **Enable Game Boost Mode** -1. Open ThreadPilot -2. Go to Settings tab -3. Enable "Game Boost Mode" -4. Configure desired settings: - - Set high priority for games - - Optimize CPU affinity - - Select Game Boost power plan -5. Save settings - -#### 2. **Test Automatic Game Detection** -1. Start a known game (e.g., Steam, any game from the known games list) -2. Verify Game Boost activates automatically: - - System tray icon changes to shield - - Context menu shows "Game Boost: Active (GameName)" - - Main window status bar shows green "Game Boost: Active" with shield emoji - - Notification appears: "Game Boost Activated" - -#### 3. **Test Game Boost Deactivation** -1. Close the game -2. Verify Game Boost deactivates: - - System tray icon returns to normal - - Context menu shows "Game Boost: Inactive" - - Main window status shows gray "Game Boost: Inactive" - - Notification appears: "Game Boost Deactivated" - -#### 4. **Test Manual Game Management** -1. Go to Settings → Game Management section -2. Add a custom game executable (e.g., "mygame.exe") -3. Verify it appears in the known games list -4. Test removing games from the list -5. Verify changes are persisted after restart - -#### 5. **Test System Integration** -1. Verify power plan switching works correctly -2. Check process priority is set to High for games -3. Confirm CPU affinity optimization (if enabled) -4. Test with multiple games running simultaneously - -### 📊 **Expected Behavior** - -#### Game Detection -- **Known Games**: 150+ popular games are pre-configured -- **Auto-Detection**: Advanced heuristics detect likely game processes -- **Manual Addition**: Users can add custom games via UI - -#### Performance Optimization -- **Process Priority**: Games get High priority class -- **Power Plan**: Switches to high-performance plan -- **CPU Affinity**: Optimizes core allocation for better performance -- **Restoration**: All settings restored when games close - -#### User Interface -- **System Tray**: Shield icon when active, context menu status -- **Main Window**: StatusBar with color-coded Game Boost status -- **Notifications**: Toast notifications for activation/deactivation -- **Settings**: Comprehensive configuration options - -### 🔍 **Validation Checklist** - -#### Core Functionality -- [ ] Game Boost activates when known games start -- [ ] Game Boost deactivates when games close -- [ ] Process priority is set correctly -- [ ] Power plan switching works -- [ ] CPU affinity optimization functions (if enabled) - -#### User Interface -- [ ] System tray shows correct Game Boost status -- [ ] Main window StatusBar displays Game Boost state -- [ ] Shield icons appear when Game Boost is active -- [ ] Context menu shows current game name -- [ ] Settings UI allows game management - -#### Integration -- [ ] Works with existing process monitoring -- [ ] Notifications appear at appropriate times -- [ ] Settings are persisted correctly -- [ ] Multiple games handled properly -- [ ] Error handling works gracefully - -#### Performance -- [ ] No significant performance impact when inactive -- [ ] Quick activation/deactivation response times -- [ ] Stable operation during extended gaming sessions -- [ ] Proper cleanup when application closes - -### 🚨 **Known Limitations** -1. Requires administrator privileges for process priority changes -2. Some games may not be detected automatically (can be added manually) -3. Power plan switching requires appropriate Windows permissions -4. CPU affinity optimization depends on system configuration - -### 📝 **Troubleshooting** -- **Game not detected**: Add manually via Settings → Game Management -- **Priority not set**: Ensure application runs with sufficient privileges -- **Power plan not switching**: Check Windows power management permissions -- **Tests failing**: Check logs for detailed error information - -## Conclusion -The Game Boost Mode feature is fully implemented and ready for production use. The comprehensive testing framework ensures reliability, and the user-friendly interface makes it accessible to all users. diff --git a/docs/reference/PERFORMANCE.md b/docs/reference/PERFORMANCE.md deleted file mode 100644 index d6d303b..0000000 --- a/docs/reference/PERFORMANCE.md +++ /dev/null @@ -1,34 +0,0 @@ -# Performance Guide - -This document consolidates performance diagnostics and optimization guidance for ThreadPilot. - -## Profiling Instructions - -1. Collect process footprint baseline: - -```powershell -pwsh -NoProfile -ExecutionPolicy Bypass -File "build/collect-process-footprint.ps1" -ProcessName "ThreadPilot" -DurationMinutes 30 -SampleIntervalSeconds 5 -WaitForProcess -``` - -2. Optional runtime counters: - -```powershell -dotnet-counters monitor --process-id <PID> --refresh-interval 5 --counters System.Runtime -``` - -## Benchmarks and Targets - -- Idle tray CPU: target < 1% single-core equivalent -- Idle memory footprint: target < 100MB working set -- No sustained Gen2 pause > 100ms without investigation - -## Optimization Notes - -- Prefer event-driven process detection via WMI watchers. -- Use fallback polling with adaptive intervals and overlap protection. -- Keep UI-thread work minimal in periodic timers. - -## Related Documents - -- docs/audits/PHASE1_1_MEMORY_CPU_BASELINE.md -- docs/reference/runtimeconfig.template.json diff --git a/docs/reference/PROJECT_STRUCTURE.md b/docs/reference/PROJECT_STRUCTURE.md deleted file mode 100644 index 6662419..0000000 --- a/docs/reference/PROJECT_STRUCTURE.md +++ /dev/null @@ -1,92 +0,0 @@ -# ThreadPilot Project Structure - -## Overview - -This document reflects the repository as it exists today. It intentionally distinguishes: - -- production application code -- xUnit coverage-driving tests -- legacy runtime smoke harnesses under `Tests/` - -## Root Layout - -```text -ThreadPilot/ -├── .github/ # CI, release, and security workflows -├── assets/ # Static assets bundled into releases -├── build/ # Release/package automation scripts -├── chocolatey/ # Chocolatey package template and install scripts -├── Converters/ # WPF binding converters -├── docs/ # Reference, release, audit, and contributor docs -├── Helpers/ # Shared helper utilities -├── Installer/ # Inno Setup installer definition -├── Models/ # Domain/data models -├── Platforms/ # Windows-specific interop helpers -├── Properties/ # Publish profiles and app properties -├── Services/ # Application and OS-integration services -├── Tests/ -│ ├── ThreadPilot.Core.Tests/ # Real xUnit suite used by CI and Codecov -│ └── *.cs # Legacy runtime smoke/integration harnesses -├── Themes/ # WPF theme resources -├── ViewModels/ # MVVM presentation logic -├── Views/ # XAML views and code-behind -├── winget/ # Submission scripts/reference manifests -├── App.xaml / App.xaml.cs # Application bootstrap and DI entry -├── ThreadPilot.csproj # Main WPF application project -└── ThreadPilot_1.sln # Solution file -``` - -## Services - -`Services/` contains the highest-value business and orchestration logic in the repo. - -Key areas: - -- `Abstractions/`: injectable seams such as settings storage, GitHub release client, and process runner -- `Core/`, `ProcessManagement/`: older organizational subfolders still present in the repo -- application services such as `ApplicationSettingsService`, `AutostartService`, `PowerPlanService`, `ProcessMonitorService`, `ProcessMonitorManagerService` -- infrastructure services such as `ServiceConfiguration`, `ServiceFactory`, `ServiceDisposalCoordinator` - -## Tests - -### Coverage-driving suite - -`Tests/ThreadPilot.Core.Tests/` is the real automated test project. - -- This is the suite executed by CI. -- This is the suite used for Cobertura/Codecov reporting. -- Coverage runsettings live in `Tests/ThreadPilot.Core.Tests/coverlet.runsettings`. - -### Legacy harnesses - -The other files directly under `Tests/` are not the xUnit suite. - -They are retained as ad-hoc runtime smoke/integration harnesses used by debug-only `--test` mode in `App.xaml.cs`. - -Current examples: - -- `CpuTopologyServiceTests.cs` -- `ProcessSelectionTest.cs` -- `ExecutableBrowseTest.cs` -- `GameBoostIntegrationTest.cs` -- `ActiveApplicationsTest.cs` -- `TestRunner.cs` - -These harnesses are useful for exploratory/manual checks, but they are not part of CI coverage expectations. - -## Release and Packaging - -Release automation is split across: - -- `.github/workflows/release.yml` -- `build/` -- `Installer/` -- `chocolatey/` -- `winget/` - -Generated release artifacts are expected under `artifacts/release/` during packaging runs. - -## Notes - -- `bin/`, `obj/`, and `TestResults*` directories are local/generated outputs and not part of the intended source structure. -- `docs/superpowers/plans/` contains implementation plans and is intentionally excluded from normal source-control expectations for GitHub publication. diff --git a/docs/reference/SAFE_WIN32_INTEROP_EXAMPLES.md b/docs/reference/SAFE_WIN32_INTEROP_EXAMPLES.md deleted file mode 100644 index 164413c..0000000 --- a/docs/reference/SAFE_WIN32_INTEROP_EXAMPLES.md +++ /dev/null @@ -1,44 +0,0 @@ -# Safe Win32 Interop Examples - -This guide provides safe patterns for native interop in ThreadPilot. - -## 1) Prefer SafeHandle for Owned Handles - -- Use SafeHandle-derived types for APIs that return handles. -- Dispose handles deterministically (`using` or explicit dispose paths). - -## 2) Enable Error Propagation - -- Use `SetLastError = true` in declarations where Win32 sets an error code. -- On failure, inspect `Marshal.GetLastWin32Error()` and log actionable context. - -## 3) Validate Inputs Before Native Calls - -- Guard pointers, lengths, and IDs. -- Reject invalid process IDs and empty operation payloads early. - -## 4) Isolate Native Call Boundaries - -- Keep P/Invoke calls inside dedicated helper/service classes. -- Wrap with typed exceptions at service boundary (`ThreadPilotException` hierarchy). - -## 5) Example Pattern (Pseudo) - -```csharp -if (processId <= 0) -{ - throw new ArgumentOutOfRangeException(nameof(processId)); -} - -using SafeProcessHandle handle = NativeMethods.OpenProcess(flags, false, (uint)processId); -if (handle.IsInvalid) -{ - int win32 = Marshal.GetLastWin32Error(); - throw new InvalidOperationException($"OpenProcess failed with Win32 error {win32}."); -} -``` - -## 6) Logging Hygiene - -- Sanitize user-controlled strings before logging. -- Keep logs structured (event type + process + operation + result). diff --git a/docs/reference/UI_STYLE_GUIDE.md b/docs/reference/UI_STYLE_GUIDE.md deleted file mode 100644 index ba38d5f..0000000 --- a/docs/reference/UI_STYLE_GUIDE.md +++ /dev/null @@ -1,201 +0,0 @@ -# ThreadPilot UI Style Guide - -## Overview -This document defines the UI standards, terminology, and style guidelines for the ThreadPilot application to ensure consistency across all components and future development. - -## Application Structure - -### Main Window Layout -- **Title**: "ThreadPilot - Process & Power Plan Manager" -- **Layout**: Grid with TabControl for main content and StatusBar at bottom -- **Tabs**: Organized with emoji icons for visual clarity - - 🔧 Process Management - - ⚡ Power Plans - - 🔗 Process Associations - - ⚙️ Settings - -### Status Bar -- Left: General status messages -- Right: Game Boost status with visual indicators (🛡️ when active) - -## UI Component Standards - -### Buttons -- **Standard Padding**: `10,5` for main action buttons -- **Small Buttons**: `5,2` for utility buttons with `FontSize="10"` -- **Icons**: Use emoji prefixes for visual clarity (🔄 Refresh, ⚙️ Settings) -- **Colors**: - - Update/Save: `#007ACC` background, white foreground - - Remove/Delete: `#D13438` background, white foreground - - Default: System colors - -### GroupBox Headers -- Use emoji prefixes for visual organization -- Examples: - - 🔍 Process Search & Control - - ⚡ Available Power Plans - - 📋 Current Associations - - ⚙️ Configuration - -### Text Input Controls -- **Search boxes**: Width="200" with descriptive tooltips -- **Background**: `#3C3C3C` for dark theme areas -- **Foreground**: White for dark theme areas -- **Border**: `#404040` for dark theme areas - -### Data Grids -- **Selection**: Single selection mode -- **Headers**: Column headers visible -- **Grid Lines**: Horizontal only -- **Resizing**: Allow column resizing and sorting - -## Color Scheme - -### Light Theme (Default) -- **Background**: System default (white/light gray) -- **Foreground**: System default (black/dark gray) -- **Accent**: `#007ACC` (blue) -- **Error**: `#D13438` (red) -- **Success**: System green - -### Dark Theme Areas -- **Background**: `#1E1E1E` (main), `#3C3C3C` (controls) -- **Foreground**: White, `#CCCCCC` (secondary text) -- **Border**: `#404040` - -## Typography - -### Font Sizes -- **Default**: System default -- **Small Controls**: `FontSize="10"` for utility buttons -- **Secondary Text**: `FontSize="12"` for descriptions -- **Headers**: Default with bold weight when active - -### Font Weights -- **Active Items**: Bold (using BoolToFontWeightConverter) -- **Normal Items**: Normal weight -- **Secondary Text**: Normal weight - -## Icons and Visual Indicators - -### Emoji Usage -- 🔧 Process/System Management -- ⚡ Power/Energy related -- 🔗 Connections/Associations -- 📋 Lists/Logs/Data -- ⚙️ Settings/Configuration -- 🔍 Search functionality -- 🔄 Refresh/Reload -- 🛡️ Game Boost/Protection -- ✅ Success/Enabled -- ❌ Error/Disabled - -### Status Indicators -- **Game Boost Active**: Bold text + 🛡️ icon -- **Monitoring Active**: System tray icon changes -- **Error States**: Red text/background -- **Success States**: Green text/background - -## Tooltips and Help Text - -### Tooltip Standards -- **Buttons**: Describe the action clearly - - "Refresh the process list" - - "Apply the selected CPU core affinity to the process" -- **Input Fields**: Describe expected input - - "Search processes by name" - - "Enter the executable name (e.g., game.exe)" -- **Checkboxes**: Explain the behavior - - "Match processes by full path instead of just executable name" - -### Help Text Format -- Use clear, concise language -- Avoid technical jargon where possible -- Provide examples when helpful -- Use consistent terminology (see Terminology section) - -## Layout Guidelines - -### Spacing and Margins -- **Main Container**: `Margin="10"` -- **GroupBox Content**: `Margin="5"` -- **Control Spacing**: `Margin="0,0,10,0"` for horizontal spacing -- **Section Spacing**: `Margin="0,0,0,10"` for vertical spacing - -### Grid Organization -- Use GroupBox for logical sections -- Separate related controls visually -- Maintain consistent spacing between elements -- Use separators in context menus - -### Responsive Design -- Allow column resizing in data grids -- Use appropriate width constraints -- Ensure controls scale properly - -## Terminology Standards - -### Process Management -- **Process**: Running application/executable -- **Executable**: The .exe file name -- **Process Name**: Display name of the process -- **CPU Affinity**: Which CPU cores a process can use -- **Priority**: Process execution priority level - -### Power Management -- **Power Plan**: Windows power configuration scheme -- **Active Power Plan**: Currently selected power plan -- **Default Power Plan**: Fallback power plan when no processes are running -- **Power Plan Association**: Link between process and power plan - -### Game Boost -- **Game Boost**: High-performance mode for games -- **Game Detection**: Automatic identification of game processes -- **Known Games**: Pre-configured list of game executables - -### Monitoring -- **Event-based Monitoring**: Real-time WMI process monitoring -- **Fallback Polling**: Backup monitoring method -- **Process Association**: Configured process-to-power plan mapping - -## Accessibility Guidelines - -### Keyboard Navigation -- Ensure all controls are keyboard accessible -- Provide logical tab order -- Support standard keyboard shortcuts - -### Screen Reader Support -- Use descriptive control names -- Provide appropriate ARIA labels where needed -- Ensure status information is announced - -### Visual Accessibility -- Maintain sufficient color contrast -- Don't rely solely on color for information -- Provide text alternatives for visual indicators - -## Future Development Guidelines - -### Adding New Features -1. Follow existing naming conventions -2. Use consistent spacing and layout patterns -3. Add appropriate tooltips and help text -4. Update this style guide with new patterns -5. Test with both light and dark theme areas - -### Code Organization -- Keep XAML clean and well-commented -- Use consistent indentation (4 spaces) -- Group related controls logically -- Use meaningful names for controls that need code-behind access - -### Testing Considerations -- Test all UI changes with different screen sizes -- Verify tooltip text is helpful and accurate -- Ensure consistent behavior across all tabs -- Test keyboard navigation paths - -## Version History -- **v1.0** (2025-01-28): Initial style guide creation -- Covers current UI implementation with logging, game boost, and process monitoring features diff --git a/docs/reference/runtimeconfig.template.json b/docs/reference/runtimeconfig.template.json deleted file mode 100644 index 27b6e8f..0000000 --- a/docs/reference/runtimeconfig.template.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true, - "System.GC.Concurrent": true, - "System.GC.HeapHardLimitPercent": 0, - "System.GC.RetainVM": false - } - } -} diff --git a/gitleaks.zip b/gitleaks.zip deleted file mode 100644 index a63e2a87de60d32647149a32973a7d95c0a5c5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5750992 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%0D#;c_Kh#3no(NPhj24EP4=P=*b&1Az1m6u^K|Y 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∨NmhD;VMT)b=D<iy?-u>nXurGS;<nVra zZyddV?h6H5FET}fcAYG469u>b?{>FQr{Dt~+~si|l(bofVR-OI9@TAAoCnqq^Jwx8 zkG516!w22CFT5Y&hHwDxAJ<0Z)1zc$8;^KyC5`a0mD7(lQ6N37LpNE%>q8`vcg`<? zfPX}Z`sa`x`TNB65|cvwp+OYtvV=2Cqcf<U&7}0S8E$JdF%x#MY27jNBC0?KUNaMR ze)r*z;kT^3FydR$;$8hqd7**aIijGG>t7Rv@ZldhA8*F!-<y$*s%gQexCos^Y5J(5 z0YfKOe-#m+XIwA@cgEE2d}-hb47PcPQMsDxp9j~C0<nh4HCHT(IG?oCUqxaSFqMU% zYJS9vb>}OQmmNrrb-02NAnLwa^r~rU$TH4tKRk#3D*lvN^@cqC%8&c6-j4O(t1iIk zu?GY?GXuAB*^jYEa_=CsB-jmCiYfJF^n|S5am<RC=07&TEQPK;oNv#Q>4o}FF*Q~d z$`ZJvz#j$n-y&v=l1w9=oiu(G5e#95vR^T0=&G}3h>fo@hQFHQv$64w<KweIml9}~ ze90tunvK$?q7-eOfeTXneWGu&IpDE9A*(OV-()pM%AIg*q!B3>@HLADj99mq`d72F zcSP|$Cl9GFKFj7mCNjk$bj%7?2VIw{=i93a<%vj(uX?>xAWLo;Fp!qI_4Q7Hv%<7w zsu~7A0JBh`JTcJby@4G*qmcm<S|mTXs(_BC*_eN(&9@r)bFP2AQxJT=(vdo9_}iUe zcF77CP+{Og`nFqs38R3z=5~Zfje5OP*eeKB;z?atd_o}JLv$MBPrpX*t??bMk9W`~ z>QvL#M*ZS%ox;ZC@Ei2}E;oUpD`$bgRPk`Bu=nTmhq75BuajB&5j0&LX}V<=J?jTv z5{0gPLl`3L{{>Oo+HyPCC#C9HHkPpUu$f|SXXPjVy1>jA74PCnr;sDWUVP=;L4JJ6 zoiB-0zxw@$KTe<WqkC%>c&wQib@bIvf$Uu{U_h9P4QZoB)9Kli46U`Vc0zrETg?4I zx?dE9@N4JVzq5we2WFY9eLjd*S>ZT@Ymxst!JC8B3lVM!UyuCRg13vl=JDiv1)w+I zz7U}|ze*ZP+<;Vv_i(Nh?C{ng^{pC<AV_<@6js=g_INvR_Z{?4_!H)Hph6wrr|B@D zldp6N<iq(fRpB#{8rav!QRqQfvy<imCMWO<8rTJ3W~2{!g+8RSkQ?y>B7e-&?U4F? z+b}9>T}Ym9;G&j;x$53*hYau)c7(^GhKJiNW+C;lLyevpT^CVqzUc)~==u}vBSl*( zx3l2DV`3yY5bOm4Tg^JO>#r}fe+VB!r;ef4uaK5DAK?RNN-NTSDIzUJMH;RG^V&)~ z@*74jK!duaycRcZ@gEmaL*U?3BJWk?dG1q3`NP~(T4rf!exyBC#qzN8Hd%BvsZ<X( zNx>UL2BGwn2@1&qybD;&DwDSx^5i0e<wdzU3_=uyRs%y(AcD!H^B>D$V;ufVWMkZv z7{iFx$_0Wh1<Z;pEL46L<uNuY9;z1Re>l7%+YEpCrl&+8$+wHq>ml0pg(Mam-12uG z0W*yumRJy8WJ6lo4y285LE7SWf6iLC^b){gV&G?5{Pvy_0cnbi$lO0NT3yCeT`i>r zY3`%UtBZ?UARx9t8ZPp{SP0U4mZe@rJ^&Hk_?Kw>)=#nDe<j5Dchu#q>Ke0<Z8GUg zCQ?`18Tzg|A4Kg8Rw5Xb!Rd3&V!B_Y4jO?D-<m2#o>)~ZUt|`Tg;-sDs|~!R!8WfA zsq+!ksmFP8_K+%l_|^<wny>0sS*q4+;nO8t_gCZ$M-BP&T7iSX;hE{64pS~VQK~MM zFCz6LSZ^|8NZ+(sgWN$ve*K&%bXkn3etP#=_<7nW%a$(%M^ktyi%evI=E+E1O^=NK zsEBYq3LTACwD_i1I|a8`1EJAKo4yi-zD!WG)Q4a06lQ7G3&`Qe8AZtA#x?6c7OxDB zkPx%T`1`DDpG4ZI-|T~z-oZ_EXT9{^?s7$oZ+Nv+P{ewOWmYt+%N;sO-)MiiQ<$w; zZRFSdjhTFc&izJd?RKP%T09fpcss`~JnN0xbeE#VU-D|F;L)tzV9?<M{Nqb}fW41J zLSg`I_S~<FTl<U&r$@Kwl0W|>{8$~SsWmTvZD1$;<J{*<WI&k1Hm7cTp;HJnNl%0V zO}^yKsk>gKU%kV0dehWbIt56l4>oxx=m<9=ZPb`oIt52ZH<ET<C~d6`w0RQ{Zme^3 zAlzQ}L;TM@B=!l4V>OaHg=ip<&Cx;LJk@VRzLO8WjeHZyJAxT)#m4^YKk>2uME*NF z8hZj^AxL9o=F-8P=~M=IHj|obr<^DmX~q8!XMY|aRdxT5<M$>LGK9dLK!6|$gI*=L zF@vZXfii;=Jp*?zAl1lHQ6QqVHia3;n{~p>z+5lajx8>&ep+j7Yg^l*r6~|AGl?Y$ zS`ERn#f3%53F882Ll%<zdz{xf_s&cf^!NP-CU-g8J<Dr-KE=_vlIzl<EC|6rH$7(T zv)}0I$#<!LMOy!p^_!voJ#)H@j$48=eqn;$5GnI4z)u<D0mrG%1#w&W&*wW?t0+HT zvo~FSoMW^s)Gxk$iIH+!4%;$a+|SIXyFocpRu!NdZvEGvTeztE$yv)>fp*@X;})vs zKkPYpDlv%iS5fF;##a&lawv6wDf3|gI3;<3i1t;&Y2y=%T)Q&?3@46-@56WO%T<A& zdFe9v_G?Phv8iQAT$<AMWAkX+m%_e!!$|(mEgXuU9SVUE`?e&T!Lw#W7C<xlvVGuT z{WN2p_U-w#@icyjkOA!;We2KG!c+n+hPLCY=cUl>A%=Czl0a@4IsH%2iA;)KtoX!| z;29o0+6FLhYSw4JXFJ$AJxv4u>=`-?MU=3HViYoKHHCiK7h+>k>e`(_$0CZ?-wT6L z-apSq6nFh<fUw=<{=a6yWxtQ3ME^cFj9l@@ly2<{_x(1X&mZX9tm@kk10N;KrSb#0 zDcWCvGoY{`Dytn&W|9xJ{3gEz#lL*|o+Py#x?$wrSCiAoX$&mdw~aO0X$&I1oi=&^ zt`fZa|MfqFfG_zS@_)Z&e2>jdj&IhhsdGQlcYL?c8)$ro|G$C8ca1Y?UqKoQ$NdFJ z_*V?o#X+JJ+;ODE4BlK%_X@7M(1_2jo^Aw1?0iw*n*NxU-}XF}ug@iuZ%%*-?gHS; zUhwB3Wt|N<o&!*T&_5yNq)YP`GJX!tKL#mt%gI4C2r2hfB!(m9J||M<7A4F`K2Efs z<782uV@RWbxE2X9o^8MxlK^*3XRj$t+1~VANqGTHCP73Y&PVb)NMVVw>Krq@0n*!z zk5ahRP&S)uRz`%kgW(8nDd8bA$0Hv^>YGgd-h3h@$;TI`Nj?%$NF;`_N<`K|A&<)F z<c}iq$MftDME-b{{ZUH(*v&u|>RHYYux?lFfKEqth{qU_HjIh7i>(!-3G?69^Nh&w zI2MRD|5&mKl_Q5wM1H~Jm{;K+>~Z|0oUuV8g^n-yh~$Gf%mb6)36QCUDoSeJ7S9mE ze`eI)6hAHUk^w+LU6BjK3XBCnm%vZx{Bide=<IXqNXh{}!QeNaR*=F^{@2lz-!r`2 z;GZ8`p!3H+J*r2;@8<PrxJBqm!PGQE77`I~h-9qcNmI#C(I!XR;+ekNlOwhHL@LEe zI=<$c``DoA{YGlmEf4Dm8Gm<x$wIuQjH|wpTzJ`Wx$r@E#4XwYKjRmd2_AF{Rc_JN z`p-+3wa*G$|C;LGR4kBg6PlPo4)Us5q?Fl{T!D6z-{cCO><%^f;D0!rB&EcRf)zGS z2-|pw_bhh{RizIY{4s5{W+7Ay9=B5DRhHSjjw?kW{5l{dQTQQmxLF7RAf98HO$a|r zUJJAj_1T5-<VQY@U-QaGqmoR@C@qrY(n7BiU`s`koh76}i3cUJlS}e3co0bR<q`{$ z8}UC@Q2gwbNam6JfSF}9u3G9As?a1P|HO)vRYgetNg+~x2KZ*$0VK~WL2?ZM3D*<7 zr(BZRF7I?lByloQDlE!uizFX<ixTrT;{W_Z)6lX;a7}tLOA0B!W{FLbV^D&dC{dFU zC6`(t7DZicao(4M>YRWko<Od)c!uxBP_u7{P=y{SgZXt8`PmlF^qWJ?Lg)nw9SYBv zMH8b?u)@mu1xl74Z-;#cS>aE0UOSRYijbqEaJ3l)<L8i!ir|inC?J@O3IY|SBm6~3 zF$e!Im-FZ7SksAXky2u&q_h`b*O)_9$y4U%A~in)sq=Xx&nuuR2Y!a;fRzFflm8xj z%-+Dl(}>=EdoC=y_}LX)^+Ynaf1l3?A89PcbNM|Qo<FQd!#|==?z?w6S3Q{W|J}xO zK(E<|qi<*$&^{eayljvuMkFy0uX&bFAygz|oY#7Fihp!}Mk+oA8J!Zdj-S;agt9XX ziw8`L5`>fjCUyaEMLqT{WBc~A2KuD3%2F0Zj#XCwFr=(2M2>YfA#{|dsyGs=HWdov zIcGo{;mdUfv`pV1XFwa|A1YL>dm#9}$r)MqKw=2|(b7f!5USP`IwPw}b-RYL%8KMw z7F0LON^McAY)D>Ji0Wq9Xbxkey;(knr%@iXl{Ao|f=-nTVMmQ09Ggp#vdI?MhaqZJ z0FbG`=E4#Fk@luU9{iceVb5(45t(h~P?He)h~v13Bu<Q?um)%_O^GX%2N?mh`E?qI zwiL-Vlwe3V=#?VnDSgLwBBjDgHmo9idk%cn+aJ|8?B6r{fisGm>1O`)3_Wc6$>BZ8 zM5{u)emLCE4d^TykFonjEPl??qv27xJsP&>7)V0KmaRx)g<ZpIZYEo{Tb%f6CNwya zNqRa?Uq<*aRUlU`sm1RYKarZ%@~7oobsl*le=5%<>FMx_!O*J4MY=KigFMzMJlg`d zipT2UQG4=q)6Hbk*2jkQXgEB$S6eAhQ$-=brT{)n%}oILJZ^`cSoQQRhNQIh=Z5`h z?02z0O-S_*=ovox{^HL^3PMP679!<oN@-r>AEdjU!A|0)ri%ikRKBE}!|_9A=;*pd z`VrP>(NP!&4TD?r9??JeKP);5;|=tCKWx>hV}EJU4eA!5N5gY+dNf>SX7(kp1%T@7 z1SePlPGrOT&)vD41Fi+U&?vf*);iK+5VSfuJk2Qnb+W;HKDbB2*|g<<``Zex`WjNk zZBvY)z2RrN-6Y<l>zBI!(n434$v@FBR2X~Yq1QBBOP^;!j>c6(Vg5NSy5Ku2O$~qh z>F@5p6t?~*HU1YOeuFb6JkY{%QQ!BGVhOA(H2Ec@l$4-w(}p{dQjR2LD>=rZ9!KMv zg)C79B897H;?vZ_6ePL?$>;DzJ2kaXG7WnyF$BV>tV?PkI3&JFKuSLB>|g0dj(YtE z@G~6#`v9^^6gNi)&=0THsQvsE(QM!!hcXQjzdVIs0aRsX#0K;RqB8Ram10qfkY%l+ zLY7@ic=dQZe6d4ILGIp8-&J-{oN9&fP)FIt=UM7Ht>_b?Kf`m5PT{EqydFm%qE_+^ zqyqMUVj%*xkyj?~0`wH5E*6XSSQ!`NO+7Tw*`_xKzW|=X7wNNdoLnbG;M#|haPpE8 zf@Vp|cBqPo4uv${s`V=npc;hmP7t6Pg)L(<k{yubBc4eYJaQL`w`6(%%khXL$E8Wf zBxMJ5*`u27pfOHC%_?j=2wi<23DWz}a^$G>%_HLvtiJLA6hD<ocBi+ic^JwfJ_*lF zU(jpr(`H&91R_iPvDP2-XqqG+Y`qVLq#aehT@KjA?#RMYNqL1KhrcK;Wgl%N&v7of zR+3LhGAojD!i4CfGJ8~}j~0iT0e9wm?#N<sB2x9Iy5#dX`=1nIV8F4JKSpvL92jIo zpL&rrF{}xppZ925xNYNDNqG^9D~o!=&A#knp=wcK;<jRYbHXky`#1&Tf%8;$QC5Z* zKm>k;b|YjGJ@M0~yM?MNuXF{vM)^gzQ1x)BD{v{tH^vpXG{QH+6}Tk$hDyq7Flw!5 zdNj=&ZrGIX(HiuNU?2Dox#4JBbBm-t!s~bLk(d9M^Jq0?(bm7f@ODsk!Y6j}oJ5!G z>EzD>_<589mk-%_Ikf}ls+UnWT5rD8zyExd0ZsFHg-}&;15(Rx2y|wx%__FX64O2M zIk$qYoUKlM3aM*GDz~}h^C<K0l-j;Sa|t`*#X?mB>G_2BJo0(U(#-goiA?qeGp9Yz za!j0o&OyMMKT#>U5~=ymB6a>4Ww?A8QNsLSkLDD1>~{)PZAg0$O}GH&5a5EsiNDiG z$RY@u7OJKsvLJrY8S#lCQfIuAN!LBa5tZFyIl1FQ>WqUK3|^I}gU>Up)e^En0jXl? zez$ln52S@eJWdQl!M7`j)V4u%N^(7#@n>L3o1OuZ*L7~8%9IU}O=K5y1==qO+uov@ zQJ23o8rUFS%lRinaWe;J*{y>aV>+HqPPl9N9*x;o=>4~6G8{U5J-MGn?pOIlQKGT& zl6YO~?|3Nvk`O*fByXr8>K}*ykCt%Atk;0eJsPg%D1PH2dUsqdLsiBH$lc#@eakPV z<#!9AT>7iW{}AiPIGj(5dBUh9Xik=o+q7<S_s3;=CsvsC{!Qb0G#J_5)%~_d)5@Z* zK)WV{K46)P6KTK>t<(+j!3(tL|7GhH=aBY)rgbNi3a^8r;X{E!JrQbQ_*Ru2<h!k2 zFH|iq;%O+Mx<Ev3Ii?+k_k^kq;zVar&)UIImKINB!4F`p^aSG>iOF~rZN$%4==}?4 z>-}4#b@v`g(p|2#mSPxJK<45e(g=LdYdlAP6~8vXD#ml<0nX$3{Td1S${!K8Xp2bV z6rt)I%3Nhe%58xz^Xl>O)0yh}*u_sSHp|D*p)<~a=0syOG@%C_`jY$$=-tXJnv0LG z?dfKs;@GSn4X=SeLBPx)D%=z#$H8<F)eeSY{_*&K-7r9hr|Sc>e2|X+OI`(8BtkX9 z!4XN!!Jls9LE;CE5Jo<y-}oo+#)jK`Manu$SleV5s^;exHLe~62GLry?1+3UmdF&U znh}3osLCG|Jeds*ICMI6TzDoHrCA2G-y*;LCry4!<}aH75D{3*7U6kM7_4PIEs11+ z#bU7lg_}26Xx5@Sk50_QRYsaXk-fpLA^AOz+^$P)2ax07nt5)aD%au)bS&|IfgHy- z=Og)@UXMm=(WHZt>e9S&+;j1mC*Cm=X*JS>0|+pShQ{)jbNjNWN<_syeD;s&v4EXh z(_#UKX#L<jq~Mb?8+EWt@ZXL0tnxqMd-O*uZblBXzo@dp{K${XAM#HwtE|X<;!*#^ zK*g|S{t39f3qF412wi1(#MGnVS(mz5swIAoNmWJ6m+Uk6vp0wZ5-2OXy6A)h)4mm7 zYwAg+Srp(=CPUvKUCJiqpX%!F!}*Sfrgc^r&$W*IF8G{spZ+TmE6cOAA-Nupycf(1 zev`c+aVzV}VzE#uF)2tCswzO2FDbUiitP=QUa58zlU-%-02hTCd{*Wb-b-{e-j|1z zy<o#88x6jNOEc`_JHxu3^T4<Bo4=Fhzn3V-d%z$^0L1S3o$!@bKA`J-@r)iVieKpL zPDc4tf~XNnDOeH^;N!f+j5_tW5kz6;m<c!dZUTPI4k-4{bq2n71~twGsQs4g-}tu9 zZVeyo=+<!VrEU#RWOY`6KSE}q0Z!!#s1+CfnyP9Q5I^pw;r+s_Mh0oRSVYw8BOfe_ z;<4n*kWVH{BCOUTyplHQ^;`AL=m_7VCy<f*^*o$qV~X_q|Kxi##Vv|xSq#5J+Pk%b z4T@4goAk`Dl1*AY2XrwSdxY@1U(v~3h|je{y%jt=s%ZQ-tGj{*BuuKu4WtIKqnqxJ z)$QFHZX@H9*U_z|L<sag7^VaVI2gVyzsRx%8Q8kY{WeM2Qa};K$b{Ttfq?tH)=VOr z)!G~EZ5SDFxNm`hq$mlP+h4<ev8DfpC4vl}EzqOuk0+8YqIRYyS~EB<Fyn6@Cpb<B zeFH-H-8PUKTL4^tHwUJIr@-S8++5BHq4&Tx9WfLAnW$Ewe{me=2|73-^mm4qZ_c0^ zhb4nbo&^~cV!tqh<Dw8h;o254!Q#8ehLqQVD@txhDkZctG=x<C|DXIxcd8&8Qe=3g zj%T1FHha^yr=dWV`grim<EW#=%z(uTGN`^}0W4G66e5X|0dOnZo(D4b6WUjr<_flF z`iCIp?h2$lSROpn#fHRpl~;+B!nbSi<$9FB(oBvEp6N=MJ@T<crbj*&e2-^3cOg<Y zpGfE5`tbL({XhT|(`gaw^&dy|9~c0xKvBPXan%;4w8fa_2#Rz))A}1hz1t2ik?}pj zc)G~DKxM#`Lh`abhSVMKOFKw5nbG<UiiMTDr-WcI@XAiQ&rq%x8F;KH97Ud_xXeIl zjw;`72X$1ELt=#0z8mzz3~~wdF9wMBJf8%_dzGhOCCaqd=UGE3=;WL1{w{GRuiK}F zFuXcG3C<UxehqS;%+#M&Xn+FV&Znb*qh7$j<(miaBLfb2Q@`?^q%Id@bn&c7#xFu> zScow#EwmtIb^%h>S&_1;&@EKWveD2{9iqJv-*<`{Sb&tSic&P$8}>~h^YjkrSo;)V zdoJG(crG9qk^xCw7X7Y|kN%*qkMxT6XqvX!uHl0WoRX?uHE2@3q&na8hGUzaAZ>k> zc{%}t{&!!~!%ADmw3d7#P3Qpi6X{Vl>(|Q}zf4;fIbX;-I?rG*{vJ|6KcJ1EeVxm3 zTw-)TH*RHK%_yB(yY-+#`h!TWc*;g5v9_*E3D_e0TcNSPtx58amav_tJcI6Y736<| zA*#+TmQ#GTq3g`_L745T{=#;;Kd9U3i}H2~;i!U(Y&*qRR2eNIMPfuq8TrfBot#Hm zV{;2tThGJ!TO5k{N5;=)1mAj_<G75s;9R=%uuE<vUwSD~W?vLnvMLbSie$Gq-Pi|H zzwe5d>Gw_Cq~j$5Kl>RvwRHSMltI7z$_z>`Ii1<#{*~5k1(|`RBx#o;3lHCXmKxi3 zCXH=y{l2->*tV3qJVQ{r3-<BW7w8;ED&-_KOnDEVCHf@_$AqUOjnP(OeUCe*|KKv% z4>&1;?N(vivxAsrlhFs;n_F|T(i-m;R{{?M`Nm6XC57%_q~Y~!J81-CSX`pR9AjH) zJ=-lC!T!|%_OB__RjKMvf&J?hYX3^>F0*(|mOlnl*I>v{;=*kkr|1pvhMRn&CDw{! z<zZ8?@|ajGRLw6;%qg}v72Cfkwtre|Z%)jRmK|pKpB{=IE(HGq6t{2EmWQ%E@lz(f zsJoTrqfK`!kB`p1Td2w(E&If&U@(ce#mR1=YIdnRGQYGq6!Wpj#6@m-xoDGs<SV#A zT*<kF9WhBh>XuKt<yN<RL`NQl_&Bz|lD;aWWChTAS*ImsvFLOw%S9ViI46f1gpdMI zA8*1+;r#jJX9fHm4E5Wa6SpJHEv_X0l#{_B4|>B*oANx`0ZFER+Z*i72?1$zf!P~C z5)3s6VRI(Og_?!XwP2s{8nme+Xb<q8o*^FxVoKsnyxvYv2Zen@Wd{sf6v>B>++o-7 zT0{x?$Z07{RClNVh*D<YM%Z^j)9~NEgncb?lV5j`aCq!RA|HO)ttkt{so|y#S7Dhx zC3Wh1V|!b-h7Wz&ttA}Em57}Bxr~pVNm*5jepuHTtE)YsY4{de>TlYXF+0o4ZQWW~ z6tDlXTf?L1%?GbH>>q7(J3h)fP=Qys!6R?qs6X;>Tek)Z-Le>7^G&yg?O(!$so|KQ zmb0di`iUSNg2v&Se@;(+(go)Kb+{~R9`EPT%%4-SyF`B;{5tXuILYyfFQ7GF{7>)A z2mfQ|2UEC8&?JU$N1FER7u{O2933{d#76dyCg1SjUf4WW4Mq+~H}MTu7KqcKeZfw~ zYL66`4X9Ui_GMXjRXkt;9w*YQ_dbVa{kLZs^*xqF@wAkN;lI*j?~f_>$FlpREc_I` zKQHBe*EjS&l>fxn-5PHAoL)g}M~0QPK%9<CKJV7BLcZtkKko+6gUJK0yw+=hw-Yku z$y(BPJ0J?F7oM8T_A;6kvFlwB%7Qa)`Cbdh3E>0qm%c<tCYNXqsBXpfSi+H9qeSq6 zV=t_28jiI0$$1HDRHKY_`Xbe692}6u{Ee=U;!sQotps=)pSU!#SiC8+K)e~RNWegy zYh2D%kAm<2HPz^r;@KCvH5~q;o7wMPNOT+ODo_>iG`;F(p=z;sQ?xY~%05Sq7yX1L zrwBeh0_qRN{1f!oAhcGl)k}l&Ti@-`G<GA@<hweuSe%UNLQn=30O)W0^O2<9#o}a$ zA!+Y_?BzK16WsMYI0vXlpyN5+;1fv`I%)s9e5s)qDQe>^AUmbFyQ?fH=-~XrQ1E-4 z-)xUnQ|p?tt^k69wQQtiASDlln>Gyrzhs_0CfC*?Z5ZW=ZLYn%ed3i={z|aA(;&~q zl*&2Ki%T3hqF!!=Pq_O=Jpn)O0{w&~`0lUZmiK@94%l{{$bYTfEPDikMk!CUBqDoL zVmOUX(`s1Yf+Qm3IIwXu4GUCq8<{Jz9^dGq<^<}F1^K}@3~0WQ=oYF<3KKbSl!9D9 zPA8i;-0T!~><6olTW)a6M~dw+9Ll2lLn!788g>hyxhlk%h%Ju+`o#vZVv662t1xuv z;KCJL^?1^uYtQTRvkP|{)KmB=XVMHcnVHbsqBCiR0<2+bfXc|CTeFoKpq!xw-xXvX zM!@(afJ>EpI}Pvt0xZ=7guhb1(ympP^DB)SFol7B|3C66@jbH6?hUAoZm|fjb@QC; z6Geu2vzW%nmPYC6>2UF6{}RJZ8?T@#B;h7s4kf9XZ%SNmZ?d-~M6|34>9Wj?JmqUE z4P^rt3Ou@Cw27v8FalWvf5$%vO0XdLoO}qsqmuQ09LW%zEg!<i&uSVT*#aMEs#!-V z34O)vH;Y=x`FsX$&%DO)e|*)g8B{qod>@^#f4Ek^U;I_K2Eho+;`o6tx;30nDo`Y` zh?<q0_?qqXD5L=&^{eknyPLILH#)7SRcC&spLA!xq!T8>=}9n?>hbqU9Xro-Yj_U% zXDja3@Ndp^YX(mb-AexY^L~K&_muYys=rqM;3@j)J}yl^rMYCQ3M6H=Rbq^Uk}|)L z2w+k8z0fAfFH*fvdALZDU!e{{<uRuuzs5KW7MiIBnjT`C_pFYu?-p(3Sb(0FAJR0q zf>_|9p$+N|KSuwDuls}w*i=8xFcdxP{V~s_@mrGqVQ)H!N9E^Hwo%2{#<iO{ICnD5 z`Bg)6PH*=E&(L;9QC*#;X{_NMIZm4`cOm(hB)^A$-;~mmS6NSXvYzZ_J&8g5-J*}d z_7LR;vOUoC`^^)VUBBAp*6*4U-8bS<?z8E_(Dep>l@&SO0I?_+DL-SB6aFDO(z$g> zty|t-EZ5`m6h8&yOO+)t-x&e)51(jtN8Dl|(T65s_Y)~Rs){7$3svMPg*-(hmqLit zoD^+c^j+-xsrV(zP~Y*L!1m}Cs-7fTa&f4^KRVu;!Fslr>c|INazk0v73|=JpOUAX z0d16joGZ|t<126l+DG_?llAWkv<p5ngyYzj)F!#v@|+Q$SW4t)Sp)xIDY#T_OLwVE z)Lkm$m`i08xKu38P+M{UA<T<y^@V9Zshi89xcXkhE4A`JiPY@Q0&c@p3bz>SGH<v# zrDpJ?ILtmq3uM7-$bW+kW*=H<TK&Dh7wH~+uL<}UkN5YfNT2Dan$Ws-;0(9)%(7sY zd6N~rr8gAv2W<XfNG&%b_1<=*uD_TVYS(iWwD$o&M%XSxN>i1)$m|NV-|Rnw!rF!( z>-xhHVcVM=<@EG88ij3S8KX&ENS$*L$p_HIV<_G+Q<@M*YOWa=vw~XY23MfMT<D(` zs2F^`|5l-Dadvi~Ym)y46s+qetMp<sig(Qnp3Xq()J&wVF_Y8dyj`=mC9>HMa!B1I zR1FSvxK>>o=vcVcio%+nyEjUx8b)rI104&6XXA-M_J%};y#b=OEK6!BFE@*ye2NGp z9r)g-`lUFg^ZSNm{035n?l?l{w@~#<GI2xA{`|hPTYe|1M95;54^*DizS6W{N6zYT z@?n~RN-4x<y!Fr-PEt&xk+NX4IWa;$yf>5PFa0;MjLNsc4wK(0RPEkP<#M0h8PKj> zl^5(V?HxfMUGUs;E^!r#x0sMRa_DcNz&nt#;0|-J!xT+q20Kh3u*p6#pQcyJ3q&iK zY`*NWXs{#GzXSz$lg*C<xn~|;`FkUw*?%C>8)Uu|-B7ucnHYCF@4jc|FEz<SRPl>v zQM~hN^5M{=<1~n~EJ_)NVK<EG=({$2-6wFUdZy^1lh3rUcmw>-r`;MZ`@|p{KsFR^ z@C^^{F;v7#*b4<k5-p_t8Nzn5gX5-;q0EoYG2IQjSed2xpX5v)-n&c|7N}J2)-#at zQ?v}nStj@r{qIaSLw(Kr3~mPW3fTN%_nmkispYkgyS2nvTucjkOk2j}nO)@OPe1O~ z@b&ao^o%Z0{NhZSYxYU<<cg0$m(LgWp2%Ho#cdx^<AGVH8eMTlmtUuSOy4d*;n=2W z_+9$sbw=saSm_0L-luSD#TXVj%J9WVbx=NxO>p;72$dd-x6qRAk#!^R`OmsFC?7vU zZ{5_Y>j#I)t=B*5))8XC!+P=&-NX8=`4=hqfu+jOsULi&^+m~8<S6r&ejhpNeI+bo zP!etOV(~_@e}72&M+QFcBYlodyrgMS9U)JywKqTjpuG+M^-~I4vJ!m8%3|?Gq>gmx zpwUckp)8IiM1ClW;zjLgUPYWJ(|bK3iBEEpOF18B7a+$hvp<`Hwv0o{d<$|k>VFTT ziR!`5LBfujvS_HuKLP5MCGkdkGk%xS>5Wj_;*I2d47O)%WU<P)vAJ8rLr7Pz`><P& zFQ3*$&1p`g+->tX?y~u2M3v`~x$wcx4F3)InPxg)zo!F+m_B9lcXP8ozwIY9Es>u# zZuU03{<Nm09Afx~EA;;J$^LIm)lZdqHl+NdkZj<2QRKL=+Kj?Y9=S0wnEnrFw7r#9 zAH~UHQM@#SWPw-^1+4P5nI0KZ#|!bh$El{UK@VJ?cDh^Vzds4LE?ihf!zkGNKdtxg zX?kC}n&n<F{qU4NYkorSKUQE^4`KbY`$c#jy}$3>l85@n@&HHT>*xeUWBy8Z|u> zqRLv1*HgUJr@3|_XT~`*AVK_&bs7;tG{F8a2)oH2rN~i(gu82y;}{ZV9b@z#aU|Rw zr-3r;IsiXBd%F8F8YsSf`9KMnT<f&U<EMdr!{M^|#vzBR&^H{k5=Xs%(C!Hw$JN?n zwY#U2AG^QTf0z)RA1|fg3q>FvIbh?deYVR6D!H#hs6vH-j^VzXKu4A@E6_2-Z`LK1 zKu4ZmB=TxusKIAkRffK^FTn|WPx8Xg^-DUTZ}Dawe~id(!_%ZjVMjbwSTMvP-2#No z%Ti4~t&VSxA3576|28<|(d!|8{hE}NN?QsEWr@83;#<SuB}upp{DcCGkHAD*{V(14 zcK-=|kN*!@{pRD{8ouUeH;c!o5DDcd*kRo`B*Y;lzaE8~{D0La1eDu|)T_+3kAc&x z5SJO)1LWleVmW!B*Zcd^NRSFKaD*o37(Vroz7c#oe)SuD@G<1Yq*5?3@rf*EtII_4 zajh}bEQHtaWE=En(`=R#G=Xs^TTT^7agpQD=K%vYu6Ud(^99r}O=FJS)LO(cw4OQK zolM9oz=J;N)^Pl2w-&|Chr6}JIP5zNV}A7U<y^IejQQ!0yCFWa`f#^~@1u8rJzTdx z{QG0W{&`rB#Zi!%oKqV}jU_<;0{h1gdpC|LBD5p(ER+Te^bC2i=)`CLs|OT8Qx{Qj z;<bFe>e);nurT~Oawt?CA?F`y>1+R`F*GOjqkAlSd?kLGoRsg9CtLojw>el*$O++% zJ(>o~pfstq^bMoI=N{~{jYM0=eg}T9x%%2yhC1I&aN&lvdE{`H<hCesybj{tV5AOh zeDg6bk&V=$EpI-?0Z8eLYbUk<vZ8zd$?e+V)C`k{_0}X__*VTj!u7`A49<vO2kY}e z<<{4#6I{4$t;M6Pu}Shp<akSO(#RRCNh24KCWRZ;+(x15>fB-h$Bb}RhH;#Ol&l|J z*8;&F7VRJ$n$cQ%c2a=+pH>bOwff8t`ro0y6aTl7zf(x3eYn9l3T9Sijg`}Yw$*V& z_;pQ!(i(-Dd?O+Y#EEtqf6VOl6Xhe9iBbCBl7ZT{{yVhq@xIv12>f_z)&?e<n_-io zgR4UTQv2XyLs_Z+S5jH2bBjf~Gr5q#WT#->rOetp`Zm3_%xE;UZ*~&fkK&V2kXh$L zEgT-3oeIPpj`;>7<pDDmvlt-PSn|+)gS&JRwmFM=E+xO8&cE?V{nAR*f7F}gN6oq= zljWT;Qx;?NvH%3teT$4isD0BI1i;Vh`ak2=t8XS!VauGbBdPOvKsc8_2F)#=C_?<# zDBfiT0piZ%K%WXv*KzuQI`ten8a)_}`351S93`?*-F_k)3RN3K<P2$kt1fw3(2Nrr z#|gpfGdOO)JKM@5?QTnAhD1v9C{E)(m%(wa{cg@`_h?Q_pW8=xj&nsea8`1c6@HIJ zQe8Qo%652U+aGw2lN@nj+t0}lwUSJ6PrQAmXF@&D$jntu*<RIYwZ{^}z48H9@IatA zlFuP6=83mvqhNc^#*v=N4kC1|{-ijP%Q3?RkK}vOt0eQ!sJ1|_R^xhCn_8nsKJN-P z1fX0khT>nc8c}5rt<e>k+N(w&l$~oq>i^}SN{!a0>hdLWbgZpF>eH~0<DE0ngab&; zABEKUq`EvLe-eB@;EYVqfZ7tYwtQ6C1+|@sT$z!qY_5etV6U<ubyE(K*Rc!os)A&& zHBFQ=(%|F{{QO2Rq3k71!$aVYdP$D6^JgQ^NphUt{BnbS6E91>es}}V?SWt0jbB@g zUlkkrZi{4<SRw!afxfi1RU1TW>&ust`OoS2oT+Pg!;%&b-=EoQ4UZsenB^bv1}^W& z2bWM}$8kuWXCWK9JXBiJLf82%q@X9Vy0pX;`1_hAEg-)x%IeZ~Q>4eMew_0;htCG} z%48R%-t-MJVA^kgb~#s_PtN7vwsTyxEQ-gL@?7g}+U5N}De=`7dsAX4(rRF8X|+f` zkAj^!8|^6AIe6n}RM|y_bhS6cA^E*vLm(m*SQCx<<%uDVTtM=Bi8oQW0kU8zYDvwn zR&dqVL4HU(*@%w9rzwl#=5@UBCw^~TKmLtl_xIgki}emseEAU9A3i^Yk4F|X=^zTm z+mL(+57lUPk}Y_O*IiGAsE!iCsWbL3Y5{wi7f`Ac_h>VcZ3z>Sr;bLlZ?yTzthX1n z5W&$Bjk4&-p>Hf|;kNR<&juX)cUoBgf&sn&9sffq;~$u@_95`mzoug{Ha^(G*_-j} zJJ{d#^zYy70CL%1KG?$HTjM<%QnH>UzbDb(e|iw`Ef?(~J<fWCzVnwqcWS{I&+bV8 z%AYb+B`+NHQ@R;t=-dZeI3UMVhR&fsEvPPQ`GYO6b-RVU88<%ILMrt>*rMa3@6wTO zk(zbwyDPZr>&aIZ+c=KmuinRVm+@an>MJ7d(&O_M3`)9iOf<^tB@=bkI8)p-kF29^ z8i2VAi52k3$ftimnwDQv&A=p>d>rf1+!0Bfm>7+;_atS9SPCUKN^+eC@S0J$SqOCl z07I8a*#0#orq=nT9fyQ1C*WqMN!W5YGs(5(&m;Qn+i;~#2vq}Lbcw|)AMzYLD=ACO zo{P0W|6liSa;SNQ;<Hf0*2Um^rU9BL*qJ44nU=+IlKi+>B&qYdJQt69;+->H!Bd5j zQc)l&E3F>B1_e6@`A2xe&HiEDu;w4^4S(ShcGM;^i|x%w-XWHgUQIfP<n6SB7mq=z zX}p7M=>YN(_gp+mP83)0gc<QQlH4vSZ^C=hq%IHNUQ86DqmWg)oU9<92mv$jfc%<> zOw@N)Vxqyk5fe)mHPN`xfQiQ7Iia)agI$#8EuKLmuINX)RU})Wl6%-5L&}TraraFn z^JT~XG|d^(e7BM<G@25>$`0-!CUWlc)<H;fS&*_zbdvJup_dSPT@bdtpGh0H)Re4U zdbEb3dkvjf3P6NBk))kSKEE#j@e7k#q#L}m$^!fYsIrGPpgfZ_V2U*xEEMWbcqFeP zr}&VlafCZFInLuaCv3Sf6OQl+#u0wbtC}q22$z)QVxhgc^)sI1iX%h>n>q%mYcc?- zLY<ovMU@@2u;VoT4msWvw(ZX#<!!b0S04Q^_J-Csp~xG}NS$g&>Ka}z(kO8a`4XhK zWtS=Lak0qW(E9rU%1SnGWCo3&fC9P86i8>7y`gmjlsWw}W&Vw44g3{9P<i%-*2h4E zGo_cK?4qAo&8l5U_O1MLkn+sFK1@}GO<lz&+9ZX}S8!5JY(3qjX|CXT-YwUo%D2hR zv!vFmZ0Ky4<PDdcNUKBgn{0k*Fu&C6yERQxH)~O^<C6^^0EmQFKFK7r0;JV?;-6<z z{H(4VLA|O+(>#@zKxR79n%P61Ze>rKkrwyFzsN?xjvPU~3!dzTC!5LsGO6E(%aZ#C zd24aXTTQLA;FXTFSH5E9Z-pndWciPh3vxW=VHC%`%YVK{)6fif=}_xt$QC<?Pp;-U zDt_I+nvyHLZ(J#+SIVNe+PG$CPyJE90{YijdX<QD(bXv;T_(Lw<$|hJ<d5@vVV$<F zVuBsbKV8LhyR$fs+XGG;X*JIQ_Ak&YJ2||5l>to=y+^kwZS6?Y&lV+f3*&$(I&xzv z*``c25MOi~(a)2F$ZlP8HK622&oy+U(BBfhpyZ+Ik$TmMr~1)fA4%r_^um@dU<l7v zIQWHoTR42Sy_4C3A=j>}P1E4!h50QUzNt%x^;Adhxxa-&b*2NHksgGH&E>ho_P+9m zn$erTn|j+ka<eOVnvc#^UOY;1q?>$Gk-R?zLRoG^7f<Ub%JPSvNgvEn^It;h&l>YM zP8l9<5_Z%i%t+qvksIwzp(Y`8p5r)IC<TW3G6mRUt~VLe&g)lGOw<P?^@n^E1-mrY zKJuZxg8M5;#;)LJ{G7TFK9NTQ_dIeuS%XV%@)*F;o=FGisQD3AL$Un}_qOYcLrsZ6 zv^>8V2(&IFeh`tUA+ZR6Y(2{?#X?n}Bafr=^_bj)<Rf_f9SrA}Hk6hD-F?SE{ap#n zT1dW-`i!LfiGp{1;ky;db-jkP#Xz}kN0W|t)CK?I7&x^)rdh^-*1~`mQ;%vAEBgq# zcxu2>kX&bvrHtxaNqvNjDv?v%End0B75tQp=VyIUv*jZmqj{c5N9LrIT5SK+z3pmp zj!*F@|AHB$l%QgvO09uWIfvxKF1fzg-XzJ#n1AF}W4K^cQ#^nMi5pSY#^8f<`Y^c> zO>InTQTOHT!)t6wZWah&^NA~?cncM;!!h5G;AtMo+vyDNMHZG+7JIYK&YIJ|;@F#Y z_PgMlew~UhPufUo1VZL=Xzd&|KY-Ny;Ygi7giN}!&o#|}76LnuHHzo0G<Kn$Kc!e| zz<4;%jMP=Uq?kmn9EU?Sj*Gl}y(ivomK-&baOZwWcA1Iv<(br&6u@-(>n<?k`NXBp zh>r&(U8I)tNdAchsTD(_hG8KO&hU%EmTu6Fc25Aif;JOPxQNv00#Y|y?M;c{UV7rV zBe|oIR^y4|Y|t`CdMewg8N(ehjix!&L^%41g`y)W8^o3NSRzLvs;?FU`Dp(pBq=V7 zS4BCJl3y3~P;p}IDvEF6s9(Fpt463S(J|9IA?{Uk2YXcyX@{*ilAkwMHD!2JC!hGE zVWhCqY2cL)xq|NmiX&I%K`YPFR#ti{J83J+qKSV=a!isN@S(@a;nhG7ue%=S>1^-7 z)sLqbH*S7hw@G~Z!vSm(y{B0-`fk(g@BJ@=G<@VDBY@MI^dH!%*j`BKF(pbW@Mr^s zXs9DENi7`W4<faMXBeIJkZcIhs7QVvH(xWrqQMjTw!HO6{qa|=nfLAX<-=+AWf-c7 zkp<#)xa+J2{Px!YPK128Un6sJWU+GhWyZ7r_6b`(d<wpExPhF3EJ_t(1<HXp5nER1 zvB}B;acL-n6kZNVCj0GLVvIdzZ>H$Xk{t8I@%Lt{`86nhA_ICYDH+~y%x9M58jl=H zJc7cS|4u-}rQ{|^h~JBlRznUF1?s(s<ik<m=cW}w=q+%fQz-j7IDb5H%nl^ncK{Ad zsKH+zMapnveLGfJh42r_w|C4g62cFGYkmRc$16n2ELaaK@ve!TS}5kf#;D4cQkAlS zPQ@YsrP8s!3-#_I<?h02=Jx3ao4TX8?>q_jB<(vEVe6KpeWZ}ZB}-%?L!`P-EDdoe zOXmTwBKaMh#n53H_q-yB2+w07($;E3B*jylPJ|&N8x1*^Q4vLUl*CdbqeA9VL)L*k z7j#nHR(!eW%_8kv&ZqCC*{(tyQX^4@0%)-}<K0_;1DH~AY@3ZJ@W(003r(`{yy4bG z%s=;;zt8X~<EP%6je@7zDL){p>^uh>_fnqYoKKdUouM`%Jc~j1TB3|w-#0ai<ijut z&4|Ci-dZ~jP11i0L5N0BO(T#BplxixilR|``<I<sl!YiEAYWbvEanzg=Dd_L*9ep; zEf2}4pe&kjP?zSU3p8E>&pF4$Ulu<&gS@nQBNKXwPOsOlTTLDROK^DC6I~iP>t`aB zGP5x<0Cg4V;|9@!wpEy;;0ip4@2=Dd&5LmJSF}ET4yai_Z(hz-Ut!?mo#wbb=Rm(H zBg?;${vnnD9PO>o>5!cxP6Hg_@4A+=bcu}9TpA9@g;{9^!#n8;px^K5-uNeEj!<I1 z0>DmnZk>|27Ad2UTvDL(0=d3PfWGy>69y$JAjFgxpm3YN2`S|k;D`5JkK}XuOS#`9 zI6TpKBN($p?albM02OizqEUNnYeuSOGi{c^&)(lOuf05c|GPp}){|1pzyL6$*MS); zq!y0zW#gwHikfVsOV}IHG^YN$C~Yj6Q;}E(P%vIKg`8mFX8*Kk`aLBA1oiW@s2l}? z`i_1H>Pcm_1NVZoj|GxZ!k&}d>Or)DI{uKREgATIIswAX!ZWej0q_5RYItqR`hTt; z{CopGe{mYxdEz{cCjiX{z)DJV)cj>la2~OgBC_I^Msf9MIyF#Ah?@?J51BkA`v!w3 z0Wj%0qWg+(z-pX^iVugu=QC4R0h|TjAwDL^^^X5YMvImp`QzXj9>7NdqHG`ZGxI$4 z1eB0-+DFdc&;_D9dbF4%)1QogVcBrTy5JVkz8uz<6m<Gue697t1;JukKU%*(P#<9b zzdcPpqm9(_OBbEfw0%R!h_@BnW2C-Gw7z~MuD^Y+FU0(J;m>#=4O=IP+YkJ2Uujy3 zH+*ClYN64L`>srWRvrERsSBEhw5%iKncmPp!_yj<*qZwNwsWcZM+_0SG=<FJ`(M#n zxzxx$Lcn@Kr(r3+b)-(3fs~P@dJ~P=xRmi>N+Q~KRo~fo<UBOnN}Ihht=Wraq<u)K z*N6Pp@q6LR^zo~{TOYr1eaCMuZOC(X_cMM?(+3{EGySaZNOFCbq^$2DUlMtlu4tjE z2?aazgrLsFn97v_5$3mUSbl~>O71A6Y#3#xqbMH_p5no(5I;2tskb_2wUBdv6pr4& z=pX1;DWO?EzZ~(cyct)pkx24pVE4J?2GO_&A~9e8K_7PavM8>e)|cPCr6-Nwz4!V` z`#xQtYudiCsq3rZtG??CFG#B<@oL)lzpEGj4xsLb_`sg_JV>wIUrB!OZXs_EH{77w zQL_&1TFzA$kiPxzc)Bp~*&S)s{o-5pzkPky58eMl8G*gf28O#G+)L``gm5KGh>EaH zlCqekEVxe-bitJx;&xHWzK`(RdGuSC7*Nw7HW%%)vTs?EoYfUy(yeys{w*D39E`L% z{z*0*EBo$cryYH@0-^6NO8fu&KKwhq`tS1x_IALJ2jL7$>1pR#0H1)Z12m{Npiz`@ z=M6La?c6t^&%QzJ&tK5aA=)`^{}!l_sXA&FA79Q@j{*PEvGi}ur}eOPiZ&2_;F{IF zxL4ANZX9P*J{4WODW9qYkFgl6EbLRUWp_>A4d_3g_f0j$rA28CeKfV9-@3kDXw|fR zV(R*O^z(k!*EhHKzrG}Oxp<B`hi^#Y>qHog)bnf_zsh30cfz_$vxD|BP#^P5IyhU+ zmzlwmVwAYI<v2razU<wTIgU$Y?H<OUZeSaAi!*zjMv@%EZ(};>70ClBnWYYr4^0Tf z>%XKAI@wW0H^uNUc3v%oe^(-92g@V;*-OTfq_Hy##Fg~3(;!g&922TGh%?F8TbjcE zlz?2r2zPm$qsVQS!#R4g55K3d^-8{<^VvxWK7STXHh7f{DOE4A2=gKsTRKOdX<_{M z<mjM;KR$7(q=XJX&+9T5{G_qVDWw2Mf9XC;a$C`li1=BCG#ko5!M#OfWAn`>M=eqB z0f*S>iJ!_s%FoC>Nxdrey%x^PA4kDX)9M)>C7+73`zErYQF0lSoz=7`_5b#@53__^ z9si*;9nSHFThsZ&tG`41>gCqYqBEMdFE360Ywc(K?3z08`6O)pFu6Zg=tPu}?FMaD zn*9G6ov-Cd`Ja*>$%omo4-gdO)ncKFvI<J-&{t-(a2_@PAk0^N`;pH_0Y4^ndkuDG zt_JRomHHP*ifQF3O2df0Vww%>h^=J&S$@?E_w|tq@E>mJD-(R(GoXD`*n0YM<MSp> zbtdDKvg_7<df9RMVN*rF<Mi6}7Ea<1&}Gf=vS6g}s+`^fC48rW%I`Z+*)6F91>^_5 z@Anxd8hN{ZN}sW!_!FmklJRfn`WYV`FgkUBQjevVPm|@TCwBY95`2zHndRw>Y|q0% z4Uc%_bHOvbq-?)Hw}m*^z$Kafog6Poj^kN_*?5&Q9#(@R)!0Hy4Y_kE(+b(pu>){q zQts5Z(04ye4qZQS%3k{bAdesPTrR$=h3n<t31#;^q|O+J)YoXzVWj5&lO0lS<?7<_ zr<5_hABX6@UUeBC^#r>#S2c5pp7zS8UBOTJ*>$0oejIp*J;@Vs(xKUE{;v)HU9)@J z733_OjFjhIqG`K7t)XWgl8><XT*|InY;P)y;%QfKoJWq4`~B&pDMr#f+vSX;hx#8t za{jl|^S{m*#J2-U7`(-Xvl=PoV1%d$Wq9PHuHXq?qI7O=oXcao8=aZvlPODApNBwP z;}a{$nPk`j++_06zf(l2QoMgqicZu2+#1E^*3#s%EQeIL&jV>2ch}8n!c}g6`sIo= z{W8?x%Y~zLZvjgHWU?-*+d_Iuz7Xt=dq<OPY=JmaexG8q3nyr7^-TRNDU0IfQ(7OG zUf4t*zPaxv`osYI?l15I@B@Z;q&$5tPfviXtJE9l3~9dHx4_at=29Z(tt49@kuBu& z_@Ph8XG(QxQ@_TM)TMHcEESzpP@Vb)QmY#C$dVaG?Zd_41|j?#x^VXD3ulx|*ilm) zYVzIZRZGdzY1dqDvZeE(SN_lyJWZC)aXpqGje**8@l#{%d@x(h|Gg1NK-Nxis40<& z<iq|fBwt9}fR>GN3sqZb&_Fwqk5I(cyRJx5AwrBglIzHXovZAqp_8v>u1tTX5>7Ky z6p|>-Qc|aG-<O*dV)U(yKREzw40yxvmKz5Me4f<PTfX;PmLGA?M@+q=W{qq6Y87iw z^qphSlCmi7x}mSl>d9X7e{HYaE@;GJ(HTW**7{#3I9z49q#4AM&UE6*5?t_+PDv2# z)ZT&*D!30*;qSV>!e7HD{n+ysq&2g3g_h=@+TI7Bnv78|O$6A>lbXm;$~j)CYa+X; zCX#{Vb9T+%fFJ%a&2R+rwQ;f)?GySAv*nWkh8aJ5eP3mIR+3-T-q-$U*YL?^P1`p- zRr37X$Nfm2cchiwKYxBrn*YwtR0G4JO+%j4k?*tK6;L~h3cvD2{LexovO#<@EeFMd zg0T#0*oQAnihL4^)Z#3^Ar4XKg)~#qf)l@j1UA=r9S?iqA9N`F=queC9`c)R4PW<b zcxcXVb^FZs8+6?r&z_`bZvuYUcfv2PO!eQe{DA^8duQC#!r_8LG-#{99!q2b)n|Lg z#u;Sm+!5EKt}u%`0|@!-gPLY=>KCMP_*2+~#9oL9J8@$RhsXZ6li~YgOCis-{xH40 zlKP5hy`;xqA4>8Em6~*joMhbfR}zEu2{-$IdSr-Kxy$BJo{utlu!6-1BNN93XI%U# zfJXlc66~9W&@&vzMcs-5P|CvIlexlpPS~=U>GCU09OsrL@kXL~J53xXR4Kd3l921= zckt9v9H*k5KnE{u8=Fby`#HeSGjW{95%cFr3VkUtR{zELB^&{;bcVATbRdlhWldFR zQ%Qevz2TTYTT+7HQkiiJX}jMS^@d}<d>!R_^Kw^UcPk)WEJQR!qYXJe_PIy_Q&4by zIp-UVl+_i?dh~aID2=tQ1L1YGlU-iD(jIHQQwLaXwemzhpTl$ZhSo0_3abr*sO57} zkK?Fs1`0Rp>HQ0lDv3q==%Dog+u2bhAHv^MX&MA+^y*q-5}8oIp|qJrY&<IPTz`)u zb(My~O-Q)sFbX$q8j6C|0EF+)MA`vFLtfU}AUfncqe=ewdZP82Y@`Akk`K~A>Uv5} zT56(Zh=Vk2bBc#@3<i;zNBD2IX_n>S{maLj)if~tGBNxsm!96}QICr(SsU1mvk zzwJcIZ4mtf`Pc26$op;nlSnNmn`h!suji7FoFR`Snw16OjdBz79|t>ggy5T83R&uQ zv53?R_V23}UwMW@%G41^-o?U)7mNVtW}AuGw|)s*#rmw}Ty-wwxBQmDJDNa0UH>u# z6gahvq5|NvFVp))^#0hF;Qr{t%NQTq0d~KH4FjnN|KsIu4VS;ztzm`MH*8`VSM4Ov z?|mE68TJ4UiVD#!v~s#X2^tl4Q;&mfV&CK7>#l+0hi**9Cy?(PZtxF=bl!p`(b^D) z;wLll2Onx$zxk0=ZyG5Mkl*=T{8MTEy<`ki$sQ{7Wfl1D=aBpkwjI}9k;)YExrczY z49J44%ou9dT)PAGxP-NH4#|gcDe%YsThsa&dw@XTf&NZC_ch<$zb9<noRz9SGw?Hc z7c=>l6rpgFu=SoSj&gU0n}qE%vWQw$gXBgRObd_vw&&t$Az&rfmH9T0d<b1UUKT}; zMq%5KEK26JRFbzdtg~GPUiVJMq{M6#G%^01B-cuEgCu_<$!9$BIsAc{!Kgz_P@}Nz zZ*2Ne(`uZE-5^Ynx(wEel_(AvOD`aG`fW(vJj$?7mV!Q17RA-IRM@{#Qs!Brp2|)d zPk5(^<7Vx5=UFq5=CY*UyF$O0Nv?a<g}fv`VDYLC5Ajr9qG5(-Guiz1IzAM(yh{!Q z^<|oGacQP^!iSRbxVY4-Y%KJuVy;(RE?VtPi4l_A6MQe=icHOiaK5jy%c6SNA&rRt zxHvLB->Y6Z+^a6ipq1X6V>E2r{iGhpAz|B{P~p#MP+{jx?}X!CH9yCz&W8jKB*~}j zZHeI!Mf-lBI5K?-()N4epJ$_B57c%^&khx*%vG-(=T#R$7s1+-$R$5L!5S;l4n)ah zc<LU&%_pr{mg7~{nLWxXi$_^k5G{)uBl6n}(zesWwx5z8>Tj*d!SE^>#xNAy8(J%P zj=MWz%DqRua*SRzDLPr$Gy~rkik#55$Ygo3)>0^My6GPE%7V1=fWM6u*~qiP-sCS^ z*sVOr-5HtMw=komC-@YAdnodrfs3@awT^*=k?B+Qk#2plN7L+02@}$4$oDsGoa0p& z{FjS*mEm40YJuVXeWb8e!~pXpMPFUV5LrHrkl%KRS+-%yCH|~aO1Z@%SFk=n#@VCA zAv(?z$Jrjpr+BhQ({%nT8u0pF>to5Rjk_bcCXW^)Gt?7o&k@u=rDkokMj>V6BAHuc z*gZ54m_GTR9!=A8fg!(RCp@gNi8vK$`w^M=$^4EU(w=Vemd5f&-iI8pqmq1*=w~jT zljM^$e)S3XgWSQVQ?K8by#7wgb-<rb-rAY^$~F4+gZO#)d64D*8qc%*!qk_(bW&Vh z_~SRJf9!DbWShddE}p~NY#fKT*nrwXj^hgF<tX`5Vr_qX)nzPHDY3Q_JB{6*$j>Vc z{>^)m{3#Yj)?j5kDn$&B*~YNufi*+TT0HJS&fbjuhv?HgA?Hoa`uF$;S$^fB6P*Bs zN#83mlSxU-Dz_lDyeK%MelrnObBO3f3QgqWmT8n+lKknBhj`@GX2h5qkZeYEP71qH z=d{r%-g2wG0RYGWKuR~WBKf=|*HZF$9Wzs208IW2<WhZ;B5bOg8&kA|F|(+az~cKS zX<EcBK7y275$VU1@uH7>6XQ)!vCdFI>eS+fiCI6G<b09nBxa;ic+E8agCWI9ehVva z;4d-Nu$&AW1;4zoY6w}<q(jlf!>NoKx?MZK&P)J-ryc*Ah_^K5_trmL`5=d1ZlWNz z6&^W;<d2bjz#yp5IhYh$qNL8%Jn@rRb7Yfwj=b1xo+C?U%N%)wxd0N-9w`nr2;nfS zx)`kqRlZFo(2{8X;?({t1~5basJq|z<#$u<6AHK<d^B_xru9-(*~ytWZj*)P*#)>u znzol?8Mw6nwU8J!)rsO~21)8rw-qFRJB?ii`2a@;>k+t=-`gjaM~#w^I&~CMtBjH* z<}H;dn=9CE^htJ}ls0QH!$$_9i4F9j!lZp;DZ|GaLx*B%YhHgc814U`Gy2BI00}O~ zl6Rkit#GF1yDK>j*keQ+qb3*u;zm6x(ikdb@T3{>9dw1L_d(n=vbWi_#G@Xy1mf1? zoil@{%!uzq+Iz_HH4^Um7&#h!W0(YWjL6PJeftN@UAT6XhP{A*UB0B28a=iBNN!{l z@?Ze0b<6M5{L90F`abiOI-QXX;&`N(&eJ4#(g^A|YQ$fE#sM_7pA=w4;iffXkvdyr zp|C6<LwOPUoG4=PqB^{BeA75#D<zU$AQtM6AvwPmX>QS$FdLT~l4#pF3(3blay?A$ z@vV2TnD8Pz`K%r^qWjF2Cas{<t3=;P%wXZCFaj#P(Iub9PdOR!EQ8pMKoHXgah!)p z@^$jZ@cK9);HU+Dh;ZA+QADgNAt!q_CEE~-?M;dCXxV<Ef6m}I3%7csq%0Pfx<Z*K ze!^5NROM&7BMZcFWl>k4bCiFSE6|bSv$z5sBYZioK!+fNAJH_890pczxM59>M{6J_ zh&2K5&o+-Ewn<oXm89OoOLA@vjFIGUi#B2VWKGjr$CH;?{7AEd=P0=IK?l#_cOBn) zR^j?l-*!y3W_737C)cb`i%-J%G)x8G1A&Sgve%mI4T(ueMK=J~YwpuX^<1S4mJgsz z1-M>2HDO1MP}PLA18BlQNX}3O0}2|=-?SU~|13(n*H4=Ns5iN{{fVwm6W^bIk@^*Z zLEsf2Al)v$4jFSz{>ea$4|ConR5ilNW7be+{@yo+`G*f^TEfN@AfLEYe|#lTn97;= z&&1v#3mrdtfJVrXx}u>b-?e1M8PTNsuI?M)bo&9_X^6K!Nr??|bn{}@&r*nyZjN?q z_>bGWHT*VxZeR5Zu6i=L_4O|9G9TU@af>#0L=x?!*+ux@`Ingjfa+_5rC=v>zo_-u zZ^3_G%=fa-_UE7M6GZdVWRm6{-L;YfK1m_;6^zooEKw7JB|L)rphrF!JjJ8B(2>5r zm9z}al;Vr+4eo6@%KfHbC%<-HxXJee5A}G_{qKnXR*w>;D4tEetD_X+nu1f7MT4E0 z{%n{Ni5V0>`8N9BWcV+dm>BHL(4QDfo_3Lca%nsePve0=N?JDBEmZxKdUB4)`z1M6 zEZ0ZzdLz4*x<F};fE-)FRl{r=`}YC9E5zbNao6z61ml!NTNm|w2m5loPy8DZUdZ^6 zew4W*A+eH)G(}FK>M+%C(t-x|4JEDpQ5~K8l{C-lI(m|Wr(}E|PYKO`sDrs*vZNMA zx51qLYxgp)dZ?Zs(e+b?1&8fww}xMnyER-#ADj@;(L&l@zuX{^$v+7<<y~f=V9HNw z{j#Tj|Kyt~_$qSEwSZgNp1JnwvS_fK_p|T3B-ozevj*EU{mbZdkc9DEuzk?l>|nde zH!AUiV7u9$4da!t2iphxr<41gCjWS$sul&?uU$O>sYB=db|)uP<?^8hAA2^7=A*-I zxaV5Z-IiM*IpnI$GOl_W^nWKuYVw~&YSyu%%em^SlK7xIIWEeeBXjY8EIg+pN9F>) z<9G5u{DSM9-z_gDlLSQj4PrT@lR%E;N+fp>QA7S3^9`C74K@27U|?ZG^_(OtOOTQ% z%HYxzL`2Ge28d$-M3^h$&S8f0=8^I==S@NHT;CK4_fug23HOG+=f|4s^}S0{W?7Sj zd$Y_QrO2a{oAIb*3j7d(=MoL6?-vMLQAVnLQRlayH06~&Ai!q5Mde|ZKx`#LHg^<s zJ&Nz!Lp?YMDf7(s7_)+b^W-4jvy)oDt^jBgJ)!mhPXSF#6woB)&hOcstbwy^*YHXH zrHjIr#r#0IwnQ2zwKpXS`X<~a?cd3?+hcvwZq-dW$!b3X39m=k22_FSvq{jf3rNk+ zLF#-fJ%!|UdvjvAM{aio>jUnH=?bLPBEX>N0<1D>Y52q$nSKRQr`|$gJbq${GPISo zkLZQVM?i{ZeVQsDb&VA{8j&D1LjGYCIllIdXQ|MTwRnyUc^QOH!~7%{`FR!!&M6~v zG>Xl8I}L*_1DF_THxhPp?8$`PvM63}Gwz(TrKIvMv+1e4V~k&d?Xuke<?AmO0JExl z!1&)X!*>|0FmpbJ?xzmj%od~$O0k$MQ}{Di#9M|K>+Y+^)7G60)j7@7_!G0>b#w!_ zrkS@_<ffUo*Ib@|;@%YBW-t5-a75m3Y2omcD(2-xic6<|Cg;a4hF>v-JoKa8hPU$J zAv{<19sL83_KiQOwKveTnHVnm3(*?pk?F-O%r~&~P)MCGggtG)JI`t+YcYxoxAXv| za=d*eisK@xFp*tFU7Zs}e7#{jBl-iw2ijH#YvXHS8&KS;3SAo=Gtq=&DBf;HYHkiv zJyv^LA`i)R6jaX+);LVf!Xp^K%E^eyj?^p1A$1Xt<b@U*6PSwZi`1;&aVas~g=|+^ zK%?<(DPe-J*Q;*Im5zTr*q9O@K9-780x=>-k$fKK-b|5J41AUKH_@y{n!kRN0j6?i zjxN#vU(dJk8_!9Z9|a7}f4-F_n37L_`>+-c58suBYjVvSY+hVJZhpVYm>07L^IWg| z3wtmBRI_h%2w+led%&f3dyVd#Vs5L{slIOTx5Y0Q@mDNAU9q5WlRw+uU~h^hu7K0> zm|c5|28iLu;L{wSoZMtHdf?CfdzOl*d{hf<OG_`tXUu8KZ|%Tmd`f)$B2%yU_!p_x z609iVgsoFdsUh<l=&4;w<g3Z#$pE8CMnty**kpzeu*gLHJvQp^QCCleGoNVPlhY#J zu{}o4xi;T55;@Hb{z?jt75rT$ICXd{M;$&Cu|Y>`5Vlo-Z>3(?_8|CHQUMzz7TM`l z78a&}Hw=eJt#<>(5s|_(Bn%LVF5SO!rGf4s$+SkJ!m}A<e}^hR$mm<;VzI(2f0$C; zNU!{nEBK#4apXq5I`Cho*7#w6HAa)2{6Plm<m^5*dX+21^v?CJ?f;+79pw%GSiP`q zAK$mO#iBW-x`MuAnJypDN{{v1Kcm*!Jge|Fp5r`fRF@B=2{pQWASse)ljQe`iGbjh z-zAma6%nuSXtkbrYqkdj1Oq<xu1M|`_o${!y*dMGt)4R~@W=<z#p4FHhiR}^by|_* zFcPH0q_&k_N8AU1DmNP*P{a-iNb8JA@;hXm+F2xYIZgYgP^OD%rp3+r93--Yy(wWv zT8%zFrj1j*s;MdJRe-epGcdWyJxG3EcNE3&_nDWdNG~VxmXW9-$uYXSMhkh4p^1bG zQ_w`(CmPp(lyaTv2g#cysV~(guNS3W|FdzO@fW1te2U(r&2dfSnFHnaiTq{MGhAf4 zTt3Odu5ZJ?S+g`1|G=V@7UF+@q4)2F_6{2BBvg6w+u|9%@hI5EuNsfEcgXPShFBi) z^=xa0e`&aGLljS&n8g3e)DaToUh>1<6#Y=BLiufR-gmE1g+>QYjz_`xS18zFUOOGB zBZofW=QQyEQV~i_MJjS8Zbm99N)#d$l_ai4Dk@D}30Fpuf6JnYVQ|NcRAd7#n{b1F z1}mBD|ACHt-?%`>7{7oNrw#w*Vuz;F1^|2p7}K0Kyu-MmjKP2Soa68o;|jxn$j}eu zRDLwtzrQ5qBWJKn^9@1j(3-BDM83*LYSxiIcIttHiVSSk;RfFrre9PR@*KDJ402T3 zc#d215$lBz{ujq_)Q;;Gtx-6upZe$whdr;6gZ!$WeRPH>xr+)Hau72;<r8ulLf?w$ z(@V+I>;Kxx*lWTu|07shOG!2gbpDO%&A?<+ik8Lj<V|pM;q#0Y2jXuw>--#f^lo@4 zgV<;O!_D0qzK@pre&<fE^+~D=f)}AaiWgm(8Z=peln8j{K&4fpHU@-Ii2uHZvfun> z8Kcm-db3XK@%%=(wfGG^geRNbDkS>D#%>K)Rdj3k;2NF8LkT!Dbo}LT%)b?>S=aq) z1y_AD#0R~k+d@DTXy#JbyIODR>DRwAfltA|4aa=Lgeps0jmb9%Sd{bFTq;;n>rrR( zNd6kBQ$0wX`V%DAMJ3hbAp0u{w+Y*uXu1klOw`2_n>|F1Iqx}i0tGvqXiS@D!a0vR zwZPRD5BPV@RZXL2gI8xwMq5n=RMwQZt<EjxQ#jpRTNJ4a#C+s9;LBEWZL%chD~rW^ z+|tT%xaOM<Jz_|m!+X@JW=YNU%vEzeQKU}&9w}8A&w0ZQ8>R_Wx4GmC!84nY{Ej3y zphIU!d%R;BqzUgK{(`HmCg9(T)Z8m(t5bQTuE_+6iGBZR-5Opqty^Q8fTD41nZ(Ih zO6n_OW4G?V-H~O8P_II=*No=Qog62GC^!C9Z5=x)8+nCJOCHgGJfA_yKsMWeoE<ds z&F516lMSLyinxQ`mv_MHNX;5GaiPH_kL7zIQGDJ0GaThN9*UGHNLgn_%6v;=m|e5C z*_#aieOME=zQ<%c5c{+PNyn3<3_|<`QW15xuGNsdixH<M1XTI<t2$?}M{Y-s^MYE+ zCVvGaEFoq30Wc7GmB><_<Mj9<uM%C!)0m@`_U6`=07bK}2pELlK+3OIQs?%suUW|1 z8}RP=q(eg=`rr&1!};VttrjUGo#dC}*y`^mU9gS1i*@-m3mLx3Kgji=;s<BA;Ea!! zCOFPF0uQ>1=R9&IQbt}nbcXZD_nMKMb^g#9fWXteu<}(chsaB>l9&A1;Ezm9z-O;y z@A{6ngJ+x~i@il!?~&JAknBF*j^wRC;jcWqlzl16>i8D)Oa>S-8ejJ>mYAf|c~&5W zjkeCbqihh%TYmv@8Txnwbdpy4?e9s7TSR)?34{kpjzfa_Q-I)HEH3pb&y#i*E8;J_ z;bwoXciD&D%;zBt;3}kMjk|gwC&|rj`6T}Pu})1=3iK)^rX9GHIS^H>X8lZD$YJ#u z*^MnoDK+b4oc4y+`zd3&g*4f5Z1wn*?{w+4hdBJ)-;>;(5LPFNrNJ4t2g%3E!w-xl z1AYrqHjn{d57Cpa>Iq{=_8o5rbo#73aiQTd$L=Snv$2H6JV2I1i6uCr`3K}<4$<>v zqlwYD1DxUXZ;w0zDK;AL0QLn4mO-+GqCjXdBb30vlS7VnLA|4g;Y%pfx5yhrx3sKI z%G_GWCqw95r2njSNX;_l=c1!@#Pm+l2v@OGpC4eOQK;UPFe60|$YYuqjZF9@`G|@n zx{;dom~|nCi+{v%Auc%M^ChIaL-pJ?ND{|p*5T*VIt(D&5TnPs`6}yXDRP|KxRoXA z=ho;!6|ifS^6bY-{YM2)<1^~}26jxc>KoXL^tSvWyoc}qagQd4#N})$>}0NF=m3~N zXTPAj9V)^1avT?m3896WrnM%>aMSo-$1y>Dsaw+|#dN^qIOoT$A728t80KH7zLMvn z_`e+-*ILrqSCUMRzxiOu0P#00-o}W(35guLZl+t6&$^I9@;jut<PLu29>x#dEQD8O z(GV0X+X^V{)-G1$F1-l5mCj$Nft3@*FU%uflDuBXhR2#3zlIz&LMStf<A_WszeA+L zs#T+dXT~%A*;(|S5I$<+xX5C0d_)q*;RD~$wGWQcb~d|6*?8wS)X`pn9PbF>=ipF) zJ%&7mFC6R8$OqVLN;X5ND#>rF;r%9iQ{o<>s$_KV)OZxE`3eO)&1>&K>d=kLh`f6c zsU?U=x+P8`>6R1`Nw=hgNV+AZMA9uON?73E9Jp>mYKcuBA)#thzO${4RH7yB6RI|i z4z`R(!Md-Q{-l9qJ#;nH)PdAZC}BhDCTHS$q;4uoh)CU3k{E~7O{IwfxH266%_Y~% zqNJ`(HWY614+F3NcIF4nLSfB6#2(WFX=?v}#Jvf46y^Om{%(>@HjpsO5sU&7bhQDm zETU$G=mrvf7iJ+qis8_rU_^^HCc7jG;)dBk#&LACYCYP1(OR|D7Cah`SlJ|+0~AP5 zu2{>VVUn>GutM(nKkw&#XOA2l{eJ(?uYDfL&U;^<`!LkW(q-z3qX?-pzVFakYzsew zyHC>!@y3RVyYdxvDycmBd&-13VP_{t2X~e<R9`+wclNUA(9VWdpKH6^-{cwT>$Dcr zZ0x})k+Sij9gpWW?1t=ZiFZCmcU>a8cn{cN&}+L_P3X~ef50=2e52#IoWaZGnCT29 z9}6yA%1OtL1?ip`dq7Jf%tUyfYGpSdCN`rjIg|4p3np`AA|ar+<fL(1)~4k<4tUpO zaTU%{nP&nfPuw;PYOQVQ2%&tCgf(T`1DctTlBO)KV)m#^!a((@r+ee<dbYg*>Lu6- z5>4ZSL8x-U(~`kNIyF1kFOG=?GrrJja2gitRexJY-&gQ7dtr0a$VM$|>o6X}A+Ia^ zA++u%$K|;x_@t#mCzd{DTUhM$S_uFzApqQoS~o;Tj2|(T{>Srh7daj;+3HE5{->vh z-v6R>qdv>O*%h|`eNQJ}QOBI8ysI;!96PaNw$u9<+b2a`+<Kmky0tZIqizn{C}v;v zRR_Cp#%dNhX@Bg7+XLE@18-2|Z6C0XGI;&SUsQjigKDiLG#3Vh9S1r2Pw-);6FcfT z0Yb@3vz=I;MnAk_3M%i`5R5xBogf47NSE$OCx}3WzhgSoi7MT(6`>u2n3pfGDpPi1 z@uV89(rsHoFj(0HQzWo0`?7=b9|SJMn8HjD>5y6bE#%744woFT1fS!z9Xi00&%(#0 zZDMw+voC0Bsm9bOe)SfF&rI6~=edMU=(ntM&pxX$AzsQlU?r&dIxLOdhow;mxQa1c z#fURC7VgEGGu0OE#p?9Koc}?Z)$PL1chI9&_m46mwUODhQ2NC~j+s45<G39sIr$@Y z%)$H|^_;K;?BmHRo8xrL34w?c&j}{C7yY&)u-G|p_y>VJ8C7MFZkf{9058_7u4YOh z82g(;#wV4fu{#ZWP}RmN?PUlU_V$PG=<$G!VLdA$HPo-ZqeoHzx8*w&ye;*Rf3b-o zkT1eJyW*rC>a0DyGs{Ve=L;D9RQ42#ynS)dpJ!EY_GH=8lASRIb*6szHJ$#}ersg4 z-ZAVqD!*oZGax6?MyhazaM<L2m)&^*7oqQoe>=iN`)?jWEgvaAlxs_8ww`o2!ulx8 zJn&`IAH6ErvG0jAw>0V?c64#VS`!P@;gUuj;>EpK+@~J?2|)5|VRIp9uJoAxBti<{ zuWXQ9%-||YfKu_qRZ`4VnGRU6B+b;x%Q4a1mL^D7K8%bqv6Bj(an*@vssr!jP1W3% zwUbLvu%30&bCdmymYu~_+`*9NR@(K}bRfaE+>w@Ls>7yQZj0`6v~wHYCX1a|=Mp>d z*?+pKjzr@s{dRsr9X9n6Zac-`-+8L?egXIqifyuNc~}qd5^qc8smjtgGJ~O{wRuPV z6W3vBS~b~!-m$mndKU73Y%Lbs)j$6S_G{CiXUB_;>Q%!{C`$}ru|s`)gb9i5SZq`a zMnEbj^3gopWXRu^fpF~Ry5*?ya*%KRvPb7CvTWmpBjX8vd$31WU%J0XSKp^K&-^XY z{zdL@8l=|#3-xngJN@IJ`ty{a{iAH&wQ&)`^0=6<JS=~NNT_u0zYx;)eSQJ$CEEVW zFIoG=(Eg@#wohj5E!59Al}aEjch?a7{XIh3p>xZ}uM5id<Z(l5m!oa4k@t>={p$Q5 zn9%$$JxJYM9&}Uw!}n~9w2#jl|M6V&TYQo8+vB|-ZM&Atuj+Ctt)=s;+2=v(^`ZGi zU)cO2BkMVKanDGEbXxa&c!RsJc$g*o#}jse7u{+gx~C)?{FARYz^%h3`0Gf~3@mh- zxM$L#QdY7_ndalxO)?=gZ3nmE3KK#?%lN96SmDU+@h55i{PrigXX1gQTNp*f?M`3s z$)YC>{3CQmanGn=hn$;i@^$*Sb%#+Xzmu<X2e+XC(cz-VXdfdw+DC|t##OZ>2*+-( zIu;v$nvA+PLytp<d*&sCkgT9oT`%o~FOcI5%L}7}lV~sUfd5+b+LgxGh4=Y7cNE{v zRjf&lqWU|hPxlq_PM^M`_zp6K=xM&fjA=WH9YRZ7Rm%t%Iw5|)aN_o=6S48Vuy9#H z$nZ}p?bLM+6%WDk!WbiN;X>2a9z7JsFybdw7{w-<s4My*wKCC!lnXpxL4UIN5?t2I ztxqHeR-SGoi?!ZeQ>v3~D82y;T_$clL1<z}l^!eX2{_Bsg`>9%4Zd=0qNbYAfX!dm zbt@_!CjTb1m&HSNkO^x;x$#hrP;ojIx}v!CYgo4l!k#0}@^o=$RYz>FZ{gVO!cJd# zP83)N(m@m~bVaY4O4^JN_MBvG5`t~S#;VTPU_;|`beKgT?MytRHVri)I(_kw`Wg9Q zVn4PHH574w9oly@Sy-By3(Ajc0kuoR_bo_$^Z8C)VSy9mq|1M7LF<Po_695`Mg7=< z@P;8!_4lOep%*&!TJy2fEe2Fj?^F@e{y1>{x-?(L7E;w4XK%JQDB1|HMp1L$(!r)i z%Cb5A=mO$mtPe{e<GmFuy!<8>dsKR%5sWCnz5<J9?Pt^}`vx+y;BBciPv1$*Rh2^U zWQY_k=je*~9C-S-4;VZ-JR|+W6NbiM(D;+@hUM>&%3p@(t`IUw@pWERIBYu&W_DBS z$mK{I#XQU37|%S*sYf}pD}=Q4R<VIuSH5gS)=E()F9C3BT47{feto&2`8sef6g~9^ z!^eC*D@s+=N?P{is~(o$`5{)8M(u1CFNgAfKfDY<^eA=a@*Z8iYDqAkHBQ524W28p zRJxTJ9VM%8EoQ1LMV)$IkFK6s3`wq^T?~DVet=C8;;Sy}(bfHndvx_tT6&u?ONQS` zdBx)3a6TZ*%L1OOu;dGkIK>!I-Fa`1u9lGjuLS=~+Upzn#<n~~I=p|ekw3d@QID?P ze0Pto&RyIS?#Hc`erKHPErVMy!TY%^4F9)YVPx3MEF+kI>UZbGkKFpBVevn-1RA(R zuV?WExo19R%e00CGl#(D!8jrA_!CGy`Any752zET_rg`5V{eA{tCoD!LrtZAMruuZ zt`kfRlBEyes;|`*aXVb~UX#~vTy@UBO4oJcx<gD)=;B+;38bD-n5muwZ$w_CE8;8A zMdx6zB^VF>ns1F=HIdiSZ~y-E>iwwFPNr@0ll|*De(wE~Ai4j!;oDUq`okQZ{SdM@ z<GLzc*Y$iwt^7-mkvdr+L+w5n{X>Ius%N_O5dCxR`GwhE{S`&pU&)kZQ6HP!L(a<^ zAGG)=EwOI>q9o3HE0&X9OS=nU$6oLCycEq#vmj4(9+t;lb!a)-MuX{QC`*?ih>xWv z{<BwC>(|liQW7%U%CeQH?|-A~MvKqZEkmEgfqo$15)V-mKzZEWgUgZH@J+9-`q#1i zoU4za^W}$Kb#;h7G%w~iBXTvfxZ&H>D1_8kEj?_v)EkZ=q<t~C{amstUmCPPTr@ps zfhfh;;QFhx?}Eqtn7$lUUP=9TDt}>w=Q*{cM^{%a?9tT?v|4QRa#T5jY)eHcxk{Ul zA~axrwb1y9q45uA_8))u0_eD-H#Gj#;P{V{@xRaO(bYIQ{`x3m{F`C?wDXTICx_NQ z!1%N2_^t!XQDq8S|2@I=6Ck>hjK6_aOAd}-;e+)b8D#wM_m^n&t(HQg)kn@x--qV^ z#U;V{zv}Ei|7U&<6RVV&_Y2`~?l$IcC-Z;rt{z>jqtzz9!#F+l3}Kknlm8rK{vrEk zDRJ@JEl7*Ul9&wgPlB6n$I^3FGnM<dF!NILKG$Z1MKZBmn??O9wnu04K6ZOVZmeYO zLof<Wxw}UF6`6qCfBegh`%g1Hl!7nU6<-)oLcN8w`)ct0D>3Xx0mQa0Ie}E02q{s_ z-`}l5c#X4%7_67Z9feOzY$^5za{dRpSVq6IhiJGbdEAz}RiJ1_VmawU_BSQiWYTx4 z)X7Xr^A+{AZxA}4{kC&}+{toM>E?ToLO|0nEFM&U+|v~d@UjofiN_NbQu~{dPJKYz zFm=K=Xh5?tP3ngqUk;-mfnHS9D=!P)w6xp8PK;i)6bSTYZ?Kblv~lqXr2hD27ie%( z6;%yA@}DxonvS(mzeGpPlZikbfmIBl^Cs3{Iq^@K8p7gXvYEpTU*jMVnEMX{t<8+s zO9e}bmU$Y&QqpkpkEsz$Nq3T-96Jj~V<~YYEu2O_aldBj83Un7<~JPL;OLE>&ozDG z%bVZ&Lkp-!oJei9Q*@t#r6GEwc8pH<k6#<y^(W`HpRe`NfOvJjcUYXzn*QU@363w# zN+vJvXN)i?)D`jla}frzdFrhiQY(Z`J&czNT^B{|Y7W08+Oq@FPi6h`drLSSi}eIQ zcT-v=Rd_50d2hzDS!C3dg@u(fvUEOr7#Y{%o2ilc@q`TFHVq*Uho#c`;RvZ^od}FX z>fk5KpczcHbf+=re5G~q`Teg}%^Wy){E@s9NF7r~?cc0^goS_;%i|i!=jB2-CCDnt zuLT=A4I*aNVT80lMfN`?h@WM%MC#|i+DT!PQlq{~8XP?5{N@MS1FengyD6;=nW!*C zz^_;5jqIjGp>Nv?h_!tQ%YdG=`DP8B<f@`-OQC=QMcAo)MICe4xQQ<eI{r{HzWV47 zUHaWMYTF@%G&Pw2rY@QW_cQOjnLMP##jm#@Z8(;mqatxY1K6||mo<3XusFlg=PBX3 zXyB<OU#b})?ykUT%uNcM=B$Zr6&`e&yQk_jH@sh~f!e3_Y5(VoY@gnz{X-Yo-r1-9 zq>F5i`>y|Q7uSA8-}PT)`<%Y(zsUA^eb;}H?U(jl|3??szNGK^FS30>-}PT;dwT!N zlL>`$O?e8$-<oB#2$uV3LEo-I<;mwMSI$%JJ5PD}dCFfNu$;p8M@)U=r%FlHe{Nw> zgQdhz;BO!xZrToidu%CKm>R8k<FT~bipzBGA{tbpE;^c8XicwN0{Zh;I&~rA&2(l1 zm}|?^lGNJ&Q1A|RWm2J)8jMXhh!hx<j6icJ=3sG73Kok~g^VSnACFZn`wug{Do&<t z?@Gpc19r@@cxHoT1C`&%=8tVOHr)$SFn9(Cc@|i(xWFo8422Fkb&4^g(bSqTmJNIs zOLHt(o~vU=<El(7U4o@NjKw88+wBe75b|3byA$hGSm>DXgcVD75j<L-haHWD$F$g> zoii32)kn`#8-)kYM&==T?8|Tr3~{IiI={^^=RV&+%;4v{W`OfO_D<-0zj-HgzK7qr zu=Bld8=UXd-;neD^yY~3Z8`m4p6{BQ>G}Tg^aY;p*H_T<{YV`6e6P8go^S5y3pn4I zaK0~>fNT?vSm}4hN%V|=TVD?TOXQ&c(dVGce}aQ%`nR7VPg`n25&0?36JH>7zFW_8 z{`Kc6x1Jk5n73zZgO^L@Uz6fxfxb0D?T6f<opbzm&OJY8`T*2J*!cTy(U910_(=MT z@Yh3QPark+-cIV95gxxuwKhhOx}Qe$FJx>+1Jf^be%OMq!O8d<oPw{xsrVY4MzDZ# zzWj=z^=~}S`mN_$KbD*+=PoC6E2m@33ab{vUuq2Cuahx@;IEVCo?rPv+WyF3?T?(h zJx;~ZI1NXaqX+~VYQOh9_t$bB{MLS+@hvzSTXA$bj1x_l6HRv|y1bqK19OWmw}hr> zv|na^{F-y#Z}Y3yYDh}V{jmi}NuT`Kf+p^rSdXQ|)o->C{&UTnEy#XGvtnu5DQU;X zc!aQCJF#8Cj{R%2vH%E@x!G0yURb~Tt^L@7)T{3q=zgc|?tj1gwcpj=g4C9~2Wo%v ziwkJ~T2Bj7-x{#}<_l^6%P7Jh4cNZmLfTJ_JAu@z2W+4A#enZS3S#<6=7zK6Boc=t zoFE7C>la!OHq{eW<|%NwlAfomOg%1Z^0tLjiq1a|PAO9Sniv%p-$PQ~VH`a&Sl6uw zfiJ%d*MWM4hBGTj!*yWdju^w72M&?GjI;a0^>^wkPq7G>On;Zh;(aW!rQ|EPtl2YC z!D2mCMaaLQHt2bkWYzTB!bf{_Bj}iCYA9HHS}<6<^b|-F7V3)l>Nzr+vOKE_Ldf2v zC|I1EMn2h_6f8cc&~*N?`HGV*Nd3&)N!VwIQ&LwN+z2UY$;lRw6DDAB7Z#s-hekXU zcPdy+OebaHJ_U>8ZaUe5bn`7ITWFuVe`rB!V{xbM%Q*ZM*&K_#*&fj1@)dQpNX@ju z;@X3fvy$b9T3kR@Ps+=hJ@Z+hJKpBBGyT+SFYCIp-NbD5A%Oi$uqQ8(oyd}>>q?fm z{#-H^7!7us`y+_rjhHIbzGbH&xN7VfG(KLmsc(E`c8MUSM(8H_GMc|6%a0{@LrVhv zK{>r0Y3z0w>E(G_D%Ec_doCf@BO#c6MSO`)8Y{J+;2THp3Me11`_;gACAIHec~n=# z5B{6G!mbKvK<Ta>`a`5%@WBRT1o(HN*5(Vy-xbo2Kzxqj>RUe}%ShUC{kI6ja$zD7 zb%@cuMxHX(%X3WU&~GWqQ;B15(2&1j;0(d%!~X{4Qt)<qf&|1I#zMQfXeE|!8n<{e z!qSvlcnzoUzBar=C;xkrRQo61_X97Rw=LR?+)_+{7pthmXWtP;!9uSSUwQ^lIE^Qq zrQU(fc)~#}*5I?vc*0>UPl>}5e#GKl7Wl|aw))>~sE_?ZANiGJ?y_%2YU~f)LHX6; zy7S7f!rNDp_O<^GwSV>E+OH<<*N3%VbaCyclJ<9mwZH7*+IOXq^@p`TTzhfrC+%zh z6}JA1YrmSbUmw<f(RtfP#2-tg;W0dgSa>`cDV`#(qVN*unc5Uj8kP$zc-w@x7CiL& zBVL5<hghH~(DHBJvFzE(U;Z!;VQy133y2{NT)%v<`Vc!4{@APjp-R`cB?Anr!{Rsg z0G7wSma!bEld5`k^{S!Ns#P{umMlW*OZP@HN%@~eu*8?>=d=&t)>}jPH;?+%Sg3z= z$fxE<EOaJt8$Mtbss&iSDdk=-(rx>}WOA2!`p1r7+8Oxp`hWU-$oVPq1BLHlAG2&L z>`kps@Ww20BJXh4@UC7xvZq?3kz#!D90S2^9`hHG3Y^+<ELkBww&xlwbXtPF{V7xx zJ`k2Osn0hxE3Cg<TMibglUXFw-DFP-z`YCnpU<qF4{;p9F`Nali82J`7~<}TOKfTC zh^=7M90w>=`xCQYC(O1yb~G~{;ce;aL%q7LJw;eyHhe)EmTtq`rcMIU^lEVDhKNpG z5TBat4a^9*cZ$STU`LL#_|sq~>d$xdzfJC`%aNisf6}X~`z^+GTDfWwQt$l505+>5 zYWk_exbdj9vgiExWn@Ty+%rg;1@*(~e%));LHN%!m*PevCszR^-mSJ`$8#kk5GtBL zz27PBPOz!pZt6Ci)e~$q3@>XW?#Du{6^rk~F9~5W3X6*@6vYjWe|#A!S7``&#!(#> zp_r)sEc04Sp+wS#WQs5Pw)bTmwUOpmhnh1obeEbO>Vl_cO{p|7%1I0XDFcyR4m7`H zUq&hPe|bm+%KTq?Y3He=-!uvyPRukheNb5Y%z@jl9-#dL{o1GcGEAZMr3aHPW3s+< z)<rrCF$ZOg$bx7|De6tM$JBnS3}((M3vm8Z;c31LT+$tBR2ZlGs4}G-JQ?eNB~aHb zGxBG>e45^coLZlX5HjgL>H!I{{>bgfrLj~j>agaZifwgD$UGp+W)-t+W5Lm&wv_aN zbP?Pm?M)k=1I3E9G&LF_Zg`e0g|n8Xv%k|gYbj=bJJp=~5h9c3tfba(AGENNTEl(m z>~AMG+(%kSWIPH0Wb^NzUxq4&0)O(0J_JYv{!0-~nXt6Rma5(#+u1KD8f3-ecc8vm z@wCeGz29-hEfIb+iHEVcOKen^jp_`4$>qU^-1dn<epUn@^0o_u4;J+=<Cx+vsDFFS z=uZ3c0@^>^ul?e4w^wjkz;gu_N>Y#~NlKh>wT8+XJh5297A=wRj~4hd%HDuOO7FqP zziwFH@tgmC&hfEiZoP$2+2h)7`E~#@n&Rh2!{a*=)X4eysGvjG5?c;eF&`XZhx;2i z|6jqY4OjxDrW|saBz=9ww=C}iAuiVEbTa#B@~+B`8ocMtmuX0KJ<zFR$^2*1!pH}i zqt4Ii1gpJqEL;kf%@$I7^@CLZo6`Ck3Z}1_?!<aMt~wHpg+PkE8Ow>DM>M29yRK9B zBOzn|cnu+M0s{xRwjAv$^~SI1lf*7@D3+`sWhO-~alVxhQZBJ5nT5QwU@^y1=d_Y{ zNLiqYxt%PQNkUF1)jR+4QVr}onpdzQER-Z8?{ISE^ZX5-VRj?oC;ZpmtUgLQF`!>E zmd(yj?m_BnPj>1;h7D$X3w1RTv4u`u#7rVD;uIRLQN+m<kJ@%K|N5@G5K?b$W^PKb zxLmTx`4G4v)g=~LwRf<D)1^z*Xa9(h`q1W%$Z2f*`#ne<1=IN5<zyN+UidVA_r)Tl zmXIlYc=()Ccn{0wqZ^l_%JF1BuU?G$B_$qF*$;9M{J;1D@V_f)KafG7W>F%R6Kht! zkFcCjrCrGkBF5cY+Jd%PAYz01$7n+xAzE1^x-k2N4cmkE3l|b!F_?dm*<O@2dxwza z-l!o(`*|=p9GSy+z819AYKVToK9|iTja)h*W6U^m0`aiT+UR^moqC8FYKPrh(b6wU z-<R9ap!pa3&W}!rP?N$MTPhh%Hcz=xLz)Xq<7SZ=CL1$U)YVbO{3H)`K1+p=6Jmi? z$ar`x)!w{x5FwX16-ySEILm^?^nq!x8@Ba#OImy(@p(TC&krarAp`(#a~krKpJQ<i z%~P9fZ%`+7QGpBgM+q69k70T*f+bSa>kl$5(-4>^`RWp9S+TUp;u04p1F1IC5<+Zg zST?`9{T`(Lw3=Gcr1?!kMlp0so`W@u8(zYm!t*;9A@$*0gwz!WAgze@&46ZKleP|Q z_I0lO3>UTj&hYhL7P<Zd|Hb;Zk@Y_wzW&PwTz>;u|9rCk{pVc&mWx?GFE6*L)PDHm z_@Mo;0yzlhjMPvR=YKw)q8a~)cp9?e9h#kdGYI5fy&RG(mO+ab$q&yGvT3(6{Pd?d zM0RL90SwwC{HJL86O!(Z!GD50!sI_-UyQk|{hE0@B-;lozn%v)q$aQF)N$#j3fM0D zGTtHE<GBP&NpD}KA(!K&jnF05&Hr<mhKxir>bjCnJ<Oh+{3&b;fbDtNUo8mn;%V?- zotwk?WeY-erKFGw{GQv0g7LAM2sJS;U5mp~((gxV<O}DYWuZQy??66)fM=*nD6ybS z?u9BXmIk8_rTG9dHP?o-%6Z#$SfX)ng7G&>yV{>bh})1JgHSfX{(<oD910e?teo%$ zxT4NW#%F6_JBPZ2>NuBhtX<J2;IlQbr$byqb+k)3)~yZWwjW1@7MEVFxP)W9Zh7ow zE}_d>oXbo1S>0vddS=a%V@C1fqGYU3Poe83|LbdQPwxL<LSJ?qN)0c~%W+GK(%sz0 z$20%#q)Cjwa|zwfCyKMVEf1yLDX+N-WpY~zC+BB5dRN_dr@Znilr2AOg8j|UJp0-0 z$U7`Q%kgiI1=GNcSuXukEbivTqpp2gHn&Bm;kLeYPdM%t7p3QCiw~t`b6XZI&D3l1 zv&BVA-O{2JZf?^*-O-DZwOHDVyR6w0V{g!=VsURJNdF2v)Kn2epmF2)AWy+{F0sZX z9u5T*rKgn54WEh~i;|1uu<*DQc@y2@*SxsMip53ATC`jIdWRJfkvF%ljDq9yn6vFo z+E85Dg`yD3<bDHbo@04=u|<n^iOsIkuJ&kzim!ADHF2&gE!tJuRZ6y6_}+{VFJJZE zqnpv4T*cTcwX0mEHBWZyx~ocybCq^=K&@@GR=$tc8mqX3t}IS?(Tq^G_;qIE@ocW5 zH9KC*<|;H^&iH*Hskg=UfZ{6cfn+7Z-DZSlODo$_-O>~3F7D&AyjYjH)k*UsoWw$} zlarr=rEkej%ami%GPy18$@z||RgY%NF=^Sd)0CfiHgG%gjwSaaKg&_&84=ny-nJs! z9?*V{<=H0Jz8|<P0V<qra820b7M~zzmrc$tdugT~AU~G6rR)_vw<+L`&Q6Z#N3-_r zmKT@Xa<a;EZP$}G7i&M0uV{B*ac`E`tp2(%c(@;joog0Xk!!o2mzER4Dc}<SA?}Xo z)i~)au7c*D%Jw&V9?kSUu^f5L+5RSN1<wMTIm<n^Yk6^{Ee*m~9#>175h7z;?{DbS zCCq}o^9qmcT4PEPNoKBtN%7K3TbdS4Zpl!^C4AcMmUApxtXr&x^`3BxHR36^_+`YE zb&GA;_J7g%P9M;?Wm#f_dh&}-J-^PGW<vRO&ZQ=VrJQ6e6|7LWijQG!PQUI+^pz|} zo;ZL}ge`*11=nT!1LW#9Xp@AD_K`qz@YIn^?c75K9E$6FFEcp7%jGYJJrZM9F0ndO z`~r(--Qq6j-bJQuY>e^j*xJSAwt{j<whN&_){t{uX}f_Jb8Tta{s!;(Z2!N!m+|5e zUaW#Fk^9w0w;LyHnr=~#Grdw8w*{x=i+GBV@jnR+F@SvU5Qg|Ui`R7-?q*3RF5ir> zgjZ1FtgLD6O$rt|O`fD+)=tOnRTeyPHx?(;R5~l5Gxen+g9(vHODWg3qHbLfY<@sB zWq0UGmblLFbQ%C?lB;-wzlrl#8mYl)?|FrtI_!$Sfh&6zaMgk|MPGN2{Rv6_d1>87 zhHPTpk~3Y4<0bR3L=6&H8PT?@jWfa0(=7hh8kz|ULap4et&?d|$qv5W!18)$NibBl zjL8Z>zm++dUm{t*FXNA+HHIHK|DS;j7&+2F$|FXGBV|(}`R&WFZEGQwpMc7vw;4*j zfHp+kwvzQr$cA6ASO7d(&Q9auV6jmx92Tyq%=>Q?m2h?}dsA5x0b49)+{9CO;#2Ri za7owtn>=If0eds}KQs^P()|I?Q2IgroTJyNAV`p4*}NrQL&4v?sBVK0a;19_$`TK5 z%OXEKdkMvHa2o;R>IU|MKz{Y{y<krEamoFtath@Cal?m%)@97mFOPnB>b+&Ck|Q7P zq#w$Ec|WS04E{gv{`}q*f9c2XwGKNoP=1my|24^q#TrJx?4|boKSfA<)m`ry@{mt2 zsQqhw+DikpFATO9x=fy1pqDBv9>iyl6-;M}Lu5kOvA6g}T-LniddwgU;on02M+~lB z5h{?)KivyK0KR$7gVc#QQrXh+ZlwKT1eqKmAF`@$UDx~i5U5)tI?(#>Z(5jt;4jxL zMQZG?sHnoKsITQxv|$x96M}5AdjGo!fqs_qCv(E}<5G?jOCzudDcQ~*FW@3}XjPQG znK|+<u_Y_Gtij7++5Df<rAU4Dkxp=e7I|B$dIcLel?*Ip*^=!|TC6<RL?EZoZdp4X z<b<D4jcW^T{5O`Tt-|t@Pq5=;@c}JPYy?Sn`K)+CwZ3WSw8dTa1~s;%Qx`HeB?g(J zR4qwuY+%e0coxrPtahfAJp22pKv_1gEVvt~Cmtrv3nH68AK5&WHBa>;AtO66XnvWZ zC8-ZE$d&>olzCQ{xY&Zl94jb`4))EZOnK)Y|1^Ml#EDv0Ur7F=AH(xkl{Itz&%x|v zDpELqRWMaTP^ivT6j_{SYGXWP#pd^xqsj^76)PRx{p9RY4#7*(YPcI>m%bm2H@J#N z;|XX_&*HY+IggiI$ynSep2`I9=-PM81)24B;|WzRZc{yuo@sTLHFzdwaTW6{nP;jk z-e_{36KZ*GQ|%0{Vv0$q?RA^#oxa}a!f0Ns!c}VeG;>k35HOc#*)GxCQcf<n{a8$4 zECGWW#EJ$5AX2*ycYt>(xny&$&=B}ErQTiRF=NSTQPfI;B(@aK!}1h6mRGf7X&5eR z@IaJ*2sDpn^Ce;JuwIRYPD{})u42lNe8ri5(i7+OpYfj1AZt`IS5cgUxlO0BoG=W_ zE{jy0%WZE#MbTJ_$5L?`mKG#Kyjl>g?$Y=B1K!bu#<_%gv4IO4**fh-KnPsL+#Igr z(YfSXGUhg&#qy~A)H+ulH5$wFERrji+kVtUMi@bO2~#kcPv1MV>FxgVm*$=exIbod zSbj)ye~!e2bC99LpbC(b?DkB=viXfu%TQ$!xjpmFcIzQ>i^a7w0*3a#MpR(-Tb9Cb zmPI%fQ$EXrh1FK%b%$~sE^=Zin%Yq{{-EnZ#^HFD?UgpwlGTpS*uyl&Dq{A|GptPU zMC1QxsaQOzN+9X*M<gg^LeF}mCRZ^lo(6c`cLK|EbUdL73#*fn=Vwgkc2dn+(`l%+ zK<8$3#5&lrb{^(7?ZILlWKfBoWer{D@enSM5WB_DD_8anu-7A9dUY08u{ho(bXwM? zy2Q`3#6y{Xr%&oTSL46t$ZH-(bL5qOM{dVg+`8*^U01YNTF=+Ptuk-pXi%m3LxiJT zCR~)veaG{&9fvsq>ADV?uX(W%0@M;laY7ciWx+g`xND9)YNT79*G^MFdz)MD({-IP z@ST>TLw?g8T*cVovt`@xtn`DPIhnpLQ}I+PpK9_>&f+Q_$#IJZ+}x(GxQYdHUEHPv zv*l~su(;DL$Bb~xPK#USlaO0>S=?eLFCNSGH+we%eCvR;uer7qUgT{#l$Zo*1y^xT zj+@(b*d-?nB@Zo2x+gc2+kTuqH6Wp-wP{$oD;Z0-hN2$t(hv9p-gF4D#4@o*9uCMj zS%j!u8|I}fo0FG#TTbgxJ(ONkDkSeZy6AE&O$VK7x^b!1`iV4{6ul}lbGVAaxipax zJl}-fH0mq^5UuHuh4^!_Q`5jY;77<G{Ya<o59_8dN8x3sg_jdfl5Gl3THKGtYFG?U zvp3}0u(URp+kOHSE#g6$2>}t=BYE$8Dji(mj}kKe8cW5u2ddc%nM@x>RFFjs-xr=r z_X98(9m1p(Wi$Hzp7h`tn2nJ`#+b>*DC$3k(Ji#UBaNp~)L;wCQYo!Fo@^B^A8o|u z!g^Hb?L$~LBgyGni}OrfjQ1LvHB~lG{FecE4xOfsc}x3eM!m-(9PcW>$0E%m=)=Tr zPQ8&=)qGDLkY#U|dyxA4ZT*cF2><p*f0$Yq3dBp{=l?{9<sTdb|1M>L3wc{X1pZz6 zy|EB0(=#t+Q4LA;0r2k<+lmmtB%mrtBgwNvpo*zQXdM46+fw!U;z)?Kgl0ir8iZAm zfC?ng1X^Knr#547{JVM|#lNvM38E*4pj|aPg8@OBhpin;ToCJGyRO|#RzTkWnW`A? zXe^r-X~r%LIn}MRMb5AYN4m;qSZLQ+ufu|FDSA7LtBB#U(gU9Od?ni-@V030gXlSn ztGFYF=Qh>3<OB-^8F%CYpvdI5A3;TCUNULXE&}Igr(tPsGM0t_FU5;BdZRz!y)p<i za4`J|-6Sf(eq5&)e<=kHsK^FN6Mw9bF(aBhgP~ZuO?B;{%96TRLKJJ`uvD0ag|!w$ z7{1Gaz*4W8$ar7!@VSb|=aN^F;^H>7V|mJ1G8%S?9axUJ4a-go9nMsAC80GBMKMp^ zG|C@+f*`th9gyJKbr9N9c+3Kmxl~arQ)%4oOVzmszYSxN*N$h@#+Xblp*_xfCAXz; z9xv{hDNh+j$)uYN`y@}2?>6MIYNKax6&{O;5JN+GaSxa?DcU3^a~h82LLG~COt{}f zH48Io6tES$S`&J8-6gbJiXQaGO|OlKL+-MGHz8laj<cS>WAUVRjZ3eG3Q7LBY_1|9 zoyzYseH|uGt@bJ}252s;T~&bMrq6SUr(E)sG&Wi6IO|ohSev;u4x$6@(LM+^dAVu; zb0p#S{onNs-Gjt8Y75cVR=-Ke__+z<@WcK8JA-=>3<c+Z-$Wq*=YQLTkdSeOiF#Je zg8E~~^`rF{CUX_@<ICsH#L|4LkkN@~y(|CDJg^>3p#U{x@iR9Ccrf8{3sShU!&FSa zIu&_u$Flj|Wp^X>>U)9zL6Q8=#{)AkVOB%Z{8TL5ioCaB*<5}90>a-mFJ=DaqzM7| z3lRnQ>x}L$qwGyoct0~zv4n(->)2uz7<K2Su~E}#9j8Ueu&_$@V5M|cDLr3NyRsR5 z##PLXk7NlMxTDI|nN9)<@jlfD;$A$VN;n!<K9d>~h|_Z@G>M)T?McA$EDOX+I%&C- zaO&wH$NWC5HN7f%zwLijzGY-Jy&r##>6?E~%1dU36%5pm!Ls>*qsvj{)#OTE^?f%J z<Iq%@1y*VUD3#>!k~1}ntH85(DJM_SMrUzb?wL179($QvUfk}MqO<J{F0l!eKD^lE z7OPupAr5Sb(>ugh;zC?m9bnxVz(10Dza-tw%u1gX?_J7EI60fEm}|-ADqQjT3gyN! z^#-5>v&06fJ#y_k>e3rr6FS`7rk!_k6=O}ALJeWjluTb&bkT60+jM}B&Pic$hP1I* z>~M?K+9>FzPbt>xvbYN8Of2rq603p(!25PNI=r#9PL~N{V-qkAi7ZnHNtmZi6f)X+ z+Q?JGl0~&{2fZVfFsPxkxZ&wEcVDJnmFerSaKheRUC;DKk<oCrsXkk*$rO&n-N{wh zteL)U)2jWMzU~;$-b~?mTozZ6pW_z4b90-HyTt=@WZNjWyxeAyW)p4;6~(wEn=PxH zCv?|x!ZNQVWNp_>dD;&%<!P5-`AG}S!7X&^oc|g~A5bwLxLdAltcfM|=e8e>Dq_O! z8DVIL7mr|qbXepHxC3zhYi#L|!JOuS=cVO@KwV?Yqjs4E{s!+Y<S=z|2k^c&ay03g z!f}(Y!|A^CU#<yXxg8qk{~v&XO+e|o#ZEBd$I=3fr6JPl1Q@)F3=Xu&qceedk7Ri2 zfm<c;xyo}D*d6bToMx&q!(3Y)2q_>z|6mJoi917UAvn0{POc&*JzvT6wMTgpGkxvR zhE8BU!P*322RH7v0XHsUsL*6m`t6x;%H(h0%F2KaJ4tBow;uvqB=1D_1pA#q#NvM6 zL-@}7y4nn2TA-z<pKb{P(*i6FCjiSOF1BK6uEizJPsXANiwiAStdE!(Sv(dpMt8MQ z^x;J6)GY|P#VeU<1uv%13kbC8?Lvmu*#^LI)D~ueftd+LiN!G0$>AL(sh)8{#tv3j ztsq^Jx~a6!lGIGuWh%$Bcrho>NOuVi9!OpN8^b@w-ZiLwLTXfaex+v5LW0>m^TTXC zE9P6yRL6M6W7+)dQAWzq^_}Prv;QRZgwrwQ^MP=s()4}D2+NN3o%RMTo=HsgD(q-1 zwsKoa2yNPdO=nyEU~@S?8J9JAt|nkr;VM?gJI~ZwyixidvBN+M3f6bq8(O1HOs;VB zZ22sUknu(b*_;F{%}Q3^{u>1(bu*G_@Ru1W<lp?d8AHggXlnm?J4HNcAfL=k#bp7{ zO+v;Z=qCkBR_4F-H-@KkEYu<@htL6508Y%tjH_4}Pv`@dtF%#lU>Ui8&7MgNWm3e7 zI_U9D{2QYX48QF~R?Q4G3EVzYO$p|SM}qv%ca;B0<0>+NV9vAzcTvHPQ{0CC^y+$O zD-USaEN+W)-fTH0&MiCJT~azO(>;yZ_JC#q+RUW~2q{*0I$zPggt~4yCOuS_^Dpkz z^=x|}U+LRI+Z)23aQ<UnjF4`>*GC*h@7Ia&{9RH`8u(5y{mwQx_sO`lm+*G0Qlt`K zemUV;6GFa{91B-gMyk;A;$)+I-LFgtDbDnQ9IlLJW+_SMr8t)AdDRtJ5+-2gsEHG% zKu>cmT-hWOr0j&AE)CUKH-f<Tbmv^I%mVjnUJ{Fc>+7^|8;-*vKbhq8=@xForzkwX zNm&!;{|kVgDlDGN6dUbLuCu2i%FEW!L{^?cUJTfq@Y%DttjRl%+Om<_AY@@bS?LHY z)`Na%u^Ogkcr?$5DE8)!prZM}wH#HBB_DoGKMXl!kRa=Br191Ebn93)kNtQ#s<c6T z%o`C>|46_3KU~HltmV??-@dbq<)xcJKm7W6Ln$<wet3DqGE_N?e3(E#T;(zX9$IgV zpu<^w%I72Q$M*x=kC1*xO>EV5u3{f9YXY4E=Cb!v7pnoR(O!SPzem940qy%Hg>0{Q zn^RRea-0JUk}^oL_FJAGB+}RGwEvs?*ypXWIaQ&J@{*}onwJg%=6RcwP@@lB5)o{v z?^wH@8)U2(2e)6mEn<Dl3f5!G0sGbwLHobpJaWi9j*W(S46<g(=neiOgUkm^L-Uo^ z)%wNwcl_nwgZX#tQwH?!h=^aw&aYhPZ@eD1gQ7CX4t{w4`TgtEVDr229P<m=cYpDt z-p9VX>)G?zccXK<I1(1>Tonk`iXolY12yN}f2*3<K7f8P@7cliix<*Ax85DbKLZa- zIOG~+aLC)3h>W?#RLruRsiGXyisuaF)Q{hEhxy6)R>y-C?JR5St3mz35UD5u%W%1W zq||Myp{Po^C`HxPT*W*~n3~GPZ919BRgAI=)xErFx34q0FdB=eu-L9>mt)y{Adcye ztdLt_9+pQ9$MU>(EDZsvmxATF7JIWs@b<f5b+KN9h3XhAbXkh(q{$ACEzPTO6;p;f zeZ8htN4biextQB@7|St3vFuE(94LYuT)ql9{Dgo(6{y~j?*BhS^jjK8k;(p7Fb@E5 zroqOpkHfP0ivx_d$XC?W|DgNsWVZa_8=XTpT4YJfabG=77L%fdDRC0^6Jk2)BqOGm z*szwQ-trzJreTEnOprp=HxRDIsf{NfY0uKmh`GR%u7?VP%0VZ9qK~vb^>8r3I#a~4 z{Ki`f31ze!N6)enE;OL6c8OhXv5IMDG`L_lV!f6SoLK0!thKqsda)yPiyGVJ$hLWN z<WX<99H+T;IfNxPL!FRbhTBp!L^#R;o3-zRf&cRzy_}Gu>w4=3;Mp3$2+Ackxa9=9 zTXwa(rFeH)gZI1E6}qnT@?9og{HI&2cZ-dbe-=6{MSDR%Gb%pQ*J&yqgUfW6xQpkq z|H+Gc++22jw!g{yS?l$>uDisYbL3G^x#fA5Y-t3c&$1l3wj9qgm)J!ri&ffhU1Ghv ztl4`ds4DjHVwIY{z%bh(+vO5#2&WDk8B)_``lESqx6l%oSsrtv<gw-O;-OjcG>P!Z zig*jwqq&NCb9rvlPQn7X<d}GJqw^I)&ZbbbD4T!&l|j>*o5Q#UdasUl!M%czl(P9v zCrIx9Rp3GD!K)+a3V0E3KGp9<oa!Ewzqv0AK7o)ej6Q4T{B=P{_4h#`)hACIkjiy< z5J>g=|652!^P683xB_T3G5W%xRZmo3Xl0?$3QLn&eq;i)z6}Dc!+n4j9uQ~&%4GCk zd4J*B1HFCpD@UTj<D>GnoXGR}%YcxKoJ#aQ<3@dW@c$H!Wi=8w=GG$M*stEcFgO;s z<bMOl;tT&fICi{09J_W<IA-iGz%zV)cou?VPln*wRTl)u0EB&Yeh{{^^~N9w+etu} zTN<J80Ke`J!LK*_!>^LL7YV;`2!QPZ0EUAQ%*AbL<SL3RSdJM&uDA0{Z5RN1VXtxB zvi6?`fE}L-0PNb89;9A!#Q+M5V`cpx#=pA<vY+GD$48&@ee56feH`CoO!(Jd{hz)M z+ivncu2Uo4$DB7W?0uZb``^5e)<^!&@cjQD@8hZe2k&EO*!uv-h6b|sddM#x@l@Qi zFYu`}WC};)W|YSa<;8DY?3wuE6kf`*<p>!!wX`AR8A15N#cv?w7NdEIbAv20jy)vI zNC7Oz*vUg8gun#j9r0hVYpJMRP3L(?ucpI8I=;e#)ZLd4@Q_|v*Z(1X)*a?Q$E|-Z z^nM_^QwbJ722%ov?^FoV&Xpn0@d%~PXMO|m=dh_#qiurt^A++oo@Q1FMWE!#!9qvM z6A22I7g+2Ktq(+zQRKB2ds8Necv>H%>2%k1wNcbdV^V}Y$C4n`P+(9ED=vz^`B@)= zftlfrG6~hav*anJAjJ@2hBsat!EL!KoLu0>BSJ9@1Fe2I*-+aVHg_N!tUxyG2-@H{ z3N7C6vbc(vp_%CcZ!<4N@e*$<aXYF!cQ9Qiq(lwy5Sd4va$kq;4|vB!YUtCMx^azd zh4!1E)gt}CRorC|B9~&>S8h1_8ndd#LLJ2SuoSJvjyV=@qCYl^t4Nrf>FY2R4`V;F z{SDrI+9F=!cqy06Z>Q&mZ0XW$$7SA+-SVg*Zh2m}TTX~~%dYNhDL&gV#QUa8Xt!`> zxR*S}z1oXh1tt?|#B$8!{u3dUJy-CArgT*uiGlo{Os{RhQmi`lURXGXWphDC_>JJn z5?ynt_JVW|f*Uzz_&|%TqDRnS;e?mqF4F6ruVBaH#>!*tnZ9;YG3SrvDyG?;e%)J_ zuV@ePQWQ*zchq=pXBy~So0Es^cZ&MjQkdUpcJV=;4e-Nb%hA?{fA!dM7;(50%Q3?S zn5Jx&+rySPknra7wS#yU-q<~$oQb~grs#0}EPIdQ$JFGAV94J^Qw&)Esa?Y{WL3R^ zAs^ixrn4;xf0BlsBtwz_s!IAINz5X)gpefl@2(|?GUjLyQI=>)>eassBFd7!h%y!W z(XIdkccfM_*L7o7h9zSz0S<%P2Ej4z%~#adiXzQ|a#>G7Y$?_bWWose)59?5Ghn|s z)TLKtaTW993Bp=?l}p@}B{pV$Od-*?uEy`@$k#5PBir6{J3i;uWe}VhODjbfFU|tv z#qHF1@mPMgqmdJ=1aV#iO4SBtyx5@GvbZfX=K;P;7!rm;o54HUr9=L7K%V;<^2|!# z>lp(WbSN&<y|I{}M8KVmt#)14-QrGH)zKK98OFK9&*#Vq6ToWGvC!f%yTwNBZMQUm zm)@gRd*hMY@txP4ZEw~V@DyP2Hq287aSfp%kMN?#i-%Ot-5t7c(!>lBbA!j_q0lNP zWRpYSOnRnR1CUP1_BVShZn3fTTChE$&{N3x@*9F+hvzG5*Q;Rv<B}XMaka%I+FSiF z^<89zLCk(gExLnZb~dnBmu;t(e*QRKtjZLQ#7!@ci6giIcEHbepaaVZ90r5Lk6Gf) zOpB0_8ytT%j6ao^Om1<81&a=>6Y{_%o@V57Q;1xK2OpxCome*C_nGm$M(heBKuaPJ z{ZfDp@23Hx?_BCZ>UX32BYFxT-hF%!0C9RC_2%b6$+6>*C(oC$<{xBT=~&9K;Ibyq z4NO*Ucw|HLBO~V1(Z|D_vYgCB)EZX)R#1Qr|Gg0T_rv<2^6$q6moJYp+AHd{gLd%z z03B3)9^@JvyD`V_Cg{8bJO1f;h$UdNk{iKoI_=B2_iM5>4qze3R_D<m)#52Uu@OgO zi;KF<0HLXV_E@LRh<8#+g6gD@;PU!E(wPJkjMURVAfiUv-TmVW-x>66pe_s^TONxv zh{dzKSgYPlSDnh7aOeq~;>l_4R}W3=)d#ef4=FOhR)f6VboG}d=g?<>MFV-I>8;E3 zpnNq<e*Unhv%ma2x#T?lIlOTTeHmSc$u3W#%e#`@Jn;TMh{X=OZf{l}ETMY~!5U~m zm+E=_T-qA-#o~cibz%CMx#6+xxJ^5K8M!dcR65NGLC=yD`atZ>>Ziq>ENu@B*91Y) z_G}!?bK$2|{V%6K;(dla#A+-aB0GV_y^6ZHxHFW_FI`=^(b$KG_njIZ{;?X1`*Bs< zB!$qgLZ`DZ#@?je#>?iPojHMA(x|=U>0gVh{yn<1Mb|lmrBSEJrzDCC6R*-iojj@< zizl^Mdy^JrZvvwwQt3&>`BdRDr?1!K<#=g&GVcf!#$w0xg5pf4uQ$qbosh8!fXrwt z?g>TIc|l-lZ0rFn?!$yBCHoZl3rmG7_=y2&<`PV(`Knez_??<5$HXe68m;rmU%sLL zXY#p|-tj`lG-JrU#;8B469yi#Z+xR|p^dA;;!a%EI!VDohqEx&-jJ_ow_$nQ5C1uV zu#~WiK#yy2Rom#&V|3pV8p)?5a%7=>OQ^!)UM<$%08x?38o*25inkf_#*TXK#VQsp ziPCR3MZ{+%C^Q(kNU`gmjGz(m(~fSU<fOep^<UDf)BN3UkyVacGPQ+NasPH9Vtm3H zs{iadMewTC-^}^nV-a5o2fBREVwRu#mQEeZiC_MMlv#v~MF$9_W}%VxhbijfUsL^Q zo=Y6bE@_ShOXIX#Tf#=dvbpKCg-Ct)CqwHiT7`^Z2igp`u{147O=Df9fjtR?EP_x) z5RYj7kxd9ZK!;q`%fhun6u!H<m(zU16dDjJTfOsFy}J6w$N_j^xu`!c{K~mJ%;5b` zBzrGp{9-?tEve<tGwL*P^sOz3nj@Kq-r9l;AIqN=h2raca{l-_-1_HHxcoiKmO{A# z+1#TpK<dFQ9lDTl^ea00kl^SW9l_CGbinaGW4Rlt6K{qSyTa6^W6^@;#FQ@|L|DWY zA>((X5ARR_OxkejANm|M^GR`uL$Qdh>da?*!a=yYsL(Kw${7Gu_R;VD>zl4V`rR>w z=Z!zctv?%<->F{?Oo%7yz2O3LQ34WW=pPJ*Ed;!H|JDT-Z&S!pEf?99`kSY_3>#n* z7ORAezkSgLHs~U6v#N)t(o!qAyA}x|Sj$Dh_{3cUJ3~iCWcsPV*kmp8Hp2eqg=CvR zQY2o#yA4qSr7S>=$hg_nOfR!bEx)l__Xj*<>GRX8LduvOkVG<dN_TjITZ*KM3L=p7 zhQZ>yreG;)%NK13mj!6%FpjUqWlh{OzX5OgRcXAmenl)ou5C9g|9i>uajQ1EP4%wr z&8Z)4Y+M_C!fmg{VihpY2V7^5Vf$VJ8;_0WMcOLV!7Mq(;@WDobJ+tfvC$<~yUrdV zjRL&A9>0Rm>b&?8sZFj(GM49?sGkTH8+Sy5{A}ut-TjOq)b+o*nE0+NKh^t7yY;(k z)S15u&re17C)?B~e;uLh8`~iN%!A$FYMkOnSjIGOh=Rp>^@>X&10Wm?P9=C?2o^d_ zTv-c^7oU^D{L9GqP7{qM%i^#T2wPyK<!8J@6w2jpD6rN#(<zkn|H4qh=}xC&Z^9dL zQgEGbqY(*RhnU{9AQjj7EWtSNKC1~K_1k+O{}`cC)q|IXiKA20hKIWKvVg}1AsuD& z<9pi>Ejam$Ze8MSWAU;>1}O_u2&UPS%{?C)=2y|f0Ki38Ek~6<BOgvD26MxocsP__ z?X`S;WmFtZ)MgSA2<{L(xI=J<KyY`r;2PWqNN@=df;&NiyL<4UgANWs2Dcet@R^-= z_s6&UXV2-bo~b^!s`@;APxXCn)xDT8eb0s;lpT~rp&Yv3v0L^CRb8Q*s=XzaZ&ejT zm}g_uze%_v<B`OFL0KQ$Z^PwKNFy9`NoUrkMcNSMo&@(F3PKe9<4RHW%A)s!;(4|} z(T|%9a>?$z?{xXB&7)`Z4io-23r9JUpde$=;P<-i*}+?DT@WhVq7qpv!<ntC{F-mM z-F22j`z_M>_uEqYRaU3aKO)!6FeNmPYrjef&3U15x}E~&!OM6$FoV}x(i`Sf>A>&c zR+@M=N@Y=sVOJ><Ga}rkF@xrb!2>T2;R4|xl&d7iOQs0^0dg<yrcJX?Y<LgWtS{v^ z(T;4Dc~CW8_{-Y6i#<_g%UijV-^Vp@T8GX5vm}RnNB|5M{>sNppg0`;`m~>c4>ZH> z(smDJQrI_$h{QsdR;!#9dB*%&>D0GLh2P^GdPKVA%$;y?qo(?ycS(%n<D&k)Ii=<K z@XcG=SInLcllYN^wbNP)pEDL1Z*$n$!+r#U`KM!E@t91IgN*B~nQvthP$6jVt3TIH z8TAhNvZqTHp`_*+iD_)y=zows>Cbb;4-hCVbCd|EM$Zt~tr30RO3BO#p2?KX^vb-$ zHh8%aigh&-W_}nuS{lfnAWrvXQ?ZXkA%yWtZ-T_<<QLbG_Bc6+$r5d-5Nuw~q$(Fs z>*_>eFuTX)Jm4w6KaGaZ&8)V0|K8JMC9jtNZQMW@!E_1x+wysH_K@l&B<jnQvfIv+ z7E=TfXL<;&B_5{9OL&c01eh{+7`yD1rn$0l4k*n3-j-c)xty7a8%|;>5HQ$~E~3|% zd)gg=r1(4~lloRDOyknO+kQv)wtxp7I@ip<oX*!d(rr$&sklWwxa7_IbbyWT<)1ax zA9LB1Jhct}w(q`=i(i~IAb*v%9w&_G(hQEB8WS^TqBw2geKcEUZDNhVudgT8>|bSs zGr3Wxr%k<2qwF1N4a@k6+)U52)EY*bv5eu*7JRd;Z;38?Pzv??irMcuf_Z~0!~erH zb9>%9W5lupz*pqRSoQ^rc)@N{xz~|#gaew^at~*^2;RP8*)A>FSW=iQj<Aodzb~}z z8rA3h<6^bq;<R=6M#27__d^X6CwcpEkB?ESBZoD{dMW^n?&VC_43gJ*+p6pO4t@J_ z^A}`^MQmjMQ8v|AXq&0YMMVB=NnU#|D;l|3la^oZIaZFN(6g5S*5aYn#$~(mJME1) z(xM`is&f3q+`*Q@qmNC3OVIhA*osMwDYajATw)EFJGA~NSD}6$DOzT6dpas(pDF~} zOs#W37j?@a*_pd--7F5T!zh%Eqmejz9i|?}S>7g;(o0e*+(GKp0r`6*wd*(}qmY{6 zUQzsukDa87_N5}_W4QMtjr+GF>wi14$C*!X%B9#|_#p6RN{WCkeeSE_Lu_$Z4D0J$ zYr0$Ujn{SA=B7T-urEDa6M`5GiY%FwY-UUxP!dJcwa{dn$j5MYRZzehi|cC>!(IZ@ z;;_=A3PXqJJlr37z(&ST+!gZN7AcHO*1zJt7qP^ol;c~3DBhC|`LXtnQvLN}OfR!O zrh#^uck;es%zP*!KV;q7ZKE4bi2(cLNK0Z72T(B8MQqkKBNuRruFqIRe3^?9mw%F5 zuT!}C7m~nxzVxhj8Zzt8(HOA67ljQ7QT@?s)V*Hlx(~xa?n*wE7Z!6|PiGq-<*y@) zw!Qk!y@n?lgeT?{M+-mBa6LRHzuDI7tgSUHJ&7Z4p}f2exU&wE!qt8XF!RO>{bF<H z#Wz^+Ret;xH6IDCqo1-8_n8yDYTjs^?NyNi2`vXRJWzpRt`=KgkX&V-7JD@L!O9Ew z#mp3k|0w83-rD>NPqVo&esl3~Dw>aPfAAU*$qe|COhZjBeKvYC;B=Zw%OO7oaBENL zQQS+d0unf}Cp4(hjm!4f4NV=zV!>&xDaT8e=&%n~+C-b_(*v$!Lg0(9#pDUL<S@bs zj=;C;Pu)^}C)saQNI3LQ5;T8@JbV%Q8~QZ0Nn$aghuijkFSZFyH$>FAX7kp!O&#G> zcL+Me<~SGQdiJLONYQfqQD};{4@++(*<&uz`{Z~gT>7MUYhb#3t@nIpkrW46mH%m@ zb5%Y^;y1^qG<v1`Qp?~gd~87d&va1ccl8{^N=+3p+JkTB(+Lh+U$(NSxtwT7;*$@j zGa`syc*(isxe_Hcw=iZkE2<P4D6ic!+1S;9qNcwFo9}G4jO8?%qBmPt4BYDJGcnj5 zvlJAa{+2hP2}Wk%C2R!OJ#JU6WJ+vbDDLt-K29U1>;w^uB@=Ps$Pp=0bQRcA44xts z&)zg2a{paU1NI&XLO<P{tS+wqs%m|{1}qMjoai+_i(Qb9mq-=;eP_bWl~DL~3xh45 z9(?N#UL+1CKj4%|dXf}rl-OL~ut5L7+nCbX`@l?|AOty5i!j@FWWOXupZM2vl>h!r zR1mMktSwA)cLWz(vJdfu_54FlOX}jgqGnBbRj9{HXhq%NU72M6%K%5J66%TH+vI$a zi7Y_IUv~{zrBqt_uZRV|ZhE@-P{`!7FEqCN+Z|ESaQ!axmvg$YeTYooJn-1|fsZV{ z?n{JUQzBrDgL?~u_CuRnR1!_M*S67oy-RQKXt<(84}(KATh3PSl)qF}kWY`sp{V^m z`C4h=#<;=4@a;9OiMjMRBTL_pC&TrJs!w+ka>`HMW|(Zwm*!5mmLeV#oh0O6?-*|3 z?&pzCp@b20iXC0Q3*O@qlv%Hwnl6Pc?0V#NN)(n`vju%@^aBdIx1^^)ms;=)MP$+7 zP1WCm9vJDxLn$4FZQd?U8ggr5yd$7y{KULiirn_Zk-xG`28AI^*RHm%*>Vb=fxNl_ zWFoOT8?QN?RPdZ?u)jEI@^xOUQBzH*gt0nlF9gvXey*IpIzX^(%OUw=#*O6PpHTly zuHJ~@$^6#rY!;h)N5j-19}A|Do7JT-e3hJhP8n${h57f>R|mnYgun0hY%&Q-yB96? zZ{Izz<R;3QzGxsH$|c|cSN|!JsVU$XM(2=hK{1K5`!r1(u>RZP<|9`RCFq18`=>i= z{I=>c7Fl-_fy*%s$(zsLZgxLN3QnZUUyW(qe_j0^Xc!_|QU5}WiFDLT;a8~xYKKD7 zj9iHhW}oFD<16<$^gk~VwKKvOx={%z617)v&~X)rjsiMM9oW*RIN1jS)yWF&Z`LCF zzZ^vQu;*B;DI2D~%Q2>^^!VhTFvIf|VFc!(@3UN{ZRWtG4&zhfmQqyvu8ax<Hl>Px zcmVw+A>E5U6|*OGKXK8Dn1wEDoBEsx@!`{@O=Wx$WC}k~PN2Iv4x>(|8Kn956#9X7 zZ^EDFN-RR$CibSUs4InVJ+FJF<9r;GODs6ZeWmyNV|uhzdbXYy?^LHlseFg+RDN_; ztIrqmbjf9hhz{-g;w3_~OF5Mv`OHhJ4VFZ=Rz9xj*o2Lj&h0211&r;ezcU7<`^%6y zJ_Yy-{95JKn}{wK((<Fxc!P=XR^C@@(;S{fiP<w=`^i!d?!`}8E233;k!ZG}mL1Vm zoUL^x%q8X1wojuAw0w?u#Zj{={FCx+E9k*@CN+Uk18>I-Yw8+u9~y`ZY?Pz;-Y9rD zT+!A1g`YL6Kt(wALP62(AMt$M<=(HXG45teIm7GqwoB>fg_L|v+D9Pd!ncz@h!(RY zV#ZUe*=rsDEY?$Uw%6k<*Ks(nk?AhZ8fK`khHPkeVM(h$9M5D~Jw~!g7#MATA`%~0 z6kHY6-*I)RCYm`D4r<#t&cZ$>T$^^F(;lUjNjpFG5+wa-PIz*Enh#oU08WrWZw(dW zh3nA@r2`g*m${g8px4FyNdKA2p(u8)I6D@cVl0~@f{#l>X#NjOU#=_nmG=OHiGkmr z;D&lq+(X5&csWI6QadYr;}(s4M}mnl((Pq`j{92~g@XZF>8Z_LG$Z9dFAuA_=)h%- z_cf7zv^O^@Vm`FibFG%^$T${SJs^tOFU>3%#KT)swQnkdLTgT7U&;HJwO<At9-v0T zp58+dxxKqf`x}u9=pWz(ZSvm{`SyPxq2y~}3%M2w!lBv^K_2ecq^M(3-VWNB19R<z zml{@ACFz&(ibn<bza<~ckdZ&6L~u`|b42>EaLd`V*@N=LkLRv~3<4GIl#BHD**9rT ztnp=P+-Ade9y@qrwoM824mqQq*wW2|Pc*gV3VVk9303B4?icBAgDx7;h-zM7n%TK| zIzBWG1jTn7_5REx-drpE2J@;%9LC+4TV$JG|D(tC?|7Q~nVEJQwA(5Z7?YzsA5YB= zodMoTohGb_MgV$EgM*an&fQ>!!)$NFj(gH8>9u5nQ|(Zd*E4vm`BtF*79+aQXlCPb zA#8!r_Kt)<YZ)jxGpIUJ=l{y?@t>4p;IvN&u~fuGECv+uXG$s7FTwF8%Bd^|_UN1p zX1b|<LSYP35K7876wR_ZU5*^Y^HtXm@=$cf7e*n;s9&BZwD=2YZPB?0=bS5;*kp$c zw-SIM;Z=cdq{bY}%>^GCZ$6F#YaBi)LJSuoBl*oE5A8jlY&deP(>LYLn9V6R(4lIp ze&Xr*CNG2gv|k`%RA^~!65qrJ=+hQIy4j3!RCfH3Kg8qI1=U_KR24!UDw+P3l3F5d zn-{(_FT(2Nm_E|GF1vWBeH;!X=7z6vQuimytB3T<23W~_Y%guV{t{3z#@VAnG9ji; zBq5*v!UHN@&E7jY^q!ieD~a?Ly5qs&dunMF3voko4pk8ED<UR8GxBWOx6zK=ToC6B z!-QdpOt~uNAnj?xOJW&$evT)CHh;~$JC@JiYP0BTL_p^x1}5uPQ<NUy24C}#p}lmr zv8av`+%Z^3>5~4Rbpdre%S{@-WIW6s7OsZ0%N<PJ7%nbm22{fxDqj7|uFsfw+)l>^ z>6da5J2v}~ZnyHS<pk*>Uvc&c5Z{K)Mm+cb8sQeN?EL&QmQ}<&!)2rTP>xMIjZmzs zt@6Tn|6xjXj8N0eDmjuO$v70pa~_8S1lcj?pxz%Q&uAyj2<gli&p3O@p<fZoE~BV* zyZ3%!6%?F!w+yYppN_h0H6Q!zhWYMd<KQ|JVP%YfVR9GsoF=~bH3OfEC)=70efs3Z z)g8R^;wlsjIP17s${x7FwOyGbvb^zCb&@{brJ@og;jLuGfAETZIH&P8`}_C#tLah+ zK+fzr=5ylJLrI~?v`Wcm)`i^bmjY{9ZVM`Gk%3oAJ$fm|nt1_ZB_yvWtN731N()YG z*zsZwF1=;`v_qQ~mld@t`k_s?(ySiP5)uYzYXj8OOtmv^C%=mM+dU9BKT?rOyY$n~ z_S-Gy%UG*ke%I91>ksh<gjo(M<bF<c{E|IRwAu*mx)beM*J=l1FIVd$E|(nSCTwmo zG4FI89>!Nv>Upkzqqk^uC0&NNm0E;Q7$;Rh<-sds`R*sWdS1BHTOoz8I%MR6^A~5I zV8a$q%Y5!2xumX8&~SFhuC)h{SqarkX-SI7^GP$w0BdIV@nD5!4srMw&K~-%1mOhl zJ3;*X3n#?|A%aOaLp^8U<SrWexrxg*0xO3~&Xlr}%}ncXH3yBC_;^7>tWJT%ib58q zw&lpgvB(?(3;V__Pk$PbU!f@jW#pYVHLSm$tIj}+InJFvK3r$}w@C_rEexEao>Vw9 zZB4-d2^mRI9>q5k6k&UhRTuJ3z;A;3b$O9LTAMB&ItM}axDF}xF7Uxe*SAZHKm6)8 z=jMO0w@-5<Gpn5Y72XgJn7x4#|B`5O_-SaiXg4Bb&(GW~4FP#ww9z`Qs;tu-$KiO; zfMVy(izt{F(J$J5H8Nei3wkl3RJG|=oZ7E+{yg^H^y=x83A49+KtLff6$L-yS<ps` zkmD9Z)1vB+=g&x0E$Wu(5W7Je4(5cQKI~W>&}WISk+4I7h2GX1(I1^zDyQ=2gG#QQ zT<5kzSQTdM==;jqv6?4iFJH*A^tsV%CeS-i-Q=wOh;<pwp7IupfR)M}^-HjH;!ngT zxqkUHw|r2adr5iwWhzRgA=mI7?C29T)+J^@#<&r^0=JIxJ%YUrE=NQiIx+4k7UOew zIvW=D_w~D7ccZIpn^WOtI|h=_lHas#;xwM34x{!-QlfExrh>Xi={S;{yZXZya(d@| z?3A#c7f2D|*Iqvsyk-K`O3djhNGUbe)|WzVFxM?|j%R?@ed9F+B&6pEpLZIkShq<b zs{{&xJ=hsX`RoBAO!<Bb;#os`UZqrjBk-6FM(9cyJBGrui6{0?h1T9vvAI7#Ax1ZQ zzRGFA5rchxMm7Q-B)E}TjUZi3V@;zUKjS$A>bT;RBV!%oB5cFZoyH9QyzwM&t3P$w zdhnI3qEc-_iHXZ(bjqK&6#t5rs;z00e-gaK7xb?X77Fh>2$ER3x#|R*@iy^!h1#8q zY@r22WOeF>YrgxFgS#tH`7HaERh^~!F9GE}_K@P=Y8;$fN-tOYGTrl<g1ov$oDNj6 z4O~<aW#?Cv_XqybrYNF#JKneFi{E@&7N4D>Pjb!NeZZe~!wpA`H%5i&$EolSoa}`+ z>Mo}{ox;Sg>~0F6KuCU<U_*XaU?|8eCr=;#4R}K(3AI5(bih2@4JtoJ2wRccy<t*x zb`qO?DlSphqnZ<WNa;<Z<iYkBU}w}_&3o@!7b5YMI1s`gW^~R{gK=4%QW_y-<dJr8 zpWW+Z*r)RneU4lKF48K0uI4Vaw<WitM0f(Iwk`z8k=1SaY;v^=Uh=d-uPsu3;x#bQ zTA7?hyuLlD>HH9skAQ7_Sv9?*qy~RVLVK8^t!ZyH2<v)x@}BlL!AW6tYYIK$1xPxq zIU$|;?VrftqhDWNJL0YdO4XNFx3fr9)DT}}dn%(5mYku_<sWm<liU^>pK`3T5^a8c zB-nnOGBjDMJZwe5am3y5{oy9%Iu%@8BNE>`5=MZe6|Jfpd3y}nw9wDTq!Z_?UvA!V zCq6OtLh~{H5InkJSbmOw7GLWd<7$_OCNryXJS?y>&=zsf?%b|M6RuxCiTyeLCT|TH zSmMHWmCRa1AV#@%_&11ZFh?L`y9M~fjTE$HT-_HAcz!-NJRAG8=0vrY$fy`iwT2^N z4Ij$(Qa0&!=8_iu^LRs=er_WWo{SP%dJte_Ji3CypI-NSan)&V?Vz|pJV-0Or@T4J zX@$Lig*V7-l&&34Sj-&M0Q31FHchcyKK0W0yb#}+5`XRPXBA?&lfgM}ws)IwgR1Bz zZPfne6^-!>sM-llGk?WF6<l3=iqAvyt*druwTcB8V2sl7@YXq3({v}*SI*TZSK^E) zUB5AV7RQl_9iux(`Jm^7r?*g+#RYnVn8o)}_y3*l@6_k?=Ag((!K*s>Yh3lw!<w^i z^lz%G3$w!`fhrjmHXB^Y^ZOS|4<b*og51N&N~OWNaPux7Tu((}bo|okugP}4VHJML z#N*4q0?}zFYXw29j1VL_lBdnsRk+G})hIA#T)?knC7iH4!Uol4)6m#mx|sz~KLB~t z6q;qG$MW?V=p-~8m!7AlMds-nW1y>&dOpX`HX>#Ik7GL*87(hePC0b|qSJBKp}G*B zjTR|Ggt5>=qDaO#!gBug<79$G=$YEhQRazkC2&AlCzu3A@mTyb>0a|OT<t3F;$0g| zq1PVnR!>{1?k9=<en@N8()*pDu=TjzlEWEV+FKy5%Mfj_!OdC1squbs-|{#aalTw! zT1V&|GT5M&N39{*JHJ>Mf}Csj`LJp81Q#~xRFod+>EAP<$d*@(pW`UoH1FD(plrYL zW}K@`H!5c^AG=#!jn^4p;!(Y(9G|^zBesp;{h6h}9{q7ey|<8$U#q5LIKk~ZjSjV{ z)gJ>;v>rtPY1@c1x_*6yRvjr>7Ui3sKA7od{ec@#+5lfNYEfF?XN86pL{Y=(JK|3p z$XxTyOka;l-y}Ri+df@s(^Vgam>Bce9$cIOE^Cgp=>Tib-&Prpxkex{>7dtI&lvyA z;KdrE+`IG86N)8~$4S#;YR#=`HHu>|ER2%5?A7-LgX%1czDkd;dgnelZi8~W8YHIA zi+RfIZ+9MzCev5)0t5_02CHq<=FExM1d4U_SSf3qz+$jOt6_*g?D+;C<VOx%er%Ci z&a6Wg)0*(N&V2Nm62rX5VJA&7jjl-tlKaI$*J5q;DzE}@$B8G}zJ=mqXH$@OK_$uK zm%f|c8z~I-h%hS+M0c(HCm82I9D8|}g3Si6%*O8oUA9ttzmw-(gST()CC@19%g_RY zt;{8BP<#Z856s5K!E$;mi*iqYEA?3IE^;gaze}+;Z&!+F2U*0I&SVzYo7}k+D;vt8 zaJ=Bt!-}mmuEtW;)dNo|>glN`xb!fSvU^#ZSZJYDaE>$Y6BfXS8M@xplxUmxC6c7u z_|2tL){+uhem1R<{-_q6g574Aa2-!TRTT{*zuzHAn~Fs3|UWT_O+k={Ptkze4? z+9z?vKBeH-6)r}hflguxWo+CyPEGLU`RDx1ib}T7A!-MhxRw3zxNSTjCza8B*GZC* z=(o>%h6_hRd<>oCwvX#u=#lg*G*no~gddM2HY6BmzJG=^qJI<5XQoXUR<vK@bT62( z<XpUhA7*5rx&t+fVLLl};t3U`>&%9a++NteE6rt@Bm5Y0(aYd~0}1pm(IS!~AH2lU z9Dkd&Uhoi$St~~tU7(;Rr@*{_^O!^w-L7;s5b-1{8y}?cs+IBBdvyXx|0KPj0Z7Fz z$cwckR#r4?4sj;t&W-6-s|NibRbWCbuv(g<KK<92?vEaAeB`V}8!<G-YM0`fA&8&k zI{WHO$)E0ID=_*WhRn}By|*B)oN3XPY3bz9Tpo(ZqAd>yr=#4Q|1NhoN1Kb3^N1hZ zFmP7E1rl$xQ~tEd8{Q`6Ub@B$^R~W(>oz{<gL)y#ZX!ssl31-$yKTK~CK!WT>cbbt z(Dueag6(11=$h;FQWbW6ed}@J)zmma+eSL*nE45BR&{R}r$x^9GS^s=_gd4TRcduE zMwMxSAOpPxQ1j05Bg&n0kwZdqpL5I*YX1Us(FLLC<h3Dxywt{17Fk4Dyg6LZt$6Vw zc8V74jWX@s#Dg0mb3Ga3W>~Yt2)YTK#QAl}x;5Q*f6rPVr!D+V1N6rNb+@P!Cd$T5 zLb3eWRjs{OwGv**Ef*vue!;`Gl`v@-MrIV18TsQCOkKJj3w`+3%s8IEtC`?b@3hl9 zQRMN9O;b{HMB|&WH&%@7LHNq0^5(q{$MVFaEz7aaVslR|%O0Z{0iIReA9?)wMAEK~ zu>cBtT_aX!d5cyJ>L++#!u5Z{TwNbSrv<$|71@lYHZ8ZBi*BOy1FJ3jjGMj?YzGJD zG+Qj*d+S!`KK)kGlQdc_VLQ1qwZG0))%P1I@AKVp$U-D*0MAyhY~d4TV$6<m^iuax zz<_W1aHzAO<kOOpjSm{^>4Kt$RG|g{HgI_|8E0tBzKOb87TOGXn2Ss60X)T8TpvX{ z&aX8eL|X_{jAwCY>oP`^?X4G$+1#XUUej)CQ*jM(;NlNhEP4CKT>RB{6WIlTDzYmQ zoscZR5uczK_(Um!*igF_aMm=q+BY}uhx1f4R%YWF=b$GE?^M#$?wc6_K36N9q#2p* zw)xFw3Uu&QbOT;)so4G243PirOZ3yrH`_t=s@l+;O^G^<tIX7PpqAIwJEx0cc#}s; z=4Oa3Q7!^oSG4rn#)2KvGGPeI7Jv-dY#xiY0&&*OT>kL;j8&sy03;@R^{t+ncb5%{ zT&zEl8{X4=9{xb+9HnXq(JTb*ET>SpyDO6Fi&I5l&c*6dQ&nE{sf)OgZAWXGW7_m9 zoUX((1G%rpu9R<>pJE~0f&E>3b%y<S&Z$!qE176*&H)K&h=(})XpwQOkcgIm(Z&PB z>Yb`B5zQ7NCVjs7>9!Qal1(r?s?qr&w)%Xp2QfRMp(}HDmk^MDPHzZ*oXgorGx2}5 z1Q#6Bf!`%?_pBHl4UD20Gp8)}8$S+Pv^I484qho?3zl*oxWTue$jf1J<~)#s<%HDq zUm(tB>V#TzUE7|QSy2n%d@VJFdlZI`9*i>mHK@H}49=y!BoC)sJ)(Hp{_=)@=Y#?j zc&4NjVj|zxzHp^8`SvZH`UCNV5iQet#9t-ayix`&o2hR^>{Tt+p`Cj~kB&FRDMPXy z>|Hl$t*jbJ4xovh?cPpzc6M2PEq2Wc0%mD&Me<Z&UH7Sk9|Op8{dMqTuA}Zm%aT|7 zSbDipkhH=lvxeym=eJ|$)joY048NDmD^#hb-2O5*lDaBciH0u9b9SHS$_`efI;7=U zNyW;Kt81kmQW+-!ToASvMw}z6`hDe|#QHH%@N>Q>8MrOrWYipX6MUJTlYv}r&ZZ(r zF9x<V8?M!WdN}0QI52k_g&qsAxfMa_LS~He|F)Lss?)PoRIPldE7O@S6aIF=S-bgX z)8No`Px+)`o4?0Mtn0k6R3Psvsr(gf^EJ{e=<55Zg8R<#Pmw{-E$&o$79Y4Pl31xN z3+uosVNT>M6CASoXKqQ{IWvVu0!gh>>{wwng_QA#*=<lVud%D?Ql}|dgC-mQy_3gI zYd@IVq;#F#ykNi|z*XnFOrUC@R<lAY(jx&O{0R0bNtG9QeecNz$p_ffeh_lXyz>}2 z1wdP0i||XgW)af)CV0oomj!i-&LMMmw7a6(tGb3+)_IOl=5?%+HOwPJELMMU(AT>l zU-1?>lLB1y^wl>=>=O@Q`l~f_{@s?dFuEO1_O$Y=$WqQJ<s28I&(>3N#^E%kCK-48 z2d4BWs;9%8zeE~Hi4OW6p%+fNO)_TKPWnQk0hkx@Q5k(y))Qyy8{evMrxqx1f7Q0M zLTrDUosNo~IJXx}717Wj?*ZGMT;p@F8CEN=6I?cmui_|Yja~Ik7W$}4woHa+obCKR z->A1xRPOK|t9Og2uYQ=^2$u9o68xLD{KyLKi2x;#2jo27{{yAhSX@!#khJuL*5@=1 z^vKN8SBDd-Y=c}*X&`SHS6;1U&mpZIhw#gdZ-rU?f!wW&KKU|29&;p1F9%m7JWMLj zv?#C*8lQBSCP(*u<WoiH4N-XQZ)fJb!l{DUqdU5qZn@=v_%cy%+0Wk(_$h?h`F>}M z6(yw6(+=X!VNF;OFe!=Za*$<BU@87-P8|!YDUKR10OVwB)-Zf$8ahwJ^i=LT(<WXE z^_}V-<ElP%iOmok>3|(Hk{l@Sww|?hF_WKCg(iqKF>wbGB7)E2Go!6jeaQyvq~!6f zGL%0Q;aF@WzAtMo7;(uVwk6f~78+4m+c8D+G~(_i_E^Iycis`xAIW2#n1D~Qo+YKU zE|&^G=Aw=(?evC2+D$6duk#R_LnLl{tE*DxkQFKD{yOD{HKLXl7>NybmrIxY1Vz8+ zl5oXO)NThpJc0u!&E1G$M#w-ML3C&TiXS%TdbWV9*x!>4!3KpM-Bn7TDAM)k9k^YO z&QGGvS~6!FC%RCYa$BV1w-IaA7i93|eCr`#!0fE=msh9G@SCUo$I6euDZe~lGSy}= zar4nGS(dxOh{-Jfw3CnTLVJJu)#hj#ezDS<^!KsT$g_fh>7OT*K?)jHw|vf6M$%O* zv?YS>di>61LOi?)dBkn<c@@|kzt6?6R*SiO`C22kZj_#S87hkejh)HQvMp`~4#yK8 zb6QZfb@ku&D082GXUCE2vn}SK@S1R+=w~OdLocdD!ETS5ck@`ro@>i$1Jh`Ep|i@v z71_lHPi!%^remAC)NY5+x4sne<V4zsj3ijg(!25P&c7H4At$2IBPa#okm^q!O@oro zR0FE~@4x4sPul?}weKe>=THNEg*YY1KdMlm&G+WyMNOecGRn+uRF6Mf9+SI}U<5f} zp5XZ~DcAInPB;beMA?<C*^u-;r*T@BB{RPZsz>mSJ8qNxifP&5!W_UD)vJB}9Eea( z=$Dbs$G7Nw`=$v(XmHxQl-^i{bNitwq)D~K9%Dg|T-NN7!r`mF&WAqy+sXkxe0drF zfcy#xqN46w6Z)=c1AsBLA<&HrJuQftXz`y6d{oOC-RG)dyhvP+bD5oJ+Pa0xnm*3( zzQ`Ti5>R;@N42vL&ZYJ{1m}v9EF#NnOy{?0D0+Y)eN=q9cKe1haS<zip9B4eg|Kxo z?W#Ad+#rGs26;@9{MiV+E=9;_)hf-{-7fuElJ`@C_M<h<melo$VwZzYr&@se=|kci zTgv=~wUb{YmLD!}r&T-&-PyByQf(Tbz*96*^GMuBY}kR(NW3iYC;ds^m=*8>pv{#8 zI&tIr(jl6IxqLjScx{w-b#+f@!=A>Wi!E-bS?pR6_XR^syG^KaVWZfO{Nkf1Aal*8 z<lgzjU(S6+bt8{)GaV~upHY=?>^FLC{(xVvJLs@Pa*D0m7aY4C$d$RSwhgrZfxrH( zr&X1yDyZQEfqlxT_@^4}t<SAFoejP%%vi9TD+fCeBV2o_5tdw{4L;s(uhzB`U5Q&8 z3MJ&WIl3Lqr^zQD2@(E|xHN+gI)7-Y0##Nn6v{$*2xzQ{8r>0|z14cp{H0GL`aW}& zeWFWW9^0Bm0%~jSo)wbz<y2ZkJ0=xtUd5YzXR`CP?iBr4g-)nmDpk>}aqsNXq>QO@ zjng0q#Z-H~tHYYn(S0<fn9zW_Q7E4CIL~T_4M!4coRL*%J6}ySsh&NwOubPEJm#+L z-7W&pKc~~w=+z#3Br%6<d3^>uSx*q*fdQT-6G<@kp5P_y5FarxXvskEtW+20B7i-c zGoociw$u)sX5-6a@7x!n?HPY$RCa1?-K1niS73(b>YEDWB5S(ZOfz>0WbP7K?9#B; zo4&?bDP`cv1NIgRJ|3g3obnktwGhHyodrJgl0Ygi=r&;-GE$t%)v>F?#v=O+9*LXk zZ*bTH9$@zsd>X0^yf_tO7F}P@_RiK3N5uQw?7<U&`L;QsV8-5~wSPIi%3IfC@%Q+1 zSMEMMebhg$cNQPMnQ^Bl`M-7ra{<0aUbRxI$ER!L-0V{T*;A-zE?#g2hb|sI!hhGx z`k#Mo-IBX9cCDqEZ@99R`fn1d%~VVsR3KlpI>rg%D-g)DFFpS^ukaHhuulAFnQW2v zv*FW|@k~6&hjyzAmbnSEB#NRuT%(TA5Xs3=1I905WgOdY4dT=N-M1Z=KVqsJvbnK~ zPivdws*D5o)b_Z2)EKpb41DM#o)+ZlUKa|FizoCyq{atBjGsl+TP_GudP72>JqVjo zMR@ZFtGcXURybBlY;{WFm5vXF7Kr+bZv2_d-&}_hM;y-TznwlkXHF<S%*Lh-C>YMy z@cz-^2Do${l*RcKW=Lw9A5b!8Yq67%(|D_?+SUPP!>yufpD;dj1#*=cy<*}mT3VY# z1*#n$uIY>&JL6xD&&Br?*}JZ>#Xp)?8m%4coTXcwS7abK-Y@7`Y2}lxovw}l^30ID zS{;v1?@QR9SEx9JPt)cpv+JY&KAbXY?M_*C>-i3+kYLm~(Gl;6-D}h0z1aaq%T%lv zKMZ{at()4jZT&v~=Y}7j_N}|&56me>WaA=sHvcyIX7e_>9o<CpeWQYcR!}ip_f%?c zhdZklPEAK4iH?XnL`~r?Z%X6AOPsN&t8&g0ew=W(IjZS*$=#HrXIcwwOR3hsl$jlX zp*~x7W=eJWlGf9(9%Kkq48%op(7qvF3HFbF`r=eri+UqQC|0#1r0p2qcz9%Ydi4#t zHDj(k-HOp}>P?GWY3TEE<oA^G)K`A8l(fFVtPrHEeze&9KX-w0DMuCI6YtwQmYugA z;$9{IX*pL)AGGPe^G*-v$7d_vkdAyc=IVdWb%nB0&h^OnRU=BJGTUO+le6`2&AD3{ zoZMUsJ)iulY2Z+G9BR?FD3$}bgMLettd05iibRZ3?k3Ul|4xmn;kl$hvzr`oAI+{4 zAI(VO_yFZrkonP7Ps(l32~i*@O0yl$k?db!XH<JOw$Zm*J8NHc^Ha=ig||xVu#zWV zPVi|6?-|feua18LNQda&bm?OKx#I16i{jK^7Wi$dxMM2dJ)f?UaZ?j_x|wFcGoqbd zHcLBkt&F;lT6EHra@xLS`<+P<BE)m$P3~WpC)eETQ!Zb>+gB4gktR*GWzeR(^SCqQ zhY6Tw+%>#;bHid(gKAFL>kO3*?Uvj#VgXh%M<<A))McGgnkEkmd4;w~ajjFy4tq46 zbcy%$F9fk)Ip=2u1GU{`j>Fl=^;!)CE_;qEvjBBgNmT2bIRmIWO&R#E+`B-g&Uoc5 z^L&>_(?lS?{V$MymajB@ndO7oskul*r}7}x`D~@mYH0@U3Y)mWU~6)JMb8ZhhsP-u zYp4bJ=w`CM(}g^bWbIes675dtyvChWbn~KzuhfS2r;QB-W<@D6x>hVdKZ}nW-1QjU zW|(buQoDO+Z#jr+R-NB~s@oHkEt=v9v-%>5^*QiE?a%7GWl47GTpHF~EJuG4V-8C- zcUq<yJDgtI$EPS?k5Z4TeXBf9O&N++r@jx=KT6<k@2oHi3I~;A-TyKIgDq;^srWS= zw`;NGL;h$OBvvC=@LpTlt^=nkTXFolU=;pd);eweb#v<|KL-=>js?vsTqFl+231SW zsh7+qP<^fD*-&Ke9^-9}&yn^9ny9AV1%UlgP6!@P8t#!q`ebC+G_E2IJ)3^eRU%+r z+i8PcyFeH<f?C@(#He&}&h?|stmrv6Xg-2B`|sGTDAHgvO+k)F_x;TmU&!$QdwZXE ze$d#x379LMUa%9kov&zrwKL>lWR~>Fi&9LG`7JB~{k#D+x=Kq8?=*;@WW%F2JZc;K zrmIrsnnYzHxM@HzpE&o6hqufSJo(Ff*lRy?+qbk3En)~Tvtr?2Dr_c`N(2*3dhcQR zHW8&3VKCaqF@8Kx`j98wd>dNDT|S=XoW0n++*T(h6QlXH$2$05{Am)gguaDe1jk{6 zL|s%p^#`5;NBEVNe(gv{WA{g_C2~hIi}&)-oMCE_`Gy{nCau+f&J|swHyRqYXulm? z%WQ9q8qmwkz$+152mXSz>4CpLig^Y<(Yx``uN>is`%K~QxaR<X|CEQ0G1+`>4f$$} z7SB=LL%$-O>X97({9dWInN51{VEOGU1GSlf5Rt(EkcCCGID4ZZ=T4TxpNHLO^fYTB z8YxwRy+^uYWha_n=YJMnxjpXxrs2MGAq6>CZ6AIvqMX=ahDZnU2ZdgW;D~{zPj)e| z96iAI*c^{Tn6y=j1~TQwGS=jt@b4)Z4f7M?EyC)?6$KQgf%$kCje2@Fd+{GAD%AD# zd|q<Ba_hoaBP2yK)reaPnc2sow$K_P9>PamQO>q_yCNZ6yU$S%;^{GV+Q-!H2WW;% zM(r3jX&z1P-zG4m3qVLm>OiSALFiBX8e;3|?InodaqDjO90S{Ykbmporcp?OQ6~4? zfhIJ~)k3W4E~p|ytJmj88$#K*U5GuC*uw`6mn1#e_*>6$$?gPTQ&nCk0Kd`2m?xnE z0DYU5(L`6o<HL75GbXiLzh5Cm&}5z|l`WCH5MS$*H1xd;rwPg~wXM3b=6(F3Rw9&4 zIQ`#?iV~8F<1iwg?=9K;M6Q5rixV8e(#~crVtwJ^51<fZIhYN2&3;7;`tA98ddtl} zIqhAhB69{y9k&(zQg9{d`=h%ekTpdpVnm^!S)HkB<#8mNG+Wn}s$f^bEIs)+K$biD z1ifDw{05L=>-Ij5zQxl%Sy@VQySMIU=Yv~!A+ev9%-zq{x-0h34+a!86}fC*w9`T` zb98MFoAL#Rp?7TDW9A<>zCk9ClcmXrC02_oXzlDN<JU$RtES#ZyWlsbh%mo5-TIRT z9~F9bgRU_134~>{CPrZ)O57IuO^PZ%^bvR!fkwz?!2nvSAgAXs$BV7LIk)rW;@@f; z0JbZP&m|8Dm>J0k&!;O3(xm`_DtaF@#BxU-mVbg!DA@Ybq@<!Xw1L>}tU^Fuul~uz zF!=`W;`)<0k*iIcpoMG_<D4X$Yl=GSr{f=x<<7G@0c4c1=I@ToOHG?IHn9gM+Mjy| zbD~Z5_YMi8W3>?y6Qkkk^#ICugI696jkgR@k9IqWcO7>+#UP}ytppn!-vZYAJi0{m zzSN2Dp>SXFa<Ta{8i+$}Tn)B7l>+S51YbV|5egdqdnM?-Nj#zGnkdx&>ui6GBmXN! z@50qt|G^DFES>w8UzWLy^WarJrA+EKAd&^-s8G@)k(e*JbsqDq@qIS@X{NaGjlFNC z>702&!f1(Ap6wuhc|Csc<}XdqCZWg)Vryyy?afh#-||%mcvSxivTHGOb)g1)1aAqg zt5r5yOQ%%k?x+NwD)&9DId@pV&nV~U5Q$y>@E+a!muzU!ljXEJ<?G4Hv^b7vX?4ZW z9(}eX^it?<a<lkX+g)f-&8mGljBIR6?K@u;8n;;p10^Z0Fh%CQ<6CC5vQ#$XG!L&E zN!Qf?NxbepOj`80w>k4?L{sQ<F%Am%!DH3u3H%Zg($vYBnuf{5<?Eon8WKP`<-4@8 z9eUk3U&SfTke~9AN4AawtJ*p}Ka6DNBEDlg4vhV|wO{(dPy297aO~79zM{dxVskM< zUenDX<Rh>eQABh9$fHkE;ef>jymjb8C?2yllmweH+uYQV@;Xon=xX{E4yUTkMfBt~ zL||tIMdIpaw*9I$|LdMzbytU5Z=sMfP2nWeRPv9R@h-LlHp;(k;~tYf5*J82sLgFt zl6f*0k&=cS#>TsD;#1ehwK3OBBU_{F9}SFZf0q+hYO*3%@=hC)Lt&euDmguV14ubz zq@1;*(SBthEqyd+6Puc_Q65vS_<v`T1@)`ZezHPyczucjvSsG^h?MB$0k#4nyHgE9 z-pcui?>de$^7Ps+v)YuErOV?|b+`uw&-C{PUmf6N&dyX?Cb8vhm}IXtF;$xf_7pRn zxcW!=y%;6yF-`$g%aJLJg|A%R1ohLpQ|7*OG8SL^0pY-ha1cW{$RHe45Dr=h2P4EK z_z8%B?-^fWF297ocK!n_Br11Qx9N#@jSu7K<s^XuH{<UQZdC5<5w~{-Ux9b_r%Of| zJ)Ece;sD{P;X6g%zJw&At40I`MMNcWbMvYRxb3c>wm)!>I9<<BU0PnLsmW-0h2zwP z#MkvA%VF?5#gN;^M!lMpci*OwCpvR9%RZA0+on!t0pr&tkKQvPpm)Xl=;{-bIx1n_ z96yhQbUt;~`%t)`v-RQgWNie)yAX|ccktZWh{^N3_Yi6PK4wL<JYJ@sWwA%b_X>_b zmXC25l!6j9N*%3AQu>-a;snc58MMn%>6k=IDS3>JM#xDh7+O2El;)_RI%M;^L+7bH z5+}SLN3J~+Gfk<sV8P#YsOtfh2kJ_7C~5D@j0iDsZ7q&iEaF|-#<Y4#gnsAvKhu{5 zWxvb9o7b3x&(p?Qot?)wyK&;aTXcfA#!qdH92EGkTuG&!XZ6kJu?aF@sWwe^CUZNv z=J%Fw){y#exB;?wr&Sft*vcOHV27EU-eM+)cERv?zyTs(SRshwLscJ)>1%y@_MLWh zP5RHi^m-F7Ff!tC%S8SAcxjUv{no<xHe4>;w~h@@`{@%x=2rLetxwE76GHG}Fn8cW z=)D?ehFj+lR81U?lMl{;8$EHRZ_Rk#@2hZZP43=uZ9M^ZG_E8uQgK9}Nt}3Z1E9VL zenYNgR7{n@*pD(!Qr3?3rsm{$p;h4M7W3X4f{C_9um(~taAm@RzZ48bYcuaXL)Jp> z)bhb=TvBlT37~7wQ@09-RMO~$S;!`Mv|!cq-suEPI5?c4fyDuT0fh4O+j108K{t$w zIy%|y76ZE%K9&ahqV0<6j$UXP4O9BLRK%GaG1Aetf6lf1H5Z}D7O8clb)^iezo0Te z89UAh4LM9bT3Imw7vzWr$I+Yob<52cur>CbdH55}w19`gUd-N2{|2OLX}iwkCNjzP zfb;A8W%!9+T6*2KkZEazR6`zrN0e|0MzpR{>AbF!E_;QT|BE>~3WxV@Jp$7*rR|!w z1D2}z&PSdREH~BKZf+jDU1Y~{6DYOT7avhH&}eA+NkVPju#FD-2Q(?I)~)vk<=_&s znMrSa<GcJcrdrzmmx)mz1#ewNg=uykqt58)r&5ge^K05TiSS#gy93pq<$xS%#YW!n z77KEDMKVsI*zR)8e}$w?Z>4NA*5p(OLU?^p2LxiPKMdSvu7tbL`Te^}F*ItrbnfvB z%;@aXgQ>f9eKr8XH2RN1zDJJdRce4*M5CLYm}`E`Nv|J^mPETQ<k1;Z&JE7$QfnYD zM^AD?XVaN{E8iC9^WP7#E{c@!>Egg)_#yUZsYR5Y#@<Cby@Kk`HNqX8hv+@c*!$e3 zzie(DyY8?pdUM08lK*+T`Yz9SdNNS?yIFw-b<gFk*_x;eQOtz<?W78I7iguRLHA0t zx}pl;{$q9I+|ib4Zl|L;_7NOAtE;Y225xo8UvW8-J>f;wNis;%_Onz(rF8;xzvL{S zamgwN3Pz0+(itVcbSzhM_6>F5Pvf1dxVEHAb3^)5o5Wbh`DKU<-1eHYVgWN-?^0Jx zLe)7ooM)*;x14{^t!vuIRWPS9E9l%qyloG?Wm0K-8a^9!G#(qBNy_>vGR@MK#@I#g z4cSfLf1=V(cToFrYULlcM?_Cp!oVXct&H#L=rMqUWZSlh2qDP~OuO`QxiLw)JXAFE zL#hCqSg*_epd0mgQe+5IjNM2o%mDC`|7Wz&*zaz}k$?R^j|QFgF!ctHV5n@bEu9YA zP>}th&5=cemVc6eur0CppF$nq^~PgB{Quk0yaf&S<nGa^P<{yD|GhX1Jy&bCRm~2F zdWbl_m#rzPm1lqC1C~EKT8Boxu9vz;Ar{=@41UW6S^mMS`hZs~Xk%F@IaGpuv@A_y z1&TVo#%gf*w23<xZP-G~H}!y*Bgjx&EXkljLFYXejfX-5jrNO4#=XDB0OAqSKy~eb zcziUx{L6ep1JT!qJ7iYiPdI_m%XdG(VfKpDG(VjoShT2u475XHLw}>LkB_OWtUgr+ zM`f=3aO(<)zU0(f-Vlp$tLBmD{&WXB4q~L(!EsR>&F}?YOz3nU_~p*iES^jrGJES= zvHx636f;IppC6YKxJ#cLWzg{7|1rtdCGJbn8Il%elXrSkn4~#auuz{Qf2zM{-1A1O z^tijS5#Hg^XKibM!rf5y?cljCbXBQfkvmw>{9awfqLH^Fwv2l<r`HDDam5iVTp^q+ zN#S;|B^2Bu5O{zcHzgFDeD>RIq`h_C{z_#_7T#;7vPD^X+6}6V7Yg=DB|I>Em;)1e zWb5m5DXCtoY`N!4uHEs1&%7j$R9u9DO{krMLs^KXZo3<=H|eKKp-ZP9iVOt*jRhxB ziKqU!+O!f1ENap6quVg9fiv#d8;b<?WWJS(zaP3(6|k~wE9eudbh-)WK)s+U*A&*# z(~Ho4ULLlPYJA*kaNR7xki(2AYtFuqI2M<66sTvppTOcAcR-;XpEBMq(hPS?b<wq= zkN?@TXG90%yJRu?Mi{`uUAj*J4kgmN*@T0H%AIcBa%w)~WEz~<f0JB2zl!~VY!~q` zYVSf;kUVOCod8sf;qBIn2Og5r$lD5D-hCIBEG8)c`L_-))Ai03i%W(CZA@`X?n=dQ zvvo{8IwS5>Id}OWcdEURthZX!ZZkW4_ruXz!}b9HCh7vEcwot}y%YWxoE|Cp81iVe zb*GAW->Ze&8h|*bDd?~T*ijd(2ubqM#sT!>fv3n`ImHHd`L6CJjRD5<OC(<LcUZ=N zC&-^nK4cFFX#gL!!|wgp4~RFXlQlcd&EMw-cAM`;9BE|(ZoiY14Rfo1U%eDc`mff( z!?;<PlXK@ZAait#Mp_)+R;j;LHtN`+o7;})=}S1kJsY-nB`f%EAy@)XIYt}SMuL1* zB)@CJcOXUq0DVr$Dw2X0IRH<zKi~;J`YFQ=0Gfz#3(%$j3auh@4Dw1+Bmws+3KH<Z z|169Ff_--%#;b?zcOfgycP_?&RuV{p#NXZBBu&Yh+XSF58N`)re&i|zwlm>OW<j0A z4HW7Xmq~pg(JPLWWb4i!%^2OCnBV#DaK_)#LHn=QDPURf?nKx3JN1MwyZ5R=kbCj6 zZ3sR}e9}9>4n1m-sX^Va0#+~NGm*s9?qG?^P)H^bqyad5I+kbws5?7=KomZ<lmT|< z^Iw_q_x=Du$X1hp%e<2GNx(yjf@GH4e9$i6!>~Pr@&ha9f3@Yq_6s|F52J0B%JIOM zyV}bnpg+<cly8aSE`0vKz>eX)Po*vx<CY}UB3W>RWcdS_I3-g^3dW>*H$t5tS$JDh zJ|U1SE~>5aA$`c3mj4@UEmNOBfL-6+r0o4+2}wcLs6A+h&l!^Syz9JPHf%2s7}P)x zsn;98C*K;U;UFccGI7TtE*b9zASvn&(oO>IkQPL;P^ddVjQjy4oRaY*1*OCH8cD!` z=}_jUohH+fdpFsty8+~*uJTH<CjpNs3es3?nXm7vLm)=6MU+cBP0+h)<NqLbj=$QX zLH_cEi=C4e-0)6^qSx$DtcL(v(;+MV0Ku(07g-U1QzX!&1qm#668~ZTd)R({r>R94 z@mxD>Z+*~b9RgY5+I>23A-4GP2m!Zz=S~{UIH0hg)_Nrl0pAa2D5PFm8v_Ewd&N2b zJGw~@`g)N6PoE4<NG&#Pa}iN(aT=~tl2#7*G(7dq1mPNhp+ZwX)g&a!yY#4$AgBKW zxj*1e7Lb{CaqpHyLc{a#$zYe1hR5{bX-OUs1>5Co{SHL(r${9(UpG04Me1;YmQvm9 zE+6#nyD>nXQ?eLw@76|LfPc_O0wLoLhEsq<d%q&(TD}8^=AEDkz!KG3$dEl0skI#C z$oB%N*2e!ER-{}8bpiT8pA%BwGb9lr#-pSQA%OjKNLGOH6jCvX4O*Bbn=Al!V0yVE z;N<RqXtvx<!VmiLkVxkuh!A&^NV!=M1pRE(-jS>zvTSjOqChUd0NEcT9$4feTsdmL z4KZrI<1hx0Ag&6SB{8Q%6`psSkdG(S>;w3Wl>1Lv%NCJf>amI)#{!Q@3-q)S5C2D3 z5rm7GRDl5fTtwpCsD01%{Y5Vbg8fBG(q!V!MZD%eEXVul^Y2`cco8)*{|}V+1&G!Y z$cj5$?3AY9YzH#tJ8Nojs*SahV2fY|yY=+QpXsy5-@p<O*W&627l_j$xsy5Ai?nd& zksyoq4&9#uW30Fd-hZ=V`S)Ew&p09k1?b90Zk5WVENo?RS0Nraix7f#&)O{c(~`OO zTKA;R8C>o0_K7Y}E_^-rILXR9x(_Oi@rpksQF_MFtFZVp)e<b6q`C~BExX>Sn_)AE zrH=O_hd5!4t#Dnvk1G-$-@IKFkWrYx!2WeyqT)n+tTSwU*O0j?eKn|DOuw5pp5?Q? zITa)AF&2_kzbjYLV_ylfG3OV#;{sX*HdcVwDpE-jaPK8S30#OPcK8dCxbdr^il_Pn zWkPcQjP~kZlAu?jCm*DW;^b3xDq@wFVvL!0m5L%eQT!P2iu40R7|;;zb-jBmY*eLD zo@^Qpg#`Nvw*D!DLbyS;ffoGSzWbsYjdE;gk}Xdk`pGAbKbp-lh(&awxGC98#A*}s zoDxvEJ@jqioR={x9v=w}bH8kv%3z@haf-QZ@tBmoI{jEmxfWdL<68&~udF0hlQwth zXo`B*$Qkx4Ii0$`Q4n@o)S-G;q<$xZU*uFJWCnORxu~FJV6P9n*4L|n+Xfb|S^?fu zY-NovsM=}=^M$~^$svr)Pqz(0!b$&&wyz9|qv^uM-95NF0fGkCAi;yX1%eX@E{nUn zI|O$Nx(mUAOK@2{_~MK1<@<H({=aWk*VN9;&Z+5h`stoNefl}NGf(FZ(Y&frui}jp zAj~2Z=Y@Vp5UK8P*JGc`#mz;_(bM%2n~k}-WMP9k%aK`3FJIJ>?VHO=+{+sO_<X~| zmZX@<Yc>&CCaRI_#C*O&wYF?je$l+?Y9=aHz%}9;kaq};$uI8O?dSGh(xj{*(0rLo z@HBP*-K6~P@5)&s?hy28jmBjN3jg+d1WJ9DnD`so-_ao|LB8A3A-NfGxz#FUD%#NK zrL2|k&EtxhN?&tEn|GD1+&d;jWJvDkrV~O9L#Eo>T$VZEqq{!^3mfyMDUW!(Lkr5Z z*jYfX9FuvLX;yI~V-4xwKVyxa2$Km{ZOiPr)qGgb3dIY5&GR=xyAXx8t;^KS#8Y&R z?HZdj=|o#KV?vXTMS0jWdf7)t83XpF$$W?@#x`@T_Bb9#xp}Vgej1SqUgb%+;eUDs zDde;!?|RuYwD2^CCGtBke7;G>wcP9WFO#S6*?8}?w?Ss`Tfq=Ldn3IIG4>|8mnv*Q zt+eU1Ty&Unegw&U;v4z6X`j`^zm3%_du2r@{`jxl+q^dA5;lCpH*a2FgFh<m#LGw3 zqI7a*yKPV#i|}FVUW1$P0vnsFR^=7<$~bIp2F%fqJ90lANmKJbe26kVUOGri4)D%4 zUqn(&_*VYlVCFQNknl4=(Nr<!FvL}yl&tN;ud|M8rSifWFN2)b0EOtwF*;I;{$S;` z>W+?kLZ{~!6YjT96{g|0%(WYrl6n`%p3yg6{mall$0nI%h3mU>m-n5Dk0}j3zpuDO zOn?1*n0_CI)s9K`i^Lo`c_H87X$u6C4K;Gc0?h??EgFR-(H^sRJYSf>o|a&*x3GP) z%vu0@`g|q9V(g27XOsITD-qT9mWs?Q-RmUhgyc6`Io6rib~O1Xs8Ef@4JyorFs2&9 z1ruvX^2vjNd<!{`of#Rq@7_~5%ZKnTs6>H9#to&8!;5>yPJO$RM9KCHvvh43=Z96S z)vRp>3a?s^0@)Y)d+GoN6#%x`e(htk>KpFbk9p6Aiy~@)A1{?!9lENk|32mFc$n;t z5nwU>7Ur`uad)2SI#@5(HAf`03*_qlF~)sJ<A^=6-c<i_iCTAv)1q&3!f1)7o0D6Y zazZ!aqNiKaPKc`xr>H(u`u1l2m`&f)-5D=Er>bUM*+ik{n;f6OLPNJJ|F@0sQrS8n z%IfD(i2UGCN)zq3U~v^Lj?bwfbBuoa?%70)D}y<IDv82i+Rc#yX+G`BYWgMyv8ri= zx__t0w&F7hbq6HbxdAzMg5GNS)G*cq8kg(DucRhZ^4I;XiOQ1KCPDwYrHE%egCG8K z3SBTfCb)*RF}UUZ6P3Z9^$PnUw}qb*HJ#wvc9D=|PrIiAPB2Q^$85l*tqp$ez7;R2 zWLQ%V)3=VttE#se9Fcy@Fps0XY63IOHoNogUj=nt3(I47+o|l<{(X*KMJ}Y#TvFom z$mdy_zt63#SywSRndIM5CvR#H(bxHFD=Kz!TKXQ%5G+TMB&sO=)y^%_R)K83tO%JQ z{;M16%F0hAjFh}ld^gk#wmlqe&pSKw?7`>>I_n>mq#yDEj*r9Fi+t&pq9^~LCNwT! zzEcXQJ`Rr~nuaE4_|gfn)mEF1s@h%7qt@Qa3=byX%6zgfO!1|&GA#V_=2eWHq#XgE z;2NHUucN=+bGFx4>P-^ms%<tMowRJ3wDW4WYk&K*uVrr%ufzWi+^K(E&IV69?zV4@ zo*<8P0p2f*5<P(qG^YJ+xD8vYrdrf(e=&c(i@udPKaIZi4Q#u9KHhr}h(25*Dlq%v z6PQ1I?U2FJ-~1={>#D^OO_)|06&7E?JWj+rZU@xCIKcl7xUHcU!=$Sq9;<Lqo(U*E z>L37bmG80X-sffcDJJkV;IrgiU?q)T=JCj;ixH*Y^mWFVE+nzg+iNInsY|>{w<V-c ziy>ZE-pUj6T5|r5d2vMXUCr;gUx~6Jdfe73lQpCtY>4Ks2t3h#&(7&25Z@84m3<$l zoO=k1a)O?l=Xz+D^I3BD#eH47P44oTd?zG~{q#+4rRyLL=Ol;klm3!`t(dvdQr;y* z?rj6lxy&09Fn=-BoxI<Z_-5oq=QSW_&-xSpYm3kq*>?hYW=101_p2V*EpJ*Lxqh=( z_RyPljN8X9z8d)puYs+W@2E!v@AtYsgaMmHae*vDeRfXS8j%Y{Bma`7nB;1|e{ysu z_tfw@<T<mZ4I@b>TUIDYPHLC=W0tsO_meQpgUEs^pJ&#c+JZ0VB_1M=XxVbL+*skB zJY$^k|CDuw<3E)P8r;_FA^!Ho5t7L|2H~$y^!ewgHI#Ec&%6jDk8!93RP~`2&^w-l z`*(KPQ>>J8ivqS~Iv*MC-ip0Z;GHp-#hVh&Yh*N-(2kvu(iN`NAw_PHx)xUH=2pG& z@&CK<_(|uu<=4Plg;n+*KAuuqTOHE=nUan^rA(Wck|yLE@8MWltgY7nMe3T<rzn#^ zPp6QaRH`^StBd}iY}5-A<~n^CCddKAwXu#DRQgfJerD^zh2uzfYqinNPx%sO^D-|| zPLwQCuFX5krb?KauazM@%eEhNBok#aK_t`qK2Qd_D@YfnCy6h!X{DnUmNe~s5=dv( zl5rE3bYZaT<4G6h_0DF5vXNzt7ZVfK9F|_*ZpEDZJZ@VO4|vECKpI}<&wJ}=*?KSm z22e9kP)TCPzc2bXKKeJm3~%=JZ<vg{4S90e@2Z#<OPDrGkl)z7TE2k{TftnOyz^{_ zQAcWT$&cLCJ^$!ieOSzYtA|y<AJ5J2pM}#~-bg$58BK#XCN{bD8iwwCTH=4I{5@PU zYlamvsq(|fTta-3qPXlU=J=fuTRs^#q7OEqGc=)>h9_~(GKcL&MSD6<MtjozX0vJL zN>*s)(o|{Xx)hvk|NWuFDVm^na#49FpqBwv!ZUR-F19Av8d-Q>ar5jC3cJ%6-HC1> zdjJIES+Ph=)$ePBfXz@B=7?e3@5eY2PQ{{drkMePZx-mS|Nh?sL3#^;*B5YUzeY+_ zF8^EXw8-hS0#Hde1udwQPtn(u3JuD9jr74tM>U~QLSv)Jnd<J5jF|Xm&uFml_uDA> zKYM<gTQ30=>+oOXss?oR!?_3V0O&<?vlYIN66p!T`}oCnI2Mo2Km7}l&Dg7+gFeP% z%nND#!j$;@S2?F&Fj+i)xcN(RRObx8g+kun7H^+#BI!E=FEn~;#m&))ZRMX=MX~$u z3FlUYJz(<ZFz?&N<DoNtE4lF{G9HPVm&;Fa>h`uho3AqfKHM)KA=ebW*+Og3*o=U| zm5huOIlhDh5*CN{hYI*wo4WL_#RwSbb;}|%VZtHFo#)`#BQPn?vNKg@a=|d7;+&ep z;E*MKGv`lmSW?T+%Fn#ddU~QKjllZy^)-`_wf7OeTLdjsQyYGlTcq0TCJgL@_chgb z&Av`IfbTDFn+X6yTM^(!Mr_{s*Rb?1!DHfyNc~EF#<Z?N<%+pRMRt?&p3%p`&4%ij zRul(FfBR0!GkIRIn`>HBfO-s@!xL1~nR)V;Hcm-mX4#x>B#+Aj=6#;^KBkV&NC$NT zRd*YXNUb)Ge+f*hM0ZEZzFdp#ZGEfYRB`-sGQ2~BxzpM~=7GmZ4p!iH7x~<)(evUF zX8Hd9Mw_%`a*tp8h0$w8@F#xAW%-Z&y1}0kys(k#`kT{0`(?$B)8cZ0-WAOVwGCy# zK8d7Hjv&*?jH(-ZEuDR3JOq(YT5}}Qsha9JxML8y1~yKxB#63^N;{+w<g0<vhq@KQ z4LSrfK;A=zys<e^rbBI|=|&OVL7Y5@Du{_8O6FpUC{{o;Fq|h3**Z2#kfJMJC;Sca zQc#VQ9v;>NEgXO07oBqaXJoYya#u3#;9hgoWdy-sw?>p_INgv2ASu`iLhX&&gJX&? zB!wbROS2cW0#<?`DWax=2F*DY5g0%`c({({w4H=<!GYjUu3Z1HWu%2>kbfXC7YSBZ zyWu=zA4_owBiw~<fz%p_pAiIuK0p}sk^4|SgIK@;5J7Lm9xRgJaPT`GnrF-jcs|e% z9^$ePbTFN(q$1KFD1a6R3&AURO$vaAQ;!%Rr9MN2Rz!$~gp}u^p|g)AjGPc$3WkFs zo+7LP8;THWktKsKfI{Z)phW&~uZS5zdO%DdHVGVQ7HR>40WG2!N<~n#Ii)vT9D*7T z5f*$CE%`c*Gd#W&k_Fg)22meKT!hFIRMAphornAr^t~u3)SPA+I}kA!^r;aiE$FW~ zvObOkB29=FFc+)?q4&m7EP~q$`6(?pij)}24?$Ce#|@dKh1YQ9?nM0^BnqqpGrNj6 zhM0o?uPwn))c?qou=rgXC}tj#0GOu|!4HJfi0p{4Z;lOxuSGHo<_3;{#UUi#R6R&B z!B{a;5~J`fpj0q=5)N}{BuGCA=~IXWE%h=`%9SMw;RP5EHk_dd3vn*O{D-C@^@2Gf z2@$G9Yy+b$;|8LNf^^@OC*l486U~XC<ebQbLHD3FFgE0aJ`zcYEzlpr&4W6DG!N2F z!e9=H1isMXW1-#$3-h3@BReC$NDFu3+`x-Vd(j4|(c<B`_EC>Wx?)fwDuCc2sLROh z!DiCP`j~+TTfr{C4-hse+%qaCd_xdv5CtdPdmdad<Yp-pZ!8sf!Z$8JI5Olsb5=40 zOKJX2s&xeVAhZGC-y+n;APy;1b2!zX-=7ix8#AhH|7T`gdK3MMz#@$;j8zRZZA5g0 z&z1V9j~EEY0n!6wLU_G#dyq|0xq~ffL+O)n-GGh|MsI|&&@r$D4+&#%vN>54svr;E zI(mteq$@)w$qh<z5yd|Q5d=aF^_@4#C>}*5l<-fW3v-rbj6iq_sdrHPS_HGuaxfu8 z!keN8-V`MkC<DRD!hJ<P2+B4W$->YAAwlpuX&6Jc!4i0=D8b!8ry@x-)TLmFB9?zR zNHge22nbV!z)Rdbgb|>oE8H`@XRs4kPXm52q!8!@rf9_S$B=-7!G8vFfRVu{m_e8m zi0Z+dN$}K&Ux0EvIAU<0;91BpB7*esu$@smg3xF~cw7bk!E=H!X5h)B=D$<IfOf8w ztYF$@RL{^YpiLuwEh3Y-fIfUi=rk}AOa)=~ChkEiKqO#=`vta3!u|l-rNtIQ&;o{< z^DDv;tz(|U^MY|)IXcmeachf6I|;&qrfAW~K;c%xufe{q2-=~tVD&~+N7Qt%Z6kGB z$OWha{2B5Qiq?bqifxJ*3%UjyXrNsIjd?I9;O2p)<^*K8DIhW)1mPemEEKO$cv^yW zEN8d?kN}u{h8PKv4-Iaz?M-w)P)P$3CzQRB^c2nr$gF|07(@e9h7dy${INC>U4oZD zpNq&wi_rE$DS0Tw&<o&>%s+UO#UU%1Gm@d~1Y=_%d4;gf;I5<9Blk+P{zK^sN&q4) zkiV&8s|aTyguz@AN_C241mZSFWJQz=(E&R&68R%+qPm0%0msep_0bC8uR;AlN*+QL z)GyNPS#Z<{_n~q;l<TNFKw4MQPV5`hZLr7;>J8FHFq}xRloas6{!KWWD;6a(Dv-vU zbQvWOnb@2Qitdlv2R{z{2}Xp_G$QpNn8G<X!gT`0AVi}G@4&n~$SO#?KtyvQ*N|d! zv?%0Ru%|0#6dXMoqFyL95TPE9DhQsR?M)%`U||iQbR+I5N`LUAIfFi`GSI#effKbb z7#Ac8R)w&8<BOp(YQVXH=4mOcLq?>@y^+d-P(k04;8;6J*AXp&RA60K!cJ;^X>M00 zH28dJJf09tg*TYrf{`jwB7ueGxXU=~plNe)R^+Wv7f>eH9fI#o`b^P-LK1oiYAM3o z3;tzJk_BH8tN>!<p=J!_HAixV6D7ksM?sWg?0mNl_ZZ>;)G6XXL$Sew%Sn9euKyb_ z;_m*3V5AxN&%h}CpMeqazXRjbTMGdMrxu}5qUe}&FT=M7sTNVz!b=9FgE=6`P_iD> zO@xNfOex+ZY5Y;tkLH5j1Y+=WAZrK@8D<Jlkq7HHA_W=RIg(}(O((uFrf;am4E7Ir zs$ld=o&UjHnyM060T>7oT}E#YF$1D#pade-0GG_!ph!Kqn<y?pnIQT`JTb(BP(biU zbLK3ZiV$rccrm1N)M#_zPTb$Y(%|>56#sAsKpsW7|IoV-;eQ|m2L)XN-a2fxU@I`I zFx)F#H&775Q3>Y&QU{Adu=P<SkZFQoK}=v`2!d-UG7$M7_@@-fC|qJNn>jrhDm7eb z5Fr+_tQ2PyN=K-X6cU~^Stt1o9EmIPKRB!+JDLOlm|qx&$QADtu^Z%K&bN%V7);Pe zUJEx4vIWaRaJ&h7FierA;n9hLj3NA^DB0leNhs9tY+z{~az;3ebL9IVGFQ}2;&r5Y zRNWa&V{{oQTRfyV@Bqz!XU6{jVdg&>8t?zhq45IrpP|wDKSQI*e`iL~{|t?yu5UOG z716*<2zmi~H4-`^_XlAYVLhYi1~-7TAn4vSJ=mLY+@bR3blxZvs4xU~pb8I_3UZY> zf;ZYaE&<5Zl_m-?6lek#oS_K|J&~fBA^d@g@DB+A9{#Z7t@ZtXMq`E`Ilcwg`TeXB z?_6$0S6vY6#i_Hd52hGbSKgPoEwH>|Kv#0j%i>W1b3}{a&A2|rqa@_v#GOc=g|GX# zvau(%u`|qL)`n!jo8~P87!km@_PJA{5R6dbxcs-)BN%)Jm9l6Np0W20=mJ_ks<4`| zKLt=d1;k%?XSecFk1qlELf_aS$~9M1FgcpLpUHk>tf9at`JxxJa<(dw@KU&*zwLw) zKC02TX%4kE(*I<53!V2mkxp6LSKy;D;B_RZI#b)H26a#~w*Kgk{$r3op?$s{O$=?I zF{?njang=Wrd|XZdcr&8IXKsR`W-M&8hf+BT+4GPU<$L&)Y({WM&UG_&Ik|h^kZ}s zm#g$wU||;(&92f`C@&nzWNXlW$!JR%dMy_MEZ=AyJf=A6rzq~L@THfQDpz*jr|7XH z>mZ!;`|{S*;7Rnw-Cl^}T_5za$oEz3=dLC;HGYe;#WbEGf!g`4ZMB>=Y45&8jeN^0 z*t8UU(G+}n{j5q8awMv;V)M?dqKD#u^qNjEHo)mFF~H!me<vCy4}%W&T=qW#I9?@S z3YYi4Z>XyB94kIZU+Kdp0-hHKFC2A6-}gN$a04D3Uxr%6`hJ_M^;S7bTZR!Y(AQ=W z%9JbbM{|(3g(g^@?izfzHCxnM|8QY(;K$k8d6)aSLvo4zh34+n_UPh5G}F&}h})+% zI|G$WpVzI_a7=VQZD*n{@-tl=YmM2Jxc=h%+xlad6|GD&u@}b&p;j@BO{skg8}@Wf zyU?o*)%exfq=s6HM+AoeoW$IfX7=}g1F0P9)jVTnF9$-a-$E#NFYJ4dxW1mWqqKR% zI<DT>EdEIq{JXYU6_ajiORjBdZ>(&Qjx!O+_s!ukx^KS0**aFB<4f53JgnW3)ZocY z@Q+Ayviom2cH8K&RWZ>gxe~Fh%3~8ZhtfpY{yUS6@2@@=(z+C|*lFmoSHSSe(Y?|u zpr>E;jm-k!{c3r%RN*sV`>G|C>N|UD^)zn#a(cG*<K4-Ki|-X~#nNuWeRRLemzvw_ zU(?WprFQCzyLU9R!%!CgL+*C!LNMQ}mBPv8OTe(`a62{4spxCl=i066d5II-^|^6_ zeiGeMB{lrPHXqK*DcS7#hmciM27TY>p8-23ZqiO0fy@m^*&!<Da?I2CRf0}w(<LF1 zCK^oLS)&xIH_=<RuV47yw;D>0s6RON^V*+0Ux>ceEgr?*n1(hgH?s*Nh{(sLF+?aE z><D<O@3Vj1#jLKL^l100UuY9dF`Hg_u9p@YVF_seGpsH?zqOxVpkrZI+B>>9B2+lI zwjy$obCOYIIk{puAy;Vn?mE`CiD`4J(viRiGi|Cp^TM19*tc`UiNV%1ljXc}U77by zjiZ9sYGOrQD?4H?YrA;mNSm5a&5B^Kg=ScqkCIN|>YRd)>(tjNcPDGMh$PK==&G+{ zFY@L*_o7A1N3PS2kY+=nW>1G;Eb+L$c~ob+Q{srfRJu;!Q+ne9$x~ik+RkBsy3XJ4 zoy*pTg-4sMU-;tRIZvsTTxDq(_s?Ygo;iJbdy8^jtJ;-N|1TTyf07Mz%>GzMAJ_d{ z8R(KIy~4vxj|^vT`4BL-ms-|px&Q1Q7@f1YgP|`tVw}8TpiX+u`Fx_#bYs@=(@a0v z+x;dhw?##hsV!f3Bkb>YiPGY~P6=9j9W$#JtCEr}=c?SRu!`*Aw?{`>4!U;TSbRH~ zo-izsv7@P}=R_v!reI%;_VP73FB(sTG5|aNOTHE1e+Id<tIM<k44az0>HwZ-e_Le# zRc~{?9yvAme(hUx8Jc$NhS6vAX^02ZkmR6gO5|(~v-fVec((2L&5QQ<{h}VJ7DcD) z3?vt#I+`9P>Hd^RXP8Lmt0Q9BSyP8xZ}6`Jn91E0usSI{fZ={aOy+%gwk8YB$br!u zZz6Y9vHMZ>*-@ZP=gNE@Z;`LpBI1!=kgH<M+Cg7eE|MR2sG!&NpQN!vVAY9L3KCta z$;LmFEPXvV>{-bE?mzJj{yV=NzT&$kqDVa|dAWlHXk{WBSNOV1e!x_((rW7vO}|UP ziBYV4YOdeirfp%s-HL5t?|l{h?&k=PMyFSE4Aupg0M^yO#yFMU@rIvk&^Iz!0Dg+N zjWsvl6EkE@{6Xig+20K3DsqGlFxZ(-Z=pFA(2I4==Z2A6096oqxm9d_RgRn0KzNw+ zlLk7=yAoIQ%&4G7YPd6`kRC9|#8Zu7Rz-BCG#Keyb8uXl3@>rz5j3Z(UdGE_$;<(F zD1xm!uvZS(piVh~%Ca9`?P9FoADzUAg15MOXVms;PN->NG5mYDvdt6=ANsin#v4DC z2c)I(GjgfXu`$0$z07n6dE}ZAqL0jq+x>n?T6lU^Zaq|?j8r{ZmGrSV`-m8Mzmfk& z_krA2DF1IOr~YMBVwL;Y>bbt3V)$b2b=W0HAV(}hDGSghfZQ^d3e&sShYhE^Q&^IW ziITn2fBs|AtJ3VCrTJX7blDpRvAs31gI;fBY(DVy=LU9G=LTk#okY$mehMFz=${#3 zSV>OY`})x7?%`Wq1u);uz?{L=N(oGwyi4x0mx13+9P^5F-r}4;%MEWH86b7FUYt%B z=R5n#H#XHpntGV=x9UK)*hYeg-p3TbuYHNy)qClH=qsJ)7m}^3g9#U(ma3RS>PsC- zZ&*jqip67w&@_wsoldyFWS}duj}7zm#9ns84d`J{Nx~-u_pBZ;qgFta!V(U#{u7!y zmP&tBhE}jAo;AKi7wgnFB$U=5tGnjU(a%MBY;~k=N;6t**<5Zw+ch>#OE1a&s&>XE z3BbH#mwY}LA=uSZ{Dkw#i9JPJ+s~{d(NH2~+;Q~0=^=t}S)*~&CVqGr?iy2%UqdpA z{4IhSD%wJwgH>R4e3WM=byYj7NTRxcxDvjk2O{6XTSGtoaOX>~VG=Ack~jy*Ebb1N zMEzX6ih71glZU-kNpvO6;m^TAf7kId3RkV{LYLOh0GWnTsbA;AL)~5|%Hu1!^?mJj z=vMGNi}v_;W3-jRFhfC5qJC3&>(x`N=nsYpMx`IUdqXsu@9Nch+|b+HiE#Ng((UcL zzU1O`Z>wIAW6#*X6~<|!P;PZN!=lMd>{SvA#1tBqo1I!w5$!q2yMuC~^6wlqcuvx} z<fFD-Uxk~i?;qMG3hfI==HnA3^ZiXq#`XH%n@P%5f1qJM{!-0cf2<)J+}I$|9vbs^ zE9Lj`ePTsYZ>JCi!hxPD?&=8sYPSC#jJBHZF&p!Kee=l}>igxxY*C?6=4}9odmqL< zf4Nn04G>8Ymmf9N-6KpoZKCtbo)khE`-*me`Y8RvcQ-HT^Y!9ocmC$$vG0i`H$?Nb zYSV+&tOF2Rg^P{Ze-9th5PRhjnY2JF(018y%fDb<?}7>V90=(DtU&QtOJl@M<zy9U zV;7j2&~};Z&*bpK>~2>l#~Diso6og${aeY<Pq~NV_Qd&4O>=#7ZEEkZcnnTTZkQ{y zxNkf09P<_C@{s$HXBL+Dcn%wc5xz2mI&QE5hq3`cg%=*O+d=bICYsx!ZRe3byFkgs z2&kgOarjWxombFjDEvvh2x9%SUW)AdbVTi@g}*m;fO}Nf3+_`e;By1yX$@uueo?X^ zEfoJ;q%gfXrZ_e!vig?q_OM6@H{qseVbM(&54UG>W|+La{pLF&q6v+J+RD~ozC68n zVOVo7_fb1G6D<YXuUCdJIN%m}i}?kkuI``JkTeS&1;dZ0{(Lwm7e9JTpYYj!T_?7> zHJy#V#~>-hd>90NpxA8xk|<cjP5+3Pa<`4WC*;e&PY?q!5#41cVLlS9w>0i|;f+kY zOjxV=NJ&v%t;kznk~o~IpzyZun~|3-YTFC<4$bo0i^!%`UGeia;T_Ym7Y+jAFX$;b z9nFIS66y$Q0uS>FS!x6W)4f8ZQLwDp@A{$G_r+*VK)NLhkwEX$DPaTLLzX}V<@2wR z=&AppF(HFqKZjYvU_GHcvSo~WExs!6;n#h`Z?t2jiz(&8LYGd9D1QLey{{5FW7O5O zbyg9X>E(gr9Crx2Zo0Z(9t*~h0}p0K%r<o=x9fh{K@IMta065B>biGG%?sBH!Q5Hz zqJTHFRi7%QQuHe2q|<SifoR;Mco>3y3J~NrjjajO_u3GUG|C@;)TY<aNmFVzJ-{0- zo2L73hb@;<rDZ5-{4=v!o-o*|aLA&CB){!LzN}dg^+0J>T@-&k{=zl<wLFeBDA*Xs zp>o4a8O>wFTzI;Va1~z?nfn26BkaN-*^!cvOqoQ47DptkL<4<9&U?-i&-+DB&^X<? zvwdN9yE>>464BKe)4;B+)0p**0YyYE!f~*hM^Lh+_5ec4V9|MAlo%*OO;wsmGOKVs zRw~Zmmq5GiNw@8ZzuDY3qEFum3qPed+!$k6^?d<u#!9Aajoe-P0nWUz|2^H?q8MvG z#hUg%8qj?GVz${E3+t7HZ4a%gzpN;{tmwV0sFOMYZX_jM;#{`wM%16Sw+;fKOS;SV zm`)Xa09X~<%;9T=<nv2BY-nwXltq%1!_0~BY5St64{)I;@s!&Cx_7^Gb^=r1hglw> zK8fhHSRztVUnz@yG>%@KE<IOoDx~1<0kA=?5h)XT*Nv8s9UOdX?RAQm*GO#(?*V-s z#yn#s<{9Ms6VkU%&khU$Tc6)c?;8HOAoP34|3s=7uQ(+adW_EZ>9HuyEl@Ubi^UVx zdvUuhGgSzk1Sm(FNma1-(Mr{FTbfM@U4j%q!j_w5*uMNg^(12(Y0t!=j+ln)Wyi0A zTg|2jNIlf9_EX9jctzBo`BGe_Mq<UQP~qfru3ON?t~sIP>J68O-GM1P|8jE{0X^nH zoBh~|7>zZ!G=zaluLNr?NatWpY=1aTRX<W1;XmJvb)o=R=ZZ;hQS%JVf^#jWt8ysg zrebyg4n247E3c2#?es^&Idk%?#)C@+R7Sl6KS<3E`8(UY!t6>uY{7Z#eXgBkTFh9a z;QRPqpfW<={sFpIg2P3-{|Axn=}R;Avea^s)%QyexM$_J2L(IZV+OP}+4!QgewjD5 zXX+bSp3H7GRu2?l<OoX9y4j+2tYhW<Z0CGndl2t)PEuRd)#Tab9{*8N5Xc=~>Axz2 z$e?T%3{Y>SIY`gL8Yppjm^{ZyAS~Yx85vqaCus(-Hk}<H0`^8@C!b3R$1ar9ix*zu z`@iDZG5H{)=3G%7on(^`9p!MTJrlhn|A*ba9}<1D8t0;vl)jQ*Yn}ygYzf|#vvipL zV&kT0U@P^3LO2_{(v!QQ$5=mfuS36SQ{<1<fEs;PNsloE?@{haDeyWGE3NPE`@Zu{ z_y~eEKYs}N9O2hv>_;Smv%>2{HKu=OW|u}+W2kn-Z_EVpwi2K4Jp^;SQQqCr+exP2 z&{rW&b2IINQ19Ud0<_SVMDLWUdz34G)L@s-*`AO7;_Lu;=~lhSzDCoG=%k-DD4)Uh z(viRG$badRw=Xram$6MK9bH*DkB0r=7>}paihEkraaXh_DvvTcmYc)Z6bTCFOn77o z*^Z1T|C7OqQInkVRVHSzNZbv*W<E+!DBF>+T$fX_zIxAv`B^-;EYv#^fkys_why;} z`gb8)HAc=pZJ?p%U#%nSs@`P1PqrG;t36TZhC{}EYCNJ&Ti3yv7X0K73O{XKjjNjH z;I0hpVW|D#ksag6jA|d#lKAg`;~ui@Vt8mWTrbC2QJX9Tu4H{$U|b&ZMP_9Gh^U+{ z9}r7!c1T?D6KjXxlV!lII0O$prTvf8k&$?2L-&#+Yg6wys*pRSSIY+hT%=Q9#G|pp z=Zw#O7+J!XXj(R_{OAsYb=Q?)0W*bRw`#_}8p&A~kX3$(u2FrIT%&qu_6~M)d9PQ! zu0U-a@ut0<bmH$i#6S5N+VGVke>^-&@#iW2gc^SKz%e5{tAK`V=OiB?aq7TvORdUP zDWw_K$atSxX>S&!dHBeFNbUHhgXRUwWUY_rSKYg(|CPBRP|zpxGTildX=UVru>Zk! z>`;h67+{Z-CY%n^^QvY)>Pg)^aB?v;lfHT9Mln#*8(1fsr<GX7AmWf~PL=-?Yf?&U za1F(?eH6!|b&%3wq1tfm=!+&sY5{iUSZfS;Qu3@Wawos{22#DbI|7|NBzUDk4My`K zYQS+_Y;5}|IOn1Fl8Q0~-Z_cDk+X+>Vj2lL^`i#85kj8R_6vIrXlhAEFX#{S&+TRO zxzn7oZ=0c)^7&!8j(t)pWeo@mIZO0c%;<J?v>r22#X9J$N$NUeW^!O`?hqFvTj@7| z*`1uBOlB(lqur=MYBnw_)%wLVW#@7=S^D}54fc-+apc#xI6ovMh2({B03bE6Pb7P& zB37o{_<fvJLO!`gTWnNqEHln&G<I<LEPRPVk;JQz%!7%=CmXd2BYRi%hx*?$jH`*4 zxv+un>&AWWZ5`2Je?Td0swF$Tou{{bidAl+CN$BnBtI!VK4brz&?Gv_;!+a}#!`@f zQow@=XKHZbwQ0)nhafANl>ERNIq<C9u)8I=dIv(lQ>pOA&)&$8%EF!aa<mS2ML3W4 zh+zK!(Y+eb6!YguF8o9<BQ!7~xZYOIt*4FVRd+l{szYqQ;qi*_94o0bnu+RPAPC)( zhUlJuNB1%2q!|0<rS_yUe&C9pp0u<Z)9S_}y$W5b-{}xQGW6$5&NGtPs>Mk5iVQH> z`a}05v1Oz<)r%4ME{<ro=rMi0UXya93e~D#KIVI|^mPfxF!x{`Wquz<_xqJkqdc@9 z@2{)K@&7cM;Q@`X6nO)IJ>w6Gyo-zT!{Im8sIGqO!;if++idhfC^EQ7ViO)Owv-s3 zdY5Q@dcys6OBF?=aBbZqARaq-gemm}a4zA!2EmmbyrAIaH6&eTiGlBw3=PJvzzZOM zwIkRA<~$vP^87*76T(A5xzploySwBI5K(U=5t1Mqb5~hpUA0tJ9*C93gW3k1HMHJ^ zetSwgFq68Te>q$-uG`Wo?F^HNGdrRGvyhv(x2~i2ZSWyrUfEfX8jEG4e-2vtl|x6M zz2*MtBwa`5EzlHV%0M`vYG&Rp^v~Q6xig20>@H?+Tk{TrWaP5#*SO-xX4WC7F0w0W z0?t^SsX*lE-+zl>P<YyuN%lI6j%TG4Y57eapRHWGP2jMw%BhV16DB7;YOt0(f(lEL z?_irT^o?`+(%!_Sp2~VQ;*HU?Q5m4@m=VN;S#Ku<3Dz`NAPLGMjpD}q^dM!SJD>%O zAEceDAW%~H8(NIFVm^>}=fd;dpO#cmE1y}S2oKMrKnyk(vfA?C?`n^NtU4JR4*te1 zcSXQ=U587r-H-M$ez@8z(+w(E{6+pxBQGM_b|dP0If4)KQc~#qPqDcCt!|X~T&p}b z!xta}zL(>S2wL>)nTidv_W~CQ>m_s@yn78=dtUf^KbhgLh|%{*uz$tVn<*wmvfk;j z-63N=)f_cGiSj|Y7})%<{K35BTWE=)HnQrQwDCQE<9c|QTufiIa56QnoJZ%zWXXMM z*n9wWE=*5)%4S(}_kRY{`XI=zBgMrH*8jXTZmuaZ+`Olmf?ktVsCs2(&6H-%bQ*9c zabo;YWcwJz-J796eG||2rUzLSEwRUj@9F+N2?UV&L_OEeFajR<_9$k+<vE(P5c6!b z(?njmUg}T`#0yvRhAyI@cRS;c%BqpGUG}@tlFx!47{*c)%VGvhv$czP?GUZB2+J=Y zMzwHYHuULRNU7}n%uYor<kYj-3v$`~ahfYX;2HMbJed}w_nLbEEbjeAspN*ynPfly zJqOmS!f?W??nFyKNrdHACQi5IjhwFg*p|~qU+#tR@U|qWXZ5#+LH-yU8TE}{DR_+| z76(akrd=aipzU#y-D*~3sY%))?=t&$kxR`HoM*nu&w|Pybv_x5eFHu)*#Wv33LLe; zUHfcmMWWNk9QbXxuN)R;Ye_weVSACPqnny%*mQn+x9UmH<`TVoxCFW+#2;>5<8uK_ zoL3F}v|m{%vq@v#65TqF;nGzhDn(Yyc<+vNR<qC$hx`MJrWWppUID+dfL!bl)x=>6 z!ZjROdXw9{8;@@H&1ro%gf!(1j#pxQ%@;L&SYxp&{u>im)>~%zlS|lCEgs(@tWG9) zbJXux`%Wx$hH9vF|7zsir53;3WxFdr;XmIMf37JjcCRkW{!9oLgBGMjBz1q6s_5r) zP+Inp8#lm^{IQb%`bch#n_5ff`680_Y7@fXV<Qe$xSH8jBsWYf%N`-*F=gZlRIr%2 z+(;ucqng`*V{@a&9OL6lGETLir#&nl{b`^`qL3r^(Sb4LH&$xD_w|<1$0<=9z)Mhd zhH|zdb<TFiLGHR%+q*GYg|704hmy4P;IbTEW=5vVlv5gX-co91UboBZ&sxKf#my1C z(^S!}`M{RpaJ=FN!vPe)WpoE?`Z=mLG5>O{Z%1pg=Esvxqt&dfP(8YyrcXMTT{+s1 zC}ndUeJ+pC$u<60l)+8--v?3HEfIBGav6sdquLraUCAG=0~yb-qm?s?(@rNs&jdaz zLq+P5PE!?t@R#vVGw6F4KZ<70&ZC`5iZ@rNt8UM*=$JSN*%Gjb9P8O=yKDJIl3u`u z3@JEu-)QyYy@$oW6K^TJa?rzGoQ*OwB>GBa_@rIVXYrL`zxSZq=F6ga4SXF-w$f&X zmMff6^Z@x#qikELIj@aJE8CZC8i$CDicJ=wm6Ni&vAT(gNVVR;mJ|W|f)DOQT8m#> zmuz{4O<I<i_GbLnBMfB}*+|`zdS^v7sO^*G=oC!f?}5jdb%qj$3GsQZv7NtGC}~G@ zx#&i8$tq_1AO`;-bu9;do4obk5KucZg4qpNX~vYu{zMlqFD>2qjW`OaYw7J<yl2*m zNXY&<@zzF7nB#<7TnbOMF1gf?CwdNb<Fk`HGida)^9n68IAUDKr0N2e{JRSIuRYH5 z?i3?B;2yfM959o*Xp}}qg+GbdK1uS@hGt~L!(=N%1;_`c#VVtjoxA179W&oUpP7Cy z`MAlP-J)E`*f`PyUY14yi><FBWmr#3-GB4gDdl2NhivGFcB51kVn#?fWMW1LyOG!m zVwQ!yKVZBH4PJxZvIJQgEFM(j@lIeu&m2&-k=FtcYtI%Bmf;?x2|whO&#o$pEW+(D zP&xeb2wZFBwC=;%e~@IWJe#<*F(_?Pp+5pudhw*><K%?JH3WSgOPq5_<5nPb@b{_9 ze0a!Zd>L6PeybP>jd$8^r-t8eu*t*>Jz&ql(yXo@p6xBga~<>DPj-HK<l^NvMd^er zVzyC|ZUnYb!fqnAN_wJPxWub%7(QfBqm1^mV~~LIOTXp?nh$@0owm+%TX$&w3scD) zLE$&sh;R8ydxclI`vo_C3XRWc*VQp;57ia!WSjyqA+tH3AG)%c6`cILrWH}_(@F*V zCT!*Gtxg%<E`?vPYMod`CN<9loklJu$bPx|8O4;d9EGJy?xCtE5)tV<Gj!SR7C&e7 zG@q#S+D#u2r%*fHfbrMU<_U%Noq?s^qGtkx7^G0#&bK6lH#SNVv%ln-VCjNYb2ec` z!&h4d*px=Q%8t?H2Oqmvcex`h5BVkE;0tqa_FsA8aGSWA4#fiG9jz@5Ct#D7I2R9w zEo>0JuZG+t6(`7}huW$Vm;A)faho8;cXzAV_V0<tn?KcAc$%g$roP9n)kUjRe^q4L z#hmBY_VX+g8YE|4&PY;HIe-B3qx4IL^97qlSI?WmszWCG;1_Ki{3a9^3eZ<@bx3J_ z{wbu1$9x}slbP`q+o;q!cy>{ok?MD@KOU*ahP%0gfN=H4=PNz7b`mq-c6{vPq~z@N z{Dh;UY+L>>(^3JII~P!6M-W!_r|IFlf*aOhp;wBi&TKqhc@~5#LQ?y<^~IW3*PGvk z`C$N_6e=95zhW`R-77r(m-XBpnrKIrugl!ev%Leb=Os9p7uIVtlK(hvkmQGV68#$% zv)iz=0d6Zuci+smkdJS$<WCo<SpNp^uGTGnR9&g!`*Ot{A#Hc49y*rfEN@Q|eSfmV ze&&NnyPu7th*D$FOit8{Zn$O3LzlqEggbHZFu(XA2$z;kHuNlhG|>FTn17#wQ6R)d zBwwj*9^N|Y9uLa9b<YebZmVW*+g`L!din@MHt7lZ(eyr}Yh<~HR{r1hW0N|~={wQ5 z5Ux#RbDWt5PPRW0WdZirwUlOb9@(Sk%8-N_RCvMy6eE9<#i#Wasco9rnvZ#ev4kbW zkKg!wtQDDZP<)<u4+<=Li31#ygI@new-BR!Btb?k?#~i2-fvbe%DIa;U52c~Q<9?j zq0SMJ6rh9;a^KIPP0IWOj!eU~QMFWmG`{muw~u~KP?d$`qlY8|WF?jq;Ib-f2?iGW zSy`TAMN<MC*xHe3ph6nZpwPz)s8rg6)*WvLLnkYvrvBhk`o2;m8=3@!Gl&yWpl1}& z1;^ImkNsNJQgPdo<mR!m70u*9#`e`*DLt4;2PH%MoxaxpJ<0ybPQ*u79#?BSX&u~` zvehT}xus0oMv029`|R(d>Qnkc!wS2tYo0)y;MpepE3!UfeJOtPW6SSp#d>^7#f@0& zMOlNBOCd#(xU!Z}(*rOK42#kUSNP`I$2##k&>KU7dyK<7sb?ml%n3Y{Iua0@nHPH^ z@s5%E2ki=nFu@t__3KaUv?1;}p`u&&R)IH9<g@!iF!E;YO9D<hRWNdvXr$ophL4p@ zCc&p8=86~0<Mk?A1A3}fc7WMsdR_VmI)lwD`Az!0ZSHPXcHat)l&Qvq#tt-f$maW1 z2J)`v#4QqZIRg?n29!Gml&uZAP8c?_k^f-TiK3@rBYGFGN9e~+%ar((>698|+zzB* zJD*^X^pbTUvRL)Tcrd6PC7B(z=k}Js$ai2vVC+(%Lm0}!{98vr5I!*E-Y_zGQgg@Q zxran7Uyc7;9&q(Ze^iR4?^;5KINH#y#v-20wNkZAo|Kk8(Jfx%C<7-(t0i`;kF{oD z^EXGK6wjCpYAlVg;=V$fafoVKk)V!D;KArF`S(`?@;MiV-z4;NJ44pd#kcU`%0BC^ z29yO%(F2`H5+z*uN(0wW>|XT5dlVDzyHJQW6Q=speivlDRyrdSbNB7@Nzb<WcTp?B zwYIHSw8bTZoa^i27uWNVSHWi4y{_mfzoAw{SH^bf%v__@%Jn#8)OIn$(kAvWBat2U zS9#tu6Z~Xaikk^0$D#+~OqM;=TV_fB>StQKtg;5PdoIbRsOO1J1s!?2LRPBZsTWEf zKaFFxGQOm_N_sY^Tev_rrQ$a@FKDZsTl^Wa*$+>uub+QnQogavN&CJ~3qKD3dhDv& zM=N7y?fw3R`<AWp<;rpHl@V`0w9WT@Y^$*=_||$==C3H%#_wPkmT4fqvt$KV7z5cM z<|R#xh&CX%n4JjiiFp8{;jC|eKP1#6EDrYwE1rwPaMnEDGFi*4wFG{J;u~>N$zFjY zQ|xp9VZ~nbVzNNXG&JNpb1xtr$r-$+LLcK06w?*&^9mphqipB%Z~U0LOBw7bfj3rm z`8i>=Gkfcq-p80?`Vg_dqHq`z?3A6R-~jCJPwy(GdRt0(&M2f%v`PXfIEm%r*75*< z;%{<nhl9_u&9^5jF?3dHY@yB3ZF*lD+My_hxkjX978chR^~SS7&lFDCec6h4`box4 z7Vp49Ogk+I77|eL32st@CN|<QE{f4B?AUv>X4~5Kp%1lZ{u?NBdJ1(S140^URP7p^ zZ?iX&Ge0Q!TB=UO@`X{MF6WFQY)>F#wS~db+1m)_OZ70lQ>o*=ogMGrJE2*Vpxl#k zSgCVOV5Zt;tI(tR%|x>Lj`P%WoU`dDtbPpgUF&Sc*xNpKf2n|K$dpXiPcSinaTq?H zp!cDtddNqYSuP)<bSFHDfs>4F!zjwBXleuhbS&06#;(UNY`^>KIfM5HtD8SzG9Wbc zI$r8E9%o935j_i~FrhyuS1zJwIHXKg(S8v7Pzr!N;18xsU}mn{K3N<<s*6w5mkeIq zqTN+r<!=6MlXTcOzJ2{QjLh3PHvap<utJkpgsA<l&nX}HIwja&pQ814*W3|>!6%=| z6T1}GydE(tZP5en3v$*8Tt&`^gsuKs6_#B|NOxC?f$~g4Au<v+qYP=x*JMfZ)?>zR zf0bq+6edc>)OE;6nIC0F&%Z-;K`8pGk^Nm6)m~^ll|?KjS2FaA(3v(W&W6dr2`}U? zjKp+3DsV62<YaMs<v6PaJj3Mm7(-&@M|Nc;iG|;!s0}tV=k0y*xPQT8fl7O>IG2O3 z(O#asVGY}BlQ?A)ZotsGMzJNl7c|i@AHkePX4vSb`K7&DHAnOOwtx9;v+{}sD~gQ& zQXL3vaA|swq~=U_tCgtO(`o3<5Dj*6<CFeLH=i`3AH(Q;9`I8olK7^o*?pd9Yn#`= z7CNjmrzUl!ceEdC@YRnZ>!lqTIr;mPmd-zl`1o<dpH1!LX4oz3`^XeE9Wd}A6{Y{# z(QH}UJj#vO%cl9Y|6Sps%K_Te^fsh2qrw&n?obF}+M$DYR5YC&_0<~+wH^IR4AEYj z_0>=hG(I-c81rZr!|Y=zlIq5Qc;uD-{d5?@f#c}+)(Zh|)IM3E^@}8Ip%16>xjU4$ zU?|rJ;bU&=RljWClFlKm&mw-84j{MPe+?x$am}SwI~{4TFPQ1g=_W477=}gDbm#0x z*uOG<hbym0?M0?U<?SAsL$+1)S@qc4-4ROw(eG#k>u924{+NOC=imE>482$6-nn(O zu~w%?A)miPE?)Y^5xt|0kz4g$XH?G_gLstfOI#i$d^Ft*EFbJx|Cw4x#om3|gxLby zzoQ@ry(LhW)sarWX<VruUVrm94^w`4ow{oTIk=s}<ss&YlF1$z8Asf2M3e^AyT4d| z|MTP=CG4Rf0k3@?oqwHfP?5B@+2hQPc}wOM7PYluE0qv>rnHkJ_Pw0h((<fNRmTLc zBtapym_@x5`qi79S)H%#C;s#J8kixa4}{_W>`5BOcT3Zt()1VDx9ldX{<Py_``E}G zIL<V}-Gzi3PqNqI5GG>@ZCxULbl%%~wl=@bf6gt;s^*%Q1ru<3A5HJD>o8~`=Em(^ z#&;jRYYH#GC(ISjz@&YH2b!jkJa4HpJ1KoH99!(bm$;5GaDcb3y+9<)hco{k{#cUq z{zg(ow>v*^iRDobwB$1pY;zG>;%~Rvl$yt?&POFW_UnvBOpHKY%_jX%jhm|TFR{$n z?Cs~Hg)Z`ro-B^^3m&?ah&=&j&Fs5ET<2XmyXv63E~I%l94zXu{v$i->r;+s$wHgA z=T3R<wj^@o{F%yyJ1z~O?A63_UM$DX{kaQ!>De3~52v=}-jScJjxX}0&_k<ePMn`4 zCoQQeZsmvX%p|{Va8AN{84!;f&dxM0841_=!+K>Q+cDR*ikw<;OB2RpXXI+gi*LRC znr)T6qhI0c1r_=$J;J5U&4_Zsu0LWDK*(@5XsN0iqb<ME-Ap^KUA)76D*ubX)P8<% z{GiR65Ajxu()G<2GuMGk=f0xx&{E|>P=_5T1eEes<#nW*s+y$D`ifNY`b0OO^odhJ z*?72ko0u{%4=y!BYkX@vBO=TaR%XoAZz}q!Q!Ko=74S(`83qM5+(3C(HIo6?VO54F z=NaDj=LIm9cdNXHUa=xByO7@w(=~4sbKR4R7b8-4Xzbv3;?v!QyU<Nl3)1t>_`yPB z*;TWKj*gT&?&Lef-Hm0BSci9!{T~Yls-9q&J63az$3qsxlzlI*#>lXt6r>KzNY)l+ zvyrSfkE_$Kq-SVK+OxL|p=ydtS;7HjL(APMtAuxmYkFmr3S*)?h~xsv68%ZCYC+H} z6sJUW)=-u{dVSS0zM1m}xp}`a>%ceV$e0j|X6{G<2b2`jY|CGd9p>Fam}4g@cww|Y z(Vpx}bK9Ylo1f=~*<xghsmp}*F|}$j(&uC#rl7c~Q@Rp3(Qq$}G4Lgm?Rx0yH;ocj zd47>`WInApZ1)UJ*vzklJ?|397t3;z8S6!>kgEt?*UpE~0`^Asu)?O>1%T1c#?6+? zmz|5YO20FIcV4Qf)s~NaD~+ndh#$U*9U_r5<f%ea<U<8BvQjM1w)GIj!dRf?YCL7x zZ<MKVgSeivI0@xc{#Vu=K~*Oa+OBWB&%W~)-Sxe2F9lADdRwVKPErx@;xwENqi!qP z`PLj7&L}~sh(()@6?impKn1k(TEqv@u|0JWjKj|q1mWV8wOwvbw)HL_>`aNT>cZPM z{ZiJp#km_l6-TU2iE*2)WnYX-U&S+Hr@Sih_8sXDZx7kBr8cvr4q(nHO5cGoaA2kH zrtp;!S|tX`|59!$(M%R4W+W?23;q0P*a^$we<&r@+OpiJ^L<t;!IO~7CUWiE*E&<7 zWE*a<;ofar$o>EZNX|L|H$vHk^U@Or?i<cOE>dupNh~La`8QM)2pt(5^aaGqqxDY_ zP?*S+D+(lKR@iypAX2jmeAwgUC<<or)S9#{#mAn?&pVJI^3hA{*)4uRR=#X@&~tOS zrc@oMLGp+OjHj&_2KU4u<n;@`0^VFy<GW+~)yEmb^ecOB4yvRy8Vc#%jdH72#XmtN zw30Pnj*YxNbJ6xThC%rFo<_N8_w)@D?|6TgG%E{BPn%^}|2yRF-%DBVm}>!Z6EhvR z5S5SUN8O*CBJFUIcX3ENI(PimtfJO(!P%DOwI@**(y+BB#54=fI=P$vx9L(v$7H>3 zySVXt%Y}K|SUjb*j+|B$ENOy=;4=CZiNyTQZ2AGC&2up$|Kq~h!)MR9tJ-rt<}BIH z@HinyM!Pb$!AybZgZ?BBB=&T@qzdh_Pmi&-uOV6Q5G}sYj1P5imUMRrINLF%)TlaF zt%j9-_@cw=DPPhue&kGi#eH-c6gtR-OCXvZY}0VQo}tWl)AoISY?X17_ku=*kgjHG zYES1dpji#)@zaF^0v_gfnq`@%p5P(L7KsijmPCVr908TpNP}}q>|QSC{N5D5wTV4{ zL<1rYd8Uq+!Sp<L((H5Zto@!CGvkJA#{NKS-be+SsQY9(L`$rPfzGkjLRMK{Qx1`> zNtkigD1gWG60H)nMf&X)uo+uJciK{If2!f~=v2KaL3W2N4I<$&u2OdJAp@tAYP)-b z{5A$SC@HBORC{U4GoKUS>H4OUbJNx@+l&apsx?lx0!9FKXR3;Vm;VQ|Kuo`N&SVH* zLVCyrw$BaeaXZ;mk?|#wBw!~1*zsQ5=OdX*10j?I;$HybNE-gm?0$a^N<L^0dxs;L z!!th7;sNpAx{jWU!(XrLd282i64&Yc1+c%+8~vjb{Re+CvOx@zv@fXx-R}-cZa)_I zzc9%o?M?&XI6(LyO?yMqTi?T5U#0w>m3n>GH}Fa<&HYEikZeN!2jEbBMMDTb^F~Ks z_a6cOuh8~?8l)>AYy`<f{~cG^)(?B$(AbVkrfY#BZxh)00J{-j@9sIi<GRBihlTOl zwKo*t_tP|h?<D{p1AvG6&2K8`4!?j1Ok`Xtil6By8UY16znm)g4g#M2ea#P;pQA2% zevbNIn4cprdVY@lf%Ef@?)Nj*pkTDd4RtW2!|2R$WIwq6a%4ZYc08JL45D}-5f@E7 zgp{la$#FV({{mGdJFEftlN*TU-8eh0;=?zjvGzW>qNlZYpQ@^G>yviCNhs%o<S|?z zx2n4}2=sfq(a#5env~yFvj8sYT9nk6=@--&(C=M0)BYH7_6>0rzeN5Un65h`u1Hfr zj@Gx;@3G>8cWOQP5$%b_@u49tuJtK)xnNa7e*3szP-{ON<j<V~LBF5v0@?%qy!J?; ze!1cQ2!9HM3&DTk>%*es`ugy~t7+DUpHKOptPd&rQJ4Sg68drMVU_J~uq72O^FK}L zc|RJxvuqb&eB%et|D21S|2Y>v|9g)AQx`q{PyNvG@1cM0ApCbHmfTS7*<3G+87@Gw zTaQNla(}vL)X6@u*}}Qi9Db%DuHtns>nqzmleJYMkQk~E5ct!+@^i`hkmo;9@B{O6 zwe~~k`p^x+=K$eUf9s#8JAW1v{>)6_PqxM%E!dv2Vw@LP@or8vheP#o72orh4m~;- z@*^(O<8u@Icn;`#I=y`6UbKAX{=oIAFZ<=0Cf$Asy`+zF@X{Y*zg!4^N2llSTWf*8 zzLC`&wnXA89`aHuf4hV}`Fp|mN9y?b?ao9r@hpnpNbtWJj;mPyb1MFg7l6Mn{*FDM z^Vgz-#+M2|gul0R@82y1{&ng5XXdv%X*6?4@8vD`Locr!QO)7Tcj7Ak!=H3go}Q$U z@?@fe{|%)4>H_q8SF^6)J%380->;u^QTn}q{=TR4x9N|1r{2Bf0{N@g9|%z&rlxy; zX#IhqbX$=G;fLw}-tHgPejiBS%gMW-uju`!|Gr56UEi3P|1T!y|HL22za;%O`l9vQ z=pVlR-ofm@)NH1z5act>LQ3w)pH=J0Ofw;wX*%RA6+zC@B}hRKpNt?r89{t9V)4l= z-zH_Js;zj56&EHWgh!XLS*d55%|eRtyAZ+Og!~bL-yb3P{SkuSA0hbt5rUsQ83q5F z$#cN(kMw~*d4Fq$L`b;X7w>*PWn23hy#8^2_M?8k(HOpt-fv_}y56XX>*ac*TMJU= z_@BGOzfXs+4BJ1W99*3ywAUq=HJ7kSGf0*<=mv@GDPnQ=#?4=y;{3(xrdE#gj>JVb zF!!%<-B+hLw{)WkN#pPN>J$rm#QP?wYHV{7{$&aOyMA7-7@c1(A^PK_7CK7LKM4-s zAgCr0<EujKd|VU?A>rLb{c@YF)ihTm<^Dv^gcLRewEBurHF{q|um0mU>OVei(EZ0W z*w$l0az65(HFzsgu$kZdvLR9R0Leq(6hwCCs|S&E3`q^vFn)Rbc{NenV6BPBf84-7 zx*9@~GmyN<j8tvM=09l`4fUcjSB))A1-EJURu<V>Bdnn@?@;|r$>J$0Q3~Tr=Ba=S z9IyU*2=}RUtNUotaT>ZJ3ZBwnn14LX(E#X5-T$mMi1J`jUSvY{W7ShcNfaDV!R#Fa zy|rApXEF6ZF8d&^iZc0`24J&*OIjg(k1JCh?3Neii&B%?Ov96voY6D}$$oh4V2JE$ zov9}IYbz*i(l<!@7%5lpx_dE)q(k_-Lva<3iw_{_ID`+gXy@fZMeBEQh(BI8T1!3N zzkZO;CA?#LT%}<K(`U0dVQUnhoUO8_`Lp%lgK6WmWAaRTsKD;PMlv!Zsi~ot^O?US z*C&u%0_^YL;02CgD#^sZpG={9y#tWE&=kvrDogMVyiMMrZ<iBEuMsS8noILn2O;I^ zQ}4jMYqvHd`Q}0-HPMV54~-d@YlKQ^51hl`yJ=*DjmAeJdjw)GO-Sm*SC(~XH4M_# z2D6Oqr8ZbzfBBPFWG2NAXon4zj;#=}2Qn%Ot7AN0=cU88nnv_#NBBjKK)d&9N@{a# z5+OCPh)(;}5VXb`)(C4Ph`K5YH1oj`24X@5!`?hH6-C*2;+2zJscdq|9&>9k6wat8 zze8?mY&O(Cm5xFhd#Bo*6rcM6Q*uQp7-cxiY3+w3#C%`}oD0k`x#W3fQO?cyl3*Lt z`bSy=<GU|Ta-!6L<+pUgdjg3W=gY1}vJUXUry>52D2_nDKp~6ruvyTDY<ZEn6|Tfm zjF-Pc0WaFo0Y&F+F{4{{Wt-u)Ea|9v5TN}guBxpw4IHP1VxdG-7GiOEXhlP*^pDbs z#}+6<-3#P<8%<TAQv17n;7(OlOBGQtlm@@_eb_o3%7b+nd{IW<A32@Aw_euhb4!QB ziOnpeDBDzO-|a1MD`f_<(tU~)<Ii8FbU(el7rJBFTHSqiC!o3?1zR4zR*!vj=#x*A z7|Kbh2?x)sY9Q==J53jnV!Y|53J%YCy+iFuBOiDtuBsZHABS3>*236m(|bwNfv<O{ zrP86&iH+{a$*cwPDznLL|G;Z2P3m6tUrvHv+Ev%bcvpp5H=bA31+vR*rbmUX_nfD? zuKVmGlcfm%B`^IHBp{1gpE%cJ9+LH`gRW0^Yv-H(-L-mtiS#Tx7k-Qtz<mo2J*!gc zM+FV6P}Il_mRm+h+CW2kgU#MaeBIhSr_=@^Bj4yDBjv&dXM4C%<Xs11rV?wk#M*3a z4wVu>zkrBLE!uh%A1sCxn*&b&Ck13N@r0bUojL1sOBCl<&e{&cIxG3^&1)?(aGbNY zbJV&*YM(o6JM(;l-Tv!1C;wD9HqlwzIff5r5b$rF9#|EsHkQg6vCLAbsWccSuapGB zeBk}0t|q#!u|i{wSMZQEt&&y(lA7=<^>l0yE8B!@AgHr)yq6$({BJ%x#UXjvZ{ZKb z<F17pPgbjk17WYICF>xW;gK0$nb9G81t|JhNtR0wVILCZ<-%$VRmS{Z)KVEHf01Im z@pjk}esO*+hqu255fB#oC`umvo<3Spu#CeUM`=Jp9t}u%rB)BF@aVx6uj5-e{C{Yp zBGRbgXi8j;>;7(041Rnoy}y&Td3`0|E+)8(UhCz+6MvP{%L=l%w<>@{eveZ5ot>rI zSI@C=dX<ga4t5^j#LnrD!ry0wHu$?u!0=ZTDn!lvlHOv6_pI)g^g0Yq>}suk7Ls3Q z!}S)+AEPbF;8ch*gDF!SP&b9FGGyVdr>DwPPRf&FG022~^;%Reow=i$iy2F-r>xCx z8A7m{MCp(y9V5b`T~WyHO36d=QWKJ|uKnXl4#_vT<T>WnR+x!RME{cYD;%4S<VE?c zYGCTQwc1P|UT4tqzk*~d!UwK3&<jzB<s#>LPZQWPTBp%P<&M)QS$tv38yzaKnuzTX zGa^|e%TtsOPBYN@W<)=fX0W?e<YDJtByh6jHRe_bqEd{Xzj%_vZ@ku_lGZLO)$fE( z^&o2>+)5Uw^Xzaxb&iNa1>SL#Mi-z&6jrd=i)dP@%qA#gdaZ^!doI3iUS5gRNR&yb zwBNlcO7+nyVU4rBzOa;c9gB@9v9?&7ORT4eW}=^<^6}|X=_r2T!$i8+b6_K;euLyO z_(=8-@1u#|AZ4gqlwFM`xBVy|I84k<Wq|?WXT!b^TmJ;LUOElFcY$9Yayq}hctPVA zlFp!shf(BomMFWd1dulmDeDac0$EV%UpUF(`(91Q$JjtvB<cFNo?W5y1+yQu)V~T- zLbRFiGZF7ww52Az{v26NeSD&t@N&TulY3(dQ4gnPSFrewmx%my?;0OygSsEIdmp!c za2{6KBmkL?3eYdlyhPU8h<jp(J8~lHX1RQT$!$OGy|h$uQvNpkP9Vj&>iLr#Uhql> z1j!ItZ9RETRp-gx0rV>MZ(EzsrC(UPMPU$)?-0ojh55hC7Zj91)U|`CYt-uQO44Pp ze=Sam&ya7pmBUqsI#hr0*K6s1IR8qrAI?Pbu!oP3{qTGfl8n_yPO)+Zcn7blvAX|v z?l++J`2)Sgr$SDQ$3!<7@(jLik%?|Hww4Rykz$NrTfsp&B~d_l;T>@m$>u-{A3O~K zI$mLX2$J!Ra2yx1hN1eXR*ZFqgWtBNiu~>yMr5pdEY)}psNWWBCkSug>(&v3s<oY% zKjV;Md<-yl0Y)lcs~A?Fi(ni_whGrVKuZb3my#Ah;H#_R>el5#0hu5);?*TM@X|a& zD?Bb23PW#0@mums8y~T#2ZHV1v9Rmfx?GqbeTV-%p3+%F+Dr%qTD(^wc?4C{_T0b! z^AzVD&O&Z!+RXrKyESZWM$#cEf~2-|k-Mn}dC_4#&xIGq`?}wBa?iWXSY)49sKCD( zqNil`dSle$VSPwBILiB!pG%VDr^>}2t`Uk@fmy^nLvl7>=O$y>Y>g6T8Ie4KRSobB z4n!f~i1ES^LQ=#Uev=7GHovVt&`gA6AHI1sT@xHg$vw%@q?~*x+=rBM8pmA33f(R= zvGeclq6>%FNWO-ABm0;3N3sIV-b;~UZ0cCb;r;Jxd2Gr;@D@o;c>6r<&Ng`o5vhS! zS8%xAt3BN7%;#8zU5;7#gQ3W*Wksj~FZFb(Ndt{PACi*4a3S%hS9bT`Uy9^8rd>o* z+xSSnx<A<BHR9~CS^*S1V2G;5b|+l*P2fIk>~;LS{oUUNO9~%&9WttNk2Ig+_`nOC zc4r$*Ci=2Sb7v4V6Xgui-rzMk=}fqa*fF9M#slX-{uwJ^P)-wH5ah@csjF~GVVHq@ z0ap?T`<zHImfLUT@RbL&BzVc>FMjntJqEEdHVprD3bhg{-O@-F1MQ(zWn<>#i`<H! zO#Xgm(>U-_H(VWeSBUO5>Ec<IsQ-}LdhitIoda{aMnK4Z#ygPKE5DqIA2H6PHs}nV z=43r9rxQrS5{P>J8WBmi!1X>McMt083b(ns(6IcBgntD*MwP^#rNNpt)N8hyZrhkL z*Jqz%ynY5zsE3G#T#X<9aa;{R+5yc$)~a*j|738SBcSrZr!sU^UYVlGbw&QCT&f@| zi6RfB*W?qR8YfbWf4A!Dd^I)$c3RksP$0PkTYy9I_&b|Uan>k)^(Gi87;ziDh`W+0 zd7qUk`PF#HZE-cg`HO#k53P^O-p;{)olND!1~IA@8lnouK}t`DWN=*TeFnV`0DhDX z{@xz}jlrR?ffa=bfvE3hFvIXS*|dJ`_e(h(+)ozx;rB2J6@{YMFl?SoUC~9<6}`t{ zGSG^;2~ATv7j{!s*WAis=YA^f8$jCY?`E}RsRK4<#*xbs4qPVl2xML{UUqN^hYh4X z1WD7N>TgP@!m4Ci%xTd&b>zpCXFmcQL*a6P*l2csdKqP#C6#TmOW0tI>eS5YAu$b1 zI}~meg#woIOSlx{X|j7E;a&k<sHH=pH|etL6)M~K$SAcj*zBFGXBsmYZPFn;byR9| z@&+wfo+w+Mc0yGT=xai~ajwt%8{#SXBYKS?*^K0?8{a#{A^W%9Rb(lf&$3HIYC_qN zVtjh$tsM46_1q(qzqoz1uDKksVYow}EOxL_%qOE5n~dZPqFX@MNbl365^6VS-yjLv z+QO8K1wY|}2{J3h5)TP^S1|HMlX-vO!eH8fuh!^0hD0@_Zbph=>}jMlrCG|-tuGg5 zUlMEY*VB^h%WszI_T>NrwJ*m}`|`{M*q0--`?W8LMLTs`H~Vs<hShgFShU2xT#{^G zo}H@Mm!73yUrx}_n2~Iw5~vtI(B4AQcld?dXl|&ZDui2xQuA{{ujc1C&HOBozQa>T zCYhfFRmA=rPP+Fxmp&;hb<}>6*>lvE_Gy5C{V~30eK0&JQNFYrl0iL@#CG%ve_2Xy z7VK|{_~z64GF}U^k6+bzilZ7K-x|fwJBgrskFa$%A=Akcog}!}m!X}9Kb{8vik`V) zvB62V;=@Eb8Ko2HGG=rhqxGT3Qc@1WT-=pPL-(nJzcQqpFg~iykN=ZczbnY=t7$TZ z1j_#{wvxY2_uh&TS#IU<q<5)yNB-g$R*`*V0r=$}(`s%{vQYor#&aEj67gnMlqs8| zt`d5_s9D1q)^?;Ar(Ld3xHU}w-wGyyjVXA98{;Z@Fc}5I-dxQCFEwfGuSjBl#fne^ zo0qG57z;d-nyNy0<1j8kPe0be6I1lbxdxxSC9V?r=L5g)ZZBNBkJt;0{@I$*APTnF zO$-&xT*nkTC)eP^6?6eyaXV4WL+HEtbp98xEGQ_+Y=(OBk|~5FdQgg6Ziqug%|XD5 zHKy3$H#sd0(!oEqx3$!ucMz~P7BQ?We)1M-P;_w#gQ6VV#w@>k5De$cFP3un$_8Rp z>{v;N1k<)C6dQ(jPDpE3tWGj3+Ka)g;HTfp;m_;oQiPD4jbt}j&Hcrz2u!aD-#3BQ zo~AkQh}aUx_buV@8}-Syga`kjIIf*)fGzQ#$r>x=TPZ6?tW2`MEU_FsV?sJZ!rDwm zId%n-xd0O|skm>BhIVN>a<#tunM5y=BO4LN)*7JzXAP%ZFQnDn>S~Aq(S)S$q)wKE z-m9hHj>r436y~Q|3UvM+P0Ej^`(IiiMU+@cElE4+)T-j|aS2y)%uy@~tM|Bs>72e4 zit-3p3XO1Lvb9{8h7{w^FRS20YN%J@&&uMoJ~I)W39uTL3)2G4d?3r9uZ0!q4fH{S zDQhZ_a`i*(jynrsoee4Q$tySrc?NApYWjf^sTfU{=}Mv!FDnE6P{j1Z8demBDJ_{Q zE&S9ss=C!BOpo2na>-ySymKj)no68Yp;-EcvVcLMRZM<k)Yz!sYQxu&U*W6{h}947 z`UKn2#=z3-^*=hg)FeO`lDReNT>OGEw+@_7SHJuM_xIKz`u_g1uJ{ky-+yT65r5z% zi%bo@7mGzAB*ZU66Th(T>KiE#@oON%<-t`8!6@PjK>j|`ynSGdH6@HOlwJV04&?L` zvOZjWznP?Kdk_BJ(~FxAF<GjfL}kf?qaMu+OSt(EuFgzvXCd9r8UwdNFgt7aAWEZ! zx&{dx3ezi8#&}(`R07CAi`R$b>rhbj-hu4JJ0hnz?{Xv$B=(Dak5+%@a=MJkKc)xP z*kILt1%-?<<^U-Qgni>cU3FQbc&8043|aFV*w|Ti(%(Mr-`dz2@ALkxmcH-b5|vc~ zrsr?%iTI`vi*M56Pju70+1iezXSE|_qMw@iKt79mdJYQqrSa|MBWWLAYfL^9eO4>B zY3hlAz<i4S%0^f*=6tr4!~9!hef;GzeSIt>>*KHTQX{}vT}`B{CChjNlG^a$YvQWE z_{YoG7Mqe9%h5g|*<;3w^2pLS676-+sJFci@cO~#>skE-w~+2++xSSf+Q=7h!DeE= zdxat-?UN4S`vxX=jyzUs1Pf9gIf0~mg*K$zE41OijVA=(M^x>973!+if;~&(YHTo4 z$X0LFvN&v)EoA=O0>v&%iIN+D<R6*bGCUpw@^|%=cTREM;Uf8I9kr5UgRD^~byO7! zM7=K)j=Ts*K7&Omf}}G}^<W_E`vuyxJH+D1bPIOsnPhS5Uw)|m`9sS69Vj2E5hS5} z!q*gcl)dqh^;&q}oKKf>RUv%+o77w>B%|#w-nE1pD!X&(Xh`NHGl##L4C61Cu<>`1 z@y}+Jb&wf{a;b6CeFSNgby5xco7&@geUE<bXCd>WiO!Gv67%ClT2sNyh4|nfv{=C8 zj!FS`W=*7*{xE}?;D4F`L$2Ac%jS_j?XJ+hKXBbrKK?X^9U9RmWV=aCsySvNQ;5hE z8UKV>Eg!3k)m(xD?z4f7>zP~PYHTFhwEIPN`bHFH#*(<I9T@Y0E$l$rLv~xROOmsh z`_l~<gcaeRLAaDJLN{e#Pk=L=UN)tX3CeoUc&e;zA-t@V+KVS|)qQ2eTFlC!lh%@A zcDLR}w6;zsjeq~14OZ)#Ui=U1N>giN$mZCf5WByJ$e(XKl80r!b&9jLVDTzYwkMLy zaN2WE?>fcNVwT!|7f;gA#-8mretU)%zuiOmg#yjq0a_C0KKv8C>X2SPe%E&zp4Zdf z|8F`IF>)N|n;<p%qXr~3NKI}0YeS&suXg}+qrn;`|N5Ap_hfXde<ho(QELknan6JS z1~q~OwqjeC3**57KqS{GHTh2(rE+1a|E$4lEU`voSCVer`3x(FE0+sX$<j8Stl1OD zx?_P$Go939<*5pl1fqOUFmUw7m3;>1nMf8#zBQKcu6-qn(-dqj;Y;=fTD(J?{F^7a z>MW-}nnjj><mBJ{#IUy5C5eK76yw+XS8}^1Kz{$vDbGB;6CnzMi!8iO|0n0&QrIOm zwUzL%nVkH#NJ${-8|IX0{zGd#uByRiJ}?Jjpj2Njjy@k}b^n4<5wJ*mfkFIJ4Q|De zMJu}g?)Pz(80F&w&EBE#I<*2uVM%X4WgjYb%;7oyzrkGc$TRpiPiL%s$SpNV-&&*E z)vko%)^%}JB^H#$$-jBRuy%?|s&_^@GE0JC?|3o}jTvq!;*!E`PHkEB8lgE18!mrZ zt5K{{){{9E?#7nZ>^NA$1!TdZ>-U*GnMAq<N#8``nZb77B}g%DZe)yx^Z8I5tmOg- zkR-hbguQ&EGt=K`@DAM3sj6zsxZ^)`P0V1$&0q$7(xy$^_2>JpPk*VlcBGobFh9m7 zG&n$&HK;Vvp~wAT`AV6A$kEzKpbWsFr5F!JHQ5;wVt0GV%LNPn=BF9eg#ixv!&%_l zp<}z{w^~gcc{Ewqk4L&PgDu{fXX*zMW=&PrcK8ouASnWK(Mm_-1Ee^!tSuBmi4Gx2 zr@#Wc|7%7+TVJogfcj>mHU7w^VAN;ClT&#@SMIf6C$HSGJ<0R`JFeUPs$>Jmb4Wp1 zNUFDnH9LN7mS)InUNCmDWG2)8)h?>D&CD%Fep8HR*+BqHXH{G*c#~i-$QePs3_scA zD%z<54RluE6TK6a&qQ)2l8&oQJBUcWnBg7cKXHDmOBlY@CGc!3FjzfEgmL(b25+|i zL|psDk$lN%bVkZ0r<6P8UnO&=^)qcLNy-nJLyafxiqZ?q5BdT7yM^cVOsu(I{;>Vs zV_b6mC(TDo>$kLc?@4mo4$XwZPn_>6cITzZUwo%WUwUn^Tr3Su_IP<rbnQi^SbicD zR|fD<pK1`t;ZaYe5$7bAaQhcMHX*HZK(Kqn$J5Jn@hS)@GlAi>7fxdR#qTU2w%<@B zuQB1>Lx}lv724}C(J<AhuZWho_J_@Qzz~SZ^YQv=Mm}E4jCJWaJFgbW{KCt&QPLp! zW*`_vv9YX<<HACSuVYV*nh+J~%d>;SW3{feT6?>Hhu{2TL%06112M$zR%JU?YkO=Q zt)-^!(J!6O*H6eD$o|d4H;~<g8B+BXhXF}PkiS#)4Mb;-TAO1=^ec3x6GcuAL`qg3 zQXFQyY%mQ^e1Q>8tZ)0Vb<4o^mOes}PX{7-)|ikeyT+Kv4)!XvH){-K_{}#Hh7Uus zIL3q*4QAG}YYb(%)FDa@8aqT*Mb6q1yNtQM0o!uHgw%!}o$*4Q;D@iHcf%`LSM}eK zpAVuP`LkAQ9Bo1QNvINYdF$sXbNPY34me<bE={U`<F$kS!IOR-*Y_PJWN)e-3Ab=I zpvZ}V^sX~Awb`!YlJ1@P%e4>&yXW9q4o}>y-#gRZsx3-S^qxPoAR{GzsLI73)?EKI zK5vgpxQRo1T|y<@zPJQLKHy*eEUt#EVWbQ@eN!u!WL}1$e)~|Q7~i|8mBZ$CxHx7| zhF17oF}`sVy^4ARQMGGO!Z~@90Z;rHy%T^2VrC<|)5LGNiCuzSq1D$7HuFI!*CgjY z_s%H}$>V=U{-_P2Y<z@#vLCNrNUxvQa)Z#1mT~yT=i(}ohTZ$lDb8Q~*?bxaH{7H} z!nxkjBjM}-_Az#yD@2A=AZh&N(DKjFG8=y|5Tw&BmmlpQ3d=2tM?0+H5MG9;=h_2% z#A8S?x<6RT;Zwh+!|Nfto6WDXWoI?JQ~@q6h+L+<qGe=B2hf(aCQ5)kvTg%WCqx`z zr8695kryH?S2uBbauvOgn`Kp1CS_;Q)`q6u8-~)h#G41R+@uiRI9OFf_&-;4sVw-H zyq!Qnq;JE&H5K*v#rPjzYuDGO=THBT^=aK$egC5vpG2!Uytz6~lU73w_&9-ev~T~x z>&gBDngb}Z1MW3uW!4N7`MfY>KkKbQ%ERi!v&epU-2+f%HgYlxDYHf)c{Z`#7o%Vc zQi}IQ7ITO%=|a-1QM*{C>M?(DrJIV9WMt`y;wV<1Zuuxv2tiIO%q_%6Oxpg?%$#sZ ze`%%SPfb1V#m8TL)^i;kqxN_H%5OfGls^{BgtI3zk`B{uALaw^avY~NN=H!SWT8`P z69?6YV5w_sL;7wYie#r5DIRs=5oGV6HZkb7$iK6YoRx><<=2^za`m6Wi#cR(^WCT? zTjta2a-|xf&>F?_#z8@MF!C(mN+e1+mXr8SYqLWwV`b)b{^Eg%Fg90|v-0rNEOrHJ z`E_7excKZFb|yPE+0h|5H6v07erBMaeD~@pO^#1@i+>tn=$k(+9LFgS8wh*QptC(# zb3kX!VPtQk<$Nh?P7~J5K=Se#CZrTU@eW~42Vsqi)pTa8@d9hE9Gk)#Z#UL>Q&^MW zt}=9nzxd=_w$|3nFyYe~L<Fx#dtEcwTD#BMf-RTO{!;*baIFpBF+k_qgP&?#>pec> zg`VdFB2Cisu+TrKD1;Q_7cVX2@C(mVom#ZZ1jG@oTK$iu9De*)ah3LN?~P{oZSRfw zCa@(k=ITZ!iWTBj8BEj9H_@wjmzlLgNw-v%k02>{G*X<V5VlQ>v#>v!(a4-iMS%<? zHR0o3w6Nm8^enw3w{S5bx8o1&@RF|Q2R~sEqn@G=8;U0UL7}$XZ|WqQ<~PZIh%arV zrj25Ja{p2eN&E4ie;H@@rhp+V%{L=ye!jo>l9H7E1q>I|KX5|%!-XMSR+v;ToThEk z`b%e3EhjUbs~<n}Nl%qBIko<6;{H4&n`6U5L=sI%zNHA_E1JD|gj*)Ug~tgmquzfd zuJ#16(l^)BHDulH&wC=-erLYUfney;%Xa|^*n{PCYnPAYd4+Tsq$YgrIfB+VmkvNM z>a|dVQSq2q_4FqEw*qj?{hhjV6;xzxLDIeu9$OGsV=ts2N!Wu`A-wTKyx;pV^Y!}R zg-{=S8(W<kszUhs6LB?m?853Z<TKkV;xViB!RCjCA%A!%Aq@ZL=kerd8T{GD8YAEC zJ3gOiv!gOH2ctC;l!f5m+t<dwR%V7PnjBmp>itM}@?Eh1q{2+r^oIskg?ji;=6~G7 zf3ogJDgIM`m+CcZ@v)n_R8@V)Hwr1nwWn5cyC%Z@V-GVQigp&_$x$1joT)!-(p(^O zewM-#u-p%Pl;r$~`8E7^C*pH@`cHi$*zRK=zB0z{GzyXF8*bwx3(d-3$;VA`^1pYi zbeKHMQF2BFo4vz`dV%4oqqOMZLUT1bLKjwlS4px@G>@!zfHhhbid~w{FFOQDM}Z5W zm=Q@wt<gZ#>!O{bguk}X%x|mb3%EeDuP~$y+i2?cB3%`}WNE49L_l$p4U*WOZv0oj z^3QL6s{8&M)E@})rh4*GDi_9WI!iv)j75rZ-=US<u0mQrwuZvD$>qX0YczJ5rd&br z$;@5ygr-`l>k-~Ww|~p-zxbx+z3!IgO<#b{(`GT={-M@~((Zkr$%u1J)m+2H%+JM7 zq|VQh4=-?j_B+3Joztvl3OUx2#y|OfN_^>Y6#29eNgokIGanf~Led!&`KmD3&Oi2Z zj^l!=Hx~t)A0A4^*Z!^du3&p?K(IZQ5o~`XKd5?h$dYY8>$?HgJZm%BVvZG2>6U7Q zaYU=Kp@H)SC9cXf!Z`JPSbc)3?|7nqc@gYp^BdN3xNJRy5dDKbGB&Jb`GMEd=daV} z|Egch;iC1aw~=-nPuY(TQoH9zjn&tuy$yte_;j2xjn(JCZ)hN52h#BW|7hb2+7iho zBsHQ)Yaw621*6_;5nTG-fTSj3^RX#-n69D9jV5e+EUx)22cclpH#EhSr5KM+hQ3WC zeG}K|oBD~zb^mpL^$#x7>?_$QzY1BxkG*<|vo=?SVk3#E#4%F|{;KuJ-uTdXB#&zf zWcrJvvxs4M49V4Ie4rz)x}~dP`;lzCgaVobfMR)QZzh9cVo=!pYJ8}KfI{+B{^ExK zmKi@!;UIaV*)44}A*tGo<ZALa-(Oq-FTH}~tDrtVL;2rGHg10fQ0{;~xxXQQBx61N z8P@O$*^ZBcwiECj&}t--jnBNoO1#L%HT0tyNx8vSPH`?iyZ8>$c&~BME2m&JS<!&^ zAC0T6dvpUvHra>xE|*c3eSVhj5*eAGx{Zv6+UF1TjgXPqKHuycETbIz{2YE;&vP!2 zj|tuDE6xaTcx7I^mjG6Dw1-I*+n%VT*Z`Z|zo&t(@1KhT9IhV~S9>_&zdVxSgpVY) z(C-1%y=nDJTKJcwgRlHh`2E$d>YaZKe;WRoj{I-%@6p^e{rk(||26)d%t-^k^zi>O z|A;cO4<VA-$NF(kqJEPZ*+=@ylJ0PTyK?56*gb9U4TT-%40d|$VeWW)nb|i13Ygf- z@_jjEM}hneg*z*Wp>?e8Oxm(fEWY5MDa!fYboZlIcB5}@GJW$+KqIAZ8l~^j#70b~ zZy1u@`N%#$pWhaV4X{RI8P+J=IiFgKYX1kx^z>_gQU3adYL&0L>wt^ZAN`Hr#r_WT z<um$*Q2GdifH}RM+V|-HV6A2M9wgQO$Q#tN{znJ}Tlm1SbmcD;Be#A9hj;y=1H8cG zS*`tkKKKmBaeEvFgXR?#l{t{0edee;(lOiVKVfhi_9g0v_|F>n;1&w-iN7r2@ZG=Y zV8xu2@s})E$?eQ%Dd`~=lle=y<p-}ka865qT4M4S*I!NVj);8|ryJ{RdM;&v3xO7Y zxt5j4(8zL22i?-XP>k2MhUCXm=@^tBd6MHeXRU2rRfy77wU;w+rOHCJR6687bKD&{ zJKO0$X(%-`x&566-#(-m552U6!!JLTpuOtm-f4gSy%gF9Fxsz7OZ%_B&}iS|$S}k* zH6q`kL{8*`Pr#*Yb)F2T|67A=t0$v(QtOdoEFz?4CXu?Uw0Baw{*glJvYC|BKwCOe zzlv$30<uD9t?ehiF)5@uVP7LE#z(iTrN<1S<PuiH&B@jlYdahQlvtacyXgKW6R8bu z`!W8p>jrS#!^8N^KOVqwC48Nb9~<C&YZ|0re&id2{Hnp1<E%Zm!8cq~Za0Y1>36a? zj*Eqzwdbt-mQ@*qS?8|sj&RnVo5ly-8T5V$^2|4=B+$YKGBfFQ)*jc^Rl-gB`9%x= z__YQiFaJVQzC-*gA0vO4gMZ@pnXJA=3;(z!ljB7D0p7pE$Z>P|x>*C9wdw=Tci@6R z-t{qg>9PN71XmbrG0>rtNM4hV<PBz|?iJ+?CgksQpwUq@u@P=0uVuksm9DMJg}I_s zE>wt82a>vw^o@2*68XzAE`-N!iPNh!kTfsfU%YDuwct*D1>+;ib4;b+OPXVXghf#% z%!W%^<Z_|H#n&wt=DPU0Rl-f8e6Qd^(#LLTFDs$80jkL<LmzQV<?rKCsr>ymx03Td zQWjy?)}>~`J8kOgvt5d{9)i#hI=?Bm{|?cEo_tZRFuT<TQC@8-wI5$Qh(Kr!Kr<{# zEn?yf=+sNgXnlz5H>dQk#R@5iF22qs+~ln7xFR+NcYK-B*TiqM*WC!z8Q_*$+|s-H zC5#?XsxU85a+WPn%KyogDvNLlpM9Nk&m6NMmPH74^4l7aQf<&Al*a$8IIpVC+H;ob zf>vuL^mp$11<u-Y_VvYZzV27E_~1u0IEa5t$t05W9+EoUhfX^EyPHb*x>IEAOGm4v z6VH|oIw?x6t%E2`XLWX{^}`H~D^czh{@Yo5-njk}3hzHeAR{NUoc>cEJN>((1WM_k zldVnXpy302@DCYel9d@s?FS#el;1os69lt7)8MQ<YvBXqGg$q1XYE-l9~hniJ!%b| zgA>4kFD~Km$xuQ;JbZQ~w^K;3Adc@#Q4rTzsDilti*yR&y?^U^STR2L!V(T|OhR*& zyLUZQor>nrl_2LK+!afQ=Z<7NHiBnl5}v~AS8_Y^(&HJDiszmyX?M1zMH4@rgy!J$ zOE~<}6A3h{Q19LO{oWKbSq#mzv}pcsGMc*ynvx_m=Wps2O;reApNi<2=@ilK&(k5A zo{Y%w{1PsNTOLnfda`#+_|TsJhrK@!kE+Q2z~SmnLYgJq1`>?}3_-3KMwB$dn3hC3 z*nw)ekpMvg1cyap{5qqMbO1GILZ^W{mn$tYj-&Yfj@!77+b|J?8Pmie1V)zNLI^4# z;Eg>hi(@v@_kHSA-MZabfLVU;^S;mX`zPt{`>8s0s?M!CRdtpqIyc|M#%F%Fg#LCq zg3wbh%|%*C1f3f$LFc|`I{R*<{QS_=9htj08FP)7Xe!Yq-?IFDz1nr{&R*?0md}#k zr+pjNv3x|5nSJeqZ=(+@rtOW^KX?3iN&Qo(LcX(>p0zZVvIN`VSX{3Q^{1z`Sg+&x z8Lq|ZI1g4b&g0=<N{aiu&Esq-{Q|4~&STYM7pi&_Z7>~MyVD{`{e#L^Sx{*d6`P}) zkSGlFSpSJm_4g3q6!ib`J;a9K`7`h2-lta*+yESBw3B--=QCsaNB+gUpW;Re63@@I zlZUV~Qk@y`+}4BQG@wkRR&5JO8zA!;#%hw~s@bpx=VCRF`i|vGV4I^RjZCJG7LrHl zG|-gl7ISx4>3x?LHxQZE^!|G9Ps$&%ATI=x6eNiMIMe1K{U4f1hJUIZqD1I*A;IXN zWedmvMUBq|JiJy?+!tVcPGYs+g~;)rO2$9*H;-ONw8IV0BZQ`_Lp;+J@u+9`htri` z9<}8-PnUi<UF~-?NA=jV%AKe%P-?^e`leMZfNEO#t;l;DPmCo8$qV=tdjWsXLP5O} zl^^UG6vb(1L{w>(P^&6F3Ir#KO)-S1zrLwGe7V3&+NZlOCkss%y0;M}`<rUIzgZo_ z?Ps<zc{sx4<SdhigKUGdhslY?<mWgjC3m{8yxG|NEJ>V=9F15$q-`$?>j99TUr;H6 zzsvCZ^B3P+vUG{}Mj{`-!0-QRk#|W^O4=&&^&TUOo1-o?%p)K41houFO_+ON5t<@Y z#ai6!-TfZGdJqg0e69Af#@%l5(FI(Y@wE;wNrcN38s+wrL9>x&UrnYiBkCPPss-XN zw!^K<jPo>;8Zf2K8Xn-aIS&<sR|_c^y3Y7SYkqhTji39cGE(_bUV#zlmwPZW!BCeC z$MRW^e1ss6L;nV~PtQdpanoxE;q}x$7&{v%ZBjUNjq%A)13L!JMp}AVSl{iA(QhT4 zM#JgVuO5x{8d|>O8UuZRp!>ju0|k;&H{#}_Fd|dn@ASWtg(W0p`GRTg_0qV>V5hbl z`@+faey$iRsgog6@V1YPIZi%=n@{54H!+f$xXE+qWX`BV9$!mx@s7ek(>0K7HJmK0 zvx4c<Q9SBA_U%f>>LZ#*ZXtVKY4~p3{3UiCDw!0Sck%a8c^403b-X~@KlNeKe)h9s zz>b>f^)~Pff^W0qV3~R>Nos5|Rtv^W0duNWc7Ag<teZOU7FwOr>2LE+e><Yn*AJMD zw3>%#r-M%kjRrR}8OsM~fM_EpUO=yBF>xzC+{R3b&cf2I?K%_ICApe@`RD1&=D5?& z?Yitse$&Nn?UT~F+P3oin-jR7Mx@I|rxVE)T}g*t>U=)(-j&2hRpa))J{xH-`I$Bo zz;exYJ0K3w?9$)77KZ4!kNkx04_fTPx@lG;{G&3~Q5O<;9M4hX_L5n^x#!Uzn2oeo zbb%Zf(WME3CD*#eg?2i2Qbiu3&YP;22KZV=gAT|IWQ8iy?(0jZ;sAU9{Po^sb8%v8 zQ8BDVotCEltOKE8dL3DrMs&9_eHF1X1tOOwR_G?IW_TneHtZQ*Eh$pimg5XUp)e^_ z?nE@;@)~L%kVKY<66TDVZnQjrm8mH#KX2*nSdH`k-+ZKvsbnz^xWKD3QphB|o27?; zOz+SutG!#J>H@n9vha<8OQ1cPHUObYP|H{?{<_c{>P)Awu(mEobts>~TL*T9ry5p* z{FPHAF<pBTnVnD8LHQ7EiM+QdKvqFZVlCFIv2*vMKVV<24eR^6ttV@nVC3)8=36>f z8G0Sd!T0UV|6<3<ZgO$0{h+H+$iQwFP^w?;MUnBNBpQ0Vh?*s;arv=#BJEFWTG%Rh zJ^W3Dzv+0pxe7|+^?19v3QFP_NcZWe5B(I&`*HBQ46J6}xn~g)s>a>oTJKG~g-mY2 z6S3IWW-mKt82V3HKo+&@VNnZc4~M8p5#D|K@IEXi6Ag4)wEbE#sf~pYr)-w$E(nme z>aSgUBbFU2OX`baepuJ(6mTk@s}Lzx`qsOwRE5a5(peo_>8ze>rL#l2mCn^^G}`It zenf59j%>#GJ?stZ&{d1ES|%1^_0i+}a5UOKZzmXP{R)v@-YI@bRadH;zz0|vBb1KK zfQi&QHj7^~0VJ(<)P;tVbtf3g!0Pxfc9VV|^3(NO`h5?}3g{jIP(B(61Ibo|c2|lz zndOP7f5~#%E*9*S&<J6GTU<iEoMm510$7b}|DXVAPnOd|V%jMf4rOSEVLMiFx-T;( zg*z~k9t<UF*B+zmIQi<42T@DQN)f{<Ysa;&ROY0aMwM=y0=?>}C$9==Y^Xoj^21t1 zOKlO~wouiDx*Ts1Q!K3Wwn1FmonkfofAk<fpEmnH>m==eEp_ijeSM|48~U=JNa~3$ z?iFp_l)vvZEl-%=#^~p=a{2IoE0m8Ieph7q8+iFGwEgO|;iQ8I57@bvtms>T!B85k z=s;p0mJfX}oURRT_nwWkP%+Wt_QIUlz^js3HSz}boz?`F_iBN-m}-!MMq02_EMjvG zZN-qQ3E_nn>YhzoW9Szai2WsR747WxNM})eY3<{Ok|yOB(~*Yi6oyq8mJJdaJi|{M z%35~OD<v$qYAe5{>LqQ@tQeympdTKJXv+0w#~l73hW5(Sw%JJgWI5MvNhO7~vB{~U zcDs|UeXu%jI8ic37-D1e=3?7yR2a~nSsu}Nqj8-ZO&e==<nA*O4W{~V*M7Uk_+;p1 zXX9rh?S|!4FY8TuXcaJ=IE-w|mO&DL4Pv>4=Ab6MR~X=0XR?LPQ!Wb~2xKv|&fk%0 zKVC+M7Fp;f&t>6Sry(FV#+jXQ`U(&qmn?ygJQ;`YPgAyRCR_GMwqD_Ey%NFJHH3cN zvIrd?2Hs!4dK9T7Qo;YO*KDMXT1I=Epdu9fonoyq6COYaftp_!XtHqqyr1<-^m9Y( zwu)(N1Z}*h9w6jjdw}Za@R&>KQO-9XdnOB1KPM<jjg7(TmT|SPD<Ud-VL;n)it6W3 zM%hBEyR;l=akG&&;sK_g3ssw8Dypm({C(SXJv4`IZ8nVCZFu3(-A!*uGIKVp>sPeH zq5f;I&v~=ybGBzBope3vlvMT-v6o>sX;R>R{t~4|y$#XxEmp_Hz`H=U3h+9-_f@yA z1I<5j$*%Z3b~e(I?~mB3z&hJ`t3npxh@A>qyCZfg$wwo0D$^P+zf+k~b=jTDhs{)f zp!(DJ_(=Z*x0r&rUpL~~%2Qj;?+f+8>LiHGEuVwSq=#wd5v-(9{q{$pa<dg7<q`X# z?<K`$^L;%Lt8p)$EJ3>1g4N7<-aLezVZnbtStymX9K~gGR5z{c1sTc9;%3vQx%8={ zx@iJ^^1L?>=7+H09~V_}YaBdZQ_P<yMm^7>&rh1qf3QS8KO9TTui(!=HlH^wrBClJ z$z$Ui7W`YI%Abn?O=*pFHk98j_&3w%9%Yp++fm*01^_Zo#Lh;vey_#gZ7zM(D|R-E zF9Of=`13GmVVQ-b?dJ1wQS?hF#u_`D^UuqVr_cTnUH=crczzV*J9BbO)bo!KLRs+q zQTn`aSrq-PD3boQ6tkv;_uuBI=UZs5`I8pbzS31$LRA`e><{4Wf3i>~6fC@Tj^0oG zFT_#L^jbj<N+oDVC=;uh&sk=J%MvftR1CRAnD3ffsM;+#f>^H(erNM+Ge92Utv%S+ z5?l6VXa`o~jv=spyYBg7q~%Tz>sYUroYkxQNJ_um*^c@^XgpRkZ|OqG)}ia!LREw0 zXz=K}Ji#WLXGa8ueI8$%t?Y}?J8q$>Uz+5o!+LeVvpoV)CpoLjPGB{&5p}Nnjf=W| z*~Sz8yOb=BDv7%*YAgGKj9-_cw_It_8@d#|*sdGh)|+)3^qQp$vcCO_dhOjSYRL0? zUZ?6y+OLp@d%6@&r!9lA^61skL*;R{l%2$CW?JWB!Z6enZtI@=m@YIvZo4w>J?e71 zN8gj<uYRPzM?NPhS7Bv^%~2h?8LOFZggaNex=q(73spnxlA{6Z)zNhZu=8x$iO?HH z3*Ab;wMGjUb*XA>R134ZYhf&DVdvUz#cJlDF14L%y>xACeQt{_YY6?ZyDqHm=v?LF zt^Y*<TGXZbv8~;Y<t<&1wkvE%=dJojZ+6|P|E}c{H*lBB&qvqi0p0pvS0bziklhHw zBL~eu2k(%djaUa)WBH(V_<iOTAK{Me+itTXgi5otQfpZEW&U&kkDr_#8p`e$KVlb` z5D({FQh>(kSz`mrhiFyG<M36Dn|5#x!txhHA(hV+2DFEtXwg~WrwK%;f<P?8uo{;_ zpo%2Av??*I??x6QGGd;XepU!RO?Uu{dWdD3qMhBT(@-5<Jf`pbW0VnKt?55hiLl(@ z`|42~{3;HsiOG)YPz(_pUrX%jfmj`~3oC=Mb6;u5a6-X5xaPxwHmr=><<LW;d|$<2 zHSs83*T+%K7N8oe*LD%YBiN@C`S|N4>`$K$b@X6=y8ey-hW)9P)*o#jdgB}aHT%=W z-*i*|N3Z`sVt-ni#505T6{@g3eVUz`3I?vszVI^ktFyT8f`U^jEm%#uPM~iUXv4|M z44WUKyt&0RtY+EB?!c~9?9dI5H&@Db!?PAAM>yh;{nKlP<^SfM-|xPbi1SM&Hw7y* zS$;4`Td)lwRQ^yp68vv6NAHEuABsJI{dL~t@>@rg4#GO*P;YL;!S;#1uPoSdl-@Kz z{3<nWtZg3B{`jjF9jghw`XeKS)<Ud!2+zJ?vM+OJ0*y{KvMy|dQN=Wj>d^Q#i_!L< zvT!~wvXe-c)VSH6MJQ`~JT-l=|ACr5VC~GfFbz=>sG$bH>0s{g#L2~I`*jdM=B0}| zn_s@~(5VxQqd5<0Z)9`-go;-U|Af!Nm+?>765(G=X2qnJn0*?|mT5|^-Ctk&Q_7Bt z?PUB?vAhS)pSQC(inQMcVr7yYawW{O(fv)e_a+*cL-vX(SRMMa4~h|16TXUVqVb8( zK&HMy)X@)oWFbjPIuD_2I6Z1_zhW>nS&#PreH%r@7gwgzfMnpot2pQl$Zasfd$If( zZvGMn^@+Z(E!Yx<gN?)5li;HIi@rQ8duk|2tElBOcdDdJN?~?(DcH9v1(gnfTNLG1 z?Elf*w|wFVBZCPH)VlkZpzSx)`|}qr>e`dv8iTaqpLs}&cZc<Ww&>-sens(pB0@ue z{lgZ1BU{eJ8P4lfNG1?x^PK{Jm4D`;fHwFk@U0w;)wsZ01xO41j}Z?+Nx0?qlM%rN zXtj<XLoTc)ojNj$?cWZT_9h!^YOx?6#%jWzPwqsTFRMlGT$Tl*&&AGj!ei&?jb(q& zAx%;e{yym>%5esTwX4jCvyg4cEn-jbcrQswdT!E5G)*b9+NLXsR_tsqod5wdCBrbo z1qXr+l6+X}wZ2)etS-&z(g1}NP-wb7Nj_8<(As^?I`&tu7MPHF#k3|j%Qb+FI4ezK z;g^JwlTJc*0c_eYlQw?<RVN^LN@fGgAr@XNntaIWsPkne_ogPAS%0IGfU+!wuJ|}5 zfYqVjl$}D_(o-EeRw|=PYs<)rqYl0ILLT&_n)!>*W+9pjSB<;5;uO;QZvp?@WUMCL z{@E;g{&}!8(HtLWRm4yY{rFC#9humoYqR#iA&4Z`X?Rbx$y5GIQLDe)(b+$1WJLUi z#`q$now);?zG}(mdD9JVSxtB;tcO18Mt(PTjZfqjQv+Cy+p=;#(&iMku!v}o!}+uL zsI(akHQ|W()^4(<*fe)LSTYWcnTNFGBAAp1*kDrjW&YMIZx1DCzhmX?P#)X5xE$oa z7{$LQ@{N?#7sVpoxF1?>hIq7Fj1Vn0c8-{8i8un6H?Z@?N;vA;?G}eYR9toZ|5%$4 zO^9>WExgmqP%`^rHEz1K32FcHHgGn=YDB_P<8HCiC@n@ntV*Cs>a@Ul=n>;!R5L!b z7=}+SBN*hth?@pi9lL2z;jOBKa@z9bi@IDXo`T~CnnRI@W*R&ACv0ioTB0AOu!n?q z?I6t^DD!|{29R1+#Vvc}6xgezX@7WC*P%<u8wC9aF;Xf%B)z(zMjQEco6f&=n@RG; z=es|mYnm4BCO-F;DE~?$#y?Bb0sS-n!uNR)_Tp~(1I_O-(*}vPA0~o7vvv*`%1nK{ zMK4cBr6SE2qz>JFcoxFWBc(runS(5!Lwh}V3TYL`JM?W488p;{jR)^U+SCj(0bjss zLOJ<5A)}>-WSLpd^}u3kgn<4F@mtQl&EvP6`Tf5ZUu>(n{uHr9+=f{YvszJ?!>v<o zEg>4}BdJq#EH~4mX<gXxkOd*{Ah%EzdvjKK%V@zb8Rx%#UDz;;$hxylSaUmAHBYuk z&RSv34RA5o>KS#;qu1rgdp*q!o?z?5oZ)*smLul;yjNIr5f0y{TO?<lu;vt7U|`|E zWZ}q_=s<%q2PeHXk{p!e&#)R-_P04mTe*?%v55XL>O5A9b&q@&H-CYH;favG+%x<f zR%lWskL6r>Iy>JJ{5cky8{H)t3A)p;8Ylj3j*$=tA_$d<Sj!y_yELrEt^M6Rq%B&~ zqWdzxvGU0(KQsj5)TVyG77j_whig%Ye`==-y%D^YCeF#VVcF(r42{exZ^<mRVY#`f zBCP8kxrO$ApsAR;(iSbKfy<V|t5*wE<NCVF!y`(+!*afj#wHnc6#I6CvHU5^EsxcQ zEqHhvw(Rv~Vk<SlUH(_rtaR!#YJ=OkgWB)*>AElTT9c23p(M@ySEf9HhCG7>aLux_ zb+bUk+VEywr!oH*YO_D@(2ee8$=f$G0lPrsB+JdXb~kKq<<_QWJ9J&5`sajQVO^^V z!s3SIR_%seVFJ-!2zFx^asU5z6Mv`UviVPLj$XU`b>2jfCTj5WyVXW$O?eNCLXq6V zto7Zq-M`YIr!Gmq`~B~+9{0b`{#W+D$GY49KKtL>|2B5F|K0Ncg#W7HpKmkJgUS5J z_D|<@Lwz~;Ojr-?Cv_x49Y>*#k1x4DHfprNwnMQ*G~rt){`J2QKcKtz4K~}C_HVS0 z?f-9Po{u*$&&Lr8rv9JKY4*~qXi#*$WmH_<(lrVJf?IHRf)m``JxFi~?(Po3-Q696 zyL)hV_r@)_HT3Osp7Xxnx%V5lfAr|Fe^gi1oVE8_t7P|Cj_pcj{K{ESX`|S~x&)16 zeH2_I8-7!Fx^w{v>j|N&f3{wj=y(!e67=P@S~WOV0}<(+k-#n`J<c?w>DL0NdCjR( zQB<9havBrmYD25boz)S@_;Kl_-|qLW;Bh`Tz04JJxsB{71ou2XyAy$(y^Mk^y2Q9P zP2Cn;I>fKGg%hQO{y_C{T1Wh<^XIj_{rtr^s7NrmJQ}f2zViAv9EFL9=IF~8K2(8M z4#b#2MY^PVd@i{OsEIoQr@;hkEYEhL7!)GlN!=adUcG(zS=k@KsoNrrrhE!Gtc}K{ z2O5c$MmlX}1W~H)MonOXApr6hYzI?*N=wzHi8|ttw^fiy2aHs&b=_US?i+zPRkE>$ zVK*n{x2rgv>JqsIy5E*WjK#57?~N_4Cvc{=U;V`>8V-M|*Oe%#4><~iHl0AfYbfBS z{y-NW8D;g$H$h)ytWaf0WNS0hF3?F;*Q&2wUT4pif18G);=)`Wt~r~n*WXw)SaGE@ zfK`7ScItF2Zcm$hH@GIX7Djwdo7#bt3*wCWC{-{9+3(Cvy*iAj>aB$745r1+a8lj^ zX~_=@b#zb45g&3Wk8QicAMz=$N2YxTj7i9YgPX-Uu(##@gkag8NZ%OUUVDuB++J&r zxyU?dO21JZ_efF0TjxRfesuHOFiw&O>}REe$bAI#S*wh2WS1Ux#{{*oI^)aFueKio zBlW~fDchMap9JyXWx59w4>l>D{VL8ovcGm{m9ApTY=0dSIhgic%-}EX_K?!lxD{`e zvg>oImf9XHL==Uq{8SH@{9S%A8ZnWu*v&n$D@@vA;qluh>o~HBuid8K%iH5jZr6qH z+Yzy3;G_SKV*l`7uLs;sALzHrZjF9onxL!T7F1C<ju3QFHF^z<(p{rPan2`kjzi9v zB1qhhZDHh*q43OK4LQx)iAUPkmuU!JLt*P{OO$SC7_M2T7)Q6WGIf5sZc_W4AQ8Jl zzG-7b2_bDMexwx}a&X!D>i4QuO+Ujz|F+Hw4<i|{66saj1cnshPaHQ%I1j{o>Ir_K z8@bKBj1XU2twZL;>6v{N1i-qMThEe1Q=@khEwT5^H^&()77=8l&+W3L*?!{_qMG`! zwxDBw!(P6Ku9=!9?Px$S<eaf&-mz@rpKU?|1ULJEyv@#=cfEn-w+mClW7{W+2ZXji z_Utj~%0yZy_|!)<m_0Gze;m{}rG(8O^oU>w1I%_ZJTxAj>X`~;!Rt+_(4Gi>t6{o} zE>atANS%7Os5(yg-)NhnDHDk)J!NgJ-#K!8G+7{ys)@|_OCTOYst1e-NC%Nyexs&# zjz2`ull1jCOj0C;&}l?>RBiqs&TSjmZZE$!@%anrW7xTg(CR;U-|TjOQIto@Jz4Uu zy?*|)4eS0#5+Y=G%nxZb>XY|%3hGt(UVM!!Dq`-1L}Z)ybt0-tYw=ZlVCHUyVgKK6 zFE)4md$9D=@nzjJl7eBM9Hz%9WX41;JAT&@x9Ng9u?=cKgF&F34^ZnXsHD0IbP6nW z<>~#)<+Tv}y9>9wFs2I1RKw79S)wX6xW4xT3V%WEm4RJX5H}%lmNG@uE$Hp^^~F+) z+)ZCoS(5YEQmf}+N$ZgDaQk2tM1fswcG30S=WE9Aq|=14a_7lEih_M8^EZFZY%Ke4 z4H=)vyM5$`Q;Qt>A&-;tyo$o8VaVzGk!Q3TborZ7CgK0yR13K_QumUabbyQIK`*Y0 zFNHet?<;R#c^do^J0E8T1)h|ckjE5eI0*8i9`}zv6WZj2hvf~X3hWxV&cVgnTjqP) z9d9cNV4w@WGgRgN1cAP83k13sb%Y(lZsNLnyu`^(<q5verD!CjdD#AfAzOL94<B{J z>L8Ar9cQ^m7KlYl)Cuxp-U+l?d3D)|i0J9KeOPUnN_OcGR6FUglcImC?4^2@k|0o< zKZg1ad_@@C<q@S{sIT3kt70@>db}gzzS7QPx<+n!+;@FbRJ^}rG|02w!p3;{XdS6a z7am8tC*qzMzdtYqi1oMVcjezWPjcQ}mZpp$uTQ!UymAiuvt{`h`mt%h@)_bQXmy?v zJ+8aXGfPSVo}khQ+oKQdO}5+!9+x!h8w)63py-zhB?%{j-l|{L&<t!dHqGwMwB*y9 zxtS%)c#b+QhdkD!IG01f`cZ$bGCgFSv(@CfwwV;uZX~d1gGXL(Hf15YEi+pI3<dj| zQ@=i@buN1&XRc~s=-`rKQHxL_SH=1Vs6A$G*nGRZYe<hOZt&}BKzZ@`wmDH%k0_M0 zZOHw`-CHo>jZ~JQWT4U;n`j`F1Ac-)V7DGeKNE@P^}xN}J81qGUei6?yG<0YVru=# z;XDE4N+_mIq3(_l?X1siH~h$2d@ttrsbLQcpyaSb@qCp{^;veO)>nCZNXvdxCzzp* zHz#QL-Mng3@H?~oFfo&z^;CgfFD6F~H$MCA<i@GxyQwqc4;XAYx7VKiV4H>(_`&aP zUQ>}Cb#(AsBFn7Isf!GifGRD=G@WuMohq%Kv)iiM)QHb?DGavT)>Ityp=TftdPzvu zPzp<Z9Gf*}Br%1ZK=(@#x(kQT%lTV()O;w`a29uaY&1vh_V|(Qsqbd)=Wo4py?A%| z{z+f7K(V<i3Ls9@vvz+1Sl5N#PS|&l3uqWLcd_%x<pIj|4SKph<?1-!`A+`0)D#bs zoZIlKxL$Wi`q;cN{sq%}XLI#P?-2ai{w$?eo<<2<0jkVziT`+-`%r31ZcRzkjakCO zu8IZ83A%uipmxNGUw&GUsE_ofDoK*w(D4eTwdP>Z?NBdVnfD~!B;s#KIW5Bx<ch;( zc;Vl_Oa|sx3P1~d;Ky)NrVD%^7Mv-|se8SR^VQc*(Wx<!dUe0%WASZhFyQ<iXHYj_ z{4s6!r>6zCfE5aY&8Y6~Z=_8D-OQJRjUW2koXVQs)zijlpF6~ru7N^E5rt2^nLw}f zD}F=&m%ry-ptSDkH~-Uf(9S7nl4lmAf&A?aWbXXY{ZZQr0?B}${1_WR8wMPQpdYFq z1~Kync_jD+y>wzbS$+unQQa(I7qxMWdclGxQf|S<Hp4J7n-?#VK64d}yfv;=Pf!>! zISTlq`rLYp4E_PQN$hPV^G$q;WNlQ+Ny#N9%-Pl>PMgnsq*OyDvJMC5!hauLqGn-z zkwIe~K}QFkcL|T~s8lOBqle=08}}-d?W#Q4y8S+icK#^wZx<+}X`*AzJN0nBv#_@- zPTDJnc)%%h=r@Rd<4hR`56u2Bg<rK>{qRgB(1^7Ct@=>Edb_h+X|j9oSuJ|ltOe&k z0x3H0G|&OtzATBlg)%5RQ)3}iq$}A_0NvzG?x5^Ph_V!ciQVfxnqN4*)X-9&`X!X1 z4bpH$sAx@JWS~Xnmx?LmxGxRl(CpaFUS#H>nQaFQ^h2n#Gbbd~-lVeUg7w&riv|Lg z1*x2bCwe&XP<qg0KxPqaK!C2I3yo<TP6=m@N>&eLp+CtHwE1LqTobY?`I<sFDHmJh z=1!TT(<q?c3P1j>8X6GW`w8&b=?Gf!{2r;uA6Dw7^)OoI@1MH_=(Kd`pqK2QC{)~u zUwi_-_)rM#zk5(G=ePR|`xJMx@FZ@=paUX{M)k7C#~8nj<zyfLwzDL6{AI6l*FO6j zb60au?*!BQ;!~390x3i1eS_EM$imQ7fLAPq=ITL$-XeY!9e5)d+yUv{ewa)3#PWRR zv0331fL+N;)*Y}Q<(i6J3ijWZSe*M2+leqr<+IBZ;*;^Xa9`T@LfFZrpzSUM*Md9& zZ~BD6qWFwVI+I-}9Y~SKk&s1mD=2(rGP=;q74OfQQ2X5ko0JRP#ITP~dSkl2ncD5^ z5H(~={8C2(g%DT5118=8bVh%?9MA2qh(#J!xY5Auo+RS~lHJv)X#c+4m&lu$1Th6b zA1n<hU~??K3^XIWZ9}d~%ZeDE)w2(DzQDxD5~-I7U^HpA1B}8@J5fu7mO_A#+LI~d z<W0~eK11@vFSt8h@M7pl*7rhQWF$rV$NDUb+Zh3&oW6?Xei#UTP~Tz=3z2f=0D#Um z)e&1`&#*RRm97+0es<*Nw6_B$yLn`3P5>B;3S|=_Qdp-~#n>1Fvsj@aLBv(IuecyW zo<(sK-Or<6{%!Wm?G0B#1?DLvpcEt9KQ_n6h>gaL<|m?7H35%PU_`b|0!~Aqf2i(w z0u^;bIQcomf9W^#>2cC=SV&6Hnw*Q}1F}7dOv!%lz@FToU=%N4(<S?E<{t;@!>)>| zpG(F9H^rA#O*#pl%|}ZJJ^RJ2FxMdd<G{461EqR@=!*<yynhr7h7l5h1Sp2`zax?O zV`RuCL_xHl%1sN6D6-V!Ve%2zg;Xua5VrS;PZy8&B>x`;l{Qg;&R~=E%#9{!9%ljs z?qCk`{tYzlKZxWV{YyhbusauUzy?=y)brti{)5Mif{DNZNj%=a;9yRdj=2$ne?Gp? zAtW%ci4{5^sWTTe2RZ}3WAN0a-=dD@AbGyJ`v4V8=p>jv0ZM0hK!kilf6TsLc=Ta6 zXmdFMK4I`Ak-vRn4Fcm~5)r{rIEtawCscL~Saqdti8cZut+I`P@p!3<*!=Sh`)^}0 z!N$HIfOW`<b^PFIS^jfn0)+ZM^o#ZvHv0xpiS7DH&N1AJ_#fqr{!tG9Kdxga_zzbY z|JQRB31BQ#<!wF>#r}sZOy3gNXd9SG*>Ig`rBc&J$s_q$(Ely3bNWxJ@<kq`_Yuwi z$8&)H^_(&oh~>=H95CnqG4+_bA@>G#6zN|?!I3W>e(pv7N4aZ`k-Qt!RW@WWj|r{F zVZCVofx&-pWJkPI1wbxrXSMr3ad7~tGitRpnt&(|kdM4T{72lsd8cIZ3G}Z>Tgg~u zjeKYOIYVd&Mxv402?OjaKD^s|v;U0?BJd>j|0^!Q5KsR659^{qNV|F9AhYqQ;Q9D> z)JFd&YUh*SR@6b|=N-!+&)_;j9Dhv;q4y-<;s+tnrJmUDH4s=lmp7e|mmHiSJTM~N zbpuU-zVaElHz)p?7#|}IVYD5o{Rn=rZvrI-5~{XMML6^;8UQzR@_00X+Uc8wAJQmy zXjcRUn|yH)c*wEIK^Z3AL;{-v05g&S767i!er+{Og6tj%#{Pa{6HsHC(leA$sbIn) zu?;c$DfHeMfI;mfAfXMx^Qda<bL@06LG6Y(<mW`+|7g@4yEodKKI%?;>ncqA7EFG? zeOni?DVBg0;PZqL<TrTm`OzA~I~t5cbJcPycf+7~t~n5@A%N_ikjDZ>YF+*N2P9AG zLf%CEO4ceF=34~Dv-!Vd%46`Pk{iGR>f`=Jt_g9Y$SMdxCyDb16qxunkVDg-FSOOq zbqL$n#j#ZZ$N>yLrNQ?DL-G~2|B=U>waOR`a@oyW;tiz$8IkXp0-<hK4Z*h!V$K9_ za8UX@eLME208{n<PrVYJ4|*_b2q#Ww4p+|=F3=+10oeb@1N%-h(uXL1<m|uId&mZj zJU?fxeu~UN{>NUY<_Lz;Q3439zIeY_p8@e2u<=gdHpVn#1I~IKn#a35C{Wch3*ie6 z#tW0g2Ymbp3d;x2KQ3e?-4XcnqVWP2XpGs3S!b<PZSQCj7QwHSfbow&!lrRT(2oE@ zh|&7&58c@A?LR05tM()Rh|I7gA5k$uCXFL90W+2XBZBspN4Up3{;oGLt~Y`)e|0H9 zZ^Ftqib5l6)F?6=^}mqjh4=@Of4LBoK<ee+i2NJn21mlb{sCathA9AuBYj}wuZeeo z^k7IXSRx;w+!!k#7-KKKB^-lk|8GQ4yk-eOu>Wr-#z5IHtDob>PO>K$(>C0gfv2p3 z<J~+%T0Y?#;&$sj8)R^I!&MK1c@F#E82boge=7#xQNJaegQfoiN}9q2_OQ@T?|SVK z2Y`V*pfeg&-v^QchdjRx`O~)#$d@arZ2t_fy#m9}|B<$4NInB5$-faHypQMkKvn)9 z%KV#x1hA|6|AOQn{}n+!gZTbiy<X>!mH%5k3`$&p<-#@cxq_;a<oZE?Sa@RIx@tfQ zeN^vljHOUB!i0`TfVG2nE+2McnTIja5*eRnS+}joXaS#J@bgf|?vBZxGC`=|ML=aX z>JrZ=9Gjg<!t8b?R87V<<j*R_>o|NpLjh>W@7PugjRU-^b)jf-Fu{iu>yM62Zg5^% zaZB9%c7pR(cKLp{61(-Khwt@bBUZm&zq7P$V;Q!`G2fN?;v-viBz5>lWp>1t{MNFW zNJv|a{!08}*jdcbay%-RXgQx*U4<H%R1b_N`t>=w%N>24X%-+8m#rUOP7zuRh?t-( z5uRMx?#UVsqZzo}R5Li*@aFi-X0JIR=_-kE*B}@8%1{|K)>l(_q={SUXg>u`2-y3X zQQsGSEI(Z=MXy%%h3e7k%87lOZ$TYkEoL9loNi`AZT<0+4B{nn(q80Jhi6>8{#$-C zj^xHyx7(Ja#m=Fi#dfdi6h4jK0l;ARL2p=lrura=LUX%}5pQr`N3~xD0zCafr6025 zB_idOy3yv!E%TGw244bvKQAKIFHCZ1oe>o>2W2)zj;qJ|yVLhw8amih_R!dS-qApR ztdt;^_@D&WD)2M_M6tr7r$!dqmcVNv@BIY1i$vD3T#6kOCsJB=oIpw?*<q*pEr(@J zF=#0dTYKg76}M`g$r7i;pWxD?UyIsbVm|Ga%nhVHlzsM<?I*`()Llb(C#CJKYZwSU ztY!!c)zJ;HwybhCYs0-;5`~MC*<pZN?E7LxqdzYoS&ChS9q!@HjQ^^;;j<z!2%k7= zwogo+1%(K;9z1?k;tcPZL?`G2gU7U8p&8>n$wFe8yNJD&re%P5r*kSy9=4$wiEy$- zw!R`rm%EYfk=bnxrECg$xrgA95knO{qwsl-L)z&y21r&OqrVaZf6M6Z&LPs1gW#m* z=bB0);Yej&NMCiw5J9WCU4-n@4E0G1+(Th_8)+15iC?prn^Y3uKN3qN&=&nlakS!h z1U#d2LCi~yIPKipUt))bc*wk4>GxLoTrc!Vxxa=`66qK8{IorBe&~3+CJ_k6sAsWQ z*-|q^Nng7i=8d?iU_L=}tijmSu7NXO;VZLxMONw~j4eaJ>+j=q3Vz#ZdhBb6otwX2 ztsWfCCXHvX@KIw;-aaH9(*DAuxH9sPl3t&!Z2c`3I#WaMSAP08tU56AU|!LJ-cnv> zdK<IfW<Z8>y+=YqUkCisW8)A9NQA?L7b#f<Z(`3%%{9A%fpW-m$#17<hsLhJ-Et2) zlW>bKkl`qSzNn@7^EOo`RMrnfCLX_GK%b8UbK_F>O{(NuL_R^7{?_v*b%MUDXHFlG ztUCjdOMM$6>^EFQ-NMBUk4m*#g$UY}Gop*SpJhY)rH!eJT@KGYS8%1fUixlUz%nko z@{Fp%-4jN<d(ioY0~&v>X=_xqfhQIgWkOqk(nh>|nMYr|GRT0wR0^B5WoH%s(K&rP z<855O-(Xp`!RHl@aP!Ix{#LGfBHY<A95>*lfm*LnBld?p3hAly3mu!RG49o0N2RX4 zbWehB?M)E98@z|%a6)6~c$(Y$ao`3_cr6i35Pw%uB}KS7=l>k8E0%SFt;*3K7T?>! zj!}8AH4&xdQ-HXwDWzu-e1RQS2hn3S@Qybm?R_<7MpSv=-_V6SCNji`Qc-pHh(cxT z>I1wrDo&0V8~6sWL0{ggJohR$aG@xmWfy!NCu1MS{Uf^~S^;Nk&KYxx_=#iv4J-7) zA0NctK+Y>VJ#!tYVx-S$8hyg-UH;*eRMFcN6TSPbRyY;k5us`wG2sRQ%aVdF8kktZ zrlsFR*)Ll}OW>(#IgEbrW~QGpG}q?KFeRCI<3&7Qqgd?Qi{R(V9y-sb93-vn1Xc6= z*S2MQczf8n_Qk529SJ*i1HreIyx<l#|A`hauk`$<-^(OL-cZr>f!I#`-d6l4c(x!- z!Ssh7EcI=Cr8}7d{?LG|-oEL^fey3O&tLm);Q#~sH1&OCXp!MfGFk2dIkDfC-RDw* zLS4%6rD=k!4khd8Qymc|!jRpUbPOiM)`egb4&AuK%Q)lnCxwa+c30{(ncAj~CVT); z$Yceqgv+j%Az>M%#NIlwKAqJS5vCPJ1x+S0x{@ObYm=--^>~(K&%L5%h>b$NomIu> zvi>%_(sV-3{$VvaZM|Zs7I*$i$5mI6fxbt;x^1;3W2DH5Vc2vKT6lx4NQ_w?sCEQ4 z|8DRri{4#jhUb!|4I?OSTQK(3M#{CNh$%T@NlX3JF9nIBsK04suJ(xRGB=R_`?HsL z(WQYmBl@@0M;jbBzt`{uMl~w^oFCh%4Yyyl4sE-;yGM`bF&0?_7Qb5nYP+y=F_V|) z%Vi2sCz0%%Le^52O5Pjk&x6Os5q<8q_w<<~k|Ka+8q1y|_22GR2*?|+QuvE6@r4h% zK)IKsd4<#~iQJy8e3HG`+>A)<rVZ(b)1irbk}tHyz)ZVwF_|jrk7Sn#Tyh!2y>6@F zv**C#?}}U@`DGBa2|{RHlZ@CREnnM-fJoDp+s*9AvVwn<z6zU*Ir0~a!0W+)qKCU5 zorvcZH!Mf*t&vf8|76J|5q5E;FfTlBuA_LPGO~(xJZ#d??3|RT8l&41u_Ie_^b>{0 zJ`}}Ih9f;!Up;v4WA=2z$KPPl1;xv>ROho#7iokUH4rVuza#FOb0q`u3jg2%FW<$8 z=l3sMh9@pJU1S`i(ou?Z%EvLv*gakKW@@VFFO{++yh;K>P<vvLZD=C<x`X?oL^Z=Y zMBnf%0&X_Nay1aDg2ZZZIR>z!)v|_Uvsq+y6=WwdndSf?2?{9h2|pa7l>5t=56Nu% zurweTt=9c2y1dsDdD8y2+w*QsQ&aK^5purM;|wTA6iq8%KeGS=iZf00QUF`)8<&e9 zHj+2DwSqhTS7HjD1%0?JjiC3KxGEz{$}MsId8#3p&Lq!W*u71iL<#MT3G$EnvzXZD zlOg`%wb!IljOcxAJ+y+KTx9veAu#0A>z8gP;P`&!*IN;A(p!)}yC*f6_4+E-*Ab!z zbu8c8crIA`o_J+h_d!wsK31Cq2KC0t?;hFTqfjS-TdPS9^)&4qfVgms<Z>LL)jem} zEHmG<8pT%jXo~g+cNRE?M==j8Te8|89}{9nVd4LlAI#Tx3>f8l+Hm6k9c5)>$w}*) zk({SRDqy{<HyUv&los4@>y+S|S5&ZAZVch+D310A&fsfj76JLCUU(i;BE~wtw<GZ; zoncxX{q~L=TUF!!DK(>AxoueB9ESh2i0C;wSI&4X=YDD5*ccol?$<g;7y*S~z4c-^ zu*t-?Ox74=;9ndt`S);CEs}DGuHIN|wP_T_h)FAkxbI9?4uY?j#*>*m&}|&iQ`*`@ zEyl&WspGw1Bp)uhowsmOD0fC|eWEzJYsVtVhslbRvc3PnMzh;6@_UNKMB&F!<pICf zH+GEM`i%Ai%KGpSU3t2*pHl8!w9sSg6fD)$a@!KcT84*~^HwstDL>}SpdCFkKRa56 zkuvqhFScWky-19)w}LZm!Ug-;x^F(jbVwF4z8$yrvq_jTx`)(njHt97BsAEHsdu-7 z3L2-u(@glwB?>DrlvP2jXS&t_v-fD3c9KceAK-@huqN-?;6lD%MlC=`^}1?s)=~x^ z*9^xHJJXS+av$@BQD=*x(D-7+VL>eZz$8=xH<a?Yj0%GaE_Lc4EnYJF%r`^Q15lKG zAk%!c=@6DnL1Kr$>^i?VZ|;^PbYW!j5!ZMGJoyEMUG3y>{}Gw1^Z|2oC(|(~Tf|ot zcyDS&Wz9zTvyVxx7+h~%H9Ykpuw}YsQDiMl_qb9U0Ks-D8%SfsbCO@5-267a8^cUg z>mgD9ZI{3ER>_4cS++&gl7WOMLv`)t`RDB?UKiQ4$#}pe6tl<5ugrkQ=#^DW<lVge z?zxSkN^^1BxF(0P=iny^&pk_TX_B{d*|IP1b1Qbf0PKQs{cZK#7<zjG)mOFxx)sr$ z2kLhzKbg>NWsD2CQT`;)shFWjvY6(LX)zcn7!2cMp>}24x03A#;0t$7Z{yVahH3(y zk|}4-t82k6-zaCX4hbH;8gl-n@f0zW+Em?N`=CD58X|nnn>|&Vh2|upp9=_DK3H4i z{L6u8bpEqWmAkzGG>`>OLVvo_4ZBTpATROOGk$>_srQP{7z)OjD%e0uD#t`m&+9ce za7m~^5ZmxCv%fER&bmMo$~Yw8>$PL()czNa%W2zZH$QZ!OrZqi9$*Gt+^&sjB^Sxm zYslml>8dT(CG?_BXQ#~2e7_fr+^uurP!RXEiTf&J@JIc`HQ$DqfblK%-RxiWVE+|k zQ!uW$D7p#}O-qC-0=@ifsdI7}u4|qBk=Sx*T~wyO*z8T7CEV^nF&xrQdO)q`otcd5 z-!5sd4;SP2XpSDUt+;Ylw9YsY!*#G>Dj?1`&jh%4u)CY3IzW{@i`o~>&HH->%~UwX zaQ%~RLKV&v&U(v8a4J*k$ze1c7V+f<7$bT(s~PMBTq*%44BUO@X#vVkdaDKo_;E|c zjjeg2JP3++&)UYpF})EY<=;qca52O%qMGaew$w=fx>Zj_OEBvjSFU3mF*qhVBSVlt zn=lY1Jn~()XTn#pl928^rdzZ$>S`y+!Zlr1_oN3*Blamwqfv~IPsm9nO=4~A0Rd9> z%vJKuA;Sa_`Qelut6Qj+*{L5&IbSh@77^mxcw>%~?m(LO=jDh~ztYZsJwAb_KzT^H zhA;2XRQ-5$+u=R%W2I=&GrKHK!*0lSpY<Ns<7DL+;l&qgH7vo2QA%BGXa4*kj4UlM zEv~Wsi3bL1ovpX<tF44&w0_m(=+}e#n2?i_WV!k0oLKx;6!j#;-QI1B0-2JT2I(G5 zL5di)8_vpKivBU;=CtH;$??9B_tH|v`KQCV07adqgj^qhvuz3z+{EwCNI!hi<=I?a zb^M<FH9!6sgOoj4z0$|{MXcjMVGrPmS%{J7GmaI*hq1*51&>*vgY}uIxZmBE9pURj z%Akeyyzm-dIg?BJ+Ag<n5&Cj>QTzcsOUN-#&A)o4LG~3qvioy{{_l~W$GCYAq^BkO zaU#pOnk(xvJ%Y;*gyxI#891R@13o=xJob^3mo5DQnWoC%42-Ib5jUh=_b;}w8BB_; zNA#d^0?T6#okl4LigXEZJa~5Wac8NYH(dN(Pc3d$q<Sfa-ylW&4Ea>4u{qwwS6r(d z2C>|v^S`dKsb-3zezk4eCsvPXN{Gvi0Z$+}*0}#jm#lthr^z^oMv9%(JhR6Hp4uS5 z1Z1+)=PKSwAhja-ZTIzVXqq?_B3PRPZFvQHDT<VhMao;gXg4GEk5o(Iv!xo;`;gyK z*Y7aK=QVy&DgUB(GUo%xiCp4&F@csgCXCrYZz$|t4-bVXOE9@Gf9Y@|n4DSqweuxo zJmI*s>_!3TI<Owe?bRSZvZA=UY5b?`u~|E~xe+4XnnDRhveW_jr$OZpO}<3Iutcf+ zL>}BqvCq=um^f~nm?H^9$Be_tvg)ca#FgNc_r`*!G{MdsdOg?ncnj@k8>krxJ4!!? zIsPbf$G;{>go%qkU*b7)sI*<RCbbEdVmnG(zoRC(2yc)XRG3&oVps`BlWVY(9qW5~ zcH{HS)DSb!MszxX+m5d5@3ME_*eu8+yz7aPe3|OAR}=5z>+Fn?qKn<*|FGJaA^wn? zZ}bt;6!m>kidDUOaF24{wa7#L>2^q4;1oj!m%*Zjb|P0#0z303-gnJhZL&ot0n2hH z*&U1hqV}<)!`$oRmEO-eWy;1Z!(?Q<3%tEjfVY_Ok>f1hviJmehu*rPmAu6=zWtdQ zu9K0>KpUmnK=+uhNicqscgq9|Ljk*e5vEeFl1*J<-xozYRwQwYr>F%mh-?|11&K$D zr3Mju;+#(U1dzBR{;+e5Z5iBZ<`b2Zf5Q^}OHpoaMW;?IOM$>hMIISEEE@iMAM4ly zK#HeYuD2z6{H;{l@`vZveS4f6!WZC9gI&p!sZ6M(l?lJ1scOp2JKTf=#6}7{mWdw@ zFs^Qc3TI+Hpo;wq58?4@)qR0st63{~aouG>Ltsuu5=$yqAFgu_U;dPVcZq0iN%i~8 zc5UMas0z68L67xg^<wtj_3exCwR5chtCx&s8o=xK&i2%=f$Rkorako4U)ob&hyxkR zf7}$>Gm!nINZia9F!$jv78uL3-_2Y8t5lh)EBL2s#dQs>F)r_VOc0>*WY0(G2f|K& zzTWE9YxoGe20WC#cRmo@oG(Pb+V_p~^A+rsQ}D&uNO5$#F4#@NT3I4mHR-j6JPZh* z)CT7wo?OCsk+?bgKP%k<>GRfG0hy0d6_W@R%Z#O}rVYaKEBb9ynt9ztv`8u;%8j46 zYYJP;Z7^h7=zCD_a2CH)uyLHiq!x@z1mRXP42m&vD5z{2fy?~PV$it$$QCK=QA@OI zo)(b|Y>EcLN#Um;lB)l!uSU!O;Q$YZa2>x+upL}d@Cw+NZiPvUyY>?z+1Z@*clJq& zer+abL`$r+^lh?5HOGHh5WK1f29>^N>bO{DB9g5!qLBHbf?vZ9t`SX53~S<Io;AL} zyr|VlnC`#|{ZrC5M7Exl;lg;Kq{=3SRKcE^N|T~xUW}LO*6G(j2=Yrcyx*ziC8(D^ z+uGOidQPy*ox!V+iuT54g<R>7z*#u?DJ7JP7uhnDL2v<CN0_sJG~^(t<HfkqC}g_n z{zZmJu5ywTBt{WEe#&DzOVR29aMt|zQUkL*Xo;3G(YE5R@VNZOzVm{z)h4TP`^SYx z$%Q^KUBr6<bk0xlvG9Td*Mw}w#-!PD_XnxR?<hVmjOFe4M?7NG<g`-#TE>w+EyhB9 zmyXJoQ7AO?Cr!RQhyE9t=I=7C?=rB?kz@voy2Lqz#vFU=jS~r+J;mU%<j2^rjE+YU zrvn`Xu6oyhIQ}9&d416}#m#P<)P^xaXNFjal&T4xXcy45i-Twsq($38%lpPO@XDKp zpDXeS&6A{x1Y;kqFtjXKaN)^NPaST%Jav5W9Wk0?&+fx=`<ER9Z`$_ygEZ(SHunf5 z0(^h9Xt-&?e}RYH@mhP5)AWXLjU~}0WlE-E`H`^e0UB{tv$*2kD4;i?yFX{Q#O{iB z%HYn#hl8$wr`9TJ*2}mD{$A%pt&|axFETzi%7`I-R~Z0Yr&8EnIpJ=Q$>wseXM8QK z0X7$9Dw&;5M#df)1{VUSOnW<5v!Y`3Td;5itlTULlU#$=^0052#6UdJt6gZP*wM*N zwF4cBGb>%36f9z87qp9lWLqaY)dJH7X77$&emhvpLZI6RMC-T$#Yg96JC+wa@}V!3 z=H=RQBiHrUyQYevX`WGrP+yND#CF><7}+%W8Z)PpqUtkU&eeFGl1}wd6<$*6_DCiw ze23Xk`%d1~#xTOT@BRQ%2zG6QWpKqqsHNGf$xpqlN);(7Dlx;w0G}_t5qr;NxIQ}% z@CzazZyU)EcJm%;_z+4Q)zYBpF>pv!N%z##AGn9!(jRpCZJds;@~w6;J$meRcpQ<o z4a-m|P;&fkWMD_F#eZ_8+H^zzn6LNI)LC1fmM=T}%#C-M-TOF}C#82Q&!U08{&6;a zO~N)6VFhX@>v{*hnUp=IVXI7FyM_*p!gf@$qN1mwSSq~-X}d9-tT^cNLLIBV$R0e3 zZT>RRGbNs<_T4CGBrqGsFl$Agm81A}KYtQ9E2qrj+MG5bRiEV(fti>LN-Mhh+Fv-r zc=QWi3Mu`B(9b0KufC*Rfx%NO&HZUyP4vj?)ojIpuwh8eNbN<4Z)bIZQk}iK{0T&A zT%w?Knfi!T_JS1Oes&9sI3IbATdJ;HS`_=4Xrm89v$us{WKNjI@F0wFerVTc$Mt7g zqK+0DS&bqM+mW^!wg+&(W#>LI@!N*MWz5&2?<Dwr`jBwH^=yY;YeWrr>AC~nA52jg zNPv|oImKLgTAaZ!7j9QtJOME6!1&TBS^e)tdSdITqZ_3$tlF5`gC{%0zP;_lR}J^` zCcL1klOYPLaS_{{oOs^)269wG*OTL*sDx!F(nx#TnJHyj%NF4Kby^R}Ja6<{0gsvA z0K{6uZ<9eULX9Ty;1y4W6hjRw)6jxbad!vTaTLu2r5Sj`DNw#UL&XSvsktqItq6@2 ziW%QoYeD^J_)MCdg6{Y(7b}}>z$=kgno4G0UAs6uY5qU}r(sl$J*+!cJNAS@fc@y0 za#VcFb7>TB&GR>5uB!f|dQFAZ-WU4dlvPMgTHK!psE3UoXILx0CtP&VsTXCb5wBA` zD?SWP7T!F1!I;2rQ#he%G=1qC?{|0zJM`Tc)3{{wdXuvDCh_xfbkj_mnI9Qze8KcQ z&@_&`4`~O5)wN8|^L+3le^y%7IG(k&&k-(hH=;W2ZdLsDM8#?geQmo8m9n%=K-Nz6 z*gWj%eGsXRC`wy$vk2FKT4SLX`8~3Z2X0L&F@tI9O9BS|biq^NnT8Qn1<mi*p(oDs zkYYcs>fXW!f#7&|ni>nLg?6sF(dz_66aV#yi!Qmun9(@iriUqvau*c!MD6Y9V*iHl zxnrPK_j_HfYga1{_&;%*_V=J4RDc}aexFj9hGi2Uy-eP%qhHH#AL1Tj`+Amt^z9P{ zt8_(#K<dtU;k-y|>TX61am+EeDWFQ2lbUO<;L%L49`8*i6nha&XQL^<Ib^RPmVb6Q zDnjpl8qPq)7q`}Y(XRrQIHu+9^tQM)?{M52a3Q43=uD}an6Xv*E)ColjaH6KC44wL zSKl+RKz!bQ=t*L6Q0^ikQzORz<!g)mI)wG5u69bcS1qh6me<ojg2;2%a$BMW3S6z| z)3je)b58R7IP8__UZ8n<Fvqa>o)i?R3f>Ii8^JC*2n+j3oAL2>7|9ypS7;=jH_|Dp z7llK4C`k~!=#LkAgI6-Ikx5LIo;?P0l07Mp2>`G3TQMOD6YrEh)OtXe^(bohDXO?X z(%NVlu5^(EayT5Rz9xpT$S6(=!Uyx@ouG^^4NiDbMcg7JO<r>~p&j*EOA>FBC*J1D zqQbjqWL+k}4etXrOm4)XH>|TqH?~P5P1NaN$R((VTJL}yVc)Q2BJodQ_$MCUsDzeC zYzJJJridIw`6HOk-~mjUU7~4}H&O`-BJ&bq!fKBpwOKV$A(qN~*C3cn*kAzz?oyY4 zZ%99yFdS(ve~7ejFEg~m2qqsK>5VF4XIyAAknH+8jzF&pGU|K>&*QOVl{yl^ze(b~ ze~pMI=YNViL{dnb?z^wy<Eg8DzC5v0MGOFm9t_cs*6I<LkYM-0_i=mm7I_UhuEkni znt8RJfS2yYuC2-`deO5XOTiu6L(*>}UvQ&Ltju8|Z5Kl$y(@NMI3jfj&Hc`=AR52r zU$zy%b|%Q=LkE8BaXwMQ7}>3~_`4ab7-!tmyq*fo=YjVi&m>nO2`@89UlB6lkXb{i zY*4ZT8o|eQ6W&d1-Y#3|dEmr?l^GhmAcNMe$k8WGHW>P(M9WfQx?)o!W$@Xo)OMvW zE<x$b4!8+G$3f!!6gOD*Qd0&OI1eA3QcT92BU}&|yu5%KFmkmQZDi%z8OBQva4M?T zy>fl%yNbPnxi}U&7wMZlya+P%xqaFG*WwK~Os$*HH3X71p+!5|(||O}(2{?uPl|dT z%H&FJE*I&1vK`@b{1JupWrvyo=kIfshj_m=VCm7zaO(kIp1nM->)0J~p?~h->+#4a ze<7R8q)DN1smnY|*mnO_p_I-EFqg0c#V$p}I)+{s{>^gq`qeaSdir>`px0~YOPiS? zr%2^4NbnLKwb{EX<0sePjEmov&Lb?hb0K#jkHxWTj@DfD@e1DL8Ov=MX@QW3wkE2@ zf$E@FQg>Ev@W;euF(?n}eTU$<93|K*i6~$c`-i<yCTpB696mTj2E38<@Z}xr7UZx> z3^Me+ejPOo@u@jy64_a1^Yy0m_3Ei3&HO-~yKjbHF%T3oGyj<RK)iQ1aoOL&Q1Bla zotVd2{wR?9_)4+XC};ha+Y)NQGn;-G3Ufuop2eS6(F~PSaH=<gj43{=a(VCLgfg>* z32C^0AgWEli9(LLmumwh)LHY!lRC*9^gyrKYZp5zBy(+0$Ag@eJAC?Wf*Zeiz|Hx? z78B@t@3U%Gpg~7FiA^0xEETxJwOL|#rY28)@~M7Q8TML=?*UI=7&YgOF<)+qCbw&G zsN0L>slb??VzRr*R8JV@9*rvJ*QC#-a^HaP$}72QXV5%UuT@yoiGU(|a+Fpsu50nF z3iklWbZB(?B`qxd$$VXD{aL1e7~N3dJ|V-h9g@ib#X#R5<ePR!YtY$zFY=mTV1pYa zRjnh>;U~@J_Y=XnBP3&>qYeS3BQgDKwt4N~r0$+I)^#rxqO0R|wo%;kcT9B{pdJ5d zz@sn-*;mXUwqr@D$y&-q&)V*cyeheOPv9`FY@oxTRfkYaf*mJ1@4dFJ(hCkP=>zqy z8S`h}ElOuUZSiA)yAIlVAOl?g!0D`r=ghh!`@D@*jvHmn*o(B)c(K;=5}9sbUm5>8 zLX@Y%*b|i`om0tbsITEx76t8cws+;+cG*|y)GZUo_2s8VoK(}tmkSu_;uoTp>=AIO zGB<8+xKz%Fzr<my@9hxZjCS2&my}?5kS(p<t=p)lk!1M#7;!8FZDV46t-{kbHErt# zPmW$rxK9wH6m7y|gvX+?=$9`}rK9@Xj>NEQqhrs5WJ;NwEdh4geW+X{UfDgz<C^cP zxv2tqhmmCj*wPj=`sB|kNNCV_EJwVzm6>(>M@B~nmDK!;^@J>Cg(tjgFDsWO0#o|3 zJHr;40x!S2)0}7xns@ZZ16~`RYA=gk-p~6DK{cSNP0x3-3DnMB`?IFfNzPOfG@(v6 z7ghnx^AT@ePmvhi13u!%%SM{S^ld_hFok<`O_wHv<EOS=izlVC-~9aSRgJf3o`SLT z^R7e%SV8GIZv-fH&LHPECpA^g^D}dppthe`w!U`$RjVt<2(mQ_)6K>PuDwKVZcFYF z6p_;pa!ns=RUc#;Sq~u0Gm_5_aTpgh;AKr(xbKpf8`5b8iss?Vy5GymgQg6<0#onQ zA%}F1G?dCtld_5%qSIoC%IYBM>0sQb7`WeTW2bxDmLU9r6g=kTO_4Fy5%EV&;Hm-Y z$EE0F8MqRk$v*F5{A|9brzKs=>(UKb{8j&=vSlKSc@9=h5L<`$@EUWw5vSp9j8pEk zSrgpsxWiw(<yeS^GP^KN(o#6Ty49+q2R__zN87F1E)+G`SSnGi$A4<IMvMkBe;5A( z?i0XMC*-%p_<b}S-!9TZ&z5+ooAq<10Uk>CeRMdErrT;Ww|<CWALl&!X;|2Nbt8=c zo_C2mk27vqh<DrhJy#QNW75mnv%8qYx4Kt%3!K<Fx2~>Yen)vbA3qXJ6wmaX@U$@H z#P#9+-TcGArLL>smOqR6ZnOwo_$$(AQa37MZ26OfUj0Cjd|!-@kOs!8DQwu~MEexi zj~{eSCcj+)Iv&)h6Pf_LR@NS#snqj3kI`j5h2%*CkEpp5o@-orRMnd^Q_QrhPD1LR z;+YzMoK(oo=h;jX0atOGG#fBSz3;smCN4*q=1+mMeaW+GmnXhQK4?p5oFJsD^-Kd0 z*XhjL64hxd2#|PB^<bw=ku`!vA035=+3raAYe{NG(uR<${bablMP)Mp?UvQM(4@*P zfTW2aRawFO`yUC5p)klJ@aU(cX74pip~A-%Quf9eb<QoE>H%QoC7;lZ)8*UJ;kw4k zcC)X4Pifer#O2QAdTpwEimdGthq6w2E-)=lvk;g@)&7Nnipn#{gMYwPtMo(lR{e%_ zwM@<Xnyov_y}`jOO9J`B9@5((?pG3(XPjU7XhI*dXgXi@Kpz5(v8P6=&mW2vPw*>) zunh{Z!d~$qX&Q*iC|~RxGbrWuMGF<M;wAa9u$)cUqSzZUhIpaG-rGR5LLx+FpYHuy zB10rzX$Fe)*W^8cYDSWI<7T^@a)OjBw%^Av5R0j#BAlds<*u<cWX73?3JDK2Xo;!# z@FpV2Eema>?9Hmgyp*!sdc^!m%&?C8=Qp5=rR<{ldoz3Cr)v>7!B6C@x-Ka`ZHQxy zAivMY8U=YjImmK-)RQiR7^DgWFDw|8bcd%~qGL_Nw3R>=MU9FOzp+|lDD~2rlwtQj zp<Cxx^3fyZ+c=8JM9@$rivE=i49{vYkOf7?*V@kA9vWu$|Ih>v@+&u@tZ>9&W{_Ho z9kv;%n4JpI%J=mscZ+WpZ0(h*H?N+-YDm`ANzJx?DsO)Wrzy4aLp%U+L=US5*UdqL zS}}9*fcH~Hn=Pk6P13-PWF+q`i?sv*PR51J&xRz}2ImC|HMdllCUl*(cbVqh+Bi%+ zHoC!HI^GE;3f{*?^unMBKs2&=q@pZ@xVgtJG{RQ&p}@V5IdS;R$cpL>Ui4D1z)H|F zA#W=o3^|~z-1{ZtX&P%HZdvG5R-){bo{j_k_GTsb@Zk5kh+t^W!EJ&Jz<6{Cd{LE- zWH8+)dV-wJ1bdE5!0HMuKA9{bkz8DE++XAS{&-t{Q}-ZsIt?vLNnv9buuSE4s#RWA z6PO%SlGGv3D)gI_cIr3FSn^R&a+hZg<Zyk@VR4j+6pxPB7(9>9Mxf8eQ3@Kn*&o zkigR6*okv{jOYjEe9DWr4|+f?JyGyd+u3!ms3sBbxHszj7pW6o_5BY?Kb6ocYLLZ; zs_k}P9r3!`>HC%$CSGrgux@A?A^8QC>6no4D$amjPw{3O#2GV28oFd894aE2Tcr+e zJlR!v+0m8e2fLIY*%*GdJ*Wuk*I>k|fyO#PrDLmKD`Ci&-3OSrLq0>3FGEI{k*<pg zzWT_a^yfbkqI^(^h-Zn39bj^{k{1_fDGqzPE8o>J+T<T2D=FPJZ2mkHK4m!twtd&Z zTz0Kf(v8K+jy|M#Ew~hl;Jml+bVZ*hzHnDQR*zz;8piU?h-=yqvg7;|X_Up>SSl`7 z&Q6R{BMQI1GaS5EF+uS(#0s6McCby{Z(CB{=CzAo6MjZi`VlGOPgPWmhLSGw+e93r zG}5-mtbkfrKzB;wsWH{!`XjthRR~mnX9ulI%2e;4TFLASnrWdC_(hmT3(6A&DV-YB z_$<EV;5&Yz8)jWN#;o#^Q10}k74;Z9tR1~N-*FYXy*E8d%R+h`U$QfmwJFH{8W|#f zN+^R*`U@{m-3L{4E79Zw1TU~zB>46;vF1+Y3<9AaeQBSSRoLD8kYmKS)bzb4<%&9C z^7~t9tOfj;VuPSB&9RS)@PXg4xjLpIewMUITLi@_Zm#g>He2)75H9ujo`OW2VMa#n z_RrjHHuzjAoq9$_`Sy?FEg|~k=5etRhtgzxc4yZqbZ+1wPf<OuIRjp)3~@WmL|(=e zl6cc~j$@N=0dCypzA}_?U}JS*7SP@AOac8O<u8>S?srAv#B2AuYdm!aC2b3i0r&+- zI1ALLDBe~7q6Ng!D-fd|P~&HmFp)$wl*j5r2@ie+RJAL2bFUpH(9aAN{35<!OKe{F z(z^8FFUY^ffhvn_z8X6rO#@I<yv-Dn?9rd(dB)cLj)Yh?`0vX^*by~_4UU=y?4<kZ z=1tQbk5zk_)T8YIkOO+=eeqCyWounYv}5qC%86e=dWlYfCxrseR1UW5E?&3ik*p%e zHSGS^#x^cEVeP(yCDZm_b!~@*F7E7KXQKC>cHp_lDK)Ik`+hafW&O;CfP@@M8K8-w zOcrE6JpO=tDR_lU$o=lGdG<K>*W;GVfkmO!!I`wJkPc&ks6*Y0jcw^QR)0v3t2liq z%#j!y*ts@<Z>c?c;puh--ZZ9YO?jDu4=@)o>)^k3ER@fr`$yI7K?TRR!c~gdmAqft z&|D#xU55nDa{TL@kQkgM@6AdIYtpFfhc{&JWcaqfy03hxNt70c>WeJNXWoo4i9J8` zi%rhRPSs#u>poTCi*tx!c?E~OF;-BJG`_My&!1aAt3#v%#UhLn<Kyjp%5{{s5_8Tu zag#);FxSh0Z8x_#x}Dhtfip=R)D~9vM-MpZBaO-96&(4u5cWYo$fM^b>9<vaDNh%` zBR3*)fL|cqyH{PUKnp|lY?}V}*GADDI%|>BaM7LLs}Ut)2)>nGSjp6euEP?WKA5l@ z)c<LqTGIXVF^nbFd~Fw`#Sk-P<j`gBWBL&%bkI^hGel53&M2^hZs7G`dMgyRQTD8T zLA8R8#o<AYT`A+fCBC@!OOUhb{#;Byd|T~7UhjKRwN~l*#zE0TJ1`B0{PM@Sgn$v* zqP904Hf5IAJTtT8vqoQzE_iKE?VO-{P)_llcTv8K5)-CTG{dp@eAYqZAMuN5BH^*m z_NR|)*eNpl$?yeyrDM0?nACbihZ)gIhfUIMirlkd-<NQx0u)AaOaSQ!+t)Ze&&9EW zr5qw&514$c);?VsGqq)T+xurbh3Y=U!KUWOzj<2;_{&hUN@4p0yh!FIKn9qR{oM%6 zp;*SSzrL>S2T$l;w@N~4*xMmXtAZR=Ai-wID<#gqZPf{$oP-Yrl~lP;hC%{<!GB%e zMk()BWg7}>3d~sJ&->+;e9}LqqPs~F8LhwjZEgkxRb$-z6=N7S2#t}ge0)0W$XzR- zpnOJc;69L8UBRZX@rd&U*RvT;VE=wyYaG|<#RB>l8&GvpRdzi*4P=_Pzgww$p2H6C zrVKZYH|k7mjE8W<kp_=%2x`9kOuhc|r)oDszb6T!BCt?Dse~HkJ6A!_q8US8n2a7a zKD<T`plC0wU<RDBeB<jgA29{bJe{6ERfU4usYx&GsH-7}6XiU>@U?@Kg3Fc(x@%v0 zVCOcVhd$0SYyz)e^c}$iz*djMTa2kJM^=gMv7w#uZ|zt+vB$4E2NWEz3u?;tp0!=| zgy~64I5Rkwh0WFNT_zGwO4&6ndPIVUKc4vJ9Ox5I+$LZfepUN6&?(M7dy9nk9;cQ7 zqp%E;^5{N<{`h+9sx3V}<NZX#;xGT6u3fGwqRmn<R7_nI?|q+-YXT_x7Sq)9-F&ge zVm82uH#gIMZOU%DW=sFE?XcSuoun1_8zdtPJBf0Hw%2e)aoR1~^mXIP_VHu}ER<Jw zo`FAQ-P2lJ^RmA6W%EiALgMw!%NkMm&Ur4Tg}H}z&`QmAdhQT+u~v_&=%gIq*zzX8 zf$@(|(&l8c3OPHp@s&dVKu1Y$7_>L$$2Pstjv@0)6=k3rps9YCDAwfb2#Ij%`^8-d zZ>Zr)Pc*1k;PWAN3+qTK(=dpgX<`WEGq|oKOfDY9w9>!F{LN{#c`aVY)*BmP?xeNd z?0H{He($d{g|&Z>Vfp|9wMc4CnO6oPJ#G*~*<+PEruw(&*u7``_=m@3bM<29eKoy~ z3a_;-pHwoeFIyMK9%Y~QW=c(2RIKsfNkhI*&><QqG~TErWSKLKv5wV<?Ak=d(TwoD z6eSvFFz7s6-6qW7)ZE1zI9kzoLj`^13i=dfFMz=>2M2yQM5WagR_U3wnj1cByCdV7 zAp3MTa?JPCqBEBYq||cp=?qRisvb-|`odUJX_cb9RosAonpArdWj22y3K+z6()IGg zRiJjzZ9qL|Jt4Wst4wEt0>w4EV+l1+eeE@7RUUwTKaTstXYfnx?1^{m7KDVX-zN(d zVO-`{wVUN6vhJRZ>qD&!s>H7w)dE3d^K9fPvf33bt8s;}JG7CZ+$_!asC|PAd88=q z_+}haum51Bpgh%L-*ZHy)+BGYvK@rf@aUsv^;p&xPMMTRBARS1=(wc-v9h)2UvebR z*UoPC*OgKcb>N|!6NzaDdE~_HM)8fD?5w@aP;6k~E8bI%{^L2}JS$EslFG#jGDgIE zrTyPayEi#L^di6OJfh2nxHOeuNxl6)FQHC_z!VRr71`h0#_1BNn0UB8O)n3j-!lIn z0ER$$zkg&a%@4MPnu19j`Zk)_geIm@()9>R{i5}1QjJ=w(62;7)Qj^7c=G_fU%W=a z`!juxQZfQ<p(f(Z)Ks+*(nD?_OJhsxg$=MeGk-|&<>v%yn-)H#2CjU=N{(;F|K_C& z&%~z-&v=Z;9KXmAO)jyDm4)M*clD+##*mQCA0@b)piu3nD*$7kt?;GVmr28)S142) zGXc<;&ibRVa8H@`z2V$OO1N>J3L^MmLs^sL)RI&~3P?8&i(U@jq@-6awQEbjKsXRN zfA|Zw6n}yR9Y^HQY(s`Ctiwb9s{TvkrUiZYBkHjp^A~cgZw4m_Zvxkmav6Mw^v752 zG^&>F!mv?wNN8zm?@IqY&1mIQs$l_^O{$#Yh|?89LX>T;#*Lo5@4QM0<|T3-^Z289 z+ZpuPz|7Zjgt2Q~>h;v6enFbCUV8c~g4HzTgi1C*p38QUakxin(fTQA`OJ2babJh{ z>Rg93CIt{{jS6%=vsHM+ywdI)Gwu=PM_b!{g2z3AyrJv-+cbY`gw8L2t9RNgdj3dQ zg4K`*&pPmcj0F9#oRhThj)XSKvL}C0Ia~a9dI%i!OqS3ySwNGouf!nE!_>8agE(MP zU55bMWBQk-9rigtYpejzXRN;G=YG;K!>XL0!}kD~qap*HpN-n{^Zv{2T?s~FvYy-0 z-i2f&HtSbAy7I4E;gvrG2~poYq!k&>e<nvL)&KN>4WAsLf7KJ<gd59^HEvcqHI6v` zi~6|UOBv!Bm!$4;&j$5;z1mFo;d;vd9<2Iruxo$xT<#s30xSF`HO+4cW#>ww^pzM| z;9{_VgV#SHDw6Ijn;bw!8u({={tC(S9v%xHK~E010wv|NTFP$$y$8)VWTy-B4e=J> zU3?7W6^OuOw<|)E(n`A42Q*b<70|TzB%o0|NGNpPdCBjz1tJ0R9QWWw-_sX}49KhP zKLX{qVb{Lx$G<qkN<QC^Pc2=*ykd{dK1uv;9f+@$PHm87$X{W5NXRm*<c|nhhI|PA zfz1BFdDiE(?XnU-q=IGZ7zHe6A{2`8aG)1o^n0P?^9_UW;^L+IFSPr-k_os?uo~iB z1LQ8~pI!St6R3U)ts|3zL7$E1fuaVOjUSn%jfOh*5;-5UAixQ7Nn*HXV<2R3#MNC3 ziEvHw7irf)Z`%0aZUqP@dniE2Q-L7<Uzf~5vi#8%U+~Kh@quUmDi3I#spSE`zex7D zGAIxD=ztG{obwd$!H1smWssvt!|10J2Kk8z803%Pf#i^fZ>)Eyd}HqK?Oof?{Ph21 z8pa9wf7D>FO|o>8`JHJ0aK$oSkgC2U+f2puPxb#NiT?kjpZ-r8xF=QpKbh$N0XOPV zK;C@8NB{pVi2ff4f0G~7Zf(^6bq9Yxf8m3_zb=N=zrNUaTUOFwTdZvBx4U3lBlN-X z_r>!n{@(cYO7Q1>e_NcbDth-hx_5u;^+llj+qOlppMNj%-Kans)-O^v+KX&-Vp#AC z&1umaf1msk1b^3P>g!UoAHUwPfw-}31~-->!&?lw#B5>Ij7z|7^mz{uAmlit^cSc! zE2D_bqn8Q(sIY+ycm!M<gbgsRnXeNzz{qC4o=QJ(S^;V4rvOdekJaR6*~U@0#pXYO z!83aG6DJw>7!BNFGf6`hZWu~^4yvUuM`Pf{hKFL{?S*%GcbKu>cmWC<QTq{v;2Z0; zLXhVSF?hpqnBS-JsRjeSMI=bGnl#c+z@3DALmX!OsRHhVFB7gmcLb}?<$Zrv^Q)*t z7B@pBvY$i>-(m{iK!g^m6iC7P#cMU~GFw`UitBBu3b9Rk9B2wX4vt<LV!NI+-0-+Z zKYwi$@&D2VCpW9$FBnLC+j&1};OgO<Uq^F)$>FJftfbk=pdrBe0rwLyq&TEA>%HQC zH!_N~7R!DT3A}+;L<tZKOhbU3)$QP4LWt=aBt+f55VoJR5EBy}UjrS6H0u^>?F*|$ z0(`bHf#8#)!YAvwPC|nR{@flYG}v{zL-lW?_Jw)g_Jx#^ZQ$>UkLK@QrGY#OskX`) zM-w=3s$Z)oNoTdko}k~Eskokz{Rx!fj%l34@Fivoy~J#$YN}#TXd-pc_6ZwcS!TYT z6X;6<MG7apMU~n`SgEDf1dA}q$C^OAq<8hgCx2U&k7Tev2FNIS%$H%#Bn`73QyAuP zBVeeXyre7B!N(;ONztD2vG~j<q?A|<N%+u@@^N-`NV9$<_>0E)i}U2wVoUKS0{+Cu z-!)Oo3<B8Ce2>5JKK1zj%u{5n^*a8TTk=QznE;&s&jXzQTyp+%{mwsWxFJ__{*%c0 zZ(kDp{IB!Vj_Lcl+gCI8vY*lXH$Lxo{A>e<gsAb;i3*VfD#R}(bn`C|O9kTVge(Jx zFH2As)mzNIxu+fcYq7MLjyE2QgxIN%f>4<D=t;(%;(NYh<4Nm~M-`Eg0P+8~gUC2^ zX^A2-5`094M`?O;Ewv)@vkj4S|L2JPP?&9qboJ>ZzHy6>eu&XNIYUMJ#dWIk6vT$~ z&q|*ok~5#!L+AS*k-JDk@_glpl->qNKHs(^s80Aov8p`HcPYx#-CgGg@UxFCpQi3@ z;JWVE$G)oYv5$p$mU3JQVjsi&vzhSE>s2LZPl00Gq3*amVP~mo$#_mR@o4Vu)l)Th zcj=L}^!`bd9h&L|^qeh3^3V$7X1*Q~M?vngukUz`Qg#JZ_Z7shdj#-T@`&&GeTXzX z{D|lLHjE(l@74gQ{jtDf|F(B-UrY75@Gm&qsktrH&;Pa?@lzVVG*5i5Qf`h|Rj6$| zwWP?fiK?NSsVy!C39)yk6U#t0SO%(#eC%&!N|8e)9}i!LCDkTIHGLCZ^iU^;H(CmU z8g{5@Msk+>>JR600Q^lkf%S)S((KI9>JMXv6Z>a#prg0IWB+`%lZ!VXs3g@e0;{7* z(icCpcj`w9mh2H&BTaG@b#!%qJ2yppf3w=VbAP+-GanZ8?ZdF;?;iGLLEA{fzaLgu z(8yZ=4vQ`>33`8vEL6|^$?v;;f2;BFKc*f@f<9^rVMIv|>BVQMcyTCuqVG}xgv-63 zwk!Ilmwfs8A&?;F9||a6%1Nv9AusuIcOuA_WfwY?FG$^ep8_u`fcn3uz3z39av=Z2 zK={3GvKGG^3cG{fssHi8Z~GiTW5*m{{2nF^U(HeQo0$OkUH?aL{Em1=#joykxAB{( z)B3Lvom8pw=(*2QPQQr;r(rJbNG~q8g<x0%v(JM2Y=lL*&*nO$RRxqRb`T~H+^A0B z_D2N5M(8t%hP?;kBD>W9jV((3Hfh!FcDcCRHWfp(9};3em<>eo;p~%)dt9#eeKWRz zG!@SFy3)4Z1oSiV_a$9lX%DQ{zH)k*FgZ+*n8_z$FeFR%lbUx=FM}rLqzQPpNtnkc zyPodo(!Lo;zj=R>ssmj6On3B~x}846S1=1`tZ<eu@jXBqvS%s8cjQJOKK8fZ`pw7r zD)ALHUWR^?sh%xC-*B(8Evo;m(G>4jw?+IH`Gbf*AhqlO-NthU67Vvlkj8d7*WrHs zi*Do(=+wS=|GnBn{_*PW*%u$%;b&irnF%0`o#_i}_k+;z<AVyUA2$H3-~1&wtS7GW zwommx5yU=K6VSgvh+31Ty&%-))1&&luWLa77H%(t`$2KJEfeqYT72(^t&BF}txQn! z|9Q?IL)vu@dhzc+4TJOdNmHl%+jC2r`X}xA1NlGjJIy(BMaco*M?TQvSJ1zZsz@z| z)UZl5J8E{RrLR}F6Ktl__t{vK4g0WUpJW`~MziZl%MICHJKQ)Fc35}58#kauPh;A> z_uF>aWmfZdd!3Jo-sfZBs;<t*@lv1j5dm|Y`lkEm<0EhQJ*=+5A-(n|N;GSzTVB95 z++PYXw1z{@<H?Hkv110nOP+C(agWvl@+;DCWCl_7z#+a`nl=OgS@N?A$fN)uOk9b# z7y1p*r)x}i@;7Pq8{%TA(Q%%hpz1guJxw>e-b=?3vJ4A|{UFKDelY9b-twt8*;(Wa zfBDpSKQx`Z--~)?#>1vx`l%cG&220EtO!!;*M0^BKl@>){IA&T#s5}zlmBh==YRJT z{&&A0|H~r$FH7ZrHxT~!V;B5yxex#Qy1V{Wvq>#|#lK4bUWzJ653KOD58(?9@#shj zY#&<niI0EPEo4K(v;6$47}BE4^0I$kPwb!W;P#;`o8SGCp8w;%m&pM3p;Ev17eT*s zyh_$bm(y)O>oJRIY1yMgi2rJrz1|PTW&+KQ%k+Ie=uaAAGQEgd91O&~_gpua{amZ6 zP271*(I!R&)XzJm-*4~H((id&_vrWCfBMmH)_s7x`|tCm-{GWT#C;0=zCQ>MdfFA7 ze(lS=={NIe5c=Kiw?84O*F9R<9b?nDLHJ{j><m!2Z!0h)6@!184v1Pc-4}z?NyB~9 zy)d|cAYd@e6;zl-;5`!msHG|v^NuK3yvgVN+8x|~L5RI^95GNJFi_lVm1VVlU^!b1 zrVJt9kU<<7Qia)u{51X;n2XbeS@9NOq9={1lEE}&E0%x7<<<!Nm8o{AD&H4mz{VG5 z_{sNsNXz&P1tcjLBxTnDNPao1f+WQUBpxq_^-BVJK}cC&1#*DMb#&!_Md0W1z;A(S z`GNd{oDxJJ=v`yTfkzJM%u=uSpV!INtbn@CfJ2tmkj;?<Vc`GZ|NK+&5rLmZ|C>hi zziFN6f23VE%?o;e8bI{FGo3=uW5t=87uc^xiai|Aho-ym)4ZQ4_Osbu(4+2uAKmTc z{)hSRYfCi#e|S<2?1FgFtV}bK`fRKI;UhoJr2|88r~Ao|a?;{V_p*P*5&PE<UD&^# z3g&nseN`XC=friiqYL}NrvdoWb0#f+vgT1Rt?P<E-SQ!Qqt2lDg@JYsb3i*^alTyY z1Jdvz=f$ONycUS+q3^q)a<?p2In;qVg+qDs-$3&7U&*TceC4U`%Fpx<eB|e)DX{$Z zDZcwUL>dlH@!D7VHL$O>r@J9Phj{jNp*Fbu+^^xk;QGoLtTg;EAKs3?yi0vMe*a0j z+2`nHGl<u#kY%tE=LFR0lkxNK``W)I6Z_X>Kl>MH_-e9h|B5B{uTx8c`nir+6wv8F z`u$)aH-lV9ck)LErtgY7we-DVad+u^@_XbeG+pbz68pOa(EW$Smk#!mhA%8$bdVMU zbg<@RH|Tr76Dl42d>}A=cj}+>!)R4E{@0@J`R6>oC6IqkjD_g`7C-$T5&a*j`hS0- z|2GC#h$lYoqyHZWqCa)2A4ZMV>W2rP=$?MK?p;6qa1`0bXym)U-lQQ?-QRQlV1Jb- zg6oI#7JBb*<d;{nztN+-^xwz3ssFy?um4UW`tKw^{g*V1n562zeTn}2T^IWA0w4YN ziy-^c`nP~@h3ZQ_+gn1%aw9c9uK0e|w$MjDXDgb{k*;KPUYfC9YIxg6K2N?EHaz8C zKlvO_T87-KmCvt5llT8`mjv~1u|5_!e-9DQckXWwlthL|=i^=5kH7bV-)yYkfd3hV zVsVWv#MnTA>2Z_Q_qapl`r8&zFp3HoyM&(Np^u^X@>@QPKP(MkrBCyvr-oE$_$F1M zr<p7O@TG5p18`(+*PgZKYr6ET{UTs~ia_@FUz1eU_{wA5vA<7$(+36&*{Uwp7Y0Ws zLc_6%3JhlS0T{f{5d2Kt{;107!)m&3e-FIB>pc70p4*-ME&038{^H3thD`L`-^B^g z&^$re-|{Hf-^X7E-`}+P>i!JXm$Sb>?{^b!*RsaLk9Oz%?)f)-wm6RL<emw>TZ|zM zvFa9Iii9nGaXk3@-J*Hw7R^;x<R7h+y1_Wiy-mg8Z}aH^&Zk>S0t^4qfHM4@&19bw zJ^bHH_`lhY|C5FhW|jZ<Cj9?c7ySPbt)eDn?bYaKe)fS%U;LHK1|97ATeUchR<>9I zu5?)j#Fn-OmU1b^3zGA1zWxVKrNCbDQUd!Qq>yHFik83c>IK{V{b+E!ZkVfVw*+tZ z(a-62*;2gUYvkbmt%rT(ALZ4Ys-Z^-BeWq6`gyYKx!>~&&xXjfPE>R%@jy>M^SU4Y z#}oXI_rpJF7%^VOe@}w{Bf<H#J*N|XEm`&i=F+aFj==Rlyy&0M2T$l@&2TM!G|eSv zd^I?~9qpVl-u<h;{&Nr6|2=;DCk-R+QTHD~_WxCIg0MgAP5+gF>0jf2)xmiDuhcY% z>($uTt<>nV5^}?N#nwG@iyB+^V-7tdZ)tt55DAY;?M4ut$7Pk~J8a!VfORi@;fP8c z2N1bs+({<aCw{SGEHueuJ^odzdJy~f;o$yNSr2t9qDqRa=uR+|cYO(O|4Bq0C^L`{ zH8oLt$J_d_@B3%~*GWZ(p7$EOKjF*%eU!h%vatQp(Rll2KmHQiIEK9cjPZW|2`BGA zhq`gqyKRmZO2D7m%C&^m$@^&c_3P9GAN~5ZhyFYLdevWi?O%5j``6w6_Ak=nyxYtE zr6=~U`rzy)W_B?B`p9ShU-WDFCRM-An)6@j*P~zcQB2-40j%CO`SPn(q#@s=@T=BP z0N}{F-~c={vupkOg-@?gzrNAS|H#Mjh=lj^+h_ny5%tdJe7s9{-l+914Vx{~`efy7 z@lG1hk*9hp)~Zo6b*jH<{bl-=mS}vEq~BlhLBOzNfU_al7XhtzK||YJ3Id)E0R;T( zU?2o|e2?yXFmMC}Z#5WFeVmWN{}V7MLcm>pypL9O9p6ps|L<qK>i^U7|NMFYB=rFH z1YZV<-ql}kPzBMvnM(d<+d_&K@cn&DaSPj`grBUx@(A8shcxTY?Xp^>o`SMRwy%+p z&&QwpyKy<BUAue?hXU>z$d9Y8qm%meUjDh7_*4=X@2LyA!7D(_iouo&?z!iOYTa`a zAB4vnAOBn>PV5Mc6Qdq=BnPev&dxn_mE;&CdPp+7+^(D-kA6IDG>~q_=)n4MJZT;> z+ROeSUjqBb7lEkT6Buiq(Rp+*;Dos6-nz5XIAK5san4=W;p5*>>0{sYPO!3Zh*nG7 z_kfo%zw^{8VEdL<z2y7;KZ?BnkMe*2CoQ^BUhn@M0H1C9yLkV<zmxc|fjhd45A%;7 z_$Xez7dFi3PW-^jFZ#p}?8)-P|Ce={U*jd8_q80q`-^^9yebP3T~d}>bu#G1h2B~2 zc+oo$duaP58i<{}ZwaH;P*UO_vO2qd?AzYS^}{H4dcJFX>Te=im=p}<`ivXYm!ie@ zQ{oa7RS}P!0*O)r`wtELKk{OvzE1Bmf|j`7c#?6C_3|IuOj_PBdg+hXUBUzwn_1JT z{^%*d`SX1ND!}h3^`|hs0t?Ok<o0gIhj9ERO$r{rIFW?wwUYeqEDEy9s}&_ebH8Jb z>dD;>Qv5cDCd2=|n)k=3tR!;(OY*z_k%kdT>iw@34)p1&;1?SE^lk@?kg^bW{JXnR zBP2|Y<Zso;?`w5l@*AUQBauH_s5t68JxlDSL0S>?&V63~10QNqZyZtLJT4<K3!?dy zq>rBO4E~32BkzH?`NIDL((vJJ3jA+r0r=0`8z@|nssTNTdkWOYnHJ<?pt)Fn@=51c z1kJ^Ay^j*0$&WL_KR?bE0{=3vbdgH@F3oR)uk;+zb}<;iF+qrp8K}j_HPh)C*{#t@ z>A@gHR7&WTonR&lV`etKLI7sw<8!hIpOeli8*G947or9`s-k=Mt$=_rxB6nHFKOs^ ztAZKFMZiqWo+Vx7(8-<JEu?5pN6f#vgC5QCnCFQPru-{35dT`QTt2qa>#)ChCDt)O zi;L%`QCz%BaIjg?%C;)?Ci1&)YoUDU&q5%`mk%fR;o-iJe}yz`9IinAnhOB=X_diw z(s`~sMI@vxTid%)(%|oE{%CgX8sGe~^m#HjPOEukOeJ!E5(!T2{E4~8bKau<u0Iq} zzqmpX^_ur@PU|!-o%>khFz#^8>W+W#9zXjKM}q5<kP!RcwFLbMfPNvJqQ8i$k4b>r zdA|l$Adz%89|*VKCjtt8Nc6?+F4C|&QNiuqzXNWUIfL8V`%eiFV4T884IgzQzPK{L z`^nC0yyBlYFVE;8Zzz*XeCwll;{Osz{9i&R@qeV*nc!vr`3<&jEe~#PjhU?KtFC`2 zw)Y!Sx>?^hDE@cEdf|V{<>G%`K>XiK@PD%({z=2`n^pY(O7Q<#7x=eyg8vUM5B~w~ zPvtRMN_cMaW!;~~tPQmNA8vwOp1H|)`@2cQe{NE?Kjs&L|4)P8pJGra_os#ry1qa8 z)Yo2M?YzFWv0Tlh8$G8o*CCBzyz6UEIpFR0Fw1NHPU>s#4&Z-wUw=>hm&J?bsQ+1@ zd)${r+BghOecy<+-UxRG+l{`F7*j|CccWJ%#^>kZQqi$HKqQ6=baMZ{*W>^DerNu_ z!RafnpO(IEL6=2e4fa6vRcrt<T5Is7ui2zwjzOWXhM$4HVs;0ouWf0a(ATQ>E-!zJ zCjTTj;c0B|d409{+lEe3<L5Wh)RSmltB_@|qIth|WjtO0?x&#tJ{t%=j}8Mc<PP(N z&sfqhZkPg}T|WVQe%~3~FK<I?K)*ba{q2D*ft>S5_P1{N?^bs5{&#P**ZW_Z=6x94 zn&$<19{ziw1~3)`HLZjwZYb<OedtNXoy^|gZT})|Lxy_UzkVe4uN}eVlXarkb70!L z+E<%vgTMbT&r$ZCOJ(y6)+_&GD$%QMVYg=)QrPYLI^zx>7pRe9J;(uOq=pIYvLhGH z@78zPWp;b2A;Qgf{(c1Zj~sqB`0y{{twdqQ<Xh86OTP0`J@xx2{VpK%yNJ>+f@{jW zeSs-B2Pl}4#uNmi-?!rd74O9R(r-R#SRJp>Z`(P*CM`0-dq4x2koW+iQWyR#Hl z-St23jDBB_(&8~`;^olqsWpM<cl`~pfANL@^qWK4=HB3y|Jg<O-}d12yDi0wev99_ z4Ekl)ei0yl4HyT7*f%2y)g%Gc+&aPg2^OJw`-Ch5M<^$Qs#)GvH0juC->heAuLq&F z?s{Ku+c~7+q3gX&Xh$WGcG0EXc!K?4ye5SW&l#enr{DBsun{;zbO8NIugTxxDak*D zfl5bkKzD@Wog7#z%ZMNROu=c!J}xO-Vi;?G>A{M2*~0fmLhMrorx^>M8G-ny`30vL zVn1nMi(e*1ZMIUQR|biF7vU#TcYlhmD%HTjyGc01R3kBJUfe&J&!S0^`5pzQ8FN_# zB;Dr>T$-^y&DbF6e#DE>|N0DG%$s_$m@k}oF$0mHKlKb=%)|)94?g<LX$JN~Bl|<- zT3T`*{x5Am(<0L!xxcr|uCw0u`=IrQc73Fj2a+6bv|m~Mp$F9Z%L0l(rYRA&8#JYU zglHs;gqjGyNm2F-a#6W0%vkOo1ayGx<<X>)lD#r|$CDUIu4gaEz6F^j>l<EbUWuoE zdIU1{wwVMJf#)@{+fih$X-cGR2)iBi$#vwKru4DJ3Mkq%CE6B+geft|gksnYPIrj0 zhOc&1c2VGs&{wgxKE4o*O#N+(wL8p<K*E#=y2tm9;XPV8%33DJ5&g<EHO`idgf$7s z^rr;dZAh39jf97yrPe~|KA0Z7nep_y3GqmnoFFw6UXa}(P>01EB9CnLa`?>*%p(9l z!+r5T9P6+w5*UZHYLSZn=$kJps-|8U-2JJC9`*q}?C~FelmZ)Ne59%01;u0pMtX6v zOwlU6d(%aKGx>{u^HcQPZ{W!jVDf*!<nQ|K56`U3`XHW*!xT~2audVETYE!%@EC@P zxAoY8xq$l?RM--Zo1#7ORnKVJd!fRXrx_-m-QeV_;r`Kf<3-tlmk|xi*aXY?bHMpc zc>WP&{&3Iy!N-5id;Hxnerfmd*Y>`Ozl<AI{H48qIruaC;?Io7zYz%xs0%ypz{m2} zd8DQoKD%MG6c9${*9LXggMU?K-2#Y%`Wqt*wtvFJA9Tt;g3PZ|=U>{%{4+iCPrJhT zgTZ&#d=<V;!_=96*wjt<YUzW;qlOvF=Tu5>5A(wM8Thg>!1_A*{?RM{USQ@_N;h7~ z_x<qqJ)q*}oJ#4`P_H3Q!w}yF`+flaz9%h7H>Z-u|9KDd4GeRn%l!|%g7pWSf8Z6( z|HF{0HUDcvx;=js{yt<*rSzEkjRQV93m=`lGWvee!~chP`2SzJN#9id_9pUIm8+FL z?Y)%tavy;U>l^K-KMX`d2Ke70Qzpo51_=YDgMaEo7S4FpOFMYKGyXzlcOnu{G_{Xn zy<h+mGUAXaGtS0h9TW+(BBXhp&2?_0*IeDm|Do1@jT53x{cSf28DXZ(Fxy}uBf??I zjIhOk5`^_1LkQM?p6+DkJnxy`g8FI^rrx#~6>hzVrsIJ#v_~rKoxtDhwZ7qWeZ!ED z5rOam2S5R2(-eTutY{>pL`xGpTjjo2E*C!R+Bi@Bw|FEBejw*GgGBx2-7^>@M&&Qh zVLpq*BH&<LyS$gtAyNPKqcds#s)m_R1uqVFu#cPFdX{0VKt0kMrC62j4?46EJ1hru z`)DM_4qu+bAU-1+@%pG7sHc7AVVLlCGT|^~LdZX&&S`vfCL=BKn(n6-Ivt9Z?ttlf zlj)*%Ka8iF5{<;D!!|q}!qdHj=MnU;Jd9QTt?+Sw>G;3#hoMM_dhETE_@fBK>u0}* zFH-u&&~q*A`LWt_wWsG&(sLs8oK1Tct36-x^eiDg2SCp|aL-%^zW=Cw-}Us}MEd^p z5bhgJN4;I``5#Zuf03S*(DR#S(o?VYJml$FO?tioJ^$6L%zu2F()X;V?>D%weNX(H zO6lpB+hy0`PHJ2M{q|SupWeDj;buUQxejT}%L*qu+&TSi^62*o)b%9QkW6fc#}L0? zvOPph)>!$7M8yru=NM(<1+c%!wux%RA;ec2Yaj=-Xf?z`AyMfsq~MfSMa2YCQ8AvX zF$u)DP3_(ZUiB4cZSN#;^CKGqCvLvQ>mtC3ZyC0>EA>Ht4^^Mgt3wzDUzK+o%0p<e zs1OF<GAA*ps>o0h0`754D%*Fr!4X1#SPA^;(^eUY`g0d^;j?o3nGT8h2BbRHDf+di z?r2Z&v|7xRF*<xJ<_ySKZ)`x~=#A&kGDg{*Fqsd#K2_Lc;6fP2ELS3-$glv`wjZJm z)*H6sb?{#!ev^TekKSh35<;H*vqKn$-vFQTMFteYFs^HK3?r<EpOLVE3}xEKKKma0 zp$JAJwOXY=&yi)^2akf}3OpB{0OQwGx3m}3uL@xp_XIq39)(vK9fvI8kW$p{@y1L> zx^XhC5coCjL3)xeIdP_Jah?vF%+J0)!anYUKh81?Tcnd^nd2LzFaHT=ffEeZr}Oh7 zEPR9OOb1yTtiSFQzX5i{*CA0aH)cXb&!eba7B<kGQrOTXBZ0sM%4OCH1VX5|oL&2_ zj%<T~m;e_q7Lx&g2#LF4JmZBlW4VR@CCykb<<U}2Mejg?yCOpdt>L{HDqY7Wy|o11 zBkw?Bl=aCa46)zV;Oi}0Y=X+V^cyiYjP%9J#b4VDNQ`QFY6&AfLHiR2FWR5>0#6FM z+!FeGHvQc}f6t-6Z=_gSN!M7QP`C8n?p9f;6pm*op))ur*b3-K8%as-YEsNrMYQrk z5uLh-epp1OE`kr$<3i>feI;`e`{5_;v~KY9PugXNwEu96>^}niQk{X0sIDHAx+I74 zesreI`~7IME|C8{M?IYIIrDa{0iHPbL0NVvOfd=-H?V8dbqqtF@@&K5A*w3Xki^ii z7jOu%8b&GZN=iO<_ua;FNOor7n-Je&l!@a!67{cto5}F|rHg6pvcMTeLD|;|D6;JF z-@QQ0pCn5^Z^gVj%aDzf%DYL3Kf;Nrc-B-yo)k%F*!mO_V+-CO^g2}y+0RB|)XpcC zFwzfu!6<VJ%qnCVQZVCqLY8H^QlktmhfwB*u9j4do^8lB))?{GxA4a>-u9DbWgvu1 z`<7luJToAHCe(_?hm7=--2YVYJy-qdfq!-#JCON&m$3uUoyLDvG1~Y6;z$MA??=J^ zQ{n$v@c;Q3sG~kjVHn23H#wwTP&fL5?XhCndaqp$Sz*SP^x>$^P5lqr7>0>oF_X_X zSP_3*8lEj<Tv};;?3Gy985{T(fElfyD#Yp|!Hygrd6FT`SOREzBmN?%cIUs|h3Alx z0)R;xBL;mx#PX48R^($(k9=GiL4C?1=%J5L34g&1&HFVW{Le#F!e@(TP|lixKN0f{ z$vZ&e@fF7M-_QqDMTX=EB3$7d!?=gAJWT$K3BzA(gAQrN@-$<OGzR_@d-!#rRcjAp zjq6kD{gy(Pm;>`fogBA>kw)wR1MBrjjC})tBG7IE>1M2Pfs>-BzxG@Xv+EkHRX+$4 zp@uE~Km40;KiOQkvE0q(I$(F-YL4|RJaaZ3lI$?R$}PN8*_`xrDD0pgEN4CWmM8yy zN<PasB)eW>7=|1!j9gT>2P0sP1Msc<R_WiN5-%q&0$gOrYFEWOHOt|Yd6hN&phyqc zK<x6rE@6aibb#G3o}#~)YH5BfewzVB5GJ@l3wQ+)VpPFnOBm^c3g8?W!g`n-uLpl- z+P^FwiTd>8z|d|ox68tA(xF&p*WD${vO7;j7XKYy#R3i9-0{Ac#0(YD^+M0$a%+E5 z6x$1Av<f?aT>590ECX-yKoc{U)(;gn)1>}%=EDFd=@;JbB;`6>yDoJZ|588>*F=y1 zW;3PW2z)Mz8>~-AF_|6(n;fa08lp?aotqS<6o)A$p5EU*`sJXHiGI0bK2Ug;A<jMB zi(r}=g@%kZh_6!rf`PW)&`8e32S<rcWgm}6qkqOihb#aU*DPP4cIP)3B>4A`bck%l zHWEuU+-Ry@@ec3A?0zKvnDhf}Ga*w>8<^^LZT5M*bw7{y;&-gX&MyKJZDuox(`7 zO1z!{0{PEU|IBJ8fPbcM;Q^5SP%qu8I%r18O^q6da@URIIs7T`#8l$KwrFBzJTB$k z^3H6Y>+O!X<qO3f@w->4JEF$P^0{GwFGN0`-_nG20q;jX4&U8-Uk;kz)OEg52~Rj+ zxa|C<t8%>an-155<Qt*)&u_|*CY|0p|L=ZyT>WHYH}acK9qOOo^t!cO<u_eE1n*rk zVqA@Qv|UDWHRAO%zdy_5I;34XAlJji?XtVRGx#m@=$8pn&#y6hQ!&OWkr*Y0<}kF# zyZ)on8I0r#Z<kROL#|W$*GgwFq%5u&HDBo}eNOsFAX@Y*G=0j$a~LS@ExqB@CsWhs zZ%UtBhqTJ8*R7gf%^}Kc50E}76Ik4*r>0La?t@n<jU;`TeSaB)MEwu{_Viiu$P(Iz z#eH@#*^`>1;IKs?QNK&mbF4br4|?dixh(14Q0QqNS9ta;!`PrweY`tPdh<<!ws>MX zv2v#s)5${aG(*e?;NMZyF1wa@QUA-J)A*l=`l@X+m|ge+W~`B3J4UdTVytn;AU+!L zdC?@)Np?cAK~&g+yRu>_)xwhyzYjT2>XA75rk%?ePDnLIkg!03>l4R8Q6uN6FisqN zV#zXQs$jTovXFmW1QKG5Sanb4ghhR#IermV=PNn>Bog&^ZkxeKbz!6ue*)q&BJdCK zh|h?#k6UmC1BS(a0arHUx?h%Msp9XXd$NV^kAx%(zbpb;E&Q@*PDqJP=O<$Ml_<-y zeVpM8v0J78U9m-toT36WVF~~=V@{>?)3fcet6Bq1FV9A-lP4Q%+`W)EAsWd}upjJS z(;x8_oRAX1nfB)YzzGq?a`!Drh}Cs8GMu0f>1br=n*cQd@kfbn8$G8I$>p4>eDy7< zY-vpLvPo%d=^$NN@*(S4vwdH@*}gwME%}h`|IGG^znKeK2Q0637jubw5&tW?_#JX~ zjJFJFnk)|L0sba+RO61GQ_1m8DfI1j+2Ivm@k(gG_zF}kuQnsO5}A%KGh*$hoN7Z@ zo+w6-KMrOxQj!TnoHSsy1b5t<8Y<t4E}lU4ju6`_WS8eJvmtwB2o|YjUn-9T{1J5V zEOMR;<;1WTEp?4tVilbZDvxfU*Ul!&Cq}Qu(>asdW#tM<g53DM_KKvEtdSk!1Na{q z@l9%E1hRL8vBlTx7)E2FN?}l;9DOsxuy!boZm$eOd@HIuk2z^s@1t+#jq7#vO$%R3 zmZ$eD*}~VMi>L6Ckr?wLsyn4^s<&KhgeJ}34taN<CK_I|)P0Z2#-5lazVc*0yM_M> zT|AqfSeKsYPETya+fM@@9*EE2h`{jxB8&iH^?^)AD!a=A2z=8^p@mmx;}f(OInPB9 zuv{{W)A7IUW-$}MWEM00;Z!V}*$w4sY-u^-TOICUSe4iAjbh3omvfk`j&giGDwbCq zgOCoqL<o^d-0P0OxKBdz0aScp%^j42+*nNKC}i{Lmzj*zawl1Sfl@XQ3N*T%>0)G@ zgEQ6S_gI$aaxn~(UR=(uZ(tb4I)^jWEW3{5_j7y|5=XDV!~E;cb{W33@W(y1vpE|4 zlb-0DERKrc_)5e#NoTfbr-VQrsIWu6vhc?(;u6^%Wv@y~DH%HwZ-GCC?5(|)-ir5< zfCZO^c#l%ldWe@Z9avi7PGE0fIMab;{V@1rk~pYyOrgv-aeNKP|2NuY@|%?RM!PKS zPid18zYkjBedCQ_cYlX8YfX@Qf3Cwd@KQJQ8&>DzKg(`EV&R*Rvm@G3ct&RN(P$lJ zi$=v4ta_}FhZE;ii?ex9dU3fe!d!M6!!Yh}bJ+-wla$qfQcF?|lPKzMR!UPV*e~Co z$w+OZ+GQo=4GIKJN-aqZl|SvNyuY-`GBKRkTYIjKL*l6GkhuIJGX1g?a_eT`mANC; z9})kZH4@)=V1bD5z-zvqEzL@jk+?=KXic)7!++{cCrhrdhT`i1-{G#of{Xt}TCh22 zu2)xnuw1Vnc#B$1{NOXb@q<d>pqlSO9QRx8T;|i8u?8?Pg2aL3A$I4f@vJ>rM}A+4 zitAVRMi;-{aVx_x4!3^Ca8II<A_~U7`GyquKgz92HKfEZ-kWNeFs_6%OvJpb?i?!H z`1ZCt%@61Cm~{E0$a#Jcx9}h+FV1s=y_=oq25}4Paa(#~HH6f2iAPa!y{&&)9K$d> z!yu@L6FEbQ+em7%im8Sah%Md`2a7vuydb^Uf)R;Z`L6-Hn6VH?NZ!fu)zT8&fsjgH zg+%^ZlgUWO?r4`WFS!lU1H-pcD(*}lRHTbzF-9Pyqzduh8O!k{xq#?*4a?g+`3w9U z%o%CmDu4UXqz*6p&`Mdc4_U)i6cUrpdP6+@w~2~OEc~Rk>&P$Viu<8tHR?1WiWKu= zri>XTRJOzdXZvJ+X?WUg6^igAtTq}gtS^|ZV^HEzES#M3cvPm(|LyTp57r?NL+6mQ zwHHck#bbe~Vqt4^ABM3cws5q38OI;AI9tY}GQNcThc2E+x>n?D)pLpa@OMz5^ND?9 z@fWq2uz-9f5F&#AXT$#&!2efTc3BrLe)P7~xmGNmCSWR?{AdEk`vj<$x#M2g(?#P2 z=`R;$jhNm>LWdK7RfU<bjR3&j(VJa&34A0c_TWs;Wp`nCZH3iWe%6D~gIJZxNYzR0 zULzg@VmgMAj=NWd#f^x!F04w83&m^Xgs6k;NycLOg<bnr7?zMx+u4&0a-IpZ2>Hec ztRSTekw#2+V=;@WrNv5{X`QC6Wa@r+>hvVSt!in}(XBKrw3$YrZlzQpQ8eRg@MJND zL3}M{|9p$|#M{KKKnfJoFQ|RM%_^~{#tYIT7i1ZUnIXtjw=B^!_8~<FdUkIn+`n$e z^5bh|s9e}RK2)?ss_}vpry1$y03#*u&19ryLB`ok#;N@y_&80UXEM_8AmeN#<CM^G zh<``jvf%;7dh7E{@_y8CTj%4IknxhcSXVY)*GqxM!6?KB)?C;q%kp^3yk^87GG36* z{7y#9b#%7AFlBvXIvckM_z#wjJvc!>`$Qv{i=dB30cALo-h85wVT<0@5e27cla9fE z9eJXWv5iII%wCu<2Yl9x%)5S1CL>kdN)7-X%u)s?k$Y+$$A?AdR;5Nq%w6PK2T!as z`#A8&iI|ETvEc1P2APBhc~&zBUT<R%5=NgYlOTRnH2U<Zd2_7`pL#L@@z&^Yix6!Q z@)Yma{WodK^olV9@BxJ(Oh=aX!bk%`pNiBJ21VrXs3x*s5Pt%Rqu;E|1iKp4kK_*k zXNSksX0JNH$|xJ?x_8r2$fTSY#u6#P@#Rtz_z=?_%9ZLVG#$q)qepOn@{=NhuB*&s zr29t@5tQgoLgLH_f|3Z*p`{{|kw%U1L&^PF6ERABMcO{xU9XI%%CM1lLY^H)r&SMA z7-`lk0Zg&ER)3*&UrQiG59=Sti10e&$v?E2;<lW^3~p@Vj9$pznzGuU(H}D4|2gpg zyqzfk(o{o=+o~w~9+{?Oom#KH8P<A@uCH@uGR6kP*GV_uLU`atib980Gzjzqs-9c; zazx|rEqsfG|CQsbj2A3?tuz;gr{Md26o7AYATh7e-ELhLOm{ozZzdu7@v~m~F-Phf zAiPJVRCtP_+;S8EoFa_L9gf~C?5zXXqPOAb6Bb~xw+>^APr(P(NF4mWV=l8}7}gk0 zWnPeT9Yy6fGcmIW5YGW|E!))GSq1d)I;b4lNbCD;R_gn?NIrEK0KSD$yeo++1DL@_ zS+YD15trF>D#?<rzm&u57=T-*Wy0gqgezQ-^f9B1+|3oG8Ed4S3)PQ;zJO{9#7<h$ z)mx}1n}O@Ppax*9|0Q%N`rp$-)FYHZ{S3gTLvae=$-6to{l*Yl@|-%TtfbBXObFHw z*HEVg9X%oR#W0yVD{Rz}1F(@k=Ho#u#71PPa^inT3`v^t`!wTEX-1+Bg%C#AOg}E5 zzc<m}SJK}VhZsD#!@UTfu4Gtj3!FVz%CC6Vgb;>F=WEmXlYl`Tshpk+|L!&v=tv?O zn2z5B({TKUsu#*e=(ovG2LFC&*a8nE^=#4Yak!&00BPWOIxtT^;OT_?dc#&7fp8K` z)P#k?nQL?azXcS22^9D_^buw-2nxDyWkGm>t}iHSfz^s(*MaheMX$-Zv=>KvyQe{N zF^ZHV>a&3WNHs(}h5aWJ>!l89%uR&x;{h#vg@vyHRaE(m3<K&U-4>z*11r$g6Ap&> zT50-gge$_P1iBf4ZmyI4I8bp7TlB{@1hXlWd?dQ^MjbhPNuXQQuU^jXJQ=a{I()ha zHrG?^5a7F?#M58`fIAC~4>IT&PJB#<XHE(6Um5KAn1!#w-!|%qY$jVE3vtJFHlK=g zER$i04Xk(s&%E<wPuBhxu>4BTwTPqSY2m-JC^w@Dd^6(sR+Lx)S1CNPdOM<5BaW}d zP{3^#XX|(_u^#jVJoCbOd{e>;!ma6vhb?@C=ayu-_@hM(i$Tt2J;$H2I4_Oo5*xWE z8pm>pr|>s;2=`PAUuogLQWgh}LdprGn}vQib*~==%2pl0X930I7D_tJl$6ToiNHW* zw>#0ep7@6s{^-pxXj~}#JUoKhH|@>C*cbj24wZthWs80Z#dN<?^2i^#C%f*UP;#an zfCZT(Bc=6)TjH#7$lfy0+7H=V23RAJz2!P<II_14vgIMU(qd{@HizRSjz6wwIMR+x zMjAGZn%DwRvp+%5y(uuDOR?~uTloDG_NES(XS%Z5WLb-v^BlRrDlCrUn=MXxJeSyt zxs14;D0z5!PhxIU3thC!H1Eh{9MY<x#AtoF>#J4Q2WCSJ;lp}wg)0EiR28~-%)N%L zWieiEg5O&HU6#p6O+yIC60QJbL6$Py!XL#DXrk0q4rfFINQ*f3TI7`V1bi~`K<m>G zP)v?XU!A2+h+rje9cb;3?5*+EC<n5)4#L#XI>dGp)pQ3an`+#i$w&j~rtp_o<GmZ% zTW_%5j_j@1SrZ|Z7#{M8`muPYu*AfpFs(G#d(HvYBxG;B-g*n345l1pd&pP0UW}*Q z5>J%tyOH)VgHZ)QaKvN%uwbHT9?vCKz!DOVBEE^te)^1j73g=rh5y|3mu6W;_U56h zqm;w%I@yPue5?%=p2BxeG_RH8CBz@V;LbgF)g~W|C&!AIj(GVL?Ey%I^|qKQml;9y z97N*iQKgxbB&CHnw9Ay7uq30OQf|&sNskGsRwMB(V%A{jL{yks$-d#gKmTyOqXMFd zsuAGYi!N$;fx6?ac!J>J35x^sgj@fe$w&*XznUyzV<475ys+d-2k<An+<3pWys-`Q zr-s1<j`3H8DQpbL6tv7Boq%kzI5q_H1aE%8@yE&O`1~{>&`uBUTc@uY1<(3JmeDw! zj$v#|EMf{iO1+og2@bZ^iii3a<ax*%#qs4kVi<;T@v#iEx5&`IFicWefBcuf#^5DH zRkSrS$mC?#mf+u=jbTWLdZ(?C;e@d|B&6yhTrc+b+|SUs5IpfpW#Sbhkr4GvTcgK6 z%*n2u-CrGPwss`;2F4ZLk1p|&vQ|dtyVj%qV6Ci9U2Ae*Mg9_bUc9xJf&jSxN~x!= z8hqP+!|)9UwIK?h-f?00=b~3ZzZ|EB`75xlAg%*Dbe)8FCn}qN|H^k?-R=GsT|9}L z=lY?A^#ynLgd>-D)FQqDUHJ`$JRR}I^H{epp0kKy*CMe1x;UGo@kXGVvvoX5tVQ<b z@a4lbmWTPMxZK)nC&21+7JRCg5kNUy5^&Pk^(`2y73|vDJ_;^k^I8BGAxOvyiEtf_ z>UswiWCtyl#44pLUu0NGyf=gG0E2WT=$Dw=G~*qtNaTcZe>68T7E=|wc6t<97AK55 zj{hda^hg)-dqlX-_NHX9L7|V0BrUPB;a!nH9PfGvIkvZk7RYfM-FVf=;m2Pz>5(01 zTn``y6CQ9}1kl2lpf|SkTKz;P`rpS`{~Pe%@&9UX{V!hG@Im7RY0`<SwOfa)y-AkU zu?aAx@2=MHxenJ~wc{HvNWxVcoY;59HR02X&n^4H&@hao{&14#(fE~dy#RmT125~X zV;Jjlt^JvHFU|<}(A3dS!!Q_5etXquYU6nY2zUT|=lfLkf4h3K+yS#Rb94%TkHs#} zXT|d#!T+c?t&aUiCL^u5=D(xWWG`7;t;pDT_69tEuhq)}&t3juCL^`Q{%_`1kSQB4 zNY{RI)nI(!Ck=N1`iTMh>I?iK5))m~yNp(T0%;aEg<?J9gZIgQmWw}fx>Ly68p`o! z$-Vj%5@YT|&Ql>+B~PqPFD~C1i7y{)Y6aPf@dC$JNnFEK+e+w9o|Ac&ocy1^zG|bt z{UaXzsO93<s8~jPtA*w2JuXFvyxZ#bA!lp2g|9}=mhmWYA9|vGz9q3%qiNwiXJ5Tl zu|HyN5sgvuyfGB`dq4PP4ha5Oz*T}yYoERp$*x}m1UoSV-x;2O*OcSRLs;8;aB+}E z_P;9p9`VP3l*w%)*Ibo4n8`?Y=XWyuYC8MB`~A;mH>a!D5x&xO;G8f0Ujs0U))83c zujyo^hqjQF_U?DJ<RT(Z-kz1_E$$Rf_tV+MzW=k?=PuU5=^d9WE5Ey5bz!RO8^SQQ zhp8Cgj~XwK{C-ET9{+c#QidnjkX(l}@am0UFX3(U0Umc)@gE$=;%()4q}vu9JW9WL z<f_d(Q_@OLJU(oW*k{LFy?K5;i*MEc4Ubk?*4tlQwN=eNO9Drmbsn>~Y6gd>R#dnr zgM>NSn`78@v*7JJ??-Th{Tewt#-kxkNZcK^0nS3I!HUGeN%1+%4tP`Nk8q;?kBBA8 z^Vj6eHZYh}U)It$QDeKZg%814ZsAWr><Bq07P}nEKKn5|qOJ-}H?=KWfiFnWAyoBh z!v{8$`ais-_&-FE6B`|Jh4=pxz|oZbkd?68L)g;$LUPSKW^g50gF{p^G~cGcpXit0 z{vgXcLIJI<QlF>WWw^3RMNhZOW^qDNI^T->Bdm9n6pe)<R(vhT*DGs5#pTN<K+G65 zY9n}g`IGGNpu}CX!G1$MWW!!Wb&Zz93Zg&7Ed8@P0`ax3!5yIAkp)a#*)DT@i!^3s zyNtxJ>oC)^062Bzc_{+uqmpm~B#yrCO~L}7i=+Uhq!tkpfb}Egfrj7YW9G6B#xTP2 zn{R^pU4>W2&ecT8s8(a=VsBtvbH0~l#MeogD<BD947=_XCLn$1hvk6Z9TEp;4)!AM zxNw!Y7iU~O;zs<}7QRY>m}^CcOlf1m3NPA70oq6%`>;P@jE68uN*E~t2_qvAVE|QZ zB2;l!OBJ^+SD-YlGcIrmz*l7W2L2uVX;==kBSMAMk6|jT%+uPg0JEJjf+~%`ME2%T z_SwxusS3rEy9`royh^bO7kGU$q1hun|2ra!4@Bc;b~~HKmOg{o05_OPE6E=mq7~t% zPtuc*_zEe;rkwoeY#6&KNhL**ZPamRGw_;PctKWPvxu(XNG~p5elsUNt--3|9Is%r z9I*MJySIfeM|`zwtOlVDX_mEJmS$M-A&-o+nD#HTU{J-;*Yr48>wY-oRY)AY_-_PY zZ%4F)`Vkl6(N~V+rN#xcWv}<QWy2xg3r<bHNTsX)hsNwxjj}9Rmnnq%SEduft)_%a zTt^4%L%axgWQa<*CEWjta5abAzDy;9sxHZ(+f?uml?u*lkM)eDT?W8w+&|E?%W(e~ z_+6LrtF^@W<NYwz`9mrAQcgXez>Q3t5<)^JMg5sgndA-K0reI4GD9&$%BhD-84Xy; zGuA*S_XrGMZL3mo1j0fqIilq#BbfHF&rb{?o<%uOO#=gEffDnO%9e)pQLiZG!sY^o zVOEE8qDALUrv4N6K5|K>#i0T$%gmQs$Z2uV_=p9HBXOFT(P*}}=CIFhA@?71VRO68 zFt&6~G>34eiZx?7(HzQ|D%fY2;QJ+Ka<c1YhvH>z59^a_E^I#knJq4rEluqM{-5T8 z=Kt6t%w?F*xGiQ#F6TB|<{iVb4COkc*QU40o~3lQWRBJo1mBC<r1D!vnz7#D!rGwO z-aOPAZnihiw%rRah9{PpQu$N^hxiu77&G#<Oh$S#jGS}r_^Cpwfm6mu{K37cq4I1M z;+tv7pFGRFYP{rB#P65Rf|TV93y1@x)sUxpKjQxGbWgD$nqfmwMxx%2Z~q0nA9Ed2 zLuk7U&W{JE|Kmm_1-atn4#kELpM@7hCh&H9Y*|T;!vb3Mk~m|zO4_Nr{fT8U8aNF9 zOC}@bhLRW5p{jq~hA8l_+XDV|sU@>RWs6(^`4wx~=N|^<nPtf4#91Mn>BO?B5Y)i& z4R~OB1+9NIlaZoA{Q*pKty52Rh!y4!TKEQv?b(Kvxm96tvsX?P4ShM&DN@MSBF@s? z%a#th$z1LZOJhqLIPun9SvkxkwsiJj25%~d<KH6T5GAt>6E!=u;Dr>0bY~%{Z0T&n zM9dSxuT8u)J1YkcC0-gp0m+qQ8TQlcB(`+WaAZ2c+8a7#*>~Fdjd=f;F|9I>ON4Yg zE%+wEA9K~VVaC{q_&VZ$ycp9*HOD)pro~t#c1jBtdzVN^p6nGOp4g`0c$mLA2!A{2 ziBFNVp1Jmwh+&HhL5QGeBxFP0@6)X$2T&u8K0!!vgBSWDVF`5yc1XKuzhkstil^W7 zBqS_JrhdaO(SEhGU$UlOJQ6Gk&~Lx=1nwv18#4Uj|3^MW;{Q=qsv#Q!Y{jVJ(K*Be zlhlfX*ljhaACp&As$nIGrHeXP`!FesN)o24@d-+R26cF?B1ez_n?Pj0B{`v|P0oQP z2QAx@jDOiezf)Y3H`DJhw!^5C>{cp5su@qHh_M`rvke(ksvjivhs_YbA`!<{4FVo% zArJcyrXZM8IKhH;kho$R1S1Y!J1U2fo=(+{0GWVpLX;vLuD14|@(=n$7Ley(fU5A( z_KMnq)}HJ-5?_PtZMrpVDqEVOGuz8+%>~Upmya!~v0jUWaq*Rn3=&2U!T(S`QpuLq zBXNps;j1kdk6E0}<IVO)-DGhPzBL+U;|0<o=EXF&wA>=bWFT=$hgatiZD%Bm+f@OR z?5@yE;=6v(7u=B$=2Zt#gXO4Lwm!y|_AO|Qw?(1i2CKdxIo@`c!~G=w<(}kd+ucZf zKn7=#uaUELy#17p6DP{)yi>Dqq}ylFmAl_TLexlD$GA}yjZ7sHq73BM8}YBk8lzl^ z<b#NB^$dn|btJ#IY}FT-;;knf?*2&LkD0utPpz^v>uJPyAby{PKW^d6J+%~xfAX(> z^@T{_>}*2w8OYu?z#3+(cMnJ6;HkCLpO@I*ZoVLEU3v2j*(AkMN>RPF$4-#PqmjLB znEHK>`P4<3@SkAc-;IRW$3JRhkf=YjgrstSR6f$%kvd{uNGXzSxBB@LL-}TX(no}T zK5As74RCGRlQgH2hA}4v_6L@xq;*n$vOb`nFM;2WUhuOTa?}J5NG-CNtpafb5(oD@ zs5nL6eUmo;thD5&9~AFYp@;`?KB72!x7^s(0Le(yzm(^J-$m)s-WvGb><2$(2n*jN z&1AX<IpQE6nHtPN{(v70Iq@ySF*U#7wp%?R2Gk|Dmb$whqkhoU)Ni_+`l^=Eo7~nA zhB4Ns8EY(66~w{0!BVw{{Pa_rQ8w0>WEmzQ(x^DmX?}%RCvfac)+s;bs6R0w;7qQB zb<rOs&yP9E^zP|cuR2DRvJ~nojk$G7NxoqcRw@$cU6BNco#6O7j*4`Aivn+A{t~`G zMPuC)GaVXbqk2p4CO%banz~K&(oJ&7rIzFy?&WCc4ad`=`M1DF0#A&`l}@?H(uk?F z){@u+TDM^Y!*Hfbc3t!cGD9N`V<R)rU^{-d>MYE7<pFeJ{ZlBSp6A4iTiQ-#v$EJ) z#xph6Vql2GUm;E&co!P-D^_UmW;oqGNG@d`N-m*|B&7gbv@V9MYopHNmY&LPKWZs# zCB7&(^=23c#7DevO$0<r3}Rns20Lo&wQTXT6oSM(uq`zI(cHr1`?G8h6|4-IXv;?8 zvUbeyNg@RMnNUuMI{IECgLHc_YKYXNxD<9%(5?qUvG8pc9yU-0BF}2Lmo3dVOmgk& z&oI(0!x^Tifi2pk74oK9cHJwtkW5~Ql~@p6JPvPqL!6i<AQ(V*TrpeY>)l3r$!?~B z5@i7v<e3`LI7EenEPR87-{*0)_L#@<a$NoTgR9fub~Q2{WO_WumFUIGTLa8l;VSK? ziD1L{iDTEF=|l23JywuB)Ak4wm&sbt>j36a4{m8>t{C(w{Q&Pn*cWVJ7~k?hYaim@ zEXR`qs>t3JzIrSYqTbutc=@|(?8`6(D?{(L;t?LZk`Z3-ixt9Ut=gT3b0X4lVn!H- zfH-)|?uQxI&=6Sv4c1<C{nyzRWBP@)|Fq)@W;T$SeaKxzIx_1WyB}saF?Kkf{B1Za z@*rzp#edB%4`GW*U`|_4Si{0AS;OXN0zX@L!OCy~#UWQRPIffx<)U^kJryW&Vs;Ot z+v_?(7Cyk*!-4Gb^|txQ-qr)w{*SUNnDcuU=4{c<*@Mm*%8A)}q}%I$64~4IFo)$z z<|rU@w80!FkW(ISKdV>fK)NbU9Q@o)eE)z|;LHAQm16@N<u^epR4fii$Wb*^D<T%Z z8NU+-4R0)vMXkntBR=`KtES&=&<|4cW$VcMHT14`-+@_alFpNJRr6KzZ{((tq*GI& z;jg(TYR6i1`_iANAFJ@VG`4h@MOTmP&2b8Z%%8<F43o}IJC9+L14}=~iGy4C9Q@Zd zWN#U3-gPbM<HoX7jD2<sw6!98>sb6(B*w1YlEZN9v{rM$rQz28=7LMN+QQMr;|_NZ zB#hf$+8Bhtd1DALqeS52bvvjPlmu$Ea6Db5ib>3VoKe7jhLVSV<dmZe&&n*raN+|x z&U9$?I3z?FOD~@;9InTrh&bL%Wj(QIALsa^kRD6Ff7lX6y3nDKHNrM>p-lW0$@@GP z6g(yV*fOL}iSDxK>U>3xh5yobO&0#QbbcRD-X=ANZ8Rl?jb0%2Wy`q^*SnEQ5aY=R zU?L&;iK%R9w7H=5Hfs-uxuA6f*!wbc=7QFwrBUXBR?~_e#v0e-L$5&im?C}h_gD&B zLqJ=&4)3I}RR`Wk4iaUZ%BbzdB%em?rh|}l>8}Sd#YDZ1|AFf=yiHX~x0cE>5;Jtl z);p7u7XGl;8sV+_YeX#HS~4W$^K5UJd_0*vg-mYtoqX%R|0k2{djlB2srUIr?*vG= zL9c>LQN4<<=>hAVb^z9!aRAmk{ebs+Y5l`(<au7JV_cSQp;^6l)zf;x5<dJAmhg`+ zVF@37>Ai$phqUT{H2=Y#41)?~fZ7J9^!v{wKV?5WM>9Q!_^`MWkeDGOdu#9IeRk?; zG|!%g8F#dAPtOtj%7e*0o>QnSgWpCocn4P8JZA#x@7~-K@CKfDFMJXTzx0L^Q4RW8 zVQWtv!>qX$j3ax~j5V&`25U$F70MAhhOs4K^=()|a=h&ttiD<JU%b>e_cf4JX|KBv z{WqNaiwfnQ1VRw9zF+#{C*t_g9W+?@DqjqEGaQ16v<TP~@l*YVXewd(eSpc>D{9RJ ztv#1x{`=3ZSHgeK_JG&U9mEKz=dNGENIlv#>{eWQNvjxyamwk`?d@!%7T)R4WU*pP zA0ameM5k+Z57=l7;a5~X+uK4`k4Hk(p^q<rckB&}s|Vd5&9Jy=@DfJ4xz%fb9oqec zX!ZyCL4!5(D(}-8j;AeI)C0@UlG+~dAfCpt=`|c*-Z}AfI+5Q5{lnG#y~@!jo)`k@ z3`e*j7AsCUlt_$iz<L)u@mG!}moNh@q_Y#9%39L-&pQJ-mX$fdkFU2rqCLK;4C8uC z4~rx&nf=4y7vhq+S4Yk-amxG;A^Z?fLHGXS3RKYcFbwa^j&%Nz<>J>CXX|*g{ZvRQ zyFK2btH?DMUNWcKqTwrevT!G2{(}FWk#39pRHvLrcV8q#rTwE(GeK8NaXm}+MO-C! zXm@hy!z<Xy$gXxWcd;!}vy&U~-|`mw?c$jaFKZXOL$5$%Sr-aS7ErpuDSaprIg)d^ zvPwzG(jAW3KNODC*rkhoXEFaL{PO1z2TOY&W>oDk;FMtQv$uq>>u(1r^vCL7?_5Vg z>j<{E1G;7E$kV~{!CJ{k+^|UT1lPQ4XeJSAB`fesuC<9&Tu{wrk0Kf*BV_8Mew z847X9!)z=5TcZcQ?Uc~DB`@9r-WxQhMK(<$j#ugW8~v<_<}|^LP=3^<yM`<z(2gCh zyx7iLG5^kpg`)#rr!V}CNbEj@m`Hw@Gr-UyH4Lp+DQ0Ms{21D#|1m>zy+)Q7tt=1n z2mAo*8>?C0hCRLvH~jJ#Zt|6_FTMCDw)l&_G!8cQoGj-$T)m<hQsmVTiTh?5?k%df z#^QzKK>VA%HF9+yWUq*H4^sXJ&$E-#iW;mvq1_f@tmmi)M|yDsyB<tb0(A>{4<cQP zpJQkkoF@d}5W481AppoL1OS<8ZMUJFiL+m*_#<KV3yA%=*0Ou+^~LV#W!LM$DYs&* zW%m&>4r4JLUV4+o-Zs|8rt@Eepx-$dvpvI_@N_X#c88|(UmI(T_3r-454{k7i2j@| z&Xg^MZHq9Z)?T7!?`l#c#uje8V3gfy#s*`J^sDuf?5TdTi5T#O_0U&(IlEnxg9NUm z0=4y<j<V}E_aR;qIgpqMJoEG+duD-u_W27W9~yj#BJATfK7W>BY@ldwrK}5o;vOV@ zJeek00!v|kr6nDz<VKU?xO_$&$EQT6vVB*^<Nqb0suXk`d8~cxb13|k0tw*7aVcg< znQbgbg?ly=2jb!y+d{xn&ml$86C#EbSuVOKi(&ncm?9%*a~NFD?5$C(y*vubpuzc7 zA2R8p!JaP8H-x3nGZ@lMr`F(ZAxNAc=Q@zRIf}LOQ4H?&67F>gdL^E6M|0xfaaA8O z7QP-5PpZ09dhz${`o21vAM6xcq}K&POFE!s*0Rpg!rs70Z8JK<46T26lwJ2jBtcI$ zM$cA)o_Q6sNPN~$zW8Zg?}wkQ1V60B4?kPI@sk}GKSK$A-W@Yni=WNoeer`Kl&3(5 z1OGw{p9w+WGiGUU_%z(#HGIl@(_&LP0;dcl>L)r0d}jUV3!h_xAAGhD_?(~Q2cIq8 z@W}`apLhbFzVTl0DY(ZUKAR{7HLMOdgL4^2V{6lk>&?4$z-PI`YU(ro5XXPbiG%;W z=R@3seV!<1ts%BQQU8jIPRze-^R$fXNHE5AN4FUl*l$dSmkuQCDjBkY9&tyKf9d@8 zjwsfCM=!`vCZ`F8Pss7>--}_=hR^@xl4agu&Q#BeIv*N{z%-ESa8Cj%7@Ze{c^%8_ zj0AEWfd4mo61+pkug&CqO#F=E|C}HGc|ZJbrua|u!~bS){G-75??>>z!s5lh3dZ{J zFPc&U71y)H1NB6+*g{Y$v&C;|UNaT@e{nrqG#&mPTlRb-!|`>9Kf%!)cvuKSWD{ml zzhM!MMXxkz7Bv#m_rN&%rV9?t?9RsV%VJSoBXUYNpq&NJ{PQSr#u*fXb}~JmEcr#2 zWh9R6uM`_Y^wCsF>L*34^~9eQHLyj`Ln_o`U=JmeN^cJ*{qZjjaM1}N`9ZHe#URtK zpTgGI)FX)9d2;-+1XOntIbAnc%9Pbubk!VRL>6B777PPPIQR`@69V0wplpt0Pxru? zEEV(jme4i#C|k%a95X51c6-69kStpw5;H@QxTGD4`U_D@7*dWw`rsVHpoQhpeKc7N zX(begu>tYb#u{neVsC2og3c||+dT!q_zIv_n$ys9h+WqdPWndZDF2^Fa2`znwCEZP zpe6-Cdm+0p2GA+wJf{H=r-OV-{s1bX0NUUKASVC_f^jG>3P?$q9o51I9&&2Vrj=ei z;Ef%zzMHhTE1Li?fzo0UrNv~rI^wDePBo&^>yY$lBH2R%q1aR7m&H*KpdBj3>h|S2 z+!44N47$TZyn}iv#4EMU*PJp_oo%d&)#4f(DVFTM1DW<iWt&6=n^IU9VH;Z+&*$!5 z%3qA-Mdj9~l?6KRpN~Q9K>dd?rx?!UG?#&KgH5gO0)a^sfe9)C70^&%2n1x_@Gq{h zMc}{WI@}qUBtidsJP1*~JT(vtB}93YT{k0410=o)>KxS3`j&Gwm=H&Q(f_jO(|>z3 ziJmf|pio3N>C>CKavjpF89u;~Ty?U%qmQ?vU1VGiBjpWh0|*sRQbanBkij4&Y6(&R z`o_W_GAT7Zs6yRAy=xkEp0a!nj8lB`fzc=WjJ}bMjyp(aIL+u}=voC=uZIx*uZ-${ zr~UN5XZ_?`Bh~-L`^mRPt$b6;7idJB$4xRL**@;Co}o+V&={ERLDIH+JS(O{7lbH7 zXC%SJ5nz#lI6g&@kPnRxBq0et>TTi18l&vaMSLwltnY##_}DhZ4`S7DG%?6>13Z?g zelY^ARms!L9{hR|bW+>^1&`|8QxSg*7T|a+2+BrI2}BSo*1l6tR;%ib$`_GfBT@fK z=`2S2*GXSQ-d>2IJyeUxCi-H!AcU}LNZ>b0T0YJXu}u`QO7C=jO0@DtI-eOw5x!A_ zaL`T&k`g!`0qz|X_Z***gb6~y+*>1kF(=jCeo2<T!2hel|EswDk_`E;FUe9V{@*`u z$Kb04A6Utd0%aA*FW08D%hHRuk9hkfnfxsjI?&!1#<$DT68ycejgrR&dR!MEzKQU^ zM}yseEkTd#+EAuTM;sc-v5my$QR=AiP{-0ogHT7TB`9_1LMe5$s0rY}6<XBiZ=1zP zubl8DjhJW7LQz%?X;f3vK$JAffj_!ONe_<kBaUhfaUczGlxvA23vbs$85_MQ1ELxH z$wD;xU3sVvHOFs&P)=aS^2Uc5^5UWT9Q@3Q`l22=jG173{<VZxE9GHRXjHL>H(=z? zRCvQ5^MW9M<D@R`534DESV_N5QOuh(QSvcma>m1$>fM>j<STt9k5DGZ8yOgQaz=Z9 zZB{}{S`nXRSgFLjAyL2jU$Yo#<F~%(k6n$?e~T9V$9&LVOM}Jmp4=&t)#OJ6$2uW` zT1o`U*XjJcc*-pbe7J=#O{`RC0<w{+{60q^k0)>UArD8T^q1k6Wa(x6KL`GwF#M9N zd4cWB1g@GF@ijpyHtp>c5%?JUzVEDa%QBM7k;%Cxk}Zviqc-p#L6g=IB|_Bypj*O7 z(cjYCv{ZaRv+38RcY$wZz3N+egroLli|#il6;nsb&2oGLTnuy!;~D^Nu}z4tla7yR zmo2i>Vs8mqorntMUOI-c{fvqmtgeFOc-!|###{9~r06(Zt@}Wlu_nz}?{KrzM8k_| zY-xi<c1{yx=2`45p{oa2OvhKV_p+sfBFy&6T5~~L&*ewci)*YbDwKQU@%!O^)<{km zeBDcpOq#LYJ<wu0z9N@P+;8E(v0VJd;=D9IeaIJ_t})Hn(3L%2ae~#pu2gWIM@EPi zqP~yUoRej!Omv*Y&)?lnf@ju~Kx6S~9Wu48xt3k~4H;0UODX6`S{j~G&|zBs6{Kp` zDT&3AsGq_tVWi~^-u^c$b&7upGX2UvyN==?VwL$r>4}vVd4D>8j7AD@L-s0<s#C?7 z@PIBkL0*%(;h96s?}J<_&VRtik#9!)ap^kv(J9>r{~qIbr&MKvKq2D4Z|b_X@Wt3J zYYYEg*Li(@cCFyapH3>JdHfITZK3S?SCv=&1R=Vxb>f1|ENdSE-@?}PM>Df*(Pd#u zDHT$}EVnRuQo3zI!OD;<+gKz{X-E7%>T_#98H#k(cwk!(h+lR`;w#@BfPEB-_-fBM zj!L#Px}bHqwP!)=t>89yz0{Kgr?Y>nBvU~RQCf}7iR>-mtO&+@(|$P75%!AD3R(v& zKZWcqq0bCL_Lh+4PvM_!%OI*zvuI>*39}jS%9cM_urf5u8c~@1fF;Xpv-oZg*<19s zVdVWkZ272ym0?*nLz&*Y6Y(Ey3Agp~EYb5*8HqGHE)BS=T`nVW+)gR-E-!RDq=7MB z!C{<_hd;sJbe&Ipi3fkh4eZ*RfmEY02%|7CBcPgf(ws^pPLTmInur!-z43xO0?8Hh z{Onu(1Y0^bI#rwm(L*a{TFU6$kzoJcyJ8d)N0lOR)CwdnuSK7c+R01-{k~)QCrF6h z^L!(N_!DWyn*Yb#w}3}cWD9pE85lxB4-g={gN~X}#EgPw1eQc5P>nq@K$IxBM8RCp z)r~L%Q4>g*45YVhc4Xc4#lG%(cipS&vg!>_WhOyLf<hk1E6RJJ!}x%><}nHB|Ep8g zJu`WLdiQ?c@8?HmrmL$?ojP^uoKxok#k7M{kTh&-x8EipTg{r)NIZos4bibY{DfMb z^;_%l;d>Wvs|IELX1oJvy+W}N?}bXm@vrZo@;A_bsvrsGlv01hd_7$wR_osc%OSi6 zX~adX;=Efc<ho%>bcEh-hD0sG#_0M(8G8L8IbM&iNT-Jtq9t_Gx$?A(;;!3W@fpQk zx4FmT&l%jy`+5c~@vJ{Mgv1fymC!!%o_5wfEVDR0&CSsoxg~qkp&SL~>|-zwaz+fA zQRXtwwN^L%6-yzXRjBHY5z#vFrM0<?Pg#_R1+6VKytR~sZO8`u>4hYIX!K`9_#n^W z{>O!dk9aK;a?qr_k`_*k%!@;@upp0JZ+;fkdcO{)K&4?w)=u5w2}`a*;uXwG=Q_OA zTxn`7c&eI6{BdZKD=D)$l*X;cB2;E^$i{743(+7}HP6?y3oiW)%U(RqIK&#rxsSER zdj!eg?DpG@f~|(z_=ORRG&Q`X&LJM)TaWXB_8G#28i$-<%Ch<$UO(q8j}4dKaCjSC zGc${AliasDV5#;-ER}<;f}oUU&SZH0t9&NQ`c>1r{qcEt0?LD*#}6L+DxV1sj{50= zuksneR_~7YWtIB5(*3b`I!*RCYVWO!@Q<-IaO+Wj?OuaMsx)(hNuB{ge3M3@yhzF{ zSsDZy0K&I6@_~*S{DcNg1V_@?ua2I@t9v2iA(ATps4`XVRCU=_tM$Y-N7{Fv2Sarl z^0siL+xsyL+OBPJB-UB$QELkck+u1`^?^8s5xBqa(@sphpd0?kFic@0x6t3rbGHVN zw<S2nA=YGi&aiylCC7jo`lO<n%kd*`OJM@Hu(}y>w;s&%1xNDY6;$^%ZY&Hqs6A-r zaxl_~#j2V6X-zZta23Yv;xF@=JZ@58wXqp-6R-G!gPOU;Rqz>cJHMVGu>1J!VGhOc zw#%zVHC>6py_gK+zRYI?F`@;Y21NI;2YK6N&SSf(s!j7_8AkE!>A9m`eIb`o;^WDN z(rR?3kPY?i=L;F-U|mbNunKIZ`=8Y}QwrHkb8ZhO6xKJ>lnLE86Qz%g(iYAO_xd|k z^4~gSt6N>DocpLJd~MI?GRl(!FnqKe9WAQ;5C+a#*P>Nv!;t+W|02Wq2xz!j(4_pG z7STD)M1b~sN_Wtx0WJK!^>~k;)Cxg73g<@+C;vyMs%CNJNv16M5fE0njq^HHmEWZu zG=l9ExAE3aRTX6Op1E?;;|_U#Ex%h^C5P?o>c2I$bf~KG<%d0|&EjdVGLmJ{OfSh~ zSr#`gWR!bq$+GzLW%=Oe`m!XGWqJQLGWX=jW%=Fs?sHe3>IHz}=W-dPxjzA*jERsF zWkchMg^W^uhyYNg18`Ru022Y=&fCIyk#qpY_5c8>6_{sidcOm38aFtzxNQ<w`eui! zY5~A&8k>IILA-J!*|4&8cTdniF34q+d-@ZSS+13NN3!9@6AQ`x#laSuO99}1;Ta6~ zKut~Z1x?Cxx6%q6kyNv6To1szgEOHQaPG$7yw#6@ldG4(k_|5(U&tswr?BJ_SiX5$ z$Du+9_-hLRMTrFE_}J@$@|#^fL3w*kF8D`KVDj~NeA&<+19SFM0!%&u=J7BvZ3LLd zC@^i2zz98o5ie^ONXnpHB#tDFjSTeb25i$#RoyX^8duWTaOoyNHr&y&gj!gjE=VKH zWX9B7MtPskqX3HF5Zat^Y$2nJqVp&q^LYJd`aBpyn6IUhc`%WLSvsc2&X|Yc8Xt|s zZC7#`<yaiq8O0HIZAdl*jxJ<;${U}Mtx>FRjpQ%{MgqYI3V|^af|#BVa9QmtM3|pY z&g0#rR)EkU*v@h?))8lM<<nv^<u$b##a#o|<YW0GtMn`PQS_0<h<MwT)yB*Z;nv81 zznmaC<Y{vq^150<tmAiv`O(qULwT`=G(_|a3I4K~GbO(8&wQqtdpN+0H4d>|d)Ab% zsw##9!?Wg2hxi3=`HWXTb%@{atzYngt22ZNmmKm$lf!l~ll!$_5KlP74u|-OLu_h# zuN6~8tstIJ<lC;2kJZZh+oEOI`u<Te?9A^#h85&xW`zi^o^X9>UqliFd)bS$<YFmJ zhVX%2mu!1PWie&mFx^NBA=z!DvgW9d^zx^`CH6!1V%_~p&#Xi3WdprEtBl_B-~vWj z`BA4zs#Qyc<{X+~kx?2;d$#Y7+us-2emTh>`))6dPh>A(lwq`Sc2pj5EY{>B@d(L< zq}BO^1h5rY1dOO;BOcX?*;p!s6%|mm#<Cxr5_qwV6b03@_=|OXt0J%!Pzu2UM!#I) zsrqRG&0*mKXMLLOI^-cROW9@w*D6rHxdOk0@_bQK;qX-EeAr2=Yd|$t=%d`D&wHrW z`0N6xPdPfWIU>zBdQ_DwC+3vWdRK~eGo)9-@O^Y6Gl1v^i#C$_zfP>1-O?SoMGF=% z%J$u4h(}P#ULVbJu`i<V2f-b!3=vRg@M0~3iV#IJBkP)z>TPz+h%RgWkH!7x?Cw;< zwauWxzJ2z))Y}Ei{@`7-iyJY*G9q3*JD<!SUWP~T(rp+VvCy2+TQOExM^ebOSi8`n z1r-*o?@3zg<}YBBox5}d)3=}=10F#u#xMfE8^+DGY(4fe!JMx2i@Tn|$Ig`t=JfAd zU%D`CKX8&1D`Fu=;|BmRO<Pviq3T7s1$llP==XxHf!i>NB}MiSNgyK%=5($+J0^}B z&lHDl=e)bLV!F6-3)sW5V^w&+IP?ft`Vx5_g69Y5^N^>aHqTca8n8MYi8aV_0(mM7 zS}dJBvxA>ddmmSx#K=jT<;^BlRcCSKc81NAlbrJW+Tu|1%IQcp6xJ<dl!g0RRJ1?C zcoRt^vk~0b0C$j;Asxxn4-W&&G)5{yp1n>z8-w%FN+cVm;BHK`n{lKY%NMylx{-Ty z18H%NE0b>m#*9B&Zn~-p@Db`8-*kQZ-iVm%+V>`RUCX}b3Fps1RC2PLbC5LU=_gN< zBxcl_D&PJrqbNH`-ildBwwqJ&m^mO-DR)$Msx$?GZ1{_m%j|*-8_Bzf&wK(kOL+Do z9eq)sdX#t0V3etBFZG>OeKHvS)piQI5qFS`B*ULqoMx0iF6>evzm0ojak|x=ge1cz z{Co9-T`HJ(jHHfXGW`gdbv|L}aKZly_dgZ-_xjiMSH3*esgkxPTHpN?NyTPDY!&kQ z(GFeB;)KAXKH9BY@AloE_+NdyW?L;TFfy)z%EgnNDzziZh7*nj43fvjHsv$Q16w*N zF(^0cJ?{SGy8BlSuWtr^-ASyFvY}}G0!BGzZ&C5D>9{|qG61d~?B+E5HC=hVOI59n zNKTyhcpih~>2uaEfHME-P}vicU-B27YANHH{`<$V;ME^!J(#2f#*wPt>AW})NhV%g zV8q+Ovp0hxo1717Cz(gnJhc}R1^gfidotkXX8dw05|5GhA-PtiwHkMls(kqcpe`9u z_j>_QckE(5qYQncGfLb!*VP$8SHV}Vfxp#mI)1v&#GFVTmRYiZ@gZBSdlq$#UTk(M z!Zwo8E*G_)BKdhn6W*7CpQmEF2E00vyx5$Q=TjONw_t$NF-{tgoEV(=Afx>G)t25j zy)rQh?1=O@3)EgWIKV$8Z2MhoMoQ{cx}rbNg%wSIZ$7Lj%Ch>E`x^m)QAuW$@~ctE z`tNT2XK3p~S7xy}4avjK{9``B&mbfoQx=R0X$u4MjGg!($Y;A=>1(Q)S9_moQ0hLv zf+*Xzwc4sG%RcQ=Nq(kA*IXnI%jTYCkgdTz6%PO)rXcYc5)U9baqGMJjPm~E7PZvx z8jR$zskp72IPcwj#utpoqo?4}Q#HFVWn$4N`c-Env`x$CasYfu8h`RB2?JC$g5UU* zMcRA8!+r1H#PIp6(V#%`LpcfUd0Rla$b^U$o)c=3_$?Ca@_b51U6+cyjqbsCkQ|zm zFWc-4-bLq6Xb+zh$g+<YFVjduG+`gI1O!Pir}1)<m87UcUcbvlF$g4`ZB7Hf$U~5o zz-~s$ZHMr9{<VpCs1zTvRjvNd;2gXR2~h*e2DS$4Z;c<3LzC3UPJDdt5;!#Bv{^Ff zS%x&H*COeURw^~)u5}<P13NmekpSs$-H$<n-}fT<qu0-El4)6BCz1^h7tv&(%HL;1 zGD^z-+oQPU&mgNCFo?vIM`3%7Eb7iMFCHZf^O;AZ7^ZLJH5jIBsGAMkY}C1YM#=h( zeh`cbX$&;27Zw2YH(sMZdcJHt)~OL;#L-vRu2Eu5ME*6&NPKV~z(N*r!$tDsk!TM- z<lq#swXPZ+;U~=2`LG_2N>Z>g5FAdGg207wXuuJ$u_7_85=qDi*)?r-+?D|HHfC_Y z-<Oeo(A^J-PGj&!<ZWDQia1O~WDE{MAZQZ9GBQ?1<cI4+GQ!w2V!$V~!z@-lPy7)_ zBC$^M7u^+x{6sLB9OdEP#41P?UV*rs7iX+8VO_26A_{zikuWtFi@)2B6!izdf+O9- zO3vWf(t7lnwkmE*AQ)q<7ON_e&1E)mzmLjp_x}m}Yp((S@1x=0^1p(ARXl-DtO-5^ zGx7bKr_$^m8Z`s7w2ohT8QG4k8(7p2oOvs){z^njF<1U@{6G7Df&b=S(Ef5X+F$O5 z_HO(uDN;Yv(iz+Wwb!PRYVc5yj8v=pEdv$U=8|e;!AVF;eCEZ|46@a&9)$vD<B*j2 z5dJR34Mx)9!A4zAQGS_Bl3cHu(QE$tX<)Lu{Vz)*^I9+ZOTMNcZoL8`fb-Ex0EFhB zNWQAt<ppW>vh0MZBwaW1`d8n9<at=G3n!cg=cscia4A-hlQ#2pX9Y_`o)3Atl2+~s z8j)Dl^ceA(At|TNjnIw>rR`rDhwPdEj^J-VB>p^Y{rbe+t37d7{|k(}s#RlY1;L&8 zyOhKtX)y~~RAI)-f)U>XcaMCyBr@^;_&@8ob6t+Yow9dCuV}mdd!Y@G79dDl9*MMf zhwDhI{8mHS@oN=W@4kN^dSn!q26_u13C7|l-bQyKA$V_fn9#39--pBJbEJ$ZVx`(! zjfJ*hcLmR45_TDoSOqgv*gHw0<y0TxJ;Sx*EAp%g8gP@e$jFv4@kpK$_s=t=K8)?M z>pnb?2}$`_&T=IqTaI(x5M;~AS(|{QpPCSR9CtKc**clzkToH;E}}!W4o~|y+R0QO zAJv5qGdV6^6NRI&r##TyLwIQlU9-MD!OwTs$IsA9-SKlKjeraIIScq99POhpews0U zu#opr1b&7Kvf=zWf*--=cR8>eXcDB1T!+{18VUFr3iwHMNJfX`G&-aVQ*f;E%eyoL z>D}>S6)&FP#el$8;I4zF%$>22*3mD>iCb4LVIuK1ZIpoJ&;~4u_KLv7D?Jf-P5K4- zXe`BD3hpEWtaHk_q2Q*I(sPWzUhXkQaQij;A05@dRaG`<o%?$9et$2$@4WW<uTJR& z{u}WS;<4VRaN(PtgZ$4A>%VdcIo*2gf5Q*!KR-;nf;n9=c49K~kxHMJx>fo-8&Rti zS?ZAd5-Ia}1bi#QB|gOl)cQ4&;|538DYYEyootSL-IHt{2Wgt@uia7m3&Xgq<NLxW z9*hL@XfI%XgXE;aNZw4q44H^6vlAZ>o=_axzyB)Ucbxqwy<k9c+@01&<;<HjBK;<Q zvl;)7d#Vd*HfZ?~maI=N^S$s@&-o5f`_8ZXV$b=9NG7_7nyP0a?m+OA#Tqi#@Er&Q z%m+g8c!DdMA%xCy1tSQbgAw-raA3UwS(?#P&C{UWG5n<0`3&!6KKJSCw>mo-_P5%< z7wqkku#?LhWT_!1dM_|+{<0^{myq!viyl7}#;?$-*v7YA_-ya{|M?Qk8v_!LR@4*Z zG$8Q=3Uovv2MQ136C}`P=#!ugJ%MR@wom)o-O=!swNd<pFE}t*22x_Zu1~7+1$zwY z3;yntYyQ`*kDG|l9+q|izH#08=PZmJc{bZS_c8W_Be?Ba{PQ8rwgU2AGW?s0<i+M> zpRx$tHQQ3w+>B&&T62bMpMfS+A$f6Jvel2oI%Uc`oz#lABL#EEn+EBE)bp1#wfa}R zj34%@-G^F_A#V#3TM;K*4(IpkVrpKWx@z^lnd4Vs@#Ckcq)Ulqm{p1UW{!Kt>fbRA z3!>9eNms^w9JA_XL7q8QkQ3GaSOVv>!xnJ$%iBM5Y{mb859tmF)gH8O=D4S~_ru@e zvO=uMvih40u?(|s=D4)&<8&8QJgU`it=>5vzcz$d{YX4w2aQG${ovo)HlXMcUi3#) zhQTCyAxh#rQd;dYW|B18{gJmNllyf=R%yK}nU^!MR6L&Z{5*zXJp0lz%UmPX;46Yy z72J&BFRgYBL-KvJQAP|FzelN)g8h+LOZ;csQn-zyY3}0)ip2mJgr_Q|36_1x+u}|_ zcqm(d+t9?~PDZL}!FgB~8fKS&nr1IsJd${w9}&cWAl4&q%j!D>IaB3vx8bSP>r)%E znXfx1SWY@@fi=6EHn8M4^wzI_1j$GZ`$xB@aGpglWU~5n)Ws&`TRuzRteNJpR5`qU z_Xs4<>O!_E&NBgC8rPN9R7y0-;4I`-i-uAKFJ;xR(pcQ-?O435AbiOLiW;H8Gx1l| zEICJ?8xLB7Al5s){?%3_Kigw&w5AW8o5OM}&nMUpuH4!53r3$^5}qBN)vBlP;L9;w zqmWl^TB@pQrYDeQFB9-^ek5Lj{A2a2Cz7$clgQZ!5^-4S1lzuqdx8U@+G<tPFrt<S zVn7)g4;3=Vq!QrEWkIY~*!ZiePw5yC@$~BfSMkvJ>A3+{Rk;6$=YgH@d{F#V;$oug z9iV;MIpC_wtJPS7fR)Eo;PtQl>2((#^w+FXzspF=-cZW+<KISMas&Ut3U0$*25372 zX!}<fW1DarN|F`ahBp{Ol9TXKRsp+Ni#NLgiGko<u;8}Z)h3MaG(b>o)4#3~CN0(~ zZAPpMK9rVKmYu8u1y^D6orvGN?#>i!)oUt(M(DL7_+NrprMzW~Kv^SvsZ)Ms#Hg)P zB;!@p7v^7;pInc>2T-7G2DnZ9?wh~tyZ;_BQx^n`SP&3vE5GOajg!ldu0J_?rvCnr zANKwy^B;NR4|i<0>+g>NLF5Exu*h<pTj*~_+^rSVhqStxGYz|`BA>dC<^(FQ*MG+B zxiel@1zzv}2HgKHCTDgVXj9zZPxLX&1APt?+5dxIxxczuU9u%oK(de_{;)l5R_ry0 z_%_h%5XjrOj;+L_yoOpk$mt$cf5Y3jc7^`fTU|7n2B}$^ssDb%no*c$Eys}MGO`8M zvXx=~-%60%sw$B@c?hz7yCxaQaU+qX7TE$txSeL+t)v6@L^1OEi^icHx<j$8$~`dh zz1CxumDj)jyg4d<rO=$-{YFk~2eG*?DhZ(#&4fy>An|0$IV`2v<+y=)zRZ#~{Gf0U zQY++yfwIWl{lwnjSV5kn+U2ByS@LH5ILqtL;)DvG6YA_@0F_)|7{-s5R-*w2k?1m~ zAQ`}EP-I1gD}WSYvRDlIIb0qfdD?K~Z7CXzY@wn7@HjX)&xgD%Ypuu@T00Sb@~yJ; zV&$m83VJFkS!O0Sc>}~lV4)-hi%6-&1VT@bUT)&Ho$38fg&WT_z0vhO{6~J)^Zp91 zuHX_2?oM5#=2t#VqSA&Y93>{x8Kf?TSc7rztu9JJwj)Ie;hTYA67p8B<&f>j+V}`M z0U0$N>(^l07{%)bTYhIa2SL3rm@MG_BYqUCaa*wlOj*8F94}V#b?5j%aJ+*(5sc-< zX2DXAR@CEl%_L?lUaZI@*Bn`vI>*xLIr6l4Jg+n)ev41AHJDdRg`~2FQ;_WD9L3Y5 z;`5=@@19NWi@_yCa+#OI^$~F`lLT{)a{QvImik?$2)BB2g{E%<?GDcltC)U0A0g%9 zsm|;9i`cuu_m|v;UqtzbfScZ8b2>5hA?4UdohrJ`FyJQ_8RF+6Rv-&LM2m*`kgcvL zAq**AEk9nZy0!69^P%1!V6)0l`n^hS(bItRF+>^4dspG+w5OYhlH7ATO?EXB{#UL6 z|NTlbfuEnQ!(W3e0ZeQd{))A|QCme(4{D2^!pv7RM^;{}B1<DdRV@7QLMNR|FZQ34 zJtuRI+UFi4^E(=zUruCTa+y{;gkEPZr=G}yxxlxF)Hm#)k0Pt(K=iicGUrooxmrrc z-+V)S`3jJ?-rXNb!)DDo%?Q$BbB0!8&B30-A4w&&pP7+^{SyCmLJ>`PepQeP&C4@O zF5>OtSb9ju5syW$V}f{25Sx_$8Uh+f&h<#yr;PsMy0m=k8Y~L*zgwd8-;A<Ca|YR; z<%`W3%5%R0Sb8eFxM7O&`sY0W;K~clDZw{;(Qkb|LUcDHv4ZHjz1UpAoJwBYZ#O4{ z8lewht**S5{as4jX+O>QkUZ?ZgJ&3ItJ_I4vDEyqfk|iDpq1C*?-J83J~ZNJ^{TE# zJ`B)5KE(hX)c^{8Pk=O6gF<q}PERbcoyLD6*|0qoF2)D%&1aN}YdZUICuu&>hv$q< zz2^M}Zs)DW<es>2=4qyzd<69KKwoq3JC~Lz@`9iNiB-zVF?#T5H<pmz6Y}83DEw!# z-Tb?Bhw5A~W|%M`VR4?JwvGLEb2>u{Q96mNF`~EY5g)l9$-%?tMqiRBfzgmuNtetH zxe(gPw7#@v5IBG)+$%`KZols|)blejz=;HNvLI%gQ}CIaE6Brsci;@;u+?SmVj!`d z{QyL329qND8TQ<PGfbAXk=L29U_0oVgxF?5O8hjF^q&fo5wmF>Sx6-**y?%C-hh7v zhYb_Nd}6);tQf9pQ!s}}kMK#0Kzra=Pfjd%XC=Mff9Wf}BVxskkqM~cMppia`!f@{ zKU>kD#4-#KJ+Khjn_@(B`pF5S&`u_`;j6;^Fl>C~|K|QqA3x(hE^_={6uYSLGY&Is z#*P2R@v-a`9v^Pom{HS%vG4t{`xt_}%zTW*FZ?kkT-=PtC1^z)w=>~@PUNk|dUs9G zgrs3l%s35q3t|ltuOM6EgELMu?!ln$Lp+_ektEF(>y+jWRn_grQMT+$h&@4U*)?Fx zwtef0N0x8FS1U+Tj9D8|Nr)*{)xr_T6H;A+!}h<Bx{hJirX$%<`{qJMdHXfuFLf*N zmwHJ6UuA0}5|1N!`t42m;RG7sE?&0SJiE+po~0)%gUvn?i3hd)z9+oj+k=Dkvb?m6 zO*=^Gc_N7A2T-6r9m<|Ti&H4jk){RBkuZi-Et{1?4Df-r6fAv!U?A4;fp&<-E^vqq zd>~}PoFJbMbQlG3v3Yr3AY{a&%qh7*5`nqQxxCmK=t>q{=4?T1%M7R{yI5#;2HK3G z-7NT!Y*_o<0!Df5)fSa27tFKDj9SK`GAFAgCn|HsXyFNE&RESqz04U0f=rnc?l<$x zoc%!RDRcIRG^b@wqm*sVE^`i$vdzviXS|ec7RsChfw7c16S!^J<~e1~MEn<(IR_QD z$G8%9aF{IcKf%;pnB&0@nzR4r8x}Cir&6cNm1mo0mpQqeCX&HZ%TCstcfU`WdblSS zy5(w=|1-DYp;(>&!|{_I5#L|Ul^%|vDZN?O-Nm68mleqd&wrBmyhX1Nda@9DGS7G{ z?0<LaLO#6%Ee^$e#DRmMiR7)jtmU7yUE#d5Am!K^HC%E+kTX?5PPog*d)oSQ8{UHC zce7i=q0vS`p4W<`$#>0_#~67}D3;r>8d8u4zMU<_u@U(t+F5SH1Mq17w|eQNxGZj4 z!qmLXK)~qW_EbBbs-9LHig6Ex6y_U-#4t=IS1wGA;o0g^#xvb;_eF+rB_Iizl=$XO zl@|x1{TU`Ai5$%2s`#Z<Fzb9H?`hxbp64Sz19`qxW+c{7R@1A1;xr=B=$ZbfDd7>` zx)L=)(^wk*0B2J&*?_}(p0@JjcqAD*?mZoys?e(BB#~?LWMr#zFGo`1QQQWu<)u4) zNS?lMFP5y@_fW~|5aM=Tn6YX+s=I&!Uq@~5E+norqLLf%d_2>?o{WJuDI+Mr(n=FA zt}-HVjw$#QxLk^L%JYMnsKG8(;=$Uq!S;6>EF%5l6(r6H4^~14`|rzmuvjF`G4bO4 zMkL;6qTZb;;O2Pg_X`>2<Ch6lnh90D+nF1tO8&e?l}I-1#;sqWt;dqq|NVMI>(P2^ z;I~K&C{^Efs=#%@{}_LX1?i+tc^7}_4_^YxAHVHOl>AF=AEM+loxS-Ntxk@<Ut8X; zs(tu>^z1nJ;V0L#Z|VJ$y{{-8(0@uF)|{q8efU+s|9$++3c~DPAeHNLG)LL3V;3;i z#vL~?45P$t=p<$HX>dqB68A&(hRp3ZQGLb<{_$@d(Bq<R0y7ZA#A!_P(Xk5{<<$+H zDz%Ihnh~jM?p0j{NSd3B#LH^kjv>)eqZ68!Fv@?{gj5=Dgk@LR@X~J=GRn_3lW5fp z5-a+pm3rW2n{$JS%GY0!V6R*fC90jON6%=ds%LM39<Wl-bNx0Q?8&Tmeh>eh?NRsZ zi_K|}X=X^t)Mwm3`<b2|CK>X|#1xu}r{3Tm$dzZ0RDH#v8(fo+Z1`ZyLPq)JOJpBR zBKsissR&*^^h|z)7Mlvik>!~zk{|BEyZm1Vh-#mT#26$#V)RU}OS{N0K9@;p{}Q-^ zAl+vo=^E#lAT`mqz0xqDG4H2+?2rVtxBN7pMcFSPmRKN4Oa}3{mJJI=193sc-M@G` zRXwcAiNyWZmdx!pQnE@{P&J7+>YG4@TwcN`B~^q#(uhS;HsrstkWudU5dujg1ajaG zoj_19QTa4T2n0nFNcpKSf#m1}($jjOJpD;e0%^alf6}68+MwYtq?)jDZ%y}=8-ZbV z4I}=QQ-jx9Jzww3x9>n7%lCA5T^W^hU}1bE51tC48E^|5HlZIutwCZ!Zw6l+&5Zsn zlHZ3<;Q2CNMczil2^EMFPNJm^=p#-2L-Lq@NJ_kL7Z$^NyXc9E4}vMA`MzfgYoc~{ zBruF!^!KWH!}(CtlO_M6JN@pC3)>eR-g>U|l{ga7=tJK6qN%*th*}%rcH!;+Cjar` zVbmHFEEs9A;NoF9!CMXs^2GVPY&Wa-%Smq|dHz7;2_+Ox1dq<}t5~OaKsJx!1D&yR z<%!Gqz&~SnIc|)@5)8)jVuQn5T{MH2=dq~u1iY#(2#k6OF9;v#oFQ1w@|Id^%I4K7 zhnz6jA&dB1us;$jNqxR{xZfBT(FwT~5muaq_t;v8<&4ka^%vdC%T5?F;)WZKCs-<w z3f??)RAe~<z9i~Fha6{e$QjdkPuny+hW?@+|13Opb{b-jI4q}q$lFqMFOnbXZ46pX zF>;KfWQ;>do;)1MtEVAPSJW7&^=mA_>0=xfEEjyptKu;hk};xI>k_hr$QW_@7<EWa znvc|KBu_hv<aNo&qb3*L5Pne)4UQ9J^L##VJ{GZcg5@IGx#yX|iFPn>m`Cw-Uxw53 z^R4Gm;8K5K#aU7r`U}Bwj^C{{cgWMmpcVE1xHksO9m#y%H<7PiB;Ev}WrC%HHhpIk zR2vmA<qB*KANVH5A-3~@i!p+wgJ(Z?tf>AU1JrqTtoY<<mSKDXTcgY0yr(0P^X#G$ zY^oq9&RO;jGgnS{&9QWVLpBfQTR(;Z1NlH`IwayzzV$1C#kAH>5EaN!V7b&+ag-0k zH3lw0je!rt#Zf+6nas-zSmX)C77m&#n>mNP%*+O3kyt6vRJpvIkbq=fMJuYofosK4 zaG!drWg23eF&(jW2-1M<WbV27pDe=^gO@Mf=K|cH6RjU%Hkty_<u&{ct?3-x)OKo} z0ohKj8-pZbO;;+7B$zxU+>*Cc-7k+Z1`U)|V4l3RK7yICCy_LL)E%c88aU-Lr$Z>Y z&!=aXk*EA(JC?7nXc@E*k_)U`ka&bf()23TLs!}K@*(270j?zk@fgXPdQj<9k!;vF z6bz=9-_2)~j>kH$7hen}HLR^?D1ZC-de(MKXX%2JZO$P1GaEzS<9;yWekO(9p<v+g zT)wZtJe|DfRo4yccH2Tl;cizj9+rp;X?UGzL(HR3A+bT(cZN#PeVmVf-rL9dc)Qwb zd|CCsaeix`B&966&F6ifo}|&_p3!!6^^JYbPC2dX2i=-j;CWT|=iM;b8%AEP>;oem z*S;SHtcZ5p*J3m1M=8GV6GT8%@;o2%HWsDQ`T*j=){}O*gt_~Py_v1Y1o?iJZ$0j9 z;W?o$lM^ln`{8!tK~$pRgRAI4Bqz)O`^d*E!)%AcOsqwocGcY<wH~w92My>o)Y^`` z_3nvYl`DOXWf<|YM^)YZ;BoA0ttwht<vGLRZSHMsg0yO4t>#S-mV?NN$?tf2%cOhn zJ2-oj!2P|N-^mz5>+g?a7zbO&2Lkut<7E&1i4kmvRyiPzh?3%1;m5#%MNLWJ17}h) z!T2al(C(oz^TucI(iX%X;cayeZgz!3Ml7-&ad7tqkXRLb9C_<q^T99cD8h4yoTG|X zgg_iy+TuCQB01?EERaD|XVFmn;sE5i!XnGjpb?2j@d6x$$fk}*E0q&h+f+=n<kCFQ zGy{3sS@&1g>fi`e*Tjo;kjE`>W`;1J8eFBjcw6n71otHBKXPTwSR}S0%OQu1RAlSI z0P~hwP!{ui!2~3>T3dn!_=A_?zmcuV{a*kd$%wqaDMwXRW&YJRRdHNxi}X&S^5H^V zKJ@xs(~+FmZ^u~%cXOLhN_=v{MaEn0P9b+Uvf+^l7cp~ObYmW|kJXVl`xHGOzv;a* zkry?}YktkabMtlL3ycbupOIulQjU>a8tc)Q3-n%k^IwV4`3KxAp$OHer^z`oU5cfq z7vJH*@CNt~S0Qhs`za(l6Obn~YRzK;DQzOy_PZbSNmCw8xyX21+^KYnW}B0dY(Oc1 zp$RwSF+OE#Ey0h8Sg54L`M-fc6K=zD;IN7J;_s3@kc&KfQvrd>;Kht`Zhe#@zVrrN z&q@y_Do>mwdR98<S#YUlLbBoOQwtd7uhDN>Zion?O;m0>*%=O^6^-~KLLxHl%SdL3 zXU+c1WUwym&rHF8J<~5vAeJf9NotvzM`Ld@@t7y@m{ahW5%>MZeHlh3Z-2%BVjD|A z`|nF5o!*yDI^B#r&BOZhjxT7pkEHVAA|n#-OGV-wC)yPbZha&Nd7e*ZR!>6G9Fu4I zLjX_`$sh0qwaq<}OWvN7OI$ruAFU+GNZU_C-hAcC>7FOKPwDuur^fl0?)KwpF_HTB zVspN-w-Xa8N(TP;DX7-YT+9jXL{fnhAM*L6KDVvC(2S(~9Nu=NXf%>yko1TV&%(}? z-<M33U}%jbXBvKgtROj49k%#&Nl0w4wvaetjD@B@XffByMOM3+l;$NPTkWdn@tUB( zX@ejon2@yCWE7-qlL>jAOJiIE1nJ>ahcr4E&+90)bLDnZG6W0Ng)`0y;z_EO%Z3Mk zvV_@%C0A>8xB>b|>mW<h<&jvYymAU-_^2SB#k!ZJ8F@nN+S}&HN#ig>vo&xVz9wb8 zQQ&MGFC`7(ZFPkQ1@VGI{2Ym)U?sAh<UD&|e$6OwAufw6Uwo&L#7`aPHvAUcC2~!C z;G98_pHk;a({8+9T70ANeo45|<dBl?oXwTnZ%h_!m)uVv$%!x`7XuFvNLec?przT% z?B-jjcUMLRln1L5#6yakWtgneYWD=<;6iLCh2~U@C-W^>TuT$M;1KLbmrQI!VwZrA z3i9=svKenI@iG#RD;wcsEfSCWlow7$=hcvQMbewE>5Z$`KmRdjmYk_RBsL%^KMjdj zg8h-a(1g^3$lJ2^UL+nZe%{EqgIG$RjLDKKUtpx?N8Re@kc3S5-N0D`SDqc8Tw3oM zgthNrrd3nyF)2$<lhq%Lg>3FsMZ>Ye5;$kz$`=n!E^TxxS^{Q`(JxSm|8ikPbl>jt zB(941S}V_g(HVW@MExhoZ<?3u`G123{R+~=Mx_4~U!*Dfc9Wt={rYM7$umk@xYA7q zJw+PLy$6Rc$&cP2lJRh*D-5)r)G@fhES@^iJ(-wa#ekmaFOt4VWGPl?pv#iICYn!B ztLOrL1jmqgKv`{|kTk`S3)8B|RD535Whk~ybPv;0td~?=zM`tA^@J~IA+RcU^@k#0 zVwaXqr~;2{q=^ZuXsXiEGRSeOx)b(r#EALf&L#K<Zo``}G#S9ol@BKP$t(^4#Xvg0 zO>|AjEDlX|jV3o1$E_+7yRxkQEHR)@3fvxuFT`^Ax4_N~CKr|P!KZxyCL}LWsYpq) zUdwTVmG=gcDIcSE#;2KZeObJ4m#NQH8_iaCjM~U^ITOjF$_=)gm*X#&>6Zd-Jd;&g z&y^O$l0>+rKaa&TN}tGipNPe3?ZYZYm6jHr<>fe|a_f(RgX9hkgF>{}Ff^qwbAaYx zOhkQo43>8{Em#3LtE0kLt&Pef&uGcLRvZHDTY8x^q#=1?Wn{S9QQhid0=HTkadiZ4 zi$HbFHs|Wbe&T>8(DaV{&af3^%qYGt7-?@f%tMrOe__Q5-EPu|+fi#tx8_GlbA#~I ziDlu2U@Kumd>|O(5Kr-eb1{OYk!MdhR-7U>k`s;<^-r_lI;z1=OB?tEQ4z#*5Mi;; zLF_HgJfAXkC|NEonPC}S79UN(`6|t;{0CZt;4NB4p_ZDnk<vaSoFg*Qf-x-~FZWjZ zKJ;(9%!`*1CtS|twgl{Df_VlnR`8tQ7l=>ko6xO8{KCNrp96CcXt5EV6HZ}p7+NL- zQe|>NJ05~;(n52NzzM2@6aJ|;<b*>cQ=P4A-IK`Hw(f30PBPAsrwu_ni=XU&kpMb5 zUfb$|cpOfg8I<>E+tXpI$mD+O7v!Wt_+`?`<RNf=cL?H{Zp}%%$wMN#)ykFi+I`=Q z!FP>kKl%|C%9b7N>+<l)5BkuQ>)QK>&*L^!v61pWmioPou2Eqnpg4V+tG~6n>1&W@ zg2M=S0VJM+i-=Twf>$Hk0dCVv1V?c!y}!>aX~Tbu`Ux`62FH_Iii`U@K!#4v6#YEL zt)0pYnVz<vxIaL)11k%#mbWqw$@5eQW71e9?gp_Hg6+V{smO8w$uFq97^1~V9207I zIUxoTkXC*~3n8Rx*o+3Zisrv-JVGyPt<}n*BUtV@q0Bzgsnx%LNv(&JfJw%ZkT#c0 zHaHH93Cd_XmlUyr7mtOfVwdN9#*Jq(J?$~8jh>2HPiVlJw~?nkwrEICaPUmTQ>e8O zEcFu(AUP=(u3zdRW`R5%y}oR%wyKfMbfO^n%ifF18<o(_ToRFgHP+BA|0?0xm=vBR zRWRJ+Ad4ai(9jAtR6r`IT5C&id~xV@_i&^hK;p@;s|I2(7l)wKKt`F%JRa+VoYfDx z=&P;uO|bb%x-62%6>1x46lM+Qr34B)&dEC{g%SBIn!c>m`8wO|RMvmoK@&qu*=8qK z?lO<p$gPxe$;IZBEZJF`iPz>fBqwclEcNqpk`u}EYc>Cqk`U&YYfHi)2XlxEm$$ws zA>!BjFmxN=i)9#OIe<w)Tg~HwoM0poT;uRdgTgQ6`GN!C3HhPa?<zthd8@<gcL|xr zwtL;PcsYk0)6k#i9Lvi|BY967>mFpShHk8Clbu@7)9JPO%X+%fG;5<(4gQ3b0?pvc zTadQ}aak3Dct8*Xdnh9#IPQUUUnOKiIE1%>ypLc$VQ6MayN2`yY;ZQs=m?5JE!e;? z<tpsn4w`_PIz_=6fc+3GxtU^s7f<LrCO1odxHi+%F<^~ZkjLzCEUlg^Cp_$s`C8u7 zK9$?FN>x>TzQKi<Ec@rdeagV_&lwodjW@+G3~xEct5xC37Q%!|#GW8|h(>jLD}D!A zgKBGiX*E|`h%xun{%Hd1_c^@Pt~tf`-s{fNr6p|{5PKre$9vjY*Z4@xXPXNIQ81@s zwCDMnyp*J274G3hKi_(ct^&_x`9X!MzRoICmR7q`5nJ114MEWDxZc~ag!^F$zo46E zs3w0!?4Jc}&`z}geB?$h<=qwfQf8YA^mWX@LP#p?s_;7IWXU;X9aG6V`sd1VISx6a zmiM$x<u*M7>qroi=WCjvsw!Sf174HC+JmNeRaGhfT{Dlj9Cyf>YSdy1a@;6#3X35i z<^4@Zy5L^E$fWhcjc1wyU8<_JgPylSLdRpu+1gI{djkIA<3Kr78+E9X`Xhgf;-8;{ zy7SLB&AGb%RX9Lrp~-Bxo=HU5cMANQ2LI-F(-e@mkt_WZ6}!{4nmKda8NHRsL7ooQ zHJpYxk!=3fdTUElus_3C{R9Je{>A+nra0v2y^}nWzZ5vqd3gPAu|%tIYT6h4`p1~? zWPsUC?l~nYvVi(^Fw5%a#p*0;Ju2CoOk^tY44kDO6AB!|QvIr=L!-aP*x)p*ND$qR zI9mFYU3)rIEjhR5ewis&^5W-EqL%7+7+YELQ?;3%t2!%h<mIFVn3bcF5SFRAO$C_r z{8`pUYkijWeDGn=zav>WeE?i!{c9{`<&BZ7+)P>dnC>rWjJz?+dLF{5_S>OG7hJ{_ z1g$?9V}KtAW^<Xv)693c7NPw_t4bL|tb)L7k~tIB^ak6_DOlSoqq<)j$vms)mJCNb zImFWr@i+;V*T>@JMLkr(1fu`9s%l25>UtDuaX#O3WN^b@962&C9^=JoIx^--$Mx}l zFmlL_&GRXvKkXzj$!C$RhLam8dBy1Rr%qpwv%y)Iu1-@0mN;hve|zXd!rz=)brG!b zY>lEcV{epZMsiYlB&B&m3EZZqDVf2J3jP#%>oJM7tQ#8sk=OlCZ8hA+Lm)IX2=XG; zA%0E^=Li!{Ahu$=c3`!v8yJ2)p3>TRYkjHT^{B&p-j!2)?<DsEEjd0fFE)2Ot>m~- zyr+|O57D}5#OvGSp!T85ROAD_OI&7Nj$7pUf<O5YOVc2TmvsN#8csf>ElR{{Jjn(h zz^kE|8Qu!7M%6B|<uB7Me~c~&6vB~~nU}+=e4$&GXcg})`Gwj{k4jeMjp$V|aGRcp zSe3@$!+2FderOCMwh;?)HQdH~Kz=yvz)0+KL89J^UXTTNK^`c+cT%3uJ)4&Wv&xGH zXfK(bbL<?t7OoUMVL8&ucVOJ-f=KsAM(5<}k6<6AewPJ!P>jZd!Zj{P<Q~+p>}-0u zLsfsoA|DmROL;z6-_LtrUuW3VM-5+OeU%+#x1q?AiGFIY_yb+!-0&i|QDHqpUttT9 zllDZfa6fL-a#&$15MS+5seP4*7K!?kb65bd)vOVC%i(T|BTP6U$YV^~b-ChH)BjMR zBK-cJx>QYL#4?52v>7CdTE$mIE=tPCU*aG4LRF_)>UWKSrC_Mdu7DRCc=2<5J`WH5 zDC}c~N93a#PCnWT{xxo=&;{Qf#{cr|9kkFAEk&c*cf#Dx)El?Ey&JcK@wKycMHu;w zO#?xwt9SMDVaAoH|NbpS{R6#nJ9$hD#rzdPJlnLdOI5qQ|GtKLBwiu>sp$_C`9t?d z-xDnTQ<U76-O~FtLD;h|9IFrU`z~{a09HqEv+>q*r4M18ctR{!I-S+)qajZyhV$M8 z6=NP60EYa~3_jWuuK~3Nk(@Lf$@2%GKqywQoB+43z}XnAJ6n$M@_ZFN)iO$ue-{JA zZ$IZDDN{JF#%Fx%m!yl$xP{h>rz1uXk2tsoK8v(HHt?;N9O7X<5Sk&dXTd|tQZGDJ zzszAdJXcP-(IKAW1D!MYz?VO9u;=(dM~s6#!4uF?;L=Y72q%gW*m_7razc>jv*9dY zq<>Twg8nV_f}Avej+``~w>0qb0@fifFd}a~&k6P5zBaEv@>U~GsA>8KY?-DPG1iD9 z6{i0p_*zHuj=f&|ZkLMw3Jzb7K`t9@R*{z7e!SQWDZMPs=&AZ;ysbXc;Y;BDUXON$ z9lq*Opkf;ONOSl?wj(S1Ay50XqF8WOX`ds<v4W*atKfM^5RV|SE*u}CvfQTar2c4( z`{$^2AB8RqS|4!H`^zZccnsV}8gTGhci^~>AcfLByx0uc01$Y{HN(BZOclw)EYsg% zq{*+-`m&z3M9x#gFwAYP*E`YD7Qnde2=_~?s;YTD(gl7I8omPE47)Jx9R|rsuOoSW zCt5lL$&=&x)(V)|&!TY7w_XAahWe49D!kwX=MAoY7$d<uqcDFW67wg()oy3l)vkW! zApFi+Ba$cEki42jD-Pm?Zz{k_8hDVsSfLeQUta<G8TsO_=;IQM*e?&Tk@5G1ByJ!V zj6upHCrJYB47j5s`SG*O%dL&UI3zD&K`m|sCYYa$Y~OO8mB9P*O%Q)}&LBwkyNrUA zaF<}KaDPhfK8ZWrVsnZhR)Ot85Ch7*;_uW_zk4|5IvK>pn*_QSnp1->(~Hq;@MViP z;kWXk)MzVdFLo%kr-`R^3Q5Qz6%IEdDd|pRJLOKI2HxY~U$qVf8rj=GO{w4kVmBvi zg<#R6l`u8YWlpnJ2jh6~+qqKo9Fhu>eaP0n3V$;3VigLUF$j`iGYV3YO|aFt4?`+; zL5q)07sOgR+iGR$y6<Ry32nkOs6P$77K5+q6HY~vJ>C=n4h=UzRElp`Uh%_HBk_vz zqQ5V@_U7OAVb^ZIdL93EZo|-+?)gEyjjlN)zgI`BJ29^${lRQ^zv6<JnXbE#r^Db* zDM=T8zVtDldqi<T+|S&Dkz@!MPBSz$e>zxWV+xb4)lKVwTnukSJ>|+xd9=RF9bD;5 z7JpdGmEKE@olXG4Ck=c0>IKGI?;eX}!{b*kFi0MIm-+;w%=#N~dO;-ByEN>>WoH>d zy3gqF`rQMps<ox*mq4;ZXgL(Hcq?;9kP28pplO6ZcvaWkNFMgVyZH>V9d*y6&iQg; zy(1s$4;{wD<m!hz4c<kgmodfO0{tE&5NO%=KaC*<;U^<wopm_%p^=nWx$-Q7q+xqk zV!#a_<8N4G+^1YJlP<<;CoAHzPLKdFE~^Hv$J6y12vMJqG&XU>X$DD&gGQWYw3bK> zklH?Vob1IyUwM+TI5f$95y|sdAF?&9PT<P3Sr-4+5ZpzJ;Fv#(78fSJ5hX5stkD$s zSJ|RyXU9N2*h7#FPj1vI+Ck(;Uj7nBx#g9R+C5Q<QvZ5Xjf+1=(x+47UlKARPkUU^ zt#)p3fzdPlovRlZ#x)R0M&-R7H0lq|rF|L6ELdU?l1#v@Jo`G4*s9yz<B%uN35oK> z0uz!G?(|Gw0-bS68SP0*Bhh%q9dRTQGOox7{niKLq#;}llJbqn(-nqhoCZyrVun8M ziiD=oss?!^r3+GqiTC(BqpAwW5%}_rf{09W<jMU#(`!2kIPKe^D?wsN07=@eI9l$z zh{GLYz`$EMXq4{Z4&twc$xsb^h**mPr&Gi$XaK3%{b(gX;<q-2>tDR4<(Yn|H&0PP ze$%|QOS9j7FjTkSRZ;uhF{&Rc^zW<GkKzw3k*nWg8D?Lpc`K{kvx1b^6<2g4x$nnc z_me{IfGN_Hg@VAd;DVN=7qcwG^h6uawh_#co(1tmXefxJOMT@yFUvAa$&BnrR^)Ns z@1lV*{a9cwM*(9Zz+CPV7!v`;<X*y+-;+_=;--23lQW9D?sWIx0Ria)Gm5+Ja+{&@ zIzZ*uKGbR-PUGEFA6$y0u@i^FhQEC%Z1|GBRkT3n*rDV>QjZ6rA@HDMNYn#NIbsVE zKR67Erdkn}-}`a$pCa((`#!7J@^4u^Qi;&h701boRaMn`N7C3SWD<8rPXdCKH|>wC zlq^p!$6$~;y3^JndGcBm`vKMJ2uhJWxeNaW7Svd(Y0GPqFxVI>-quz${+iPbf?W(l zj%*=reW{7u;loz2H1n3rNM89RmNT`|F0FIq$s8{ie5vgeL8R}CAHZwY`ld3DB47_B z^XKNaVt|j4M0Q<~z}<Z9wWznMS=Q>{oG2Ivb72^Hv7WbtumDT0iTMd32V28i+VDCM z=(f;xd6_Jz_#!Q3zT2F`5^HoW+2_kyirHh-pF#uDd~F~BL=**L-k?Y{h9CtbiE*0{ za>!!_M*;XU1#pW_ad^q+%5fQd-DyF38Jan46-BpP2U&2_*cir^V5{KPA56r3ZlTyZ z?6B;0i2vkUKgVjKW5Qks`?<qXfq@{vyhDL`lVXe52{5qf6k8btTZpAtQsD3Rg)+<P z$AET+GUa~-rDkjL?2F^Mzc*{p@V4gbQU7c~dXsE$+rPN=zf8cLy+fd|{L3L;q#*DU z{^el5<Sor%5Ozm_fH!Sb1R@~*&DMN9(rL-Ee$@?zu7N)q2707n7>GUfO}Z$Di*CBk zqQEuB6M{r~B=W7pc9dJcY#{OT!>>3jM+NHB!?&K|1L_RNgrhvW-(fk7VE~w<H>q3A zn-sR)bWQi-UNCsYyUB^_<GfEmi)=H(&52i|%k0F<ORm_mNoKzsOoqhSu@Gx0FOs_< zaf|shJ-JDF&fS#BQ*e8oGVf7ixJ@30VT#k^-D@(r^2Pnt;*NM1ha}P;-b89}1(I`E zUY^@!^(()c-x;nGtm#5dNWBLM`S4Cpg~>x5RRSx<go!0<NeX+P(nbg-kTDGK2QFV& zf@R?KUcc*ZjJLL^Of!`bE^N4%`!J)Noz)4i`B~!LwUr#I4<Kpm(SdNf92?mE?EHv4 z*wgKS7&lxiu#D6SJ=2SLnc9E*#}eXB?{<8qQ@o~yNeKZ-H)_Xc8f9h~*E>GbDO=8< zj0V4`%Zc2J%VMZQ;8}w-gFA$lsz@v}neY$<D6i@^Uk9cvt3PPRz@$+hH2_Mjc8E26 z>v2BNJ|oj}hIOz3q#n{dX$8vb1nOZ+v|Mi^SNabYTrC;y*LG8~2FLdWga3DcLG`~z zH>Y(De(1rtOs+hgD{W;MCW9+ifjW6x8@K77^y1Y>4{C;nuq{WHHr*SDcmN05W}pde zh>|g4kKyM9z>VP0A_*Mg%mUGWvdyM_c5^bLI9%VUS=>TZkfx0K`U3NWL%Q1`-A&>q zJngCrTzp|1Tit3CH=b#V?N7+}Ria@@TVNQ)JhxLXxeeC`M6(`l^h__fe1T!O(pgtk zHP5HK@eYlSm^PdjUobY^0l6~A9yS7{e`buLbPZ8R8v8zJ@IjvqHj@UwGIrZU)FW0l zWWM|egTw>M!!yZ7+|KrNnAP1;5hjsjmc)EI1-ivBmnKYu+}v0jgK@n4C^1@niV2(d zbg<kne@8ia4*97wj`H#xN@dP4l`SW{{5(EXvN7LrvV<+>!WP`$*^PT=dM?H}*l&2x z-cHPbbGq^GT*|+3FPXdJfO&StaW8(sFie*81e3{q;#hh<_#|e;q;fxjMv1*b@{=}l zr9tYl8i5en_<JLU9v$0>XD$kyixWhMujg%_ah?z27-lwCzHAudu$@_(XD?fpY;@Q@ zE*g}@l`oslWR;%her-=4z}vnn8m+P9*<5+yO-xp)iXX){ZRk=}?NQTnT_CJ4r<73E z4=6$G*PWgIoIJ?y@!%oyU}3ih-fH(W_ZY%M#8XI~()H3KjMARjscQ2^JHs(Trf`f9 z$$TFRX~ak_Dok+s^xz|bzlOTc7ct5w4pPpZFmRNNM3my0p7qrQhH>8jUcfB5bj_zX zK*#6?!>3Phvhw0z$uZ{#Ob^srLOc^~&5Mgn+8eyMDj6L602E}>msvz<i014>VnI3* zovEP5K)V7X5|eRv<aEnHNX*Yr2Dg);^C^U7bVDHdr!2BHaB_cm`6R5q6gQIAhxQkq z6yyh3!B*oM$!+*u49yjGChh?#VStaf1=fBPjCF`L800db=2^~&T!7*OIfC>+vYjhm zJksc}9p^SUV=&!40MRrK_PA$y|1UB241%pbI8?dqtxnY;4iu!kT!*;SDA?)+@qyfR zxk&mcSRJ20(nA@77ytuOtxuVHP*t-^t6fir^Td^!i|NX}1@-SCyV}bXhtE5axH1Px zD@{mx9!#SJShdJlJ%JCLjhiDS4MyTaIpE`n<&;KiwN779^tn#4yp8clChH4+hCKUH zcs0P=+Bx}c*jf)61?i_IJ6E2U>=SGaE<={JKDgRmw#+<RAU<w{-(rc2@ZaGOEMJGj zTIK!~-@z)qMKABmC>?EQA{ey<ZcpWQ^DKzn!n@cA!dUq-^XyC#x`A<!=YxoWhgDS- zY{xmTQ&rWh^wXSowyLVZ{`~#`UL+o$98-}rCz-cZa~?ACN)sPAV-VPbp6UN_=>o*x z`Tk67R?_pi_$WZ)%3NPlbC;?j+3>-_hZ*JXbI9f(%YclY=@ap*?jhj8NH+qWP|&O_ z{WCd$ih;_9^5RUR_7q8L@c<?ynm~Vn-kc_`Jlj00%$bbDS-D7ThD#4YtWsY4Yo`jC zX{(h@@UaT7k_SF2_+!CeJ5}Xd_+BT7Aw|J^5bj9xd`hGKMX7}*0j27%)P32`Fv>1? z-mbh)|Gxd#PPK<I<o_2d$kJ#l$Q>-O$uzcy6{M-+8x>E-r!>BGt^5K$Ws&z983pou zO&!7O<_}o?WG}UGJsojtM@ZSRoh6}3&#%aL4^&<v7aZxBkvF<-0+(#aJKRo^_`DFa z1dHfaztX=Xq=I!lK!cYa8lu12+ttS_rG4i|U!-0WenEcIoT~dLCMD?hO?(LF*|{UT zL7>5cWC3M5`BZOOPSr)QeAvx%fd<;>`2&Q(XbO}9_4zk|Cnx7^q~3yWk;}&81BqCv zF*jm=(!Re8<KzC>UBlrQtigO-H=ovT9DOg5o-zQM${nQ5A+&$rCAjG#!zhzC;=%py zF?h$}wst9o<d<o4-f!r~m7dWo^poFM!t5AKtvI=KQ{%ZRwQKRRY%y!z?-0=@8+OcF z$S5z*YEiY6k4SVHJ<|tYxWF(zcRXeoxMk3!aQ{h8s5E*wiblW=oMQWl3mHSA&i?u9 z{D`0`5+p@%ED?ktDMqcu5Gpi=u8qd`Fcjj;RA@4i*g7Y%a?VM>y<!a!9}prj68d~T zZrl8L-5W<X<kil{qABDbN{_-X?(#H6v1Vh`a9rypI3A0r#-=x>ww0!7EJgC6*ZM;8 zQ$+;Hnvjx8keuyY$S8MY5hR!CNPg!$=D&dBRD$ET|3Gk@dR-isynKBe`+fwHd))?j zN(vL<N~ibsGL3nnE`;P#jg%PFdsJ(HwO1i;J-2Cke|i~Xu(tSuF;W^T>2luB#&F&n z$&+|)eY_D*@!1y4reliYtS!Oe`pr)~w{3D-M1IR;Zhb9&QGQNA9yP8g&Z-6z^-Pz^ z(zJBsX&=L_|6_lK5#-GCyr(Uu$bi*QQ<#a5nZ<33!@Z5;);|LcdGJ5tJ?+rAIyfw> zosOHuZA+l>v!3=8ZvCC`#=O(KCj_nQao1pr&Gej2nZ<2OG9gd<t=xLGA8z>Y5#G}g zhZ{Bqxv<~dt+S*t$qqSpl3+W-t*`Ef<pbW+If+}p6<&L+o?5{&J?AGm*uY$QV!T6s zdJ@m>b+C1Ut%+N|4mY$^3o>6H)~6j4K7Bw=NX5!f0hq!*=DaJwt%&NPTH3%|-O%(Z zLzHeX=ZP;;CHyp|oqU$0cf2q6J2lT&>UZCy>9hh3am30Cu>+C;n>w$Oi~r@|XLMEL zRP)kvnH^*3Cd#KIiC++8!<>Fgm`u3+!M){DRS0(2iWkTZD`p}hfMr9ou#izc%_KXl zSl?lD&geTVh3qi?w`7N<Tz7|!f9d~(ixJ;6`QdSR7F!9&`rrWOSjUxw$vxQB)-bzz zHIiLTC;|U5zbi#=Mb8E>d4M08uW59Ic?@<Pr?twm`ty9jfe{A^944`GE-u_bQzLoL z$gLk4M|*b2Xn1&En8N$Qn8j^N80_#?yArkhpd`Jsr+pN+{!lE#IAj#p>#L*4tF{1r zHJGRQ|KJ_@i&&BnS>LYX=E!j|nCB3Ju5yty(81fo6k1Kr*Eb&hPW4=7d!k4%=QzZw zQa|Udhg(F<B9b9$I6nrsPCtlW8l>}`G2FJKJ0bQ8$%eR^`QWpeix+L-oe_&BWt(&K zwPKrznUthZ8wV>Y;Fk{R%lODTICZ$v6WYF5`K!JTmqBYt%Ef#wBm&8X5WkR7KKn_F zN*&iR(LZ=nCwdbh`s~*U(VMPI^tW#MKO%aKsI?dD7!O)JekoOusIc{K7!Xi-%jUjN zS?MOIEWl$Y6IA{kEo78mOmCq@IsldNU+AbzCa4_n8bM|9by0ch#s3>r_Ig0ehOJUQ z45Ltc$gTPR&QZ6I0splvohsBfRMz89qwuE!{K<$vJ+lRrIwcSPG6~L(Gs?qT@b0L= z9|z&zZ^bR`_!AUJyI1cq4S#}BZpNRIAwFg_{uqyc9K5Ad^(hB-x2Zj0rm*UBqI1wO z)|=Kbp`Z_ktGB)ls~n&o-K6Coa!7e84)1yQXe8Zd^pX5BrCln?L!>y@bgIFFg8Vac zvcopf>^{MZW^?fH_45xu+by>lqzY5}6;6{}T&SeW_58BO+-cl47uS_n(&c*0ZAQ|t zKg~GHAn8tC^dqc;9Y<mZR9-x!9?{Z_Re<(&5{Vs<T&h*!ny;DI*tDh(ge>e^2NUFF z<|?9mrN!yW*H$Vi)-uuQF8mA$xC-8imkeYNPrwAVns~JeFRPykC$s<$_5I+4qPzHe zRc_PQ47ml%$3s9T(qJS#XGCJ1@(yulci*jfcWGS(wBD7b&s8-dzk4HB>SHv)74juG zynfdRK~Bsq%V#hE5&@tIsj4c-i9G(<c1SyNegb#?6r|<4``Ln9@*)4#8-Jtck9K+& znwOKT4058nF`vN)&^KTy2@iCtOI4|5Yb(iWFD1S`{VYjFe+YW9BC$q2lIKI-YWH;T zo2*2#-JGi2=BB!LuXF#Zk?63ckSv~L5}^f&T*Hw(<>`%>XVl@1^cKk<_9&94EX2Rs zu4pr!3TZj8O6_B`Tq;OTeC+0YMtSEQI$hiXdX}do<JYM%wAAk&7%>1?bh~Ku23=>_ zP!zv}+0_rmS6(>#9fsIF2uX%-zB<JqY3ybE$J^*mfU+l01uJ+nEx&Xe$<tTYEnz+) zdUU1LuN?n*h~ykb-g<Wu*yc1$=lPoUQVfZwx|1J~9~N~Ig1WtLq`rEBA~h+j06`q- z_zZ~8NJQdMZN%V0K{oW?fGKFdhR-ROa&ok&6`g_x-;~ezltph-gk}@4%P0}$5KQVF z<DKDMuZa+z-z;HB(q?HlofNs7R}MTw&OHc#EGGEgmbs8oHs4LoJtsN$h8($o@q<r3 zB2Hude{-iUU6TaPNFE#VVv-4f0c$IxWpL;~;+60Zk+d95*nJtc6wk_Q*tMFx9h(25 zc%Co$GR?#=-1<LbDG^xFmROw?y=BtuKz}e1X5=@~j3Op5_1$5j2X}!f;z%tv(GSZ_ z45J)z!3w(<;P;RT%s!9D67x<D?Jn0u%s%A%%P<`6o<(w@`Hme7?70f7|6BAngnTsS z`GQM(9UAOYCTg!TkyE<BM8wx(6H&LzOg+?XJlRK~8YSc`fCHa`mri?2qrLk~4CC9w zz_(f?FE-zS#CGLx_AV@pu1m!OrqKc6Rp|qGr76fnWVgxlq3O5_ZsU0>#bwa$opiWY zX&<;R0c7?Up+AQ$urgljG<c67LjD7BKa!{X^`rSPUw}|)yoJylfqNe>Rzn&JG7_k! zCVFFTBDcEuH7s|NDM5kP)-9wD0M1(v*R3Y9(VY~zz0DQxU#@fuJte%q!XKtH%pVwT z(`#MCHn*L2gK0|1|DO)E_tlgWKkyP!a5-I${7B-H2(=(7UIos$JZi<akUpdjC?&i| zRzAGiACQK4KU3N(>xG1Rjz*=xA2?cICth(Sc5|od%kwEy-zV}|^xO0;y?5GMxEI}R z_>E_x9Fr$@_RMd8P5G<id0qahefr1AU)%;$Y-D`~Vj;y$qmWz%y%iDTCs1b;OnTdi zWPJ<%=VlTGpR;Eq6T>L~b*xL({1Z6u^D(r536h5mj3uH>2F;oepR&#QxE~hDW3MDG zVRrP#ocgiTU0A=bcJ%|1X$lSDvYVYGt*kuu6TR(}(_N5qOWX&QA)v+^9lzT3sMdbw zH$P>-FI6#|(&1A%?_XFwUD;w%*A%x-)>|JviMfKxdGCjYWEk4gsUPLGQ=GSh3To-p zrgR*W1V)=O^nvfxQa@LEoaz?a>HT+lgkW(4@y3v-RYbg!=TjOTy8gZ$<OkQ?+L1@% z1NFC4Fd1&82lyZ8bL9>4elW)BFZH|bh*&9DIifU^t+3df!<F03HxuCn3RK|c><?@H z1AAxa;qNl%{@=c$6|^Id;R%*cU-)~QO5dQRMsj<t&Cy#<YsfG3<oC*G-Sn%@UUi6T z>~AW6J*)5U%PW5P{*KU3j>kmlCqyXFw)U}WXe|5e<{6ZkYZU<Vx5q$guCe*(F=od- z48!ahfT{d%hr2*fSVwERByNeJS?oypP#Hdv+hg1<t1S8q_Lkew^pbvLg!LPjxd2Aj z?^($zL#7fczUev9uw1LjRT2GY1xv#(XcrJ9k6=TDmO*`>Jbn|Q2K4~uUz^@xBJw8^ zg)13RD=~z0K!A5QNfV1GwbUwnOe<NVyci;q)UQhYu3v(aqUI8y<!jUOBoRFSsM&)E z%-s-SU5)}wHspP_gvs170<YMjWqO&LQq7a(FLy6wl=Zg}c{qc}!!ZYRJCKh^!|X<4 z2O`DWbUP4{sT0pVpRbkpvH!?LB>5@cCg*E(Gk7<$ZEw33-k<s(eJJ&3VMAVb|200X z@4x)KAGiPfWdGe67Rt4&QoJ0c43eF3yHe=gs938QtzBSFeU;Io$)sU#PCBcpX|my# zR~}@L*g)`eu0t(t<h;M8wyY{bz&Ton%FZ;>+g93JL0H>+l?L8BmCrgbSysDKkTlE| zIn?goz)*?{hH;OGdJUqsTdZnu8U!ij7$K3WRFI5C>XN<N>8|SYkswwJ;!#K&6VUR? zX$gyrg3PmdzTh;F4rrBca_%V`pX;F3UQPLv3eCCU>|Z*7S+a9arYAIV&7*?6kQHq8 ztLE56yV)*i?s?*6L2N)`omMaEtM}(K%JMOts$Ig(s5cW&j(o8us`FW*{WqOW>8h&o zVyGz%;^RT@Xh-5vCH6l;s=lQ_H`g@Stt4ZVN^*h)V+HXzvej^#&Jz?QSu?|V=pJT+ z*<e?}=S_~FJ852q<%j$O1s!Ts*VMvNO0T2@b55pM!HbPr<p~Ts%90=7L-O-@I!AIF zpTm<-1A^_)s)cqeoC)-PNf7-4lnK%h^vQek8D;k9&ge1im`{X#^^Sv8?oiZ-v&HPP z&L$IJiD)}?e?5Wmq*0{aJWM{2-Q2xYi}HFq`Wz+lYbP6-e_E?kEl9)udEgYoZCen- zZF|AUZCe#@=eEsE(6WIcvB9Uj@TwL*tk<tr_WzvR*X7%}ZI8s+xowa4bI3n4tAf0} zcpl5}b>BdlqGb;j{N=UX!7q^5Kq{vUK`ZKu?;XHEVEjuE@*a`8^avzRPa2Hm&G0A? zGSO&q5?bHi;cXN+;RNrw8dsEjznrj)mlFhDP8f(}K7_=YruVT>w{2z&^0dXcSCbn> z8rHp(rX~Qu!U5h;KMBJ9`_ZU%WNUEW5mi2=0qqJ0tV2vU+NH&G`;e_+CAR}2)-6a3 zkOHcn_QX|%NX}G|JnV(8w;5^7FOa7#an(<6Tl|YowDbTkFBr?qi-sdx9pZ!rl58Ey z77o|S7VZj{r#Mb(1S6!@XgN`#B5SzVZ9K^$O+v-zltMl)_=5GX(&#|X`yY$WAKiHM zI{q`u%%=%|o)pfH2zz|L;l_v0G6u-T9=8`_8Id$>;KOGbrC)KU3I-tE3FiMX_vZ0Y zRN3Nqb<!Q0EL0;2hSh+jCbA_gk_Mt_ZSYp84gms22#SIkRD=lK5G6pM(~+_)ZD)Lr zGct}dIzH#=jLT?5ah&di2U#4<q6kDMfXh_dqr)PQjnwaR&%IUMosBRv@ALce2kEY^ zd+)jDo_p>&=bq)z4|g$0O!~gy6jS6bS-=2|eE_Lh*xT!fNn5N(vT0Jros4q*)m_@z zn$%Q)*=<sD!70X_wYM6NGeY^_oz$y2;kANO45@QydJ(^=U7NiGMF6vYR&a`8*ovPR z@xDpg0e!77yR();M;5QLP3vho2?mYAf@yYGeavnHTi!}9KENMQT99v#j&ZE<IUe*K z5X4(8NJ^T5J9c*%*oxB-3y_ouBR!hx&I(i!@4KsZ(x}r%Q;7FnPKxvq?lAghv_?e_ zst1txX!^lhGYv>yZr3sxBKf1|s0d1OD8IL0K@sNB*R$_c{t_>-=;Sygo0^MOF#91y zLOiB?o7APEL#Eg6IK{xDL#9{hNA|sZj$_|*a@QAG&tl1^jEZ7JN@?fWTidh>_YU?} zKNjXo+*w=|!MkIJhWCYc=y=b*;}oO(>1v`QuEu1x4kR0`82hZt)m~W#4I@AcCPYH2 zWshNhTD2#iyEdEs8Kl#kNUjN`LT;TGpBc&%y9m2VMRML=w$jN>w6m25A(M%ntrWOx z=d+cKf|$?c=|1JP0c+UuqBS?62QM5z;wB6FDCBHB%f0+mSbA?H&U$n?CdfEHLCnnU zgyN-H4=l%s!K9RQH*O=FGVfbK10%#^%EClg8q4xi3@K<}N}wOzSs(dGXMZoHSWfz8 z*(u^%ESiolgMjj8_%rTD{6`#(+*!5DPBF}uL?oH^Ejz^=%r-M<*MaAlP^w&O8Qx4- zBlQ2>C`i{m0(~|i|0xqc$)0Etq?hR_Zkz`gv+Z%tGn0sPwTh%MaQmY$rc*VfVa1Ii z6v-uPk+p-BNfm>vIm=Elf^^-aWv3YS8U|V0S$AWoc=*dyuE3p&4T9LBtiT&pN(knk zVu%&q+DHl(5$#{Ri2UCg1<6!}Um!4BEFmSuI2{~mueI;7Pd6j^b_0?U-h;l9Ud4Z` z{w)X-M1k%ZuGQQrA@X4x48NWZpNEHk?62Lb8XT(Q5euE?c66!A4?9SPqi=W6oQds9 z%Z@HBB~PPrct@8?kbYo?#&(rsE48!vjo!7I!sK6(iI9Imzlle3DVL1oohOjEo;!`? z_1tNta2M|IAqL5IE?)US1eMY`2OTo~bm=K38c1pLN0cF(9$k8hQCyD_ijqx#{sJ>% z)7qt{n2-zs9Sz5-m-a}xc4e132>;3m|IlP4o1|BlFiO$*3$P0<`^`jSDvQ6HQSv%3 zLEa?`67Mv-vl{-4K^(7GDQwbkOzFJ15Hr+|Cj#LoBhi4wgpVekqQx~8X+@VB6nn@w zUxehFbgZ9Ex|7*IhHkjy7T9oCXPjcjkPVkeKf1FVe<mAl%Oe_F`$xLY)=s9MV$dPq zkE*H$%}C5YxEiTG<Zc_rKINbWu@rQF4U|Fyok})sczq?K+&}IDWkHANMZf9UN0&0n zV*H#w0yQhFYD#MFswr=M_${dqdaR_cvMDb;x)kmYJI4-KIVH7s<&=UC$$_-1WYBd} z9!An8i#uyPZFzf1FGq4D&3b<t6r$l$kX#avtleAEku+=XG|VNx*$*K}?{%xH5?ew! zW$8g^9r#T*+&ZV@eb$D=Gs>QAbQgjBX<L`-RsO4>OAT21NMI1kUuEY~u(p6yKPXJY z<7t{?-rY8XeaacdFuc2MD*M#?hOi3?FYj)f%$DB=e%ozRSkGc`FS891tktDi>@^I# zyBf;%_}Rza7={o3c!O<M`;_$A>8|m1_C3L1EVAutPfvGQFgG;B*vi_|+4Ak+k7pZN z<i-8WV0W+6I?0Ei=XeAE!IbpbbJEl2q&uvQt})Qqj2pYyz<n_c6Z&0{Z6@5yRCaf~ z)=OIg0j0>R0Yip2lHqg6@G<N)3~qT7yZgfg+VWM}GL-)ox1Zy>Dtt0*`Bc(FG=`sj z;?-_dWq04J^^uzZf(Y(}DS{4IkEdHz0fZ=9S^I3(<LV~)YXh+{6!D%rP2e_Z5b*M3 z#?$+git}Wl@(l)CSw}isK0Q8seQaeNR<?Y6Ji`P`@z7HS`_yMKdj2uq-ImUJ%E4@7 zi^8*=42rSV0UoTv7Y9QKc!>6lO|iDJ_M6y>X9+yfg0;SMwjeJy2-aq{;^8<A9IgIE zx@#21LWMwnvEwPWO=ru0YYJbcfcuiF0(hQcBf|v#WCH&--reS4pZb!}*DUtQWkcXo z4(mBZV2%b1{{@RSyI+c>7=9|2V%UrEn{yBAd4Zu*!1&$3dY**V{16QMe0KLzXj#iX zb_;GPC5EkUN6tMPT&@Xr_Pu;q-;R4WxkkVYF@4y|Iv!!mC&iG+p|rz-oO>zUGqfg0 zo`;3tXtsQE48ts7D~*iJ?fbRfe_7io_Oam+6dNe%!i%r1kAwBx6&*HLKg?Ac3iyHP zI)~Ef;@LVjvYrZtE<%*8tYd@gQ9)iDBUqd99>^MsXWGa<mWCTiV-2=losNwg)&d0= z!VEj_d4w&0$`qQ?@=KxQ2aX9<Ir2P9n0z12mhUma)DkT=ch#?LWgVl~$6RFn0HURI zdtuz?v*iy)F8t%2u<$F`rz*)Z=ec-Hj5PkLy7W4Y>MI^FYlIlWU%P`X|3zevnVsSI zTfut9M}@f3e0Fz&S*L%%-`OELXIg=o!9=o|@&4+IJFPGg?nLS%0e|}45Zcw#Lp1)h zqF?@$4bZOW&7bUAFX=<V_|uAB{OLMVPyX~{3~hNLrWb!&(FcDTY6|fu4F3yS`^RH+ z-URq5f)2vgZ#G+g));~9x^`H<yItEf7IH0RA$H0?Zj1?IQPbJ-&y9q00Q~i(Gj-<i znJMhWyIo^||Fac;GDUKZYa*AMCjb<?=4b#+!~lfGUu6p8Uk|b6v61bE;`X7h9ay4G zt4H$Yb|jvqIW_nR4X~5N`uE3^I2{WqyC84A*ymdldc4)y=Ud}?yw%a?TPZ!>y42@e z*XVCyr0r&67{(?q{)DY;BCWc4@k}IN!uo}~BZhS!0&*}dQeI<tDY1d%`PBNVXLnba zAeD8`p&N7Ld1gFxoIwXrUL1w2&7}(k*=8X0$yUtM*3V!oYn$bohOEu(?yL1ayLs`n zo|wG~$@46@&-kdwNvoleao=GRkJd-$-EGrdTLsx>#8hAh`Qv3HC2g;fVWdREu8!&H z={LD<AiZ|=iOLaLkKW4;KEyCsFcW%AsJ%~A8bbYv_3uZ4tM!q7Nu()<V#^fKEC!nW z?ea8pH4}!qnXVfzHwSjmi!wYaf*OAprLT6MfFuos9R00PgW7sy2etK*2etLa3~K9* z4sAVou?e5FdHVU%%<jGhoapP=-FTl!`36dZPR#d%X?*|*%PNEuBEceDvkibnbJ*+k zo16n}+1T)&H_aHR*OB_#WYlJ;NIXp2i9XN|H`18XV+tGkcmO`a3+)^5N64D@!v_87 zOXOWaY*e0ukBvw?t|WwdsM-KF0zvdETj8l6zwnRH(|bZskA$8s)SuG$)zDArp$5MT zJsll-`cw!!V+atd_HHAEA0S;5>fz`Hy$6T(v=-n8pR41_?9jWfhu)nKdireWY1{^_ zb|Jlg3BmN{Lpn_Ng`WQMAsxL>Jp^svj{*PjhxAuwZ_pdAf2b?$tSj;c;?L5nnfe_G z^V!O=hWVMz&L8mCQAEFZoM9OF!RD@Ru$6TV-SQVftmD&ad9@a67q$;3VmV{~wP5kI zH)CbRHNv**q{=c3?>}jA46Q@f=3sK<BYsyM!!Q<PZQhiE(wd><53Q1L9Le*dkXSEh zXAsS~SR9)F@7C)df4N>q<D!RjG#&^&wT7PlG4%A>(9`EaPZL5<cZZ%{T(3V}zdkaN zY)F6hhuy_oJc<0@S<t?Bq?6a48~yq>P}%kr@_#oR-G3G=%Ctm&S|buaL5%^luXe>S zreoLZ-=K>pd9eZczZ=H;6^oEoB|KQQRxli-)!$Is=V;&4jpY-k4QVMt7yph79jNg* z@_!eL<eAT+`<vc1(U)fb`r(nQ&yD(t{u1fd%=?vCA*~7-jv!Ji4!`|@?dc!R?kBe) z)5}}f^7ESi4@suHjTe28v?cudhrg&G!&&r^-qvuI6xEACX>}xnF(X*3TqBUb+l<l< zqx+9|NiHteROD9Y?ubG19cu78rwNH2!SRCV+aJX+3<yPknHxHpFcEiP6#6@ELHmYI zD7V~do=}d&W^^$?ss*<hQQA=?=NXW@BVltMl4se!evJ|2_zH*28y#zg3f9_E6A~MO z32>3bA$ewnux1#N3k*V9EmHk>rw|rL(uG>I>!7(0kUa%orasU!jWF2n?!i=`yj9ty zeo(gc#IK>I)e+?XZbFe4O3I=&&0$sc<*_kHO8C<otqc+yR#l@(2^)X+Era~ujz?>% z(a_U~{Xn?|Nl8z`8(0!sRjquwpiAwmesh@plN-|G{(mp{ha9wXw;PbVeMIRH$lexA z$?)MxW`vBDi)5}0sa1<);~IyY-GJO3#_gl*Y~|Py^W`-Swz96FTfV^EFu3_}epefN z1H)`FYmacZwZWuCGABYW@oOA1-=M{pbwq6+XJ;!5N0{`^K7*E|2wpIWmlvzZ-4VAX zF6=SyZjW+pDf03cedPWTYK^y%)aYTU%F)H|NV@SDOw%N@bol)v&%V*je;CRseF}0) zf2iL-^43o`jrjoX9~baql|!r!#*@DUe%{@lz`FNig@N2h22Z}mEReXz_56=*39S2R ztp840`*;_>=2NK76=WC5lgp6mTO=FT6P&h1Z69xEE7wMw=gaH423y&sp<9lV8594y zB!|bh!^B$~cEp7}#^?>Qf;{=BNcAn06W5b^1#MB=M?-IMJ$uV&!bIM2^_C&@D^!^X zj$9<qdl>*)yPa{!Yq<t3|98~(v39m{ee|&T^7aN>nL2dKr*vh%F7gJ4@$Rm<`dWXD zM3Nj5clv!Wd7<q51A|nbL!P|VAwSfBB$_)CcYCd!tt^cmZj-k*WS4ah-O>b|Xs_V* zte1CR3ibYdSt)lr!<N6#FihDt;}k5vdtQexL#D8v-@>QZeAe?Ed`g&8<Yhfiz-P-G z;+>B~;teIpJHHpiwonqH5lDXc`y4rbE^>EAl`cmjNqTuJTRCrTc9}ZWb;|;_vUIM& z<~{^S*g8p|QRa}dL?E~R`P^zjT+0;*;(9I*xK-eI6vjqyRE95@gttep-4zNv&~gtY z{qeO{2K*jA=S4r{?(jo3W<?Q7)G)UW>H?;R;m{ixcZb0ltNBI*6SPldH?MGx!wQ`% zCc~Fe8(h#E6x{_vb1ox2YZbt#+l*`!k?PBl<8MVWPl#<4TbZA3u*<hL*vi^8c92o) z#kAJ0(^{=Yt?`svkxs3cpV(uJ^JUavD{CLRr6rtL=jy~tDWI5SbBXcV%G#zlV{K(^ zlUUD61H+W<h@L~N%;>?|dC1U+9y~UWR35^wBG!IPk5svM49OZM>y@V4Ro$JehqJ&3 zq5IUvpjpcn7VaW27D|Ldnu-V9#CZd0^_^Y!YKa}ZUX8c~*>vxWlZ;?JXoL6}p0#7X ze(ILZsq_+;-=_^K;NyZ6rb4@3hK}H}S0qJO1GjfWWsDXiHY#$Ns;80gB6-%O=_eUv zJq;JFh_xS#9HYlYabIH)H=e*(m&h2A)S^~<k@ehm*3MSWi_<p776sfUH7`poQk<8T zm`P3|t?b(wBp&f9EtGJ}=(SA=ves=a6ll&_KJ9ZoO+?xe-hJqMx?}kXp9^BUKz*MD zLpyRG{2r2f36h;#r>FhdL(9Ds2-12kFW~JW)jZ~}(aHd9yB8!y@@2!l10{P=Hr_H& zOw7}5{nkI75>fxOFx>yaQ_EIF6KamOm9<TECfLf_CbOQWN&Gf)cgOBvkz0*rcYne# z%tx`{>V1*jT}k3U+}#Ft_X{+OKnju=q<(_rTosE%VWrrbm9r#{!Zitbe5J!k9RPRL z1$6Ov&_Tmk<Z*kJYw^0Y)+c^WMIQWJ%Bp|Al|j<1kKb=)v{IquC)rqr)H>970(qKt zp6S_AD}nm)J&;Zai5<$Wd%D#3V@aH$;=D(@+5K+yfNK!U8fXpVo>y3r^;bN#&M9o= zh_a3;PIFnuB-hxojw$RjRY=~dh8Gk)ht%3&Oh!{MDx;|!PxFFab$uCIIWO8S-wteU ztDWCR$B7rL2e+m|x@39gRwQp}2&>9(?cU-;Qr3(6TA7Rs8MVQyk(Bi_?Mp1O)@;26 zrTH_6A2J4VB$CE0*@qFGuoS<i)pQq6ql<rIE1O7G`-34_RB^8EyMP6uKU0YQl97bW zq5B_XU1(-KU&7{FnvAS@$*hM&I4(^k{{4BWtmn_<NhY%9WwM?($TviPN37>pwB9-p zcRG?rASs<V2`bNzgZ%$Hh`)oh!U7A0qy-iv<tBTTZRGd6wBJ*--&2s3o9b0olHYIE zeoxnaPe)R2rdOFuejl&>o=r<a+?tJ~9OPBTj61IeqX2`+5rHqiof{GO(%jvze>__; zBZNOFsg)VIe~0$5e}As+Up02eXp&UrGklU_f(NRn@~^d>-TjtU2xj;5)b%_WZ)AB< z&w`50%0GJT;^f}DxN1pg7pL^t#VN3hO_i{VV=BXUamv8EI3=`;WA1{GawN7Z+g8Cx zn3A$#m9~qyRsGf3xN%ND4$*z)&+oN=Cx`FfF?9c`wRqy;JNW-#`<{F!Z2Nxt&Skdm z&)$LU`^-Co+P?1=_EUc*On<u=a~b`O#3}Vw-vpVfL~7MSdFC3J8CKtt`%>RBE(9%T zS2t*HRN%TmbV9bb3fNn1YYEp@uIA-D6`xNb#cdx^+}fgC+e7<@);n5*NNpoN!hj$) zA-zCQST&|d{jG`L-?Jvr{xJQmIZS`^^Ws^ozu~`{{)Y9lCqaM9#`@c&PqF?sc6WsS zwifia!rfi`nr5IUmf+ME!YNgg3bFbYfe*;j7EDB*3p-56dSpjz=&2?Rb5t5$6Cn*3 zV%;sGt3Fk?7SJW12i0xtdWXD{^e_grzhOPKKm7hM-rX5es#*rC{|z6E{zv8WN~)oG zS<h>_e)bz(Kl^!@ekSSq*)Hmcc>)CF`@eUH|Ku-z$@?$eVsn2pB1bk(;@xUg>77_7 zn*=&p&H}b_{Un3U{l75Btv3nO2@R`b#WV&Ebh1LMlda|QH2n{BGxi!L&=LhD=SM-= z`Px3zGeP`NPbNmxvnlKgSUsyo;^z+W1TWS?e#E~CVuM5cPWhh){@>KllKa-s{*M&2 zjZ{JV&*^8==lt9H873^H&UG36jF6wH>bn1se#VFCXWws%)X!F3_n*<vzUfat6Re$} zpG}U|Hpv!65I@wDcfG1b<?zyCvmmy^i4P8$Q5RJ$$bx2_x7KZ4F3{2xeA?$&8*_-4 z=oaNCd?ttiL3$m!<PCq-Q%^&>jbee4z98YPD8W|r3!)O(OI5PBmuV`Qk`Ff%<V#C_ ze}crxjD7@(nzkPKW3n~bO^dHuh&(<gM=BeU$RMniwj%MIBIRm1TIl`CzVi|O{SQWr z>J7di$m_Xuh{yULh{t-lxBb_y`A%x%uf^l1BFQ31$Sg>CWc<Ut*ao*pt%6vuoLZu} z?I{=EJKr}Bio8lodf!+GdN5$w0NB$2nAER-siP-+8z91!<j=S)pw`(spt=14s?6*M z%)mBC>Y_pV7(lwK2Ydw-zHAB~>ybkdkxs4{1349dEHDewY78VVo^gm(8mK1$)E4EB zA3`u)_Nr>-rONXIsF@IBOY#d%yIg#2pny&x4^M&htc8dyjsyA$EFXk_@4tutM{d&b zfB4=0@c+)#e*^!sG~H2yZx#k?RCr{a*q}U}4R9o{s#X^0a42)NfrIbhVNzij9}M%s ze~A9V=KoH=^Plo>%zsW#{xJuGH9m6wZ~`mq^ECFM*mPi&o3zn`Z-m&zei-ZBk1wB} zsu%yt4)L!Z<Nsrk3ZC<ngE7kfKj~1sIa!0^_W%XPFF^7ZK=RuE5q;h{OJAR<f9h|2 z5-0x~>$6a^t!ePx4MsK%zUu+LY_kx?=ns<^K(Dg$Jzxo`tEv_6+r6PvwgBWn8^2BJ z1z7NL3{WPmPcsPqI=KBa{LOA{|HSB!D4jQ6e*X-v|F@Rv`}38z^!}e8ME@Il_Wv;M ze@RdH@j1}fH8%~aOKU{?Or_@@ICW<uLKg$b-w})a?YE$`I=m<Zu!Im`Q5s-@5=sID zwsH&`ki`|^_spEo{ND`CKkc&fXDi-iLiStz4EhLUIFFC!FVlpH5)0HL!N&+aP&_Tp zyS!N1+c*YGd*?K1?{7rfy8($ucAX;eTi+u857(f-gv7pX+7I+th>smRrow!!SgU4y zHErIqghBGSkB1jC%HI!ks!G)xk%G(HsS)<BYbjDQ$)Poa9$JAL)n4(fgT!yfsu2Hw zBgFqx2gEP#S?hHv?iC@)OvL+9NUZBKTr&Yld1lzib(r2fwXOt$KTi|;j6WEaQ7hK0 zs#g4eJg<83m=+lGw=m}3zU@oN`l^=E>PN1K1x@7eI+*c#T9A}5(%TB+`wOG+f}YV9 z^e|b_>o2>YX40d8J2P^4LCh3$@fy&nMLK_BJr8QDbFbQmeOtp{3Whrgmcvu)8iJ&R zqNiFJ1ju;j4-v@t43P236|L{Xi}dv^`h&i{E3f}g@u$Vh_5Nc*{dZpXAM3v$wEtfZ z?f*gaU(&PxZMgr!p8Rh*=6_YFQ2{O(+xG2e2mbWir@;^9BzWN5-vq%-Y0YS#xQG0M z((T64$lqoH=ccry6vXHdh;5w42{&k*P`95E`glmAkF`DN<4Wa+*Kb#$RI)BVY<o?I zqnNvL`5~M>N8?dhB$;=egw3(Wzsg&!jD9VGGFzap&;DioZQ<RK`rH2hiDZMXU3=yF z+tQxvzYLE*yXX3+)AKL1ws_f1=)tCW;K)@&mo`-gsmQC0(clR_6QaKt0g_){q5SZQ zE<YUny}oGsC;nf{-^a2;`rq&S)&C~`8}i+itp9_BJ=Xu#9_v5hiq^j;<{!c%-`nrm z03q2|a0DE(a~2Y?NRI)y5rF;ws&)_nY<mE<-2?6~*wwR;WcChZA2UM6posJatE!b} z{ySn9z6-;>5!rt!?*HK{KA-Qe&AydoC^ptKX^A5Cz3|WfKDcnUXroyo{2gYLc9x`G z$o`ZuWM8Yn*7iy`Y^=wnE7;jgVBNs_^?w9@C7S62{+5}QpYQ(LnA>#tuhQX9ZT`OW zkdE8T{}B9lVfdH+3-B{_znmL_A0T8#X9c6*{tboj+22L1{?B3cpAOxBJ{6LGLz0r0 z%D>JHJs6RB5}vvjg#O0wB2$%sm+QcJN}3^0iE%iR%SfJ*HcRBusJtA;KU>CWhvVXK zHG%cqqn(Kb>SgNpZ<*bbzs$zd8WTCK3{`n5TUYMa>M$sGY7hk94)KzY0EPRm;QY-{ zm1($t`F2A%|LS~6AL#Vhe^GxQq<&=6<)ezwpxeg&r{u5Ux9a_0AL@V1*g@!D^FsIU zc{=^gHE8<R)sSC;L2@2(6ukjr`{%*`fa=)y6B&jHyhJmxr|%oVFidbJk`iXV-3qlJ zQ;`3Z5lIPS@pozFa3l%C&EUdNkK70HNREO<H+QMX-Ilo3hUDUZXt5C8x1b59kz8t= z2YJuF|M)KEeF)1Jj|j49%wIQBmsO?s>JAmOwu8an0YG4%xw%WV%S+Skd-CJw!lpfg zJiaZ{ki1w$Vl~?LSGtnGX1+rH@1g}c@uz&_DIu*H{C^TR{UvBdVod;3JQ7bs*UC#- zkY7OA|C^BgXSB9eUg;)VWwn>=m3O=8UU|K{5BZU;nAR8m({=pEQvAEyVz#7(<G#on zhW%efVm|{(3CrJXg$xoY$bSN3|7QGMN;DuzFc1z#v9EkOZxE<&IdvC9J&G{uU#!<r ze?Ez#zAE@C!Ov}3ed2w}pzsb@_Y<rag=2lnye?HiFNX1_xuZ0szoj9a;M}j_d|&qf z{3)FOTQM>xVgB!_-9A37RHL=g6_50ig28BX@fc`*u>QY}VC^5m&Z_LQ|9f%&ci{fT zI<U;_TlT%{`|H)a_fn<|j?`%=tq#4<ytprYK{V7-uS03|>>a+dh`q6jy`vWYtv}0J zl57_?GH2Pl>dvwS{#Dh=^hiK{h5;$^_H8xmd;U`~eAkA<r;895za#QP9k|RZ2VaO7 z>kv%Zf93t_M?Ca@mEM2RztsQTxc~g{{<CjibjvSQfv5QOcT6P6Ex5fcff*3FU;G$> z+|Pa$0noDmkhjP97CgQQNzAHh<>kl*-#~-be$J0cnio!l{hLJ+<5ixY4qV-`s#?kW zRfMQb&ab&6!{u#a|4tda{W~1~JMpNFaQuC|WX1C@PTObK@i!LZ@BTV0@brVY5$D1Y z=T)BH8-a+u0MxUQ^M6pQ&ll2<JU-_lB#|UC$?$(Fk_)+HC3qvoM_bC)>yeC3X#QL6 zx1b3%NG>!cXZVoVsQmAdPL&kogWz4|-OMgkvFz1ZwJAyC8k&BD`qq!a@pCPP3OvU= zEjxx`x$76`Vkc2OS5+%-Js&aCCft=bSU-sShlM@o5Bk?Mq5@?C>pdK}i+Mke+?>D1 z+|Agu{Ak-O9dxEj`t$nyu1nNT{TD)$>sSB2Iox*<Sr?jJ9Fp=Z#Q$)q#Wj+x%uCK( zn(Ruzlb6OQ*Ps8fZ>PUMjEJDd-+YXz$r|Sx$5tY9=0dY8k*!2SGZzkZ#j%wrHgjPt z`;4zT!&luOerWqR+P>G@0RR2H;9rEKrODKPGTCM8+jkP~A6NePV}yUBMe}d8ASox= ztIYkepQ%<|6=Cn)toEP(_log*@LWHGI<D#)zvDIhCTaMM*YQg&w$%gV2Oklo%O8-) zw^*yU?+p&q3SBmnY}lR_w)_<JqRfU;no4pM!|bthH{eHkSoh8>$9&LJ>s+rVT}(yd zQ7mmhX)vjj%T}tQF#VR-I+Ky7#We(@Ju~=I_=7x6u025${j9ov!d5!D8?wtUIJc1$ zx+FQblXjI+8~BVS#wtJ}R`l&8{kZv{owH0+_Feo@D_VZv!=a+(?ouw9VfXr|o8aoO z!Vd5ac~th9uwP;R!C@q?A0A7qe=!q@%?d;cYk8})$!sB`+i_Ai-gzjp_lzDr_nZ{Q zRC<vYS=+Z)*x5?sFk4yMG`4&zNJAZ%4Xbs$*q{f0^9Df_xO8Dc9g^cm3gRK<9xOkW z*E+{)IAuNQ-6T8llY#4LejAM5Sa>0@g=RPn!$4n_raHDCOVeAI2J|l_`He;)wVoG` zhAN#I1cUE=T6N!PD$Bgl`6akn#vru{@~<7=E^OX`F<`NkwXNJb##YvLqsyFKe!=x+ zaGDoCbA3vD0RL($Yb$gO7vx(Fg0*^QG%q#?VpXuxR@S!4^=8I};OoeGeCxy>(XP!% zo)?Y8YAD;QIg&Q&@yneVT0F4wW=3x(QnG(O4CU9?lC=rkI;gJ}BZ&2a=!1Q8eH6o# zH@RZLk@W)u-9@w@l9v5Gb5A}u(#}>gG=ERqEv(1Q;D*j2q)zx<m@+HoL^BLqIebq( zcQvg-d-~B!DqAUVSC_R<W1sP}mHFJrp>;q=$Xd@n#$b6e?HCe2!2&Ftne_tRD>-s} zG+xq7pg}>tO^ql<XW$LKz${f&F|t`tB>~2maUpmc9eK;6Br_Tr#~amq9I|WV_|X6r zj6-tyXZ9X0S59P*yVKyDO49X|wcX_!E6BHX!)sbaJ%htgM_gg!9b!#}FKB{4A&iPn zE_sigOU!7QpHUmQ)&R&XbdBqCet0~WIrtDsZd=~ujQxPr|E&+sba-mnivOWCXdt!U ze74ep)K7S^GgRHuz#HoAnZs@De^uFsHu3Iu!=^R7S{q76L}0FQh>e1H3_Qw^l=boB z;3)pr$BCmja0Ilfy1dC5@{|-0l7|G@uvs$Hj0@zU<}%(qO>+$&I!#YMmdz-gQ@d0_ zD&$glwHk15$9OO0(xJ5RaY1aciGH@y&LxsGu3{mVV&5ZhNe++C8D}e-v&v;co|c_X z0q>@2CC)&LDm+8tV=!+13u{Spr#OvbRWMDob7R3_ypFEE`=kNM#!;9_9wtb1Et2xN zv3AMMCEKl4J6W66w=<TMV_dANkgh)|aJ#Ci4!J;eh+l*ud68@!ZOioA*k>@79pXvw zZwp6V<Y$bKwkdcEA64F*O8&k&H7q|{%anfo-(ve=bmp!||2Gn#5Lx5Q)8ZV)R$9De z9aEg9vW``*(MZZ_-2;n#Vo%s&r>v?j>nL<(B6+DA;^z>J0Q?Wr<pd;Uy+qo+9NE@e z&Eu1%N)YWF+>0k8vP@rZxdi+@>ypYau5r+f1xZPTds-PmGOgOv$^_$y@3{&7ki>@8 z`mM83+A&_Nr9>-W79nuSf}tLHYF)#Slr)NTF&YCTel7rYLKMVNB{ve8P#<h)gqZYk zcklWqY{e9FczqI*AHPViFH#;)3-oG*o$=3XWqS4=CwEPDS@$&14-lzK0spTf`9evx z??NsQzeF4gfOMZA$IXrrWtr1l!yq>+5Z|*T+oAams8veqGyJ79<Q7W`9S9`hYXQl( zDLJ`fWIfC7zI%w4+uC{t^FDS_H$K0QIxR?SSC-BSWz&c1{>1GTOE%ZgYGS3hqjt7p z*brKX)OOIAISr|Hu9$>sM`hq`6-+|1DgJ|vG$$(*vk*j*HE@-YVc3eQ7>u8JX7(B; zyG)(t8j9pc47}JDJepmmPGvpgNjfu{AIMq7R(ME;D8X#7m9<ZEzNz1Tk_LZ|Vn`;T zB{7ilYbxtG90etbqmZ@JIg+hNiwR2+HI4QBK8nntSg=-YPvF%W@E8xgZo*x5Ph-n- zOjL$+czo=WP?o}7$`vpq%ot-NkL36A@3@w&SZgA=&e82`Wjw&>O5jx=>GWrMMpoG* zEQ89}%FBQ5R7vXB{?<&34?4m=)@{^R?l5A7!+6n5%5P?LsrpJug!<@mQTc2&ouQwt z_>++)W54a7(LmNro6oOkzS&}!6mPBBel6?XW(=E<8KX38LUP!Iw&jxvHGg=y3Bgpx z^f{Fy(+4*d-de-D8=}LeGBsi<{~a+Es2@$H^Gx&r(+OXn*O!v%7(cv%^_d#o*Q5+r zGO4ekdQVEq=ZXVZ4Z#!{w7~zd@V^oNkJ)Le>nc3=VuNceA=~>5giwnqe`3p*8bYM| zHl1k-Y-T)qo?tzM5tK*ANAuarcq<`bq#lAYC;^LsL{wk|NlTWH*aymgT0R)mx+{j> zC^EzOmL85J01fop9{AEw)yBGiYM>SPZarumLP$CIFfY~we%`67WbV#eNhO|ZKx$7W znd+fvhqZBQR)$ZR|G%AT@M;PpeV#(gpVZU(JF@BacO#gX^3?TRs#14-mr9bL?syzC zG0ef7Wg3Rxr5H}n-c!nrr=ITum**gKSPul64|JG_&mUW6hbxYkOALVN;41>9LvHaB zk^$hD^2qy_$MD%r>w981min(xi^OkwZ~U^A6x7uaHtn$bH;(}Re%qdTX25SCPE|=Z zCclz%9YpXdyRQQ;eL<{MW?x5B3AHPe>91?yZyRnf>bfqK7uy1D?YIx0GL*hzBdwHn zj{H5tk>_dj`APcx7=1pRKCk7vRE=TlEc^vhP})=L98PwY)xRYjm~jvU$2|PtY7O=A zQ9$AE7kR;>3irC1j`kpo))qQnIXz8MUg+a|jwYx+rpzG?l<5@A2e`<B0CNlx0>*0> zBLoaVUdy$S_&!M&(hih`0*I=Rcr4>Wa5xeVA!(->Y6GeD$k2_2-tWA~bHSMfW)4!s zQ%)R)<Rz+BCi~0WB@Br?nem=pr^AWKrj#qls4eo6fG6bsN7<@s<gUV61Jrm8FuJ)Q zAEWtJvj9aZq|ta*tFf##0`4C@KIb9)&BTkf!EBO=^YG>jpxrZC)sE%4OBm(p_w=eM zrCb3hc2GC>Fx2t39kd(NX^Z4UvtT{4c^cja2x_C85uhsJ2;4>Pdz~sY1Xcx(D933P za3_~1i1{3-x9f6nH>CF9w#i*#qteMkxg<NcuE-l00tSof44;zW?^Koe3z&xhHhMS$ zZ&EvZirefpOki&JfcN*L7kQx?jK)fbr?&KZwldLN)-laF4&$$^W2)<0lva<#<5aXp z6B?1B2GoS=9`*_3X>noU>Ww!;e95w^nv{uh#<G?9(JJow2P~`yjYzHYB2QCkJX<*v zP7l}j!6E2Sm5QhAX)3)I$(szwdT!Hfl-7(pAu(5=5FbW{)5QML;<^gSrtzhBMGUD2 zw2H@+wh8?Nuj=#nv^dRWnbZ2P^@06ydBiNeUL<c;gC?XN#`@a@4F9}z5ETD`;XerQ z%ee+(pRC_B3?JA_f7I?Fka%4ACM9wczI!Qr@p|Mp-;$+|FPk28EMb%w|9RD&_0(#T zy?ozTEqnR5+gi2k<t^J<DK3<POPy-im0H9<(eGE1k(@MY-aQOkIo2W`_6IC%Wi4A7 zKiqIkJm>$xoXu8VU@K>iG@M~8TiD9P5r#&#(qFCN&yN}v^uaRv4^3!5U_y(6OOQYm z+CPK-Llcgn3C+lGjQnB*M-P_%!;Qp7<p0i$AHxe4{Zk5(jl<n1c2-{||9lFPP4)X0 zGs?GrIS(n=llL<zq->OI+LW_|QU3Zi#&aQ;j1JvqhTjg|X2E~mS+=_&W4`jh7>dm} zg2`wkn=0R2Ok>rRxUSCL`RBi6!u3~b2FRqEtk0PU4lmNIyPv|EUyNNsmS8RtK|duf zv3beVzALt?O=KjjVdL-0Bc1IkwXQEo)~d3B%`>yetG(?I>l_pOy#J)pAr)qrd26$C zu0zf-I6N(`uP~!T1TNWh{K;0RSQYil^C~e}kiId%QYnW5_p7SPOU?`nF!$4eJ5^Fr zqj&i*u<vzr_ESHsTdN<&R;&r>_n9HB5{?DIdZ=^~4TptO0)8kZ1@RDs$U=Uu`58?C zH^>O%+BQMxdiy3Cx}LeJT9C4nQQ8rd_Bk(}qk;Bl!VzRR40t_<#CAb!wW$q6x-e8> zMhh|<f`eJmIPf~KQo||Q4RW1BYyg{99W}idVilxe$7Yaji@Xj`tt$>$KWE*KsHz%# z82@$$@-*!z(DDZ-+_|ZhaT+sx!ASzCfdN8fLe8dE21J%-<>wjaVTDsMEGZb4^m3nb zq#z|s!7oWkQ#Z9T!5D%CFi_Ckf|)e8V7rnyuIqB)VoF|n=jB4h9DVy&yu*aApOe&g zDWJ;)3ufn#7s;k64R<igx(^9u6(G^<&I+vjmSM>K#Oh#z5~QVlRzrQDJTsAf#XO4_ zaEs&wKB1UF;-QQS^D}%7(GOCu;$%oYgLTN-;2g7k1TFbJuB#Ym;ZiYhJAw~t-N_uN ze6+o709*uO^vftR|7{`r^g2OL9HiAZ*J`EhrBSPPt|U~6jFxrx)H+8YX|Y+5k{*#- z8HY65F5P1(@&;atB2~^kwXO*W3d>7*W<eUa8Q!|qF0Hc!hQd4kU=orRC)4dOw!zk4 zx2hU>e5?mdFP;moQY6nZ#}_lmde&t^Vq4IR#5PD3;TnUatroPan<-<M?Zc4g0+D{$ z+>1feNBAMh&?B4Be5_-hL*lU_uk!pKh;(0~$A;4qFj~cSpjjjybYNP>f~>Z0S7-Q& zyusN>DkjXW88f#d6lT3MtrNNv^YEFC_a@XF6M*BL15v3>5I?c0P2?65lOMHj`F0M0 zl1;&Fw0=ti`&fgX??rNQC4#gdnMz@PsEAIgCEC;m@c-Ekw3!-=CA`7fup>#Mt{oeI zx^`{=PJ>55hJ*OW`;oQEwOnTj>0oBN0W(VLxcfJ>GA_VCCX$lY;4Ua{Z&dy;1+u}! zL2VmMr@?E&I>8Tvc-#vQ!MGRkAMrFrndn!3NbXV{;y)b|zTy4f7#B*yB(q>`bS`no z8x5F(zCyBTj)?h6voi6S^ZhLxrAZz4S}i<6*n!tBsp=vrf06|vpc?|uUs6?v_>E)2 z7rg&#<07eaqM5gT?p)@O?=v_&DvbK_9&)O@{<HJyl@5r=CNBwG?1F(OT98;Lh>hTX z`c+ror%#Vkv&!ZlI|o%~c2e*9cw6p`$en|vJPYRFHxc=*ac49*szTMEVzVGI4t&^% zjYvFQ<fTVSI!e3MqGhic_mlOoeCyWJ11e>J`kVXD^>cobP#VI2_A<TBPo4E@uHJa3 zoK~BV$G4*p7%a8_G;Cc;ukW#PO=7g1c(X0AAZbf7Oa?eF*&O0&JS9(yYd92qqAGbI zmlBMjJe6`*Kh-}+_G|w?+t18W!>;;i%cFQNRQD^N_y0S=&jlv@{;-g6j{+o{R(;&c zC?%##Dv}e<yt0@<)*9Bcj|OLFXZXB9fG!(OQ9Cg{6d-9+vLHnxX`vZO+bmFGOc1Np zBV?rwRajrB0Rey(vML0=dAh!pLGm~ekAnp(QeV}02_()GWF5EYfmX&f4oL~Q4-lq+ zg)Ze6X_zOtMv}KQq-Vknj2Gm*)X<F#6v<1tJ|&+~PD+uH0}r1G$2XO~sG8RAzsvnj z@cRnW^L~cNw;<_a+0x^4mQW%0c)2d*_92vJ_9c{xg-|`|#d5+!);*<5riFxNP|(Cn z_6$p(f-;uR&o5(?#ZUAX+;PY0z9|vw$73!Z|ISvd56Q3VBF_2u88G9Ul5SqYWV9$7 zUg=cfQASfR22QQBP%#r}n*Zw1fh2wc(rP=sD1y}HW6gRgU$LFC7KG%PQD6$?t*1$n zF3kH7-lNOCy!Ete0g}f?A$g^Nw;tUz1jscwfl{qsGjVLrTEZxQd<7%I$st~>IcSeo z8Qh+AFTtX#6IuiokVEX{pR_Wr99sAo4ydGG{3QG&`|A4hDtir6?sHlwKe2OpaH1uK zzLUL04mc<c*a~vRVFB`a!J&3W5UZ4tSAlH`e~h~-QZs)3hX|@(-$Ot}(zx~_;I<t_ znA=wOxqi!{`sSay!huQG)5MmmV7pC6?hb=12gymlio&AQNLP#?EieaTNU{}IIxiKQ z9hkr+28qRHK|~gJ7PFWrkZB3{kd8)DIxlWE3nCMI5lJJFv;deikzi7Zy#!dYb=>Tt zR)+OJWnw95dQljfy~?)hNL~ErsQ`?S`%yE)R%``Grwg*l8db~)VvIX$XC4M1UXXIl zN_jj6B2JJKR`B04f|zSY(k3&>#+YuvXYW;lw8Fxx^+-L8#7$;FTww{_6I&L_Ge^6# zrsR<+EsuwSUxIX%11gYBCw0EGvmrIe_IQ9#A?j_Bg{<S2-`C1$-WOAll$3j4I4M2H z(GvbzYq1Kt!~C<n$u)tx_u$2nlj01;q`WX_XWoFV8|d}NwV-4*1+Pa^(m&URcW>p+ ztG)UzZ*p2f=yV#xbOveMf3F3KdUb6`!PMLYUS~Bofm6f!JNT4fKL_8&-X1<6f8^=4 z>j<+bB+LS9>mOQ|F#CyceoSG1ORN`wj65VB0<oRP60@DlR?><2E4{aEaCvWtf}XJb z@wcA!fd$>Z8&M|y9ld&E3B=sxnZc$BifKy_Ej(mTG&3}#X&&!BU~$L`4O9p%B;}|z zsXx5#D44wk@f1(Y8tWX^MplkCkkrMQ0%1Z>vU8#!Jzy5(ER(vCq4CFEu2?}-lo^<Z zjV7xuh$kJQALB*r7Q}xlv(KuuoU8#vn?>}(CC7|M&g89ith<R}7>C%*`%f7KY2v~| z#zY3H<=yCj(sdJ5ESj!QGz;P}<%Xenb4}vKdT+q2lD^l${*p?$Ok};dwN#Lz1S!YD zr?sQBZnD2}Ed0e|$p3dE@eBBbmuF_Wv+4x0#m<>&O}#m!q~3I>>Fcewv%^cw?yQ&K zwc!}+;xXkFczFab*3*K50+EnN9bj5U&yWCx6%=dy<xK;#0+%%nH1%0180dFN$UoD9 ztRq~R;r^mnHeE=9CC({-NCExlYEtu1;w?m^vgTNH+iNeM&0i=Hwo$qN_$W)r|CjJs zf!N=M6S7b~Ij{SI+c)-+OJkbSdz-uvatQA){xTFl41$cu=Zr;S4PK8`-fHFehJoUT zFW>%`gKj?@H;us(-KuJ3O=PpLq1oU1Ucbzq@n5TZ3VGpj7ZNY(qF2B6m9M`YfS`h6 zWPI4=@{^?Xgzt8$s9BJdt(~g<0;Cl5155C?p?J7I0tl}T=-(fK-{^<_f5mV4H~;V8 zx9#hH9lzB7GfcnG<F`Jc=MF`Y$H$gGsU<SW#^RdOMR;!3V<lMS7$PmP@M5Ddp$Y*L z&!1y1^77WR&MaPDY;bs*Tqh%K^H}E)O0cMKPWf?nn9h-jh?J0A<OMJ4IhF_<$fgB> zWsGui=XuqubUx4rBl-5LUKj~nMFS<$NqE&nE&OxTfC@-B{f)!)cNLNn*g`CyjAIJ1 ze6p%q+4?{PEgl72H-+JMqISMZrq0zM+jQYSqG`(8CmDCvf(7IvX=4;EQEnRd_DO~p zZ!;q?;i|V!GDtEtlXjnyb|z>yjJBJtw>$rq-tN1%pxtYv-Rq>?mv7;AN9N;pR}=qA zgVwe-)b=CNb|-0DM%umwZGSnRj9IO>`%S3bv!vY}q+J1NCqlb>X*)@8_eiMShPO^K ztE!c0r#jU@U4(`acK`iN#QnFHI8#e^iBgexRBfah6IOQQg(jk5$fgU^Ks{XaTqoGF zN<xloi_@{jhr3dnls7<`TzC;#>)G8<+6K%K*2b-|;QR07N`kX-pX3%9jApdfo!E-x zSx-${!YFkxNF5RnBJmiAQ$%EhM0A=mS^%l;PlNMgry%;39}~J%B37%_MAWt(Bf4a9 za3uWE6v-R$Aoo4jsbU2(h4>1|iF1*)aWh9R1DcUMD|*@zh##Gc!GV{^Rd^oNy5PbG zoB(EO#@W+IY*!uxK%SxKS&|Y$Pr1*T6#*i#&*@-}iU89+m5jgt=LFJe!C0y`z{tno zPQA#hwEU)1zfeD}IHDtDr6R8~=0t@4`HxF|`Cm4L_?IQ5-jVp2J1${~=LVt{xjPN6 zB)pI*Wj9ZC&D<AuV~rmMC+fMF)8N`%Y(*Dakzc(<kh2Z^gf_u&FvAzT30bQ*Ez|7Z z&fAc?&EPVX-8|KqiQH{buK1!|H&31FoP?~^!DwWycD)r$gap&oJ8Ia<c`<NT{X_8m zu;D{FprK6E{HRDRJgGGT3q9{gUJr}E#k3zDc9v0_(G-jZjlVsCm3Ncn8C`Q1!&c54 zwoAo|!1fqHwi$vMl(zFR2R^+Y@@wut+o4j22>e){b>h%njChC_kAg+P?LUbw9wSk- zw&s(_-JUXkRMY$kb#_mK^Kr=UoWi=h8HUN;Q<|8J)T+S4#J#{3d(h4$Px*i-b`UQ? zfE>!o5&`n*U-SoLwhrV_4CF`(WVQz69lwYKvaN3*i@X?23kGs?9sn3{Vd(Jp83*l& z$x{ON(eGPFX80h25397-{~E&c@>Y4Pk=XbFgy{X0A%&jc%lz;!nc-h1F<q(`V%%(B zcB&A<mpOoo2>Zc_YuKOmA7A!+hDm*jeWu?Ru2T&RGk}5dI^4ecGVy&siO@}vgi?@{ zht-E<BsQpx81w6pG#p6}n+3^c5#R?Sa3eET)|-)d2FY0s`!<ri)`FaL>CU?t8zfm) ztjF6`O>x3_N&AA*dT{s0ACtifQc*tvV1)j6hTBJ>MK&aZAAzJh%}7d$fm_Py5^o8P zM4nogF~b)eg5me7jhbNf37T*Q`A-@J$v)i7TaP-gNAe<r!{c*(r3ov4+1Sb`Igg%K z>5U1NPu@h5Fx(RSJ%Rn977BY{4cVduzWV6i{^22qaGH*ISGVN`hS|9YtNGdm=ZoPl z^z<Ot_|Me{t}IR28(SHNWVTCrmcS2iWm)A7jzLn^4R?a?ed?WBHveP9VUhShxaN_- z42br6y@o_sC3*EU$r1r0!xx-{7n5ZC*Zb&g62=cPvpckdv$K_)!B*CFqtjw5>$=4m zYjYp?ovp0Pu=Pu?SCD_AdV@Q9y1**;vv6PQ%0seg`=KR_^4zb^t6CmwBqFmrD=F(+ zhH=H>a|(kPv?z&iw@$vo&9;SjBZ<dos7VQltcZBPs~<Z&Uza8<U@Iq2u$5f`2Ppo~ z0Tn_w)^mm;uVDQryZc!K?zGL3b^`ngtMn3=pXJCi(|C86>SApll7r7QUE0V5qp<?n z6pY49&3cNJUn2#zCr8=JE&(zw0W$vgceb)ihONg!ceaA{@2+cUCUU44RWFDql`S9q zsFwR&4n%6#;9n(5B<ev8ad2DscMYA&?n|m#<V7CUH54BK^D}(G%@M1Qq^x0g0Aa9q z^dOALE{WfRLu}UjUSOa;uik15O)>92U=gJCTmi5C6^V7c=o7>fNIWKpLF8%Kkwa7Q zf<tBsl1j|_0Fski4Yr~>UThY`lLE0dY81|p`ad4k`ExB$z^7LihOYr6b|@n|J5`6+ z?3hr;`%f7cNo%9by!BJ(?GAaV0ZZ;*A=xx>J-OX@d<&tb=fd-?>)=qVQkpOF29Cm= zs6EO8Q7XPb%|Q2|%0r(I<ks-d&R&cj%eO~~e47`g*Kc?+ET25y_WLLs@PVo68B!uj zEGKo3#CM?1gCITusmU?hsDbZ$xzl*D9*H7BOQZ3uPt#eSptHq21#i)kpJO~IG;926 zElg|Iffs3NdGMt7S-^K1q@&N_f~6aITG%Id81$6O`B*G=5>XQoQByLL>nT2!92p>? z6ItDld5TmHlfVGrNh#a`Exxmb^_UC{Q|@ym>;BjXWO2BkE~56oJfv2EKx=1*6YC~? z&{nmEVoEcA`ofH>#A8$>axU?6*3=4_+y=oxg~VgZL!YW4X($ikI~z9*A)3Jq-4#dE z44O4z_`<{`jPlkKoe&F$<#4JM<O%YvD(^pG%n=J?%<inLOsphXl%gLyRbGtFmEvO@ z;zDzdXp9ML?^adXZ!2|*rMS=+2yA?jYj*jYdqK>{voGY3^2Vowy2BSF+yW~#Mc%;N zO9S5DVfucP(08g)r|%j{-$yBZW7;dSvqwVfa+*@SLMxas5aq;>Wi91O;Q!Smf6UeN z=5zHr{pK@}5>3uOaL##!=rR%Kl&99Utein|!trP_(yM*#Iazy7_8zIF;_<QNzaUB{ z7A}UaBf>?AC9o22wMamzQ$F=<E5?{D(d(Is-QZ8yh;|*Qp?fSZB^*kkrWKNMX=T*s zdNpwY3+s;lruTv;{UbS!w*6)~qbz^+ysFg#K!>u;Ec}*mZ{uAI63s|9otFw2B^|$Y zDBC=Q{JQgD@~g%*M3n5#dVUr@d9T6`6}n$>r@^tx+h<6inF1$poc0SZt~4VNS&*Di z{LMz(O9~PTQUN)|=n&ao3>k6b*BiAMH9NPCR(pJg(1aAFHo%or_`CrPJtt300q9UQ zq`PSh$y=r5wh>V+oI1tGNd@;6GhTuHb3K2^2S-0^ui;fcFCG=-q;pg5V@SmVaEkFG z@$-xe%I{(clhm$bipfqS7c&AWBcfHTD<D(SjvP_wHMLkQLl0tVyx4{&TtxoA8wE+2 zV<z!SwazKLTw-u|YF(|mh$x#j!xdk>^87}8+>ysnrVmN>IhMdN@F~*V19GLpVc;I% z2y+kEOOF$}O=S~vA2~tM#`9{30G=T~OZ0V#?A?I7OI33u=P=ESb#s@hDt}CDQ~RJ> zGIu;<eG&Vzb6Ohux!3!7XTLlM^q1?X>}}R8d1H{2V<tH=_+(H4%&V%E^iMj~;9)^t z&n1H$?>N};J{>Us3FdFF68<(O#NQey;!aRrqEH@kTIX{$A-)#c0&rsO(O5^ZmS0oj zZ@x7l{?;B9#^2g{^SAK&W1c4?O3m0g1dQ)D(V?267+9@nl#epLH!09HI^)xgY@S+h zs2z$Vlu4e*$Uw+kHi=`w*mkO%gma*f`&lWsI-@pF1x%=qS(A+<Vy3BiVbBVVx<M+8 zVPYJEe@+jMsrhg0)r+Qj>FzHkg(rLUP2ZqhR_h|@a}hpr2ML*qjo>s~1!gqJZ&7MT z^4$hxZQVQ>iS4@mYYer2^+JRA32+7C|ADNZu)8@!c(D}-X1g_o7u)%?u<(0+LM=F` zh^Ha7>L=7ar9gA0M%E*w1SI%E&Q_`XWF2?s{8q-bL@zNUg1;{a4@nE=hhNltjc_?= zq1UNSZZ-ImTpjvOg$}J)QMrC-5|mS6T6~A1ypUKtOLTTu6VAztd#{8u%rvVl2Uu6n zDx3d_rKb+%!GCtDefTxq6UMkc<l4gaTWJ5${V1EZf?=BE&)N0>VP=tnu_gwSt^&_? zMY`lyU}kobZBzRtCNe)fpU^z|tj{vHz8|Lc+fL2@aIpNVxbDjN7qL&&8G7Z<36nW6 z$124H%Uwe_Q#$;g(vv@B-yPylCz&w*^qW5AFJ}trj0BvDrCch;1C4}${4Kzy9yJio zkR2AdAPdwj3d0n}mm+TUNS^>Tbt{B(7KVTj02*<TswJ`MC3^Mjt0#PY&|!WU9cmJr z#@zs=7`d`3=`NtaBCpc<6GDGw)W1kO8c8E>V1IWc>Alvis!CA;IY+gy5gM_ZIzZZ+ z=9+%!tYbg{{z~ZY^r3%^{<f?P`QO;d{UD;!ngG6Gu)0mUQ$q?7v9K;F*|`F|?nH+K z*UdsMMJf8-k0j-^w{K(|Jk$>|9#Z>^zX;E7tLMOSX%$gj4-Sx@YyYc|p9}R@-}HI% zd#aYU3zV&NWL=QrG-dd_!Qn_+k&2|;ROL)}KS{OP4n|xK@Zod7^2rHWA2KALJQr5o zOAw#Y?FK%|H#JcJivVDtw}CY+I8O-Ukfhk%%j9LMQfu|S1S%WzqR%GQ3!(xpK?nG> zA9;6IJp1I%XllQ7cxu`5!e|V}T5h#{Pa(HpPd;}$K10fAoxYOtCf6N;c8*JV76(2N z8k7km$vF5iuh#0vkwoFAAmVekECNJ3SE9{B(1J(6irL^08<p=Y41?UAQLY=k@Tx;D zP(yubebYY0vw@B%Fzpp`x6dzc!K;$z++b%b*K!N+`p+-_+Ib&bJKc>>7Xsj|sl7X- z$fq4sAc;jsc`uG(%6+V7RTRk*mPf`TqXc8fUmYgTg&j^oUZ84yLw<+!D2CzvCycmH zJn$kZ(Y#P9G@B9rH6bee@SBeOCyY5#yg5fIHJb&oK|O*zzHIha2YU@Jp3#O4MrG8N z*E;jHSqe~!x9?fP?0C^1T7{#^xgk`@vU4SDWj=R1TPbi0yn)9rk&1Y<&&(_6lbr8S zMCL8Pq@@ANi$0Wg8p54<u~|r~5~Q`<YTn-!jmfYWS*v!eqJ|uO&9eI+`3YLNj*P7A z=~7ja2u(c*EM1Taxpji|IQs&)HIxMJB@W49o%3?BVXy-@#G?w=Ma*8%H`4mnDBaE# z0Q!o&fgE@-+l)#3sYH;go}+p)gP)BV75+^70RAn4=<_Pu;6wflbFMgVOs=?ojG336 zoI#N9R*C+3ZpVYjdWNl#0IxqH|F=d#T0h<_Nb|-Qc?IjSE$aobmG^&TbV%`I98&%m zvmnOLaA)OR_btOXUvh}Yl**G>s2d?j_VH$ic$?WFK4@`B_EGptGTDV<J-M1oYXClS zfS2u@s_#2sPk|j>s)}jp(AQX2JWcrT*PWO1z6+Vblt1_fZvi9q+n(<jg#Y?pW4Qlw zA(t1bZ;MgqG-A}9BdA+D!z@UXXVChxg0+^d5b*Dyrq7GZk?e71L7X?koyBq(ft(;7 zS6nB+U?@nXGt3Tgo7o|*vE)jnarjFzSk^U*laoj_x*Gsq*vWCZ;@UW~Ltbd0i4#(S z(Y)%%h)H!={X4L-w+ujeKbm12QWS<JM>59cN<y3&N%1of9$65Z1hF3CSA5y*-h-i# zO^mt}jJi~T+P+AbS$et8^(-E%#$m15j)z$Z>?$Xk@ctBs6btrI$rzn0*`s@mRqeH5 zZItq+!3_3a4r@*64w%Z{qVQI#Cx~4eXU>%-$HCx#h93@T<K{^D(dHb{80XIV)kKQ% zqe^ru#`uUFjAWi-JVz>x#$S?ou{uZ0kHe^q&K1{2n;r6P28X;z4eTNedCOgRB7*4S zA+dG-3^TONmExmw#Q11;)(jZw8n5#F-{?33?s_5a9@FIv{3SU@%#ViMgv8PrW-b0c z6Rt@V|H)1jUI<%Y0tJM?21|&4nxB2*HUm8+es91tuf{;-N^3DZlcNDwd*Fvpv}Mnc z^5ZZ{qTN}KPr!iw9HZp)ml{f<!%-5ap#;j)(5yO`thQ6K^0O7U;{FF-YHg)^l9d*; z+b3DoYQwC6X*4s$r#WSiB>bzvjum*PTU7;X?Uof}U2Aaf+PY%WGREbI@p0~~l_?lq z<COznXv-Sc=d$8GZY0Z^(W0$sjq-gf=EgP3H}DtyXXuk=@<gepf2-;9{q*~v==ay? z-<Mi}M=H;^UI~AcKfF@@*f|*fSQs@Rf1DXLFn^4XBK*-I%^StzV}tO=e~#Dr<Fb}3 z;*X&~_&)e!aAeQDz0ly0Z&!g|1-3)cr5g5$g$9Pf=U**bvDna?)9CQ~*@`qne+*|b zOyMcKyMB6nV1@%XVIihnvpojlfAf)KoFPbsGt2<WF?>o((+Tm%$3bsE^DSXQ-k=z1 z(8#MbUX5+v5jKo}%Lc#&j02KnGyobg&Y(_*B5%3R^&C_k5Wq8?vbJx(03wF_;V%e% zH<L$7J^fq#1)=Z#UtH1o|NfQI_hs(C2z}2qhQ~)bNql-)xc)(cCIxPtATKv$_=0gr zg_MTtc(DVy+f1z7N{zQEffH~wuGRNyV9VE2ww-pGcehPvpU5}h7btx-vK4#rp)KF4 zI>b+T|0!dxw0?v+SDH5h^5^;4ij8pER*}V;7Y%1kjyP|GApV_C`_Y~C${0+AlN9zS zCc(HI$vMKzi<?1A%aNRz1UDzs$T||7mm>-zu*4XhE3S_=^X{%FR?dQB^(dd#$-6tF z*e6DVL+%|ApRz7+4qQw~kR`8H;pIqWufg-%Y0PK}ZiR__6{QD>IOH{It~7Z>u9QE* zELcyn6(3<PAZ76WuQAD8n<JH8YX;4;P7s?TRG1X%u~f*d7N`L)BxC1usp47ve!0Af zR8I^1461a8<t(M~p}FGvk>*^Hi^&xWV<4U-8-uUg1@V$<7ez3%c#hgROCf)SwSj%o z0*6N<$zu{WKZi7Vv_mQ#P38x>oLI<ZW87rYnPPn<otNUr@>1zoeY%}6-R&#&EF0+# zDLx&7Z5&eJbhAU^raPqd>E>K9exy6=;3$Z($xw;-oO%RH<CAhFVWimsXVYz#TuF$* zUx3q)n41VZhUU~0qk-v{aJMIvjANY;50iGRQ;o!0Z^VR_W3O%*gA~wDesD=u@!Z7* zsK_EhGHc@q0h0k0UNb?_#XFmq;*)u)G}$a*7GKvdR<d)Y!ja}&i5nS)l{b?CD~l;s zuKMgUSV;|Gr3XSH=K^8&g6Jdh+hdLrtc-xaCzLq)J^JY2_?FV~&fo&?H}!c*Cdg~K z)5Jc+h5S!6|1@%6Z08WvxKBF`Orq@;-ml#3kU0zQ?}}O^PhRVgjWcuQc}2N$;#B1B zFtbm*V9@;2+#S=|CpOayj^`-LBmOCnZT&-HM-uZf|J$oOyuGSL8eHX&=goA;J5`6A zIMX37G33f)iyZPwRiJUexiVMekk@hsycJ4v<*`%AuZ3K3t~`0FLw?90i0ip^g4j(g zJc69hA-otE3gvkNwGU|CV}dl%A#t2`e~q*YAnC&ha}r68C<$CiM1Ob*5$!T>&|Nx7 zraH*4x2{)zZ4qs>J}BZOicPHZ3sNbU$BR|k<rUWZ1@WLmY;%b9+RT;TGYk`q7Q{Ak zXYHwVUW452@vdRS%VpPrJzxUJXwg3s#X|cw7^1xI?LiS`kvFhyFz083p@)1}&V<WP zufq9vAVPbfzk~c(W+0N?I^dQV!V*p36ZCsRP3Ch*aahm{(+H01+Q;^*1!}72RfB$& zur7F&pj+_mB$Fg06Dc5OJnKQW;w+=t-wL_BMG}|1P%2C|7kQEOFk4Zlr%NHZi8QCQ z=?Emo_)$4hDHdu^2x2YaVOQz49yNxTloG<NKPh4U`Ti~U^P&&I*aDtjqJftR4Zw6$ zz4&*#KvFM+4ST}KOYsI?DmCc#zwKA)*A!&#sX-G#0jb`xq`6a79L=31@8KEc*5*!< z4e^XJyP3#h)5s&`hUP1f$%t!G;+t3KniQzI6w2RWGlbdi#X>HfPdiQWL-Fo5bLs7f zjArL7gu_L7bL4poki1hB*gx0tBqg4Mwb${gABi=BSZgEc)tgTtcYC&DRIOt|T`*a* z%nNfvN&_!%Gvvzg3mlO7@ROY_4mk%Bnp+&=7rg(g1V_eK@F_T4`}CCwf0}R%&)mXW z8%v}4v_@oY+ww4PIKzvb!~taOT&xGp6|6N|azn-;0gOX)-C1Xce~a}Gwj4_@4zX2P za=4QO-q`2jvy18vcC1X?mJHd<9AanS7DzVc#}f3e#!hf_7Tc69je|Ul9{S_p4x{@t zmv^#0FZaHGBzMSyerx@qex0wyLzlpTWasjDIS&$A7Vu&-@_%<rj+__;NiG{ZyuoE) zY89kphgippXOMUVALbr|7R|5LQHK<51H<hby}_opaFo|SL9^x*as|lKwEdOfT1_0o zTmp;B>qnT8WXZVT5RW><I)``?i4Dpq18J1atMypFc`-E16Z*}>9wu~|L9PMC20=XR z5E~tymeOKmJ+tKzUQV15van(`c-{<TZQN2o;_Zy11u1_t*bUrS=h$z-f0ivTfb~DB zEcqC0teTMlgm)wfBf#RIf#MLW1CU0EUL-as+dd(Cck?HMB!LHB9~=oph2^K49@76& zPt^!>YAty=I4-OX-qcfk3=^^i>M9ZvL*WYdoFM*9kjLKSkXITU)}!o`zrw2`b2nkp zA<AJr!9IBqZ)n;0Fp{$kVfF_<TOng=@t-g{<jD^^<cFdJX<jtKhYZ&518l{81|pfK z;`1dN(s+UH`wdn^Cgn(_ld$d!UeRqNk&VZ<eQKoeoYGqp(I!&JWd|o;!P}`hvT>Mx z{`uJoxLNX_FfNp5#t9M^ElBI5&02oyGi-(C7X-XE(;-E{0SKlLDSkYXO2?DKr%4cl z#56W&A^O1t5TX}$6CwJqwU-g1Cw2qzA;@zC`FF(A%Ega6Rpso*`0!Aa@9>vzKE4vI z{`21t{_qGq5FwEC%0H7%-1JG320;($E94N?+=E6z&NDcy4Lf4-&?$o05FAT#Lga|0 zSS6l3CRbcL#_SL~Xnw*Yr6K*clNmt2Jwo-r)XOQkdqYYtWPpKOFzX<9bC`Nd@>7*J zvE{r9>gSe?4ta%23<PUOnDOA`{$`Pb+~4F#iDPo4(lO>7F>!=D%Nqwv%YlA$TseCP zpD%NBCHn|^hqJ~a&@XU@vyK;=0~aVEaP^?(c$G2rMDH0v9w>43gXA+&uMUpS%;_F% zeD5ga@j2rpGyB2GYuKOqNPWcTr$)r~egQrWNBVD{Aek@vX;9XxYOk{L3fm8r7>L=@ z>bs5^xP3(ZJ>5TJ64c+5m?E#zatJn*c~!O2Fh#Gg_P?)aF;*Xi{59&J?*jwl2g8S_ zr@^;v%7E|*^2^+6d;-Bfvc~HwW-_gbkxo^^R0G2(e;iIU9sE$^Pc`ggU2#xr0;T!2 zdU+kUpb21P!Oa|Uyajn`+47SHhOx1giI%dCLKjVU6I0ePjeQ2(^-A!OVlgnxo_ua9 zcpcVg?uQN9hZEX|)7l5d5Ykz(_|ZUPFWRV%%+Lv#4Uv%snEkRA64t;DrvWV%;)902 zKS#fxrr%$s-*JEV`#y+2!TU2BqHRbl1H*cJ;l6j8-<h>~$0W9*CN`v?vXwJqioDrn z-G#2<NG>*LVP%0o=)QTf>C3Z=A+BN8N|I%=I23HA30_)&wWb}AUP9;NS#~!c8<uRa zNB;gXjWmBHTba*I#mAM!5T25d&I9X69Ye_vc)Wwgm_nqIANSGXAwDEl2R9&hn_<U1 z8(V21`LPR~rm~J{t{ZJ^Wu8I*Iz|wE?@wbG<}Za%-*qS`u*tBoa7V|GoV90}7LO=a zD@%XfuIg{V<uN@!Ygl=#iD6jx@}WRoGYuH0&UiwfkTyF8<2U&KQTOigQB-H+_}L^2 z5fWw*f<d4J88N9BvI?3NBO6%oEKD#!)Bu5E!4O*|5q2RJ)P&7q#&LA5s90>Zt+jY* zL8>ual!VY+z-khdTQGuxPP(=Rq2#i_{66P7XD*u?m->F+_s1V3nR(`1o^zh(Jm<OY zaTcDxiSxe`i4c|xEZEWR85-c$UUdaRQ@K)Cv?Z;uE!)#4t*~vZHyVrQgD*pU6Y`CR zeB)^6)_xTYRi19*{PUri{0Qtg>EXGx710Py;!0OXM>q@BY|oXZ`X*yJ{|%95R8~GV z5X%KBk(pt^uZRXd?;iuQy@$`m{&Mb_A5hq?D($qJ#<KblYd`2~Bn;w8@90bVCp)UZ zqId9T(~go_=#Kh2>k@Yql!2Jkx7(d$RX+Q~yp6zF+}KMyI_;%4&Udnpk?*o9s;|D6 zOf&wlTRJ-USQ6)ZyHD7hQ=EnBO`Ycaj%m&>eNX57{e71>XLA4F&pkP=PtWwz_>W7Q z_)%-v#Bb_m;=6m8_)j_CZ>-@H4|Fs0EvA|O_TO~o|GD?F`Nw|l$>G*s=Kt}f&A%$D zhxtpd(BUVXRn_8#V87yqV4vcKU_>z_gv;^_A{ZhN7VlMrS_Vc^q-_MG6-Pvd;ZRfA zWSBz+DI(949W*Y=xPnaKN~4mYcAE{WRXQKu9HF_T%hr4TMerCRsC?_5%ORW{kzG*8 z&QC%;FES_N3^OLP`K+$&cn52;mGdo#G_&J7brNcBg%hue+P~^Mh<u@;$=@8d)kY%D z|EI9s#w;O@ipOtc{N?u+IwiX021gWjz=p#XO%2@qf}ZnCw%+jFObBZ!&eYN(Uo@6} z;MUw|>4Cj?_k>JAq3kfG_^aU7o-}!O)ABoPIxIX;84_cPA@w(U@=5Py>?=609rfIk ze`3RWt@Gj)8%f>Pv9ODEbX{a{LO!Xyzd)aEH5Qxf<)k+Pp=?;+t_G93^cP8S7r>4^ z%SMwK(PsCW&ctI8rZZ95w=)FgN&1(ERHbTXNL7m1lda?r5BWnahvN{PSJg>e={Q=S z>wGp>{O@zBO6v<9KS#HNvHp7*r7U!oc=)l}4ii|2uiMe~_!w^Ox9keb$Yt>DX(>N= z2Vi-nF17@V1m-)P^v{`kg(0M@nsw>qvT}L1n;@ULNH6R}C0wb8AKRJf2yB<Q9c{~p zY7A#m$+*5cnfwE;I#BiI){iJEm%>k|dNZ2-N}k5Ew;Avgvand;*Y=!%68ez7yak>d zQiAYzyYe-AK8!uz$DZ$H&m-CM?c{HhG+^v*Cf`(Ya%`)rYE!^|)e|Q$142%~?I>U2 zB*%X6YJ<a7uee6zZE0NT9YhGp=8CJ&kWHYD^#+=EoFS4%JLI4FklgDklv_TedZg>& zXPYvb{T%jTNL7ZgK@VU*r@~KI-_VYbs+4{hb}3Z){3guf`K436#(!~Z|6urUJ4*zz z6<723Q}#_GmRYij5`niV?n1rX?wR%zVdZvJ&ozW36ZGKQEM?xy?JC(S_mf?+&|VuH zgtg48S=hJRIlqz>gBk$Epi)}B-<J%I4*pY1fukIr3%Nv`X2VK}z{is@4h<;7UN%pa zD;4;7u5>j&wD}rSerhQ!{|y*Zv-w2ue{77P3dKY$Pg7}<8>lqn*!#p#h+p2b!ll*c z)uhueu{_6u9fy}exq10fsMxDryAESHW(duSZUg<yA?2m*OzU5-2;0L}Dxl0;AGTD2 z+Fkyh@6G=8U<hHAY)-h1N;dI&C7XO*Wl$bLlg0@Sf#B{g!QI{6-Q8VY+}+(ZxI1sK zV8LC2ySu}CTzz*{_v@;*w)V$P?@rI`^mfnFPxtFpp;kcv811GX*|6FY9`Kj_ukFX% zF>Sot(Oztrp7v8Bf4H$TCcJ5pL=S2OK-paR1%Fs-@OI4cI>3N;3!a-nzfD7tjpZb1 z<=gbfN1G$(x_uuH2`J9!tQ<%uY5-!MZg0$5|283Dz{V5=s#vdL2EXQww_X3sy;Z@E z&Ypxvh%T6~O!+`CF}C_-EN7mYS;9Iy<ISyOYJZfcokR-EnmrelY<Q<b=(*Zn!T?u~ z&=4p-QjnoMR-ua}t@K(Tp_fGZy(>Ub71r>aIP7b0JTAXk#FkcC&%b+9UB&(F5Fttr z+J-FnbakyUZIX&^OJKRq#`-VH_wrT%ow)&P+bJH6i!E0&OfPnL=^mnVA*h4S?<%r1 zL0oRIAeO+LPSU7xj_c*OSD7F5;`TAAI(0!>nCH_gg0VEy@{>cs#yY|WxFW+*^fI$& zq8K&z8=`I-RNejQ0BUDT_#dD8{yvY1XxPrVPR!fb-1>cIfNM6b<mC8R;kVW5dO4(` zr~;=l7PPR7)y+QLtWC&h>X7AB8er<9s<s-YigmY1*zGPXNxJ&e2@22bRk*vcSHekp zz|~pu)+$!C7Joy-Z<p?NfOhC*I($*o9)lU@+NgT3VPS(Q{SncmisX!a+`$U3gLa_D zBgJjZPkM-=U6*N8vNI8FHj&ZImG}HGMv5i)j0I$aKo5!Uvxj(6*gGe(?69hXg_|>l zm7g}g*vAdbGb0Z$hJ{M3l?sc?geTI*uQZ0f80{8Zqc*NnbI0VpY8hA6)P+)CBLV)a zi4!U#O&s^ws8+lt9QQ~|*J}k)6KwN5u3uOO+3bR9)c8jNim7>bVCgiv#Q}mg->g<G zVn9$<JO0kJpwY<A2qF1z@gtIir5`PI%RAdz>7qb`m-jeibw&SzKmvC9Xn!osoO_|> z&;w4VGEcG0j!_~hLFossDwwzN61L<z7WF^er5m3CQVcPqQg+@2V~O2_L}O|3A+LJn zH$<F&0Fi#xafTJr>-B?eCbQh?i>K({{P;Zl;POrU&kxeH{)G|15*B<lz_U6vZisKB zylp=+QXuxqlg)p%(J@}1NlWVcRiaekA02BbPiIHe^^<l|GhiW2<=_iC(2}8<98O>; zz>!H8cOpBL_Zcd%KH@XVyCRUre-oh=GX|R0+!hP9w^$(tsf18rzAHk}&~1LL9KUOb zY@nM_@O|uBW9Sav%6{ZeKJq1NczM(uWmtz<IzADORe9W~I*$KQNk@|9B9w)Odt?nh z->oROj{}n(Af(qtxqFd%!M7em9PYf)%1z&vtrc{KC<+`YZ*hd54c48vYuQ~Q$9t5Q zi8bo;>QmZ3mDJZeS+q8@eUv8iy~7Gi(4q9f!V<t`ne7fl98B|9T{iCcJD4dS&Qfy5 zT%Kg?WjB6nASv9sq$e~{_fX;V)`)FBRggD%WDBPUvErPp>k7d5V&;l0?%H^ei@=*< zGKf#vG@sw^*EAXlI%q#VaDlo}rB7gbGoe&bkVmSL=sT}?P;$6o?#@sbVK++8Kz^27 zP!g{BF(h;Fi{SMkC(M?oHPli^!cjH*3g>p4&h4#ao9p-3bRc|Jf8M=l7cj_ICtfV_ z(1hZ4GU$LaC~bo67*dOn=w(<g8-(^JPx?+UI`N3!FIPkbGQ9)_?rV*xr^nDhP*YT! z^WLq|%ZPxP5t&+w-TvX^dEyik(O44Zd+P+1hhp*Lg5R%LmoF^k*T$|x?m{@-8YO&5 zyvc-c`(9}dx<VJhK|b%cfv3ugMNZXml12K6(j&j!H=_%T(q-eJ`GZPj2T6){O1j{} z>ajdEIA?>JY8N|hYH|Wutc0!<0awl3yi9@9V>fT7&}}YqrvZ}lm4i;)m^Y}K#3r+x z{38MrcH{S&SR8#Whd2}AQ3jMYgm{?CF-3-juu1LMja>uJIhyuo9EDS2%RuH+Iy>%M z1>`=aAZ(B6M8^&u{QxcVmwC`sZB^(@Raf@`p2;Xe`<|=AWWmXYw$p;EqR6a)Gm3&u z1?(rG9rwA1-(hFo!MAGkp?c^>jn$!^3|HULM+c*+sIpkA_LV~g8)+=Mf3>jvwT@~r z>n=*DXHk)K;zl><Bq!*?H5fxoY3}C@la>?|nMV-BqNtu_F_IxkC%el1jRn59_Jxdd z(YkzbDO2b)tNf?;Y}__2@#j1VF^djCvRY+Ab)xR$z;U_gUl<&51pJr673<1phoL%6 zo^_O|j~PF^T*~XIt%a&)JmOAU<fhN3F@<Y1E$ksyQ{H{B-gT%VAHdBAC|v-xBPJ1Z zx0<(SBot@{1!j+(^7{eVo5&gK;5m%_^zy(0V*OxyA0aHFsq31Gcnyb1bul$ztv*d? z5J;G@j?E&mnw)Y@{X2UkKJb*#1tMYg+*W;Kjf{;~Uya=3-0;QvF2eYAHDx1v8EqXP z*fEUhFRWWWwnsX4F=Id&OVzt^NE>ysM;q0J?(>q`YWVRibY7_|kl>aWO8}ehkLd>8 zz?b6ZL80k0LToukkTjL-T;7N@6d(OV)3t1m6mmrwc*~qB(4-7V-R31xe>o&5=d04h z-C6cA-{MsR5`RE1DHs-9Tq&guY#l2$#YX|)P9CJ>UzTM$uHS8&+^Mp|Qmf~!FUhm% zsUH`jhUqQmt~56yAY`Np>k&?<SmIcdZfk`m40#&uko=kPXx>&s^sqRYp(mDDN_XHN znIR{ZuzFmRnzHy3O;cdd>?Ge*Mglw`gnLP^-$%{-H0Bp!M&_QE;!@QQgB`I*;G8|! z7*eRGnyr6t7b-GIa^c3{aL`)}o3aRkPwd$iOp9v$RUB$^|1;v6lq?qEJeg*PjTd5u zEy$w9vYx4MS}P-VyKQFvD3Kl5m`Gui8o0%j05j_5+=Ns(KYVg?E#Ae&+s~k&fKh5Y zj5DIt)j^H(3oZJEL)h&P0;vM(P^=jJ$OlGvMpCT!*|Y_|s1~j>^B%VFLnY8G8Jatz z8SEmK<ktMp50X}R?Qa2BlOp3E^CWrdeuxW6&!+`qQ`izij0atU5mqnZW3yV(cwBqf zE-}saTJgS|mf*!Jjp1`e^$}KvS3pSrv@4xJ4`fPzf`p~lH4jBhl~2~VM|SL29ph8m zH@w5X&*ZwNgVnO9hwm2%vwa&aOx*(Y5WV#{rA*G*-Uc6X{{IM;GS-jJh9G?m+h_Wg z{vrAM-*DWkg94W{V>g#Iv$UzH3K0>`F48PY+D!pJpB`HapAK1l-Xg$y<BEC@W;btJ zHh%+)>z8)Ovb3eVN9->zB~(2p2D)_Z-7<{aGDN%Ij9}a%tUR-<5oQ#m(D^j3CbF}J zF9GOU5t>2~yci{-vRV-#vB+fe_sG-o5y%yD$OZlgJnvIuJfZJ`{w)FpIeB5J35}iI zZmOQZfPWkRc;_E31I`w@eUm&qi3z%73;*$ZZ$Y#)3ubNo^D$hWS~}!Ra9<(f;k&J! z-KlIqrotoG^eNcfiEA0eU)w3?EE*i1$12SGXnD`osGat-G$%Re?zZy$DC~}Cy=;(Q zy_LKcEc-W1m?hDb<1pxAx8XKNK>1Hyo)_kUu!2CeZ^7)@EAi)1!e3{0hp}KLv<6NV z4qx!nOdu@r8}n!*&%P<l{!e&sej&n_a1kB%(IceM@9@^(qYO|#skU)S@n1t=-Yg*> zf55+W=KQWRuXUIs5o9B7R~l^x|CuBF>OSfZV}=w)4>6ka@OgCHu!Y+ox$+L)hGOep zgX}#O_#QM#M4XUobhk_b`ym$*`-zh$DCEFhG!1&fJ$HvWcY=R|4u5IZ;5<pJg4v(M zaN!lQV3h(QbFT*uVcePr_Gn)L;*q<D0w>EGP$2DymQJ+@Zdo8*aKdsC6D8xDU(OPz z@e(O8T&TaK)=h)h{XdXaG^x*lm%;y$N`#xJOKnE+AE}+wfi=c=u>bG7`b{3ziz4e- z)d(`IGh-09`_)c^)c;%R4#uOQs_|#dqCAh;FK}<xuo|dQJD8JY5=*?qOp!jsM9#C1 z=~?3p?1oj0N8`YYK^=l>Q2`4f#*)Mo@Y_*MyHB3|I~X&#oG%5u$P|FC?jJaf42|y! zAnq*xSFH^%kY*eq_h*T3h@-e1fdA?KTP?V6=p>QRTZ6{PY2p#$DAAXSZ%0`;00b^G zAAerAP!dbPTqaojKY@$OTY&@$#-P3b>HdF|%JhGgD*u0!O4-olJ_N8JEhCPL-e$Wq zKhGV^4z2s#6)62H|As>MN}`()z=KZX@EG`Q_iigIE*0a^h$Ll7R$*Ff-0Bh4bam}@ zTd!0v3&!MTU4s%+(DNQj1e_F0)MHxCM}IhbM2tBr9~f7!^x{X7GOfz?f^U24y$x~e ztrEpp0BZGPR1u>>+(%KiBc3%Q-ZYjoOqO;vDr@lbulB}wqb;*Tg|<VDS|e6DCgwBq zny{`?Z10GcK3sC7LL2jQamf&lf{xOPN8*Ef(Tg(s+#%=cn3f}zZNHUm8ohD*#N)84 zUbed~r5sNYfOdMP_=lcwocJ|x*&?5C#DD?ft2vUrSpUt0%R6;2@2)7JKWH!N5%NEc z03ya$kSp1gYo}vdR*C3Hqs|z&5`pgoAvH@RS1iO8450*_p67C<ey&vik|^9H1AK(m zlTeN}BT}<@PnO0<njS_+zDxwTZ=zfuz?DN~(+H($CEoAmjJ}l5ld9&8iQev?y&2nP zKYc7=Q;f1<-8TDp>edYOv<X7K9M=1f^i<n?i?W}!)pqvQc_FE1)=c-~L>IFDX9#n$ zeC~~jKdUZsB-)_~xWT`eeP{|EQVZ>C&FpQ>lWGqzsi=%-)IGj8I;t<*GwNh;Cy?+v zwhjp52EU6;-sv!66Lk#OF9c-T4$ifB(Zly3$)*$+1;=HMjnK98xnusZrgI}!B&t<o zv(ly4%0{nc8wy(pbQ!D{vAM3DdVS-Rf7HxIV(A<oeiGNp9vaoiwlMAYbuDS++njch z&U_GZ;rKuoXcclgTLgD6V0x${qp}JMz$(CQVPTbPNp8!({HbG%s`px*81{fLL6C&5 zbf)$E?;J%pOJ049;ak;YO57_t9VXs$)}L64Z7uT2Cba#PR1)@DTJdnJo3enJZ$pF6 z%d%z|gAHt~*$(&Ivw2?}WNev*m;2+1xPEQj589)zisu&o=@c_fPjfY5T}p~+*a&Ip z*NB16&SjYA>v>Wc^g#?b$AaO)TLyDacl>LXbaD?>C$HSC53+@l;JQFDEkSE-zL)@S zHs!?HGi}l?Mj3v4@x1aM>QBPYmQlkQ*`8X4%NSjCG-molevNlsl-bLR(&(kZt7KG# zHEWyW5GJX=qZ8Nsde>S5UZIztmT2!@3AxO4wq_8p47O0}$hinRb|tm9+LsLGUKIlS z46i?l^tLQfJi7aKyJWSukaQm&{+)MjJoI|Dd;9C6WG;EGbRpDVf#dZz{+l0s4PRWA zsq?rQL?b_I;55<Rj-Z3}%vHT9mJ8s*eA<hSkKz>!Xl+4u&6(PRXQw#<Gq|TQk864; zUvBRAZ9c7Fqj3=dd&AS<8zL`|v6?cd<CDg{=k$SPc9z&i|MDsWj6e$chE*Co$N~Wb z25#{0ngZHWd$7}9q^QY!oCtk)m{%FuK(X6*p|VFbOx;v@CL0H2fDcP4j8#C#0ZFU3 zR02B~^ozSd%y4~8M?qBtI{i0jVsCrIbj>>sdO_ug;fQBUdcmP~>X6^&XU1w5yQVO# zOjFnghyCAPH1660CQM>9?rt0v#UgzTsylUBc!Ro(Hyij$VG7`{1Pu}jyoZacE3tH1 z)ONKoN2mF5g9gF4i0m&0qdiO0f&izznvE?pXNepx`LTSB^P@*K%aT*JWJhVi!rzkk z6)^{wXB}4qi#>Q=T?{3Gg+FXuGPE@PT_7H=PXlg$0hHf@)_2sI2Mi2M<U#vT+*eq0 zfe73l>0z%9CYXvT#zoenEWUN}^T7uzoS6ld@FDIxm1lG>Ij@?dXWI#ZI)*0vj|u31 z)`QC1_Ybxvne6in`d$*yF<P~BU?B^+LtB+YKF>Zh)B%Nj?^06se<)!Y3%5>S0J%R1 zh({@6T6$3)`bZG^0T|GL1)8~hSFump#{&}jih!j2h}37_DG`5%apL~(m($C;?Ez0W zVRvU989+}Jwmr~~qn77}{r8E#TW<}AfMNf{zy3<7#@3Tnp!~OOu%hW=WOZ??gQ474 zfGbgMfBXksiqjm5R?SFlg!2dI0-mE_dP#EQc`V7_oyqm-lXz_gts2dyrLcvI(jNy~ z)3%T76e@#4clADW+b?_ZOxdwl(NlYLz6N+(h^Brqw~PUPvTh)DKxYLLCfzwwf6#A3 zYtFvgZ#9?WH)X_EH0O?5_9G_$BwNVkDI7j10bF<Ut_wBzqdg9oye-1Cx-mRz2ff9} z_GYcJ@(+uJAh_%wEX2bw^9dw?T2IvUT1nwEUX$a^VJVy^DDKu;Q1Ma-AcbfFr0VTv zErpc+a7i?R_sR5<$9jJT_o~et@l1%+Y<Uuu)~UqUkb6foSDad<8FaYBU~$_?|E#@H zZ?4y$s3>vQ8WEhM)1*%AL!%AbFQ;+W>9d<g&n&0>%k1$YH?ZlWF0o6V!qjQOo5~bW zdqk<X5J38!q#jAOQL@ikL@WAjH-{1fKV}$Ld~Htn*z*b9yXA9jQ7ir<@SS8Nt@}=? zp}?R5HKbxs;A`bUnVovEK-s>G4qYeY$cgT*M*EcentNY-PrchjPYqz>jbB0KyLLdh zn<jE_0PA7gI3nWC+2l9CWaxE!Icw-y(w=r=qFMK1=rzqF%rJkNaqb~g)tv&V7H~H9 zAs0RHfr2Vq>6$Y5p~DmWjFk|!26B#yA6cp(o{8`z@BD$7$nM#k>G363=q~&YD+zdr z<mxYytws2ArT(z7$sQlgLrp_zaI0e%t#W%`v)6OJD<nBaC!q1x&Qb{$@?j{D{XJD< zqT#!rP?1>CZ4R9fri_vM2@YbUun{1IJ?oge6ZQ!Dpv=%M0n&lohOpeA;Zv35hk;Ha zV^0eSnT1Aa5Pgdo4L1V1+Y!}30n*O?XtNsEY8SS`iJX9dSBzFrYm;RYyOM-yhzq(1 zEkZ(nvIYiHGO2KE9nfRgkG>9pj)fv1YS@3gS(%v9yMFoC`aTps`vhkq6V0^&g~bN< zqJb@yWB}e=u(aUtE{Rlz8Q(7@O8(j+^js`U!BMAgeKAx6AIr4LmLP4GoN1$n=^oS< z_}f1BAu4$`RVAUQV_)Rcw=`eP=1@^$x@no;bERI{<I*~lmMhcL<|!hfAwK#mh6wwv z>zYCWG=}U&+YA<6xI%_b`@@S`H6-s>OhVcfL}jTz%<Ee@kJ(ax0_V`fC@fo=7=N7| z7Cm^ncBk)N+MeU^fHdP?ETb3&H2)qF%~kiCp_&Y7Ma#ZRqC25m27Z%4^KW^vl+N<2 z(_%8eMTvsF@6pTDZ^IU;(J5vaFzJ&n!9Fo%YF~!oHV5$%B%VsN{rS!Jq%uv+(cUzQ z%CJgnamR9RLzmnubJ;rni=rjET5MC=>4M^l9HlnFndJ4j=~ID$7W!0y+>~bN#u=T9 zh7#sm#hD|&WP&J>NF=@%=|a3rkvZhRBbXPXqvu@JrZ^^mINiii5Z;z=#|j;O6PLNZ zFRl+qY7=q91gV#(SAH2-*!|#%dq&jnWM&Z1Ab6zoo|!JFgOrib*=mS)2TODvX2MZG z*K}%)E!$Y-OM{#n7}BSFq{a{sRcOL5E?(yawozLq*GDX0gJ1}vKAi7xitgpm-zf3p zXDMxZt$+}oM5P~&fB%k}cx{djuVD14O!?lz)_;~FZ}D#Dg>d~vg>-qHQnWW>%Hj(7 z8^yTxD~<t4*$4I<B!Y4H4C7$W`tz;*I|SM@gflx(hi>2Xf=~t*TWW7T(&_zO!4w9H zbvJ+}#c=XEq<fnxW2fR);dcUXgEyz}h?ahsBopL?kOd;I^@kL6b~pU}_R942nc-4a zEm9}+Nuy#swg2$e2>@6!k8c_Y4xU2f(AdMk?~x+P4yKXB@X89z*#vOSXzmT?0$V9x zAu{N6%#i<*J5$+GUnYZlI_hHkM<H6%s89kErP2#s*po0jM(OTUM1OrfKLiF$+Br@V z3{Enht;onGKC5q+V_x%$aP~Sy>YCM)Z2QQ&KE7Z`;hClKoU*lqH6S&<!1GUB7BKsk zH@?Yj{7TAyO)IrlR!@@7si`Hp1v%q*=k7s|6QL2~$(dbT15+4t$dEL=UPUBS?GNS3 znsJ?J|Ig`tcohzyQZYdkQgBP=v`hx(9h?Jcm60=ZLbbjh+p6YzNtT*acx6pT$j?UU zHMm22C>6cgmC#@h);RckaUO3p#Th&w$Ya;s3OauqI3ygGvuSr>2hYA7MkyLKKM=H; z^Yxlr(6WUvlWq&%=kzI2d4tc-rMK#PRzRRnI;k(iI$#@+XLmm1bcpgP+3tA=il6}r zZlr<cIU!LZZa{*{pTKj7caR;{KFcStVdAj|@e}lWYw#KL(hTAUdAbdPP?SFbm9U?H z#9L5^@jJ+U97NO!210Sa{|y3o2!8^11)A-o+J=Jvy{3Q53uD;nt-~Whl{u@{;;Zi| z_^vXz-?~T8C17+0Ay0ID7PC^oW>px9nGo2I|7!uZ`QEPLBkOOP#jUp935q@^6}}X> zxt2`D$4d@m-~keB*ZH*H>tPb4#XHIy*|s1n(DUWq&3EOKe)j3;@kM{vwtKt+k9X|I zYz?$grs!)PStl%9Z)*gsMMq!nAv(Of{G5_Imwqia1O6Fu_<)rA$yEO&?ea>Vwzr!7 zdgAdQ^3XeQoN#F9mX0kxp@qXp8#)qBE0>yyuB74KKmi~OmRoLoO)KjjeYHUIIoHO; zs$|P|x2<>^lPws0Uj}Tx1T>}gjlOMk6d=Cw>x0Vv6<HKDe%2D`Us6qd?{#>3yX)Fe z=}`H)3cACJWD?w({0P%C)WW6C(E5wj%$g=;%R4bSmtB%)d`<A@&vh~XK4S=$yHMt2 zG10cdpkMX;kdHM%OFAV-XpEEpsPZa+ujrm*kvHX*DSD1;*^<~-?j^Q?qgm-^Y#;Wg zcIM3Elcq2=H)uxun>|y(33Hv~>qVqqyk2q4Q5v^v9A0vOFzFLn#{TZhq5Tn4k6?`a zE1k{OM6JuseAO^yOqwoiauuw~bd?tVjtBl%w1ddQ>Qht{Q08sBamZEvb>8L*zkl5g zc?g|!*?7Q|2S8JdAIRy<;J-Gjb$fxcEczp*n@$66G1sKyVD_F$@kOmsb7)5)nB*Ec zzYdtx3jlFQQ(uM%3_AeUomg8JOoCgu>+u1@DInp`Ze)gPe82O45EynX!q~#_bk~_k zmZ)zgG=FH@JmE8h#bdLA3`t79oKFYC0X9TWV|0EtNa*u@ykTTb^c6Vw2%kwkR_~%A zWj}Rcw{^VO*PzwTwD8aK<Pn-?ZFZ|$YCt*uM0wNO=b|@DYk=byQLe+CLb_9rsZWn* za40(dJbF*NRHmogQSY)W*DMSFEU(T0Cs+B_HUZ_1*~q=w6){|bs~pkM#dO+kYU&Bi z2G6(4^Ev>%xTz$-Q4mg&w_MT_I`oF3`G(?j?@fB;`E~xr`7E<@df^W!>dMh#3#0}T zAUS`d!wGm(e$W2msN)Z46F}|~FyMVb?(0+-xY>{r3+K<ZkLg#UPPK~+a3i~Ky4-oU z{NhJOrvXV<y4>KCl!H?nF^#yKFJBcDwk=~`{wvz(ir&?6L`<(G0s<gtYM%<!8|@}7 zVG!}sYp;3%5XujAa)gnLYsF!7t)HJC=#@jmD1n5T6JHpHk+iO7@CBI4{hp0q*&u-w z9F-hP56>A$|M<moUR-|z*<;r)I!PM@O|<&UFML2vwEvBE8U-x&*Nq|FaAlNWWlP{? zmnWTlS#W|*p2ll>G?#m`BgB8a$<s%U90h_Jz8oE5`nWCO{Fp4c7|in$f1&(mJifsO zzD<?fAc&QlkSCb%(40m#Iv#9uK~u-ypR9z)vUK0AaDO0jk7xO}AjecR;CEY0+NGi^ zQNF*qX_-XyHcwLd7kUp2A0PSTZ+R|b-yzujJoMbpMwoI;y&AZaJ@*a(PzS$EzG*(c z2R8>SybNa^w!hT>d7p~!+J2u~((?)!<DYiaB>C&O=(%%u2H?KSv8y8@)~!EdMW;#G zb*q?IxdY7OvkCUy36$!M7*Lq3^6VtACjAWMkNk>8RD?ArnV6$|&kQ*Pv{{gpnKO4N zbg{!u_B<&Ni(Rs9&xtXUnct1|Cyf`}RZW{g+-1e0JY_*)qFrWtPgA)jelNU;$+o40 zy+A3F7B7_})i!5cbiL*{K&eR)TZ)oDBR6pUE62=jaT$L#%W^mQY)Wq!b}J_#WgpP& z8ju}x3w&Q6KzKHsdaV;hqQ2Vr0BwSrd}P}{Gk(Z24TD^^?z%u_KlfBVm<-?ZRsm;i z43wZ+Z&{{upu2iv;bjuezh_7F$4f$pPjUC7EWmt;9Dj#$^T=ugqC_V%RgnOpO$1#` zB(Vw&$v7(znxgQ?hh7K79Xwhzu|?sEjjzPPR|8iZA#oghOhpz?GW-+jcG|u)pS2ye zl;J|;FBYy~dTn+2JEFbfvB1Zl5iG7vrf0&5rQ=zIna5B5ugWZ&2{HbPPfu1Mg4`#c z3RNyQnk*$&EbtO0H^kw87p$@fCRj@zp3j%`?N8Ao={^HHLn7H3GJQQ!+Z{BWLn_k! zgaqpJ^3^)>$l57TIwk9C!+q~l7UikAuqPUyKJo1iayasZ&S5U<9}tZ(jRv~q;RWeO zKC{XujVS8PgESa}SaciMR?FXMp72dGO*o`DG#kGw=pcD)hr#K@EKM8cM>X*6PC0u^ zIn$YOzCqO5U<oPN>yb2|gWZGHnQA~+4*^Z!w>~PMijxdoK@eVw|5lF%caXUP{bhfj z4#K0l*xnL+mllBd+q;x{0kN!Bq-0*HC9!trCo!*28~V`j5mfMU5G0w_6<kCHl_VYe z5wF_#Rg4FTTBS-GFzx-<BZcNC|7N&RF$_^j4XoEdQhR^CwW_*ZRfS=c?`XvJ7p~8^ z_K-IV>@2y9aOof}=PvQ~lC#Uh`hu+uD(G-#c*U@e?O>Y8;U1AmLhH}$`fo$DB9TzR zIhZee>6J-aP@e}cA_Fcs7#_L0^6&J!nGa|=HWF-_NOmomoi_iNbniw`Am<cA+YTMF zk)b=ALoH?I6Ebog>V73$FmRleQ@_S3#y<GDO1B1e=oXXnscvwrw%P-;I{#_olV`eB zt46skg8KIR!!|4z?;f=Db{==owrY5D)s8K#ZixZJ5Wn5Ds7!wpGU;c59~$8#MFJsL z(N0t7^|bE4wRFbGL;K0aBi<7tLC%AbvrxfcvS^-QQH-8Cy3cP*0&~nb=a5+p9%ynw zpL>B+5ym5|TMSD(OE7%DL=!7ocS?yG95wMC0W?mkk3x)<ZJ0s6?S{DR4$G;#Fp4zC z)4+Q@8l_srIG6cV<TT<x=^Ab|`u-4|{uh`Ic^ZudZJ%$@LjB46e5LR2UfA#s{l?Uh zD)O&ak}YpBQRt`dC{p9Dyy=#0VK;&z;&0J?q=UcvkYhZ-Fi~hh*i{rNrkCy<*vq|c zdIj;5qT~7Xt<K6HpZeLP4@rbqnw((=0d(b0LKGK0zhI&#_&<c)lq^p4RdKUR+3`05 zNIn-k{e4SZ-tiw2ey)LbsCF&@><=dE6|2VsuivB^m)~EY#^IiAd&#UE&{l2U?%;yU zO!2VD!hl!w*Lh+_Pwj-qN{zr-S3E}elkv5nA5Nos+Owg-n&0=2WD9@!vm&UqzGj)s z_k4=SSSuq&0ge|MS`6nG>K?fJIF1rht@?VY&_pO83X1LcSBg}!)|M^2Nq@Xe^lB!u zGG@v@*4Iz&`X_$jfl_yMxbOhV$b+Be-e3Mp{K3llQUB`m`;}thwqj#F0|aGzrU<_h zGF4?g!`y@^jR&~@E9=Zv)5-9eFGD~;+3i%D#sEV4W+RwAk&wq&gN)DADu%Ck^)J7k z5_R>yGNA)txc+KxYDB8@h);uIsGj}>)|SU1QEnMs06CJN=-_pV#kM8MAj(mOaJ%ES z)u}?}kv=a@eE45z{DWT1a5Abenf0o@Z>BVl9<Oc#Q%?BCt2&+sy;9!YOysDMgyNz{ z@m&BIPSzx_*j}cDgGDt=M`(<=til~<!?5s?!@SyGDm}gGW%sh+{L|o!fSk+-jDrcr z4z<mk4faXe{q{cW7n4wDPlHKIzXiEJqA?uDgzI_wr+O*fo>d5+4+9rWWEUW`hqcce z>5Q#UnYqvX&2^@}(8tc!iosJ~<@xVvuFb#n-lb@dD3z>}Ey8prd0D==d!i;Hg4qA* z0~Yj)V%;1W{C59AHhwE|la-&L6&j7}G|=h-Zs5Thmi{16S9jmV0CaMW8{qW_E54R4 ze7^H_))?t5BDvP-`}8t3Lb&M7nwBe|Q`TYacNhPwJy7#d&Eh5DM<ko;a6eG}ntTP{ zm2Ow-4y41@-IRIVSK=wjrIvPhvz3^UC#w2=?-Gf1^}iTZf;GB%h7ICBXj}7*x!IRQ zYQ-{rCdaF-U)g>qL(AH71Vfs3K5@`%pS7clMBA?@TqME~V}SEmNAu6@**-|2w?-TI zHhQUe@7*D%?QS3fn!5@b-LRxKz<}9`sFl?+Im8-G6-{XXm}6<m`<BmdXe)Tpx{G!H z9=3I=J92wF7CAIe*fSZaft+op5B9fI26gWNEKl|6F`WQ)mKRg0iZ{*0+tPuA*f-4r z``?gn4yI4_A6dTzM;to#-!dw4-j>yJb^$MQmxfP#NE0u!nS7-Sgp?CFCucjK;wT5Z zyo1OGPrkd!Sb9KX%ln7*T%XP}&iOh0_kur~$FGY<V}I=5;2FA+CMM+0G{u*%ph^Hf z2+h2mU#7I6<vF$@*-s+7QtQhasT&S+S>j|W%#VLLv$XUhs}?Eh_@M0xDy4?{-u{5_ z!>4<Lkb{o-zv%floHzj!rGqU{5e@2(iD5M*3TxPy77zctg)BwK5>~d5CPihMk6Lu} zE<fNWmZ0|;X8P<thLv8s`yq1mwZZJ&##9^D-2Dhua8Z&M<LOStdO8qpXs7?phMBoS zOjdtRygfC{|9MsH*mwYyo%o%&)R7xveB=W$Uh{Nh4hmExfT9*EFGm#UA3l!6XK?+r z&|2~Q!&aE5Kugr@VI|jehd`*)bJ-LZ+$n?_IdW@>Y#Rh>**#(|J82)nfp}ad$NlU- zE_So(-cm1KICk;0^Coj%A$CS6dDG!$*>oa%r>rtYrhZQHgeo3ir~pWCihHhqIL3+P z?=#g7D5g*-c~{v)T~807el5VrK^^D;s~>pQ@&H7dNN_6y<*hX$p8;H{UImvXX9>^z z66Qd@sh_6yo~o|^@MB>5EU<r+KQ^gg4(H_xQ6hg8iR>z&Oqzq9P~+@Gtn1o&AS+1H z)=$p>0l|xs1cfGj8qQqNtA<m6P^qmVw04U(qbuM}=l;RA^Wx`{BHtzBE2B5eS3NkC zC@|Qw7fv!YvpvMn1~Z0$RygQX@VBaxMK!&P-3Zar^qy?R4INKtk;hxr=L;LGX{@Qj zpz6U!#88s!o}Yb*5*X;pPRxvJ@;Z5jRiI)GE*nCkIIKleL&<^Lf?ZfV;(RVwC(`zd z>Y$1E(?Inl&H}+8dI<!Re@jrLjFwYKRp90)_9U&`(ie6_V}YHKtA0I^s(w{ZABRvP z`C9bmT#(~Ez9a~Ebsjubf~K{WrA+SlfqGdby+q*@=cV3B&AI%M`&5n>2BkKPN=*BJ zuVUA(ANq!?7C&<XsW3IMM6j7es5>HESgn27%*~q~q~`obH!I(dcz-4T9a*$xv&w$e z+fYHS+79^q=`NRa8N@do++x96I+%waH_YC`B~M`L83JYP;?}_QcoFSc&3^LV2yab# zHZh|8U3%f{^2H~Gr)8G_9kJd}%s;v)?oJCb!n8q0@uCw~XhYd~n5Uwy{&W6PICo6; z9lNS-UTJ41*L@S`)?O-<wMTLP&eH?Mk7W`qMQ8txEh<BzwX}X;Yx>7vj`EcmCMpBo zvI_8NwIzP$5IsQ_?n-{GZ<fXw`6`^VEM2oqdBZBqS1C_Qbt6!^0n$H`&ILp%>~<k2 zLM&vUULRx94OTQuxohGlbjilzd~N)}>hwhaEjH#@K*=Y8E73Yx>h+AtDk;ffowj`l z-f{GtWeiQ6*H;TdrNtWMmq3NyJYlq<n(nlO(K9L*<dnZ}Ji8Q?5pK8>+cVM<B?dm6 zg97SOs!JqN8eddAd%Pe>>Ygzxt>GUmaV;CI1;xrgWPe^9_A5y#W`rR)z?l{~=3mHx z2=&`3p{0P2Yew{S9uE=!0uOL7&np4v7DzZ>Dsvn}B-o|u*wsp9N~7AlJs+Ms{hXEA zrLSzk-7qGVm$%gj85Wg!;Mc(x7qaeo34WE$2GcrHcB=XYR`EK4P`ZviP?gHS+Rgk6 ztxxR)I=k<qH%os7BV8ID2o~sd;K-VVWgvmcE@o*Y#YwYUV{;^;b!kII$)L&0dYk|O z)t54*XGmL*1a(9wUGoLr7B~PqFe65@BVHa{*ZoFLAQj+9l3(uAq<fB~spv8NQuivE zlLQdJlEoQYX^-1jDEfSzlRAA+H4@V>yG3a1fxf&gj+h>ZY5LwdSHUHfxmipOt-e?( zc)@h^PDUE{-C7I6-!VvM`ki-zU$p^0gPR-0#JoPjkK(U4$zvS2x72F3teA+R;dKm3 zyy>HTU@=8xgQF*75<4s0oqoFBvoa!@v(|?sAP~`Zc0){uwc{QKyL^AQIrD>FYOp!R z&`g}KWonOJ^-d`;)*3tAl(j%0D7BIK`<0#PH}La@HsE4tkESV2+eIy9>3s#Wsr;au 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%0DHpZ)6**T*Wdlz+71^6jfepROHI7g&TF7+aII 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¨UA_zz(D{{oi3G$?(Uk^IYbR)QsT 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%0DBm? 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 ?nmoJO&iI!uhK>RTAS<Aa5^x{64&T@S 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¥kgBK6b*^#Tfj*CInu_@oL<55TaX_N5`aC) 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%0DJU9>_p4L91_ZBk~UwZyYKhd|A6T8I3 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%0A>_wxhiEc@ke`a3 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ðdVp93d4a1a_Yen}W|YV< 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 z%0A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⁢+(aXG#*JH6?#Ni#jsvuAo7`?EcZ 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%0DazkJ?xX&b^#O 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%0AuR>yz(z%*+SpmI*O4GOGBWYnSvV4fdg}KPz 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 zℑ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Ҡ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�h`<vCp^JRN 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%0DEy4jeM{R5<N@1 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%0D#uE~ZgwDp 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 u6j1w?%m(Tre8f9 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]}m+*d6yo<`F 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 }3iyg+gnj7P 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 %XL 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 KFEn6?M75NTMjJxB77Zlsp>^R?> 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%0A{<<WB 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%0DA3Kx8~f#0s6G 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℞XyA8Iwn+D8qSY`%C)9r818v+!p=k_yUMRZS3Rb7oCFDa)hdGy1qj0Y zxtF#2PVm;SUt2(uMVM6Gm>d)Ka#GOWh3T+t-sj0^Rp1j<+6S`M;S=Q}(MCKx1ij@M zlNhfCW+NYN=%3Lbc*p=9rVF1)*7&feNQUJ@(S?@QWvE-_$J<a!8-`9<pO3`k_{Mn- zP1HoC)y2nydc|_SN#^-M-|^?2`q2lJHnM4JJvy7u6IKija3g%mx=$dys9HVQV6)gj z$4EN0P`8$}Zcnw)ld3J*@6<%njUa+xUUH_|{kbnXERTLG{6a73uz;-7?%Rsx5QZ03 z1^5!+_tnk#PnFJqo!{|^#PqM>8GyBCS=~!Vlq`%nHeJG*gz8DU%@a4@Tk+?uX9fv^ zSlrHU*NxT4g{y)woW*jNFB6z)({U};`43mT({R`PGp=OhI+^|anLAe!g78ZwZv4kc zB1(AL^P^U6x5ga;h=tQ|3wpLKFaf%<&q*^_oVA<pNhWWIrFRGv;{O4^uMsE|r{xC= z;PmnscgM%m5v9>ho*eszzHOfUYoVZ`mJ}Rlw`a|X_$4a)+7(Myrm}n3KlG%Ob^5-B zQ?AU!X_Of|L^}g3E4~*s*zM*Ml>c{`j!9GER}MC$AY8I%Q(F0>I1@2lp3f5hGT;Jg zwsC!)CB{qP0$R4^cO{wpT!`d$XF*_#LH159+z4~*oqb6r3A^WjmH}dnKa&LbyjxbX z2YiM|Wd~sBxg(Gu)V~zKo~$Hm?l$b7E6yViXqL)%ZX6rLE$|dP{t$4~3?e$*hGmf8 zAZs?mx?)tkzdgT}`rX40)Wjv9m6ZQI#$H2*yW6rA8YG;!Bs0_@(-{NI#D7PA{|toc zV}6!oet>@~!=#%3et1BWX<oIrJBMUIh)F_+D2er|El%Z6u}DjtN(pEku<MQ6lA!W0 zXA5xDWE$cOs(<S)SGGu88>+%&gabGhmv0SKk?bZQ>fFGGzD!&SCJebV7P2|ogkir9 z@Z9_t!3Gxo^;E{6es-;iok%G^j_S7o>*h>DNjKl6$s!hgH&eJrZ^r+w!z#N85MEL} zzem|uWQgAh&=W1;fl%iU&-|v^{Wbxe7Q32EPhZl>?T!<;@F!kwXYGYAgFFy?iBf)> zL}?dNem}p~yKyH5zR4GEj8pMHetw)kKgw<~ak7*PLIxAcVg7+8m^WdMc*hsdSk74z z1GNrJFkDQbLx3eQ%~h8Tm~7I)wWoY{jEYPL9)NUPVV8^PsrY<{d3TyhMIylFk2~&C z4?Cg#t=Q2z1>NKP`Je0rkWY)g5!sIb*(ku#8tg?1j#qLXgYPE16EGmA310cZUiTb; zuBK`w^xJIVAGx9MJ_8&49$~hmOZ-NP7Xii`uTvb`U>*5M`Pw{8D~M8w7y|T4azAM~ zLrC!hkO$bgGD*c&H`s+L@f%sT2ZojDDq?!aDVGIH<h|!83W1FexFuP<s;ER5{NR@L znL$vxM0|%kqHI5#0aL)O8TXF_5Nh<{kAo?n6R=>F#gYpX@#J|A7t<A;M)xU8qSxDC zOR7YUZ>ZlR?A4vNHyCB6Osy%`r2+Pgw?^HODhoSVYis&Us!8V^2NCDaAdg*vGboU0 z6(+@<<$=LrGE%M~TOMX_`80aD=FMcJar?661knU}<+29LE*DrDX7@p!7rU;(4yW_m z(^Q!1^X%9YL6-f&REZ#!KNfw&1=#U_&wqy{X>#BPL?IR-ny#BLGW#31mx+N&D=J5} zOjk>4_gKDT--GZHMVSk(+@%s5btIrti8tU4DwiGD4HG?9BUiP@{5?|T!HmxRD9D2g zJ3K$w9kN!I4nZP0m;>yXKn^fiE9!in41P9nPS<Uim49blC{W^8=&|SS118>sf-6tD zL<oA~?mbE3NmJt;mh}MBg1Pe=>?cLToo(|80&Z-4-*N(`s~Rs51c~Ghlwylqs|Ls| zWD9~k#>_D{KBtHe$-$qfSVr0RGVxCQH@KMEGSA5fJ>`E7v+F%3HC>@v7-rx2hwB#Q zA-^)po`S~Rjq+fH0uxOY^6Ye(o?v@p4lcczL%5{LL@X-K@_K*q7KD29Wvt~MFL7i^ zeU9ojR7Ddyh=bV%5jk&AwDsT&6qu4XpCXu#-9qXl$RZwt>dOe_TG`23qkL_Y!to;J zJbQejRhV*i0WO_XNNJEq$aJC<N{+>u-BMi6HdyEf6H}Wty_~H9>F$B==5tk7EhaZ< z5N=S&`9WJ!SDH!}%Y|hpRXh{ZkcH~Spfd<n+3Cgj*PqF#YT^QbK0z$PZ~Rd#o_L8% z8pB20WbxRpHfR#<o;^iy2JB(dKY~QuSwb}bh93AT@(_e9OOP86vK!=CVHoC4qh;o& znO`6H!5atxM?*MJ{zOy7BOh@(kvSA%pGh}(1oV?VPW8U&53yv-fh3c05FyLoF&xWh zi8=Crw+?bxmVUA?sfC<>)SL+LwE+#~ALNqnufY!J882@zk3k+#G64ELDG_#1#_*>9 zV6Z2f?<$O6SAv%$hNSQBbMqVgdTCCnf|yILU+%roz0dPR;22%rzPJrACIFO4yo>i? zPy9v@QY`V~Y8fo>kVRk=$FiKk?}`8bbs&ABzDzW^VyPemA8e&447N+(1jK)2pY`Wu z9ZwK=`sm#w9|e009Mq4efXu;M7LZ<u06Ust4gdBn4r;_0a74@vw-A>5+yO{pT8lV$ zB0z{8<LzpR<B-y_G$796y~0jya0(j%Pqf74S4=__eE<>B_fiCiC}9ARmSpJ5hvWv; zcp~h%KW^&)5>BmnNG(a6KfH31CL;$^t~4wLN}~q}>;woD)?+b)D>chX(z(oD#7H&) z*pk5P{^fMS4N4SHz(yvbLXyN=1ZZXB-eso#(g=X_qgc*^a6Dd9%L#jgod)65e+F5= zs6_IqS+a`&wR6OKS|mw}D}?0A5~0`CKRD)a3OY5(yM*N)X!*$br&2|@K1_m<Feb6i z-8TV@+VKF&Qmp6hI3n+40WIUiC#pCol=1iOU3;L2Unt%|xcg@YKOads`$npGNuY-( zNl4c?ai%|TeSs|LDfae~0<eAq3JAZn_^Ukd$Oix%AkHLNMo3IOV*zd9yM!|Mc?yQe zU}sMd(Bq6WMD(=Albu<M@OgA_CBr-t7oa7@O6|?Qb3{l!Ac;fivRQ}5QP7gYeh)}_ zjC)IVme_PU;mwz$kdZ0P32PS)^*<TznyZSy`j3PFbUc+vA%hV&z)gXPNQ;(b=MXqf zCt@xr*U?70s)>D$V37b3zKPL23kfI!%+Fipz0Mt?WwCC?vnkn;-!8(1TYbk<Nb~y| zY!(vOMav>8O%`tq6tQc?6G`&}(0zvqIsxAKGwreh>)*Bdb!mg$*}G-%e(;RrNpC1K zv2Ka6lbw?-BS_$Z(Kl5LSC)by&tH<Y_PN+F4+XPzA1II9W}mS%EG2-HP~CiF;>!sg zlFTg9f@J5F%ZOv}odI^nPr-JMOvrOVviQYi#PxCZj_^}-E9}!lK(!=U#IlRcy7w8V zWMsny?jUKFh_=QN(ZPAHIf{3i?}Gi}VMvfN(~lnt9MEK520L1|$8Ds~E6(JYwWGoC zyV2qB^9Ti-F<e5p-B##Zqv+MU@h!g}Gt_KU)POI!g#Ko%IwgPz+nvx!NHl~OkU8(i zVrm%u*A-{g5yb*kWz}h30WtG+mXX)Zl9co$7#>`Exv^)60~9uL-kpD^u%wo=&7nF+ zFCijn0FveTMnDf&>JWzGh>>;|jv9s^z5~P#eF=Z1@Z^}a7N~$C0n{NU->4$Smk{L~ zH@@6%vaK*Y_)X0H$}++Lek(Cf-0S1Qp@=Dpr$Vl@!(PLK@^|nz*n#!j56OqcL$7}( zfb#K@SW#y#@U+JK4k{7XR_rPOyS5}A$adLWatR?n#^0!A@UzCQX>zC{R@z|Z$dwb# z)jUu3$3=knog6@?3tX6)MU<6J#B&Kz!3e1SO`MtLvbmy3I1!ioqsp6IKAE{wGlYK` zp^aopIr+{oPe%YoOR{=JG7ROBvb=E%>zYl7P{xtVr&7QUj44pgKa8r?WC@&pZUFrm z<iY;A2(bDwthOhC0~|b~@|OXKlGw}d&|IBuh26pf^L-R-6Bw>Gy+Y#WhzD$e$QKXg zxbJ*gVXDi3oN;1|CJ>eJ3@~tpU5o4}o2uY=<x?Ti-zlW$aC%8JL!P;82B2;>F&ZwL zA5k~L<kx)(rmvpJok+?1P9$`AJplam!9^!A7@6W=Jt6k|K2&~y4^X(y{VKbv%*ai3 zJ4?LxYY8!g1K?rBL@@YegO1}gC-Obm?^&)4*70wNfg;%*TEdjKKN2_)*YedCYs$$q zfPpy8kTe&#Q)=5EqbIA%E+b-d;h#`T;P)+U!9Mm$44Idqd#>Wk(PuW2<4*Am5?&8- zcSHxUf0UOmWocOkz@E_JJ8K;5!<O3^kuO`yV~+q&#Qa#MTPc<oYHU6;oH7<;&ffx& zDR|qMnLwaUAaw};M+N(62JKJT*9E0Jt*~M^RDCn#4vqWMnAtw5@zxNK@fbMg`TjvG z%qf`oYldXcWd_6iM_`Ede#H5z0zC4(hA<~dqK#ZN1tT&^oEaL4xPS*sui^`Jlefip ztO!fsFh(N2=Gq4OTe4CXoE8TgMgPS{<9v!og{PtI<Px6Ta#>5R5LO*clwC5_qhQu# zR?LLD=5w`&Feh-Z<Pb5dE33zg$tZJ=up@p&Na20Q--wZ2g-vq5doBt2Cs;VvtE+k{ z1*OPnc?^0;bE5JgZ0D2I58ruW|BtN6hN}Q*J=Hs9)_T@0z#0v=+e;EyVj*C_275Ss zhe;x3I@a;AO=?T-(9+HMF)FBd4g>7*YECdbgo$y;T6|R4HHbtQD9VCXh)toa9uyA3 z7MvJER-`l~i&qy_{8c34F%979`if5U&C7>L5-Y_1o~%gag}6B^n6RP?Bk_+k33<b} z(My^bhV|}R@~2PmCVu6-!yfi!@O$4;VvJHGg02+r$$L$3)I*pHvg@CeJRJ#z5P-#W z6@Lw>u-W)T?)wVyKyf5OYV%fd7r#tUag6hhBk&u!ky0M|E0w~jf+9EOH-tNamX57S z1xJK1H%a>;tcnIuP_BuXre@o~1uU_0M{HBG32y<2JW(MG2g*V63#H|n<OA(6GVr}0 zf;h9zW%DKSo;+Z9P1%1Z+hf;)05Nyofy?8LXNfN@{J>*L&du+`4p8XphLbEUz*0bZ z<pJNaTx*c*vvGlsc$Pidk}^E4p|#hNj){544|>VY1IenV6YTdRP6G#r-%iCR4`uwM zQcq8J=kMf)lF;Q1j#lItNVIq`WynUGJh#0(sk3gYyUO|Mej{4VsvmS3_6sFEmNBTg zfohXy1O{E6d`U+ZX3Z^LXU7dTa~E@FnET@lo+%ka*=57E;-97bg)r!z74y|8l+R>! zbj=R?LJizN%#|rl3l&t4`}?O#>4Y~+1Y5<Q3hy)KG0(+@Z9tWrl_(_E4pCaBznh;o zzcu?Jz{h7?500xmOlIR9`U0t(=5o?KvwGS4a>4eeoqf~f!ez$^s9Z>=bh@9R_c822 zc|n!DOEl14W38lLW3uE@X;>*Hu90MmCgZViw)tJ$jegVX+>8o!f-QT#^!;Qik2gme zXqUs~*#Mto=}z=Nm*eHh_6Bs<pX&ghi=!jxS9H&xD1Y?1%+fXZxTv%H2>K0u`iI*; z|L^i*dkwn$Pia8@9u(^_vAxjs<4PLT;KFRVrNq_Q!e>PcdVr}uG+FU6Te*M&&zFDu z=&pR~N`L~<%Sa!m6=!G*+IfF*$w$RPYb6(If;rk(M`NFdpY`!sk%prGIUg@hwlo}f zbzNV3UmP9<d_C^zio*OmmtI1HSBjwBN7ouF*3d+>^d#D5<xdwBs&yf~jDEAya1A_P zneHwKw!R;|Z8=|A2sXJtyv@b{(JPZHQ^9uk>38jzsauol<D>4<`#*Pww^A6Ne=BqM zZujiBiU01u-ve(GFJ%ARE8eHv23(^rWM}TZ?qA-HGfk73ySrWV@RON;JlPL-BCVGG z4L!*U2R>VJJDH_>)lqvIc}`+t;k%wDR&)L)R|dK;ZMoGK<vH1Eu+dt$4Y9Hs>VMB} zfN<v5H}#%xB_?4fu@jo6eI;o6{dsL|#ou*ek89M>ul96qQEk0+&v3PpRL!fcu%}`d zXLi$KVi}1i&HmwkS{Y&1BvA&c{05}_`TFKE&W?Up(|S`SzH#YY-hE&TKcgV~p9D)p zM`4k40*u=FV`;e=vLBw%(ZBk*KfUd%<PcZ$UMH@*82;W$N!0{?hE!{ERLvFTH{u^n z-k-U&`WWjUB*5g9An2NAr6w?0(I{k8Az)T0z?<Akv*S(@XzprwAn?zhPDsGK)eY0T zH&wY`*#vRQW>n{x`SR_j30+fETcJp`bdUSS0OG~xxU>}Dr=9(ulAoPc3%3}7HI~W} zz_b)A3Kx3r0k#(o4({%!{qL`)O0~2ieo46K>+-$Ax{1|P#o<LR!LSZ_xL!!8#OtY7 zohdf46^v13jH>o;!&74+0V%0vWZVbqxi5=PZnmFxc28pRkrfqLg8`izon239Mnhw_ zD`K~e&a&))V&i%9BLV8ZuDr*&hBMQkqH@21k!?SX(X;6GZbw^BC0)<{k?l_<+n+K= zKWdDAe3?BMz@30jk4L9}Mr&3(I5Hhe2Y2|WjgD-e$^`c<VZ#;Eb#Zr1-80|(3^c|! zKM{T9cTD{!;Lg`#D86EQxCD#t>30l2?LwB=*pwtQ%DlR-zqzpi^|;@7R26}L38Mny zZm9V8ZJU3ocJUPc#QHfguQ^7#Ptl12$G#XzRF+grP8b@@{5D)RU3?2H0`ptY>Phy- zQXiyR*FV{#<kUDI?;opfF5?+Y)_y^elDzaaP*3e{YrYhE7n5>BWo`8aW>x3w(fp*6 zX5(zycX{16jwexYLz#?O+Ojv|`&H9>67HXAMBGGu!7yQ!#XfhXc&>ESItXM^GQC_U zK+&<rF;9?Fsv_CSTBXD2jhGkWrR3%Vjr8Qg1q!X$a>Xddqa>=VoFu6x2qeBKs$Wq& zZDO-5U5)2->sN-5&U9IYVgsi6TbFdDZ1N0tCurQJrj;*X=5W5!W!QWsrPI;mU&V^e z+|m~_PhIcPPk*x#=EZ<^b2nV={|5dpWY;?ZZRT7?syihXtL)kh?AmKaye)DM&9e`W z#=I?34!d40LSHvumwZ5f`ha$xKN_7sl4@8ssbAjvfd2deJ@x?&oj<y6SZ=Rh?jG}& zP3zp=|0}jU?}VIpYPPLu;|>_@oc~zaa8Nx`-OktUqT#)~@b|k({ejD`>ULnj;mrKS z^8Ce|&0Ni|>h4$VcU^xm*9|RIzg*PpfXlhdUasC#|GsreR$64v)C}z(G+;g&-D184 zz1Cm(GUGb7-(q*6VFdNmKOWlmvAqy9lFprJvAvKsx*ht~1#I^Rj%yvn^7Z-3&|2^{ z5B6E<q@+i~z=}ul1MHKjlr-&y9&aGjFPa6|Ds>F%&D0!q>R(T@c?2kYrupcx_Rp82 zgtIRO!ZDft#@<-PC^M0NXP?S?xRrd+ouZtdP0&P$JGrnT*73mO-a{}mx>40Exw%n8 zqgnOT<_)sf(ZKLS0=UYNjgQwE<_4Kv*Os8vNL5tt_YJt#snd<GD17qyXP;SYI+!D6 zsM)vPS-TLb-J2iX)bh*Oawb1@(YPo^$;?q94zcEI;}9UKO)q#DFNCEo)vxL2(D*XT z-c?speSyksID+8Mt}vbN&Zs~x(9_CVw|}H0wxq(g3(Q~v7X!|vr>BopIMOZ_YZ{#g zbQb?X#{RA^Jk7;E1hb>b#4)%K*e{c}b6<aK^k;E6U}Kb~0VPo#i7#{!z@6r+uHN}4 z#{4)?qhfskGLkbd+U-%@_~CqaQi=WhCS^CMys_%%%B%85v6+&g!)K?(rw|cZEk*bk zBt}-O9KwI<l%iIdE>IJ#n59#7rZfEL{Z;%XD$~QRh`K6TDa^g8{I$dWTYlpv$#Q5O zV>Y+9-dMh#J~eOtD;_RE2mV;Ee!c3l1b$>|A-MQ^he)+ItrDb8{jpCuOsJ_zeTLG} zNnyrDjIC0pX8){QrhA`X8(Li9Y85X!t>dc-Vl<-s%%wxo&6qF%_g12$Q=+QMTBv9$ zcUMZNG>$6#Se8}BweAR7OXLo0Qi8En3GgYY&?+^;htu30wc#529D0=OSsa3&x#3@$ z1!y%9#HujsIMuk7RO*zf(^j^@h4mp{h!MQsTB-l;mA3YRl9FoKsjrS^Y?X24cf-#- zI*OF+Ip5ry^k`<P3b~Yi!V&$8t#zgngBpUu`FgTW1O1!Fimf2pL{(KW&V-tnrc<%H zW)UH6CR#BI!|5AKZGPf7V+X@&u1`wNl-yixH}aDnn(ElAGbO=|1<EbcfWn+OuHiwC zNfalq#5~_1o2SkT2Te62eZ86KCB-asTSVq4&C9GTe%p}`)n$&3)hvR+U(5ZJ^>jU# zm9V;;GWTbvsl!7rgvy7t#aNYN8`%;z#9iKM+XY3zIX>kNKHh0%6O`=+JJB?Ker0sP z!ymipg!15J<&u(IH?D6r)BIc}7<+>4J4Yj!ZLDg!(T6$5t>5d>OS7~zR3z{U#n(EY z)zp>5Xw`X#MP8_hyksrc)|i4*);0WEp-+QWY0nD}ChO{W2s}L^w{|W!{1P|#wm;Qc zRgkq}sJ4tJZp#p^;5=s=9ozeue@89wE{0~PbqN;FNAv7-H=gu`q=6~l+_14@p1{CP zKf6b6Bjm#o`PR0th>ZW*?&L-*Ta`FtBCWcaj(g=70a6uq(75NuVB!vb=tkv?F9gE* zf{#<_1;t!Ce0|8UGMz}h4$c*svgT`LWSY>Z)L&asOc^AY#-kctQC3XZ)k+_u4=+^H z<Exm)Mo_+r5iKQ}7c_cs2n439&6yX=R}O&~rN{C)*ZG<hr&0?iCtGQNc$?K!-P=;B z-=logv>`E#kri2#ddSpr3T-_pMLj(}h?rhMg=1ueG9RR=NI~zt#%IoHUk=8^rol!? zWx8WpBSb+B41XWXP4i;5I=1c~3D%TAr6q3(C%i1(uuHTVtX6(njy=J#aTOO=d?8P9 zH;PvbwBkT2Qx`-p&C_b|I&0Te3i1su^d^53i2e0KX*QWcBF9ufaEj8y*B!*iO~qUF zI;|1T<~Rg-V~*q+j-^a&N)*~>6pSh&Zj+8Z^i~nc1plPsG#1T_MilnmTD=Y8<MNqt zn#qFOBXuO^Uo?TU2OeXTf($w6`$b*K%an>0E1EPY`U;n3m5sNBln&H5lFigNoSoH+ zXBDG3Qtpdl6g|Sq`U92BgKbiiJKjM8P`I2-S{xai@Ud1#hqM&q+$U*S*xbCk;NF?$ z>8oj=m;q<MH!p8<OZlmNX_-)E{9u}`1mDcG-W(wx{lO>fS)&;7qFjgx1|~5uHD%;; ztp1`WFt`wFZS~DaLv=Lata4u`RtMPK+}x`9jla6GjK4ajiDqtE&%*FUO|wQCy!y#_ zB0v44k&%T(<<MkwS+h^9ssz2puy&I!WYf2lR(m5xGe1~OoC(G^lhvH*2%2Pxq5}%j zP&K)~Kt9ppOE`r~zD`an;dHETZRVjoLTMmHhgM8w8_ZSBE1J|Z91n-o#gx87bdxhm z7K+t%v02?%FNX^LrAZlX8VyKA-Iku2M?Dv##x!<<N=SFCiYZCGqG)U2W%C&`D7H`G zQ{wM8gxB*|>kq6C(O13Btoc}`VH{=r>@!zIKRCjEbY?PD=NU|@(po2=>34;m%9i0r z$X`c?gi5o?vKD^&i;qf0ch&ZdaDMDG606MZtyGlqy>N2KY;rfX+W!2;5Y)y&tHt-C z97^nfX7|`hj$SHP)E!Q?SJO^TPEU>LB0r8-+{jg5$4*F<F<^ywB}y}QF-i-16QT0c z;j4y{L|)`TEG&9KpgECs!Q4*U#=n)Fty0&zUc|YakGptxJ^I@xslromD|?qHt^Rrz zq>{6rqkQ>=24t&w_PuJ1XtI*AqGJlgxtxO&%tt?@CAXj48%m1wfOXS1xkXV=>cD)Z z9B!t)1qB8QpCx|*S6CUUMZb{v#+#hF+FNJi7hw3g$@7eFe4`Qm#C)V_Fl7s_v*n5X z_nVT$<uYb~D;W2*2H>J~W{y-e8p+lk$s2_Wex})9bdrCruC~H|8;@~r#GnX%qQn!O z)KmMDPf4Bg%05Z)QC575M{5e4enzJ!=f@ON4N|39cC<v?yy49i|Fa{Am0t~6a28Yf z9ba+&u?MC9ElY?}irk<TH63v$aTFfo&V8N27FGOEk0yi0A%oW8<vu?HKbY{XvVVBJ zu>@BdOeXZEsr5tNmq$JjB_*R%y6f0ZkT9QGnwtN~7^j)M(tc`c^mLYEMzl%x7wWqF z39wyJOsqiiQQ@>o(9Lg8L>=5UnNdAGDacxfcTc>8{G)58vW^~=y5sxDs(Sn+gSvG# z*_3oC9MQ^>e$MiKFz*+<E$g(}s;VA^nrg{Rc8~VVhoL{eegXCG<o~WvTVJ<AMh(?P zPp7@zGW1C2Q;p+ii+xf>T~uyg{Dqp%phR*LG2+|KH+C4U=2-P5)w;=}QA{rbDXDXD z_{^%&JS`*U0)9fT`$A$#KuCYf_5~k5vGxqdAF25R&RbHIpkc5pWtw#iq+WxjC|TfR zWSSy~CXQ!48DjdVG+75iT6tPa4WmhG)k}KNsgP!UNTV0KWUlm+9;K@l1m>LHPU+6F zn*+`|{Gw?y<0u4IlXEJ$WJL3%<cnXauDyTeE~a0=A^FqDN|bLbH5LAQiIuaz&5Din z)zG1KoeW=792+rGGfWYj#6evD1%DEpBu=dG2>v;OPo?+)>NT}sxdx4x(&yv>eHwP1 zFXyg08Q(aI?b+G{xSIK_1oBd?wI$M#kQZ!GTZY+;R88+EBN{n4eFmu1)O5iH@Z|j3 zWXBn{`X@8{s!TtJtU2Fvvh}kS&Qfs7KHMA8Llrd%srIK4Q4DGEU+u;6y%0?Muu<v- zj-}M9C^r;O1A{9lE%?e+CCb5ybV-d7Y}~qa@NY>%^;H@%gL-MyT86NnU%u%zI=VZT zd>d%0sJ0PFdkcrWNl7N=q%nVEj90Fq-(=IuPGhnp)Nc#1$9Bd%pQA@>VMR$$7thcs z1g5VK7gSZ<7b*O1Wl=t){bG$<mUC03uPcSeik_Hpk3%nW<C3jPFD8mECC@xIIYU#U zpF@Z*IbHD2?6w8H0XtQet-(pxgFnZ@&a1an++ru3x@ruUF+mnH@tGPl4b#4SFB}zB z_Xvu9+OLOcv#X6^zgi)r3$JB!%wlU+i%qAVfw%lN`MWg`ttv#j<4A8yZZSQgs1zeC z$bRhd*iXVv|GyO=oF*X=BKB$)NbAtAWc<SKK6)Y3!gNzwR)G&6_~A=BB<k@LoU`wf zQoka_9<Lv=N<Za6&G*9Qaz_xwU`n+YXiwb_MW=N~|LV<W&K;n^nQm;OyAljOotE=M zZ+4u)<Yhxeb=&vmu0lWM+YUb(C0KnSxG5PanbohaRKX?qI{AjP+)?09N%Y}DJZ1s& zUH?L-t%|32G%b#8350qXcO&`>zL<+ljj!BXXkB>YNW37iSz2YQmf@<C;Hop1nnf9G z;4lhD3I&T@Rc77ji56DIv(Jl^=^4F=eIpo)*nF62%9`RPLOiE@=g1yR(H`rh#$#0< zc|JO$BOuV!=-oe)uK$A8!6BhPMG)TS!Yb{pt^xVnG{P+_2Jg$o9tglcI_%Akf?_Yq zJ0s5*1mTM=the4IdtXgzeYlprNcI{`z$$+f{86;Xw3ei<j!3T)LB(J8td5_!TIiI( zvY&G$_C}#_sr&oWi{=C84e;XXnUBX|0RAzv4a$BoGltsaF1qOHMMu4WRMzDIET`2D z=^&^`&D*FN@<0v>Z$a;v2Pg#K2Ji%M1nAL#hxX75-dQ|y)I5|NZU!@E{dlJ1WNz}Z z;sY~R#K2Z%EiR?B;0YeH03y|7YH#9VL9Ne0g2V2y>P_R_oLu-z;9|8z2F^4Tk6$E7 z`(T1vZ2ftw{7}(m8d80_D}z&wiL>Tmn~=22+y6>5R17}GN)j)70+z}Oht(4qQbB6w zX=UeYwvh~aYQ@{Ftb4>je*9-8slPsa&eq#I%X#$>s8#IafmQoQF}LQxOOXa=5-!v( zW#8GrYsts}i&6Cjo(L@XbOjc!IBvaGim2yMPuV2Ja073@MMV6E`oRwbE;T+ltnTm) zp(}qzh{}gJdWDLYglb%Cl)dkKcYsV8e)#-MIvqox%_RJMgz0x+?{5|%SMHV;wD%o9 zhx`-6sIJSIF{p)&KEHejIQpgHo}f0tXoDOZ`ToN-bq7qLSM6UC2tCF%LizSdsIvtN z=pe4})_R`q{q<m>?6aUJxg;=%&_Nu>x7S+K3+Dv#Y%em@@Vn>syv)1Fl~#65zfua( zB5m}p%FY<6negLVhS(z<-lr~^nk<=%S8dw9eV;~_e-w2Xj<<B=;}D>>h{ooErFW74 z$PMxVOq6k#YSEAu<HK}Rgqc6lr=zZ*-jAIbd$ncTnWSww8{-lZY9F+B<-V2z%RQdt zla;@J7!&@y%q`R`Z=E9xBJ-OKoFV_^foYoXH-4K-6pi~18C#R4ucM0KlO;>n``sf+ zxcc7PCcK85ak7@VqI{DsZe#w^Fs-*OYL5!?!c$_Cbd=r>5gKr^@=h;~&=U>&Qdmwj zohL?HVs9P>F#PI6Uvn>8he_{|1>afR-)#inm^S@O4C-yDwO!pb<+jrldMKT$ss7Rw zF{nW5{M5_Cp-+LE*-a5eCL-=2^JA%Jzi8UBKvw8)O(N#uunlX?tC;j{$D&42s!P4B z58vI5xzIY})vM-NBkD`~YfLD<$|E`*`YRTV`r7+2S7QfV8c(<Aj)1Tv`aj~NBTIri zNLDqTHw9_+(WS}Z><ixR0lx5jz7tFAhDZdCd?ilkC)UtPil)Re=o{3RO@@V?bYqwD zt#p$>q1$z;rr^SV!ISzraW<L%-joG@_5SLuQO`9$A(L+W<iyBP+rON~P*P1PU;ljX zQ?o(+7yitt^jd>hIpqxgiPhn0$;^#j0VolPo0|>slkG?E><`q-e+bKcUoDOCn)O}y z6#1$PBJ%4;?o>0r!7d1$OrG{_O*ip8i8*Q~{JJNj0_o^SE#QdbA>&i~(?LL-kP{*I ziRQ<tNOVHZ2(e-2yZgN=dBNLP{fEEV1-dodrT)$4tCF3ius<KV*#ygr$o?%1{H>QH z0KX?<2vaam=X{cLK>2h#W-+zrbsat$r)T*WZff;I$n?Y7;=l^Ic?HLmc@G>RITsdj zqO_N}j34tq_s8gG1dEZ|B+JEgTVRx&=3NCXI#@O`!ypVSmwe<OpAp@s9ss7UhwQyp z2JX!-f9{Dq;Sch??!$%S0-pyF96fwPODoQ>vE&4)6(RN~hR5;c4BnhhET}vtcD6KI zzj@?B?4pRuO)+AXoqS1pfc!pzvM}Cv5&||q6kKt=qC3B-4i`k_{RS^}1;+4A{>pe@ z;Fwis7jgK&>$C3ued*EZY0tI0?Kiv#Lqcv~e)YI=%HFL_pr_x*S5F_wBE7wUS@Evp z+|vq+lkX&-S^UAjCbCVm<+hNsT;}?9XuADMLmIz4T{3hAckWqsrBTJBZ?@%DSjSN9 z&wP8UaG)L$s3Gk^IkiLHrj1u*t)uqYy6O*j5A#uX+$yc(Llj5hB26|S(k4+*<5H3i z7xsv-02v+=0%mG)VDSuj!AcLY3t4*vK<n84^Rp_vC)gLL0{joi3A&7_e&!<oP2C<| zIcp)dFqdBsQd5*Aws2ChFR%oh?%X?@@0s3~zfLEpd5Pz!;Imws<HqGY*w_`kEm$x% zjxUu#WP4kq#A|$KuwU@CDZq?6#cG{S@^MN%DlUaxfhVt-uP*XmUUM|mX3rt6-aomq z>S6o0vQ9qYUEf|%kY2B3tAw+Wej}8x>C{DYk;a+EIbTiD%yXgIzS7M^TU|*ojgKO7 z)S<mlun97)qfK(8%bM4FSaBZ5mphf7l)_EEWpFnXiJa13n@#yka|B+Uke}2E5WN3B z;~{uKrepALTJ3w|>xJa*2c|0ID!hk?=Mfkxjbz_LXVM_u%>_{U7+bw@*x5oBXKUNV z$=P^rzU=ZN-2=+6?-#iGU+d@>H}KAJrTK|^zpsz@E4N`%mrOtNrbuHONYw1{VUkO| zDx6as&+`59Mrn2;u!RgLZ5T#;_n5W1>m)kRJX$&*%>MHtb3!>)1ZR#)@I}Wp$G@LI zlM%5FiteMht{;2K=LDJg{t91uT>~w?*6&^`I5!Sq;^%L+1j|1}BkG|ypCorl1inLA zaph(4Csi$OVzw7#?xW{|d#@Ja@_y(b+CJh;Po!s;>yu6O;3seOc|G59m|wjqe#!3X zZV_tWai-<KxA&?=wbs*ZE`OlG;jLlL4vzdE_77bXsV8DH$_^=^#AE3U23r%e70W>t zq7jcCiRX5xCC*Gvo>qF@i_ZrSCh-^6GWFFmvDf}Vl<_;S(u3B;b4ca0+UoOXWd)mv zlS0)$Xm8hYNg*vWVpEF3y1#}za=QsBT@ZL*O`}jHBCaD09mljpYnm#NOKsl04b881 zi}ZMOaFcPDZ*n(o@ljR3X-y%^^KhG{cTQT{&spU3laLd$LBudlcr$a9*L`F-dN7J` zc>{f{`Pm7Pp4~%<(=CCQGGv-B5rgn;<;`tgV+4s46$J`)iWUXxf^$tJ9eNdll1fBo zgHi{;oHbiT=SVa4BDf|ZnP{7S{P*rbf@q{yOIMODdnw5tyw|F{IMcD1w*HG_LsDDL z!XunN(=H!gw4g;&+D4Bq7{f%-3xX9aPX}V!dv2p9wa{v%ysdQc1^ta|ov#CWeTt9= zOIarMVVPQ{ctQd|ebW>Pc#!UDB$)($se3}7RnpFYf1s&b5ZLp1ydq<&gxD~i1&z2# zqQ;j40X*gtp(ItJ)p#$4gDBr3L)m}fZNe1Os~Y9u=@QZ%e|u~7c=(uQz!q&c`TE%k z)gQHK_?=VDuF^6{ledP|O)os1m@9QAmZ-j+&fK2`(~;;4o8SCncye)ljO&h55vatP zP|tbddTyCSDB$ve_bkNmOC2XI@<Xj}lh%Ew<d#+NeX3KbX`dw2dpJM$s9WvdX`;8p za&TJ7X#h`$nl4{0uf|@3Xz_TNGC`2{NdKM`AIBW^?B}b4LEb};oIH=BP2;6Ve+lTI zEPDCHoc;KePqI_2Q)B6-3@4hmO=}3McBJc(AA1d1DqWYML6^5`T?pk(zMyMVAI>fQ zJ^#XjT;Q`VpJto3hu~4NRl*o;oOShNo>#LW&;N=TJrn-H8~PR86aJ+x{eMv1|KF(N zsn>7X{#W3O6m7obKRxnO+4=mx`OevEN%{zUZc`3Gwpkan{!ipSBDRn+_Kc)oYynF! z`TGAs?}zdo>Hgp7x<@a!Wd3)MGG>NqRcG=U+7R+v;!JGcbk6`CB@h0e6VfEMue%$7 zj$#MRPFwkzeEK)4eV6_Z3HQx%W_RJbOed*?pe-CNKWuU@RYh_OruqLj8Li8-o*E^- z#aiNUcRnLecW?fT;}TsF5EfiRiatG_DfroKpmM%a$^N6;V6gNO9qawKOH%dZc&44| zCg39<w!}62O~3`y$uUh+ZdaBMRsibhHaKreF>qwQH|LEBuGs~s)P&qQU3EXZuPS~3 zoH{-EXN$3%IPy*`6PM{(KS^~QBwU8EMP6WTTBS2dzvpg@Y41eDy%zf1<~!KWOLsgN zznmQD#q_&<5;gE}nwZmJ@2(f;O;gr3V9OqwnDmg*X@|rxV<FThDeScv+s9S9PTbz! z3MLbJe;LGEm{ckH-yy*UBEv5HEU_p!H&N(8e)Z9~OHDvw)6a`%Z^-X|<=-vFnOmG= z%H21G9j@qvEs`1bw$yP8t;j4tJvp5mG%zUo)iZPQ599CUd2cEDG<SuR0{vcu*(2Y2 zpz+T((t*sjJXfqd%P&Ml;1!qZjDTETY3%C14mCT8RiQEl329vs@HoN2xv-(?{Q%|) z_>EJ7F7zR!oV5L!#b_N*MGpOAvFfU#aaxHWtmhD=uejYl9*Qec5{1W>MFj(5PKQCT zqI%(-JZBuE;X(B)UtVT1lHv@=)Tf7Snsp6rcGq(0s8byo^Wnih-0mnb=dz@OEqQdK zwV81yzKRrK$G0vu%9A@w$<_wHplw9AqHS0>6(4CkkmcFs^U(7`k)fUNqdhs;@;l?v z@&Ww_28P<pAxX>!n5TS`rM8v3nf6ATIg*a0sAgOmTJo62L!<rogyrjWfm!(-mN+qq zUvU>8Y4N(C!!1h8Bt1-aj1hkl<*N8=oV300!ciLAj>6*Fx-BJ(#v8BVZs;$|zeA)7 zv$5eRymSz$zna!Pmsw?;O711E*`QCP-s<7%vgbBbYSq1aJ)9axLJ;|Q!fIB@;TQKL z8;wyTsIA{vZF>ejk<u%q^|_i`RolwhjJnUMUEr^XMQT^7n%;-5vYU$3wy}8rl){Ko z2|9iuYC0`L8_Ti&Sd#vJT_bR@zD-mawciK6W*JD364NTuv!Lw6^lZ3Jy3lHhgl_m` zG{jEyRqO}KedbNC^iV`>+p9!6y}Xs7TEtr@EK#P#XfeGfqwP`o$H=<FpWCxdAjf;b zW2!d%6nTfU8%7WV{a6LWGI*0#b5(&sLm5zX#?df@o2+8+G#p*YldI84saZ{Mx3gXM z#;SZ@$8*nGLfBe5y)^6>x(@U^aZ6sHy$%$=r7e)yHeJV@6%qjkp;HD#;)*Boa&!wD z%POR_hc_u8_aEGZxWcm&!?;Z;1cd{73ix&~y{RI2D|DX(n4p$AgkLchg-Qxf3<cl+ zp(CIGW5O<FUGY7=Fcyjhqccg*bZiLc9cpkdeV4ibuVS9$#z{GOT1SfN_q@%*N7dzq zaG*G{O;iq|_TGI+NxD{|Nj1w%%b-8_;PL6=w$Q_TXcY2kn76Ghq^%OZxb&OzY0VgG zLHz}4A*=THHTrPWKG4%$O8q0LTD#G&<IbSdMG}g~yo#F?f)<F6iwCZ99pUEcw?!kx zuWrMKb_1VxFy~s-_7nrH;?!$qWOmol3(nrWK|@}be8zXk`fJDguK~VZfhZT!qI0%( z(?3gNpIQuBsEVck*zWfoUJ%jT0yjx(MvKm9GJb&?T=#mP61loJjr=vKPo*dN8oxr; z7Q8glQ<aEbDXP}&JHwf+@SvQrcE)|G<CfPs_!+Us86+hseVE7Ol^CN|*f&6!Vc76D z6$wk&BF(s~BaRW1&wj|4K}BM{`tZ4N*2_#MJf^V^4kXzN4SYoyH=HpU+($sooi@#} zN|6=@2W86w=kgTwTA?YVseZTGO=LzIf5l+r-Pha^IP5-EJ?1trRbEDoU3NIZbfo$` zZNS0mRrJ<;lPSWYc(Uc{L+eB$#)b8zY<mh?BwM{98GDg>L|6X<)$qx!M%US<`7%|t zG+a~Wpw{<W-nl7XK?1i(B~kiKX}MS^LMlj?2(^8F|A?zj{3Pz}=8lM5qpNRs@_ROE zm=d#>;p#>5Z%fAepTmrSxaAG~vYlcNzcMa(=t5+c^nyaS@Ijf%)f^f5@j=EBI{w`{ zX}=tJXlDu8Nx-=yZm=qlxU<f6@toA<f|N|odyyY%E`{?6prO@HH;);vT3nqq*RptX zJ55@ghdGi3GZMdp_q`;$Zy&Tptpt~5cg?ZA9*&%rNKYC5k@06(a^~9cmlRoA{V<o$ zSbC7JSjqJjMNa5VZ2&arW^OO4r{}zH_4zuokLV2<yNI-+ee88(=EaI~CTyoCNZ<g| z4me<WhDf)gjtz!XklwOyT&!+e-0Ou7UPI3zLyV!k5tEcJ@`72elf!LdcDg6Jkw1Ok zQw7N&U%|prhO&v{j}_<zg75r}e+l1TU5K^E8h5pK2P0+deJr|ioY<GS+$VCM8tQck zLJKeODJRt5N;;<q-fnw)1KV!*EC$BZ?B*D<Y!rV5M?9Vvj1j0NNfJ71cogO}@A0Yz z2^mFfL^j}BX=YbG9e$t>;Tz>wsIcYyT-B`3T*v!#G$(IzM<(49$nH&s`zGT50+B#& zzat13u}ot<jdl7w%zP{>O|B%aXR)3`{2b!vv7TX_oJ%twOR8tFp2a$SpG*Ec*0b23 zvmuWq0b8nb>G1a^pb5qzn84pnbp)$VE;vX#h6v+n2gi_DMICtJ(f|>Ruui1`;u^7A zZGFU!wRM+WYwK=P&jXiPEc4i&K^niG#_w}UF1Ym(JK@$x?1sZSq_O`r_MgW7)7XEk z$My^eVH+E$ltxjxwr*&R597lwmnTP5Uc~wZ*2@hp;pZ~Qb7#v@4h5D3#xEf-C<nsV zS5`9kesWYNdecGo^sZn4eOE|!<aJt}op`M!uTP2M5*(Lh%B6a8kk0V>!y1xV64s2Q zU#%;{&OOG<2Pa$}b}tUQN&M;T-jil??<)8#^Bl{I(pf~o7fVLNMEf!}e4a|BrZRl~ z6w9fv=2Va6nCTy%qsrkSFpRGJ0&#R!x_kRmQB?RaPYQ(4-_~4uEZ0SGZI_elby3{g z%hDlsTuY_qIT*DpeJoY74C<*{`dDJ!tFHI4)L80R*IiGa``GTgUTNdO1#&eO{;??) z!Z`2Mip$j;%PQ6@tn-dk`t@AJauv%bE?2RA73+%1Z*l)`asO{||8H^sZ*l)`w11T^ zoL^O@OdfMO&(iaGma1F&R%=}pE%gsX1v4L<Gg+>E@OaIgPQudW5|yshx<~Q>O^Ba0 z$aAF~B*D53taWH7RsmvrB0?M6o=aoEb!yn}R%`xeg39xb%Jb68Qlmhmttl9VkbfwX z1(eRFXXMsHOj=r-6Epn^WV)JH>9mx_Uk=5dRyn*buzHR&snLP71ymunJoS~-6p<r5 z9>Nj30aRk0t%5dy_<;^X=sT4Ou;)QRUld*>W%WjgJ@SdF*8&fJ&@p`yx+wTgt_vMd zK*S7vaVA#QJ&HYXCSYB5UL(YIkD!DQm5HJ@qVn+i#T$W`RWKv0bd`ZOB1oN!zHpG( zCAgj-^*|f(B?;>wUiQWQ8)0*W;Qmd6^236n!}`4jw-bpL6#GX(WqlcJp%d#)MRem4 zVT~ASdr`Z1O_yyhlgHm1Js~SQ?5*W~iauQ^SCwI2c|mM<#MVO!Ik1V$FC4(NT>@$a z4-dGek;HD(d;0*&kh64(`T#=xu(C4*DYFISB{9Wbytu%%ulIr=)S0z;VvW+cuIIk( zXd-F1GYIX<<u#Ij5rwoC)Qf45E+Fz888x(dRhSyq&k(<#PsX1|Z-j#k);&=s6rG`- zqObJisE}dt)=8s6?wyy9ux8Y$v~!T=kc6I?TbmP5Z{tMSZnu0@L-!ie5hg*Lus4)B z?<}Ne7xTEj>$*or2S@uS-D5iCPuhgBSpZ%=btb)+v(IvIwvhVKSC4vF8PKRbe_T{b zuB6h}GM5{f%i`La%;s8}8#$Ljf;4wBFE$PgOl5%>S{kAgB3Q4?LK>BW5;o=EV++mn zb)0OU5I8X#sB-x$eERWevbhq4Re(1i3vU%H-{R^WElJ|<c-4q`PXYog6wXk|fpsa3 z0<%O&J1T9m@J2oYg7HKakfZPjb2&$0A^n|$RIeA(PpdT5Yrl});}c&Mej$$!y1puc zJ%>aWk$!cheW*daCzAU#K<TXu^m~Gx$W;yK33MWIzXq293K!ZjmZxDtVYsNwBi$l+ zn-iJ+jWS*t|As2MT%NRbQj{}Wg*gQ|;8TFOKl((2jbs5>BdRBu_uFq2oALYah|?*w zqz3E<UwSe(Rnhy3Lb;G6;1xt+o=fwHLSll;QBXS50fo%Ta)AP|{ZSw<Itd7hQ6PUY z3KSNA!Y`~Ioat<2l$J(TO53-^kz~PU84I#-QIHA6JiPstxcnKsEltKkrc)N?MM*Tj zw?%oRI%Z9?)}6CS8&%msl2lG6o4v{?aA|H=l{3An(yCWzPg?9(QR}m$CyZ}K_sn(B zVe=F<25)mX?BWWt(xxa-xT{<SLt7M62vv!~mCXpQyO+e=@3odfh?eS!))R5<+h@1e z>vk2=)444ML9jKLo<aPntz*?|9jcz7nGG>N2?+dQ9l#j}Y3U%*UXuk{s-^aj`oQ3w zl>luXi4@kf*b+?XY%;@@(}Az@&`A|)1axnBn>@}??;(M`>WR!d83Y!5Ed(IFfS?#z zl2J(Omb7jmGd6-VvP+|o)-7q>qS?I63IPg?=%L^i6e>1yJ8nUNv;h8A6sU#26@`jT z+>Tr5TX=M0Yob5~L;M-sa&p8ir1an^v)~~p8DvK}TjC_ssRIjH`5`4i&V8*dWGwha z9zRlXA79N`gTS4mDv_~(JM%|M#g=+!HutZ|)?O<d84LI={)ij|>!au*Sl7n>HCgs+ zwIpMKT?OlIbPue%(Lu1TP5peVS~<zm`VeV-h_pTg3+x$KA4T85`Y3t__~^CLlBM-Q z)B2!kb5Ii4Q?TwvU%{HZ43|W8yoA8QG-@GZqgg<mh4m8s4OmfecE#Z-I?qY9L4AaD z6}%xypqP+@?&)BexlbrCG4P;!O5DKCRZGnv_dr5o4def4!EdQfr=>m_W~?gIgt)_n z&K74n_=_YeQqz@IV6N=yQ!NY#2u+G83?&)mpTu8Uo`{Ef0@=DKhDFJG#H5&viy~PD zM9%67g<1t*9ib#}y_m09$mc8CS#=c~+^e}?+48`a-3es2JeWXsTXtK1uhnw8e9a8L zdzl4m1;tXWw24GLT3IQGbLc=alqwyxnN@UUlSgbJv+I;X1s+zuJL755*r3x5u7?Py z$E2tbs=JadgBu$NsDdK|JvN^_T;5&}e!8374yQiYQV<%92G6i4Bc3UPqwrA1+EB>k zsnQN8_)(C1Bh4$nxCG|(Wme{IYIH36Lio;Hdf0nSe7^G1%DjJhdp)|o8efm^#YcT6 zj9tAEg6!Ku2Em~j86et@l6WI%sTF<kMi2lOeSx#-J>lRpsl-xJwBt}Pc7K7W_o;#k z`T|c5flQy;5P|namO6mM1cK6bMO;E(YGO7<=q!yojm$YCO{CHpX-4Y=N?egB%ymlL z2@ZuQlfEDfBFdy6LAEGs9$imlS*?eN0ItwR22gfozzL;6og4pO6}Zjp;S$0)9hu-Z zwc&lV<~!m}mv9N;GgCPqrUN2%RVCgL2!E?GgMcfEEm4V%k}|dW)q42=@TlZwk8VAI z*YC?OgZ97o+wW&zXER2_0ZK#_egSzNTeLM_&T-JcikAOE;Ur%vx)@bK)ob}0YoEU7 zj0r)5PifQ;I7O6w&^<+53C<}S79o^fx{-+PZr_GHx=CUlg~M({*5TxcrSb+CtA)-- zjW<MJ9CW+;@AeN5y2mF6`-jIA4ofRKxvT$ftRT+kj~sA_`i68FgM!s?VV(4aMwN0Y zjm)Iem$^hp9dz<>A)WP$u+Z12S}qV?-{xvI4l>sXN_RMlB;8l;k)=<YY*D$pg$1J% zEzML`PWnY~k`7L|d-|{G{pfmfdwWj??bO*qa14|PR*>;>|De6!?f-*d%Rip}A?8&O z3%LZLWPq{xw>5y$wN*MLGxhyW+`=3$uG0l$Xp|UMOO=B=L=?^6s3RA~{z^X*{vA*h z0vH;R!Dy<WmIxFRb|q<w=)1EEei6eIK8rB8@Y(pTwr?Z$Cr?)p!a%sRqAzGJCnfJo z@0SJx|I&cqUm6trO9O*{X>jl_4G{jNLBhW@Q23Vy3;)u9;a?gw{7VCe*RdChIi>je z2#B@PQ7R#;0dOs?U|zBmbQ&@60(8nCcm?yKhQpAtbeNSTE@TC5hSrRVYH%|hziJ(< z`QK!GH@ZG=ADrw@KMcCZC+*2}F#Rw%JUxoi@j-XT5Z^sMq0m<{%HQ2i?*~`I+w+kw zO6$Fz=Ri-uKq<FZ>!o$T>-1)H&(ep%?R216(U!S?)Mcqn))Q(~#Mz?qc)Or9_Mfqr zsV0+rKFD*M+?HU-djEjZbroPu63@zaRqla4o`8>L{vm5d+T!x#+Jg*Cm_lfCq=<*m z=4cT-Zd>A~Jy|OPFYg97<6%#<mV3ssz2fyPv21b8V~Id~?ec#?F@}Wzqh_;^`x!1o z<Om>Fg7&t3dV2i6eK52pfC=rfik#~9Sbey^zhjpG&Qk0Ypxgn3a|q5msXeh-Z86Ir zM7oL6j$=g-%|^*XXn^}^gWONCjm@6e#uDRSGH#KC^Fsv3&aNUl*581oROdOtV(O42 zhWCVi$-rMr6-!yumNji;=&z-Ezow1M{e+9DzgmiIS<{v^ZPZ^a)%!JV(S5K!svQ{X zquPbBKB}D<>!aF@u|BFD8SA6km9ajmof#}ujDe%WVa+ZEmdXYpmkmUYj)-;Rnpk&v zzbMId%ZsR+{*U-yt3-ulM&9*ntEwEnwER~d-@TT4T}$cfYl;^_T)+~7W0nv>vxE?u zB}B}TN)u@`12&K|%O*-3w}a9)c4xE>kyUd;Y?PK4_>)A-vvFUig^cd$d7-0ZOq8;; zmX;FYH|FWV3EpKhdbsEgn_<16^NsF-9)t2u1J66HWt1o*OM34rVDy<w1B}N%=xp(+ zkuH*DxVN9Q2`o*u2@KB3#WB}`qj^7H%Qd?(KVNIZQVud6jdFI8wAb=)@Slp<dJuxE zk+iKsErN46JKZ^(fcKxKqsiUm_F{ZBs*D4fETYQ=5jM^v4od4n8&!A~3C94@PTH=@ zfdLfh@UhQ3XR_KBI$A#<R#`}g({L@G1I?*mmN=<O@3jyAg)r4XC~cnOEfS55w`uD6 zuA<47VEeT+mE>dw4A+y~&gb9|&1MNPV+!dW39u^&Qs<TNB_ul4ppwiIUN<@yzGG0Y z_I)9QP1!6h8k|}RGKS|id3+;;Ih#%=)&}2icDNJK*o}y$(B?kURJO>zKbJ}r487h6 zIu;>i{G}8V(We;e4h2^mOF$HV^_$3ap=4z3A8YfrHZ?OwXvOod?~5#n;YWSJI*Lvn z`+~#5b5tNWLJ)VL7;IetYP=1oKiG=ht$4V_`rXUh`^jK9IvWf>zDDH)5R?B^>}~P> z8&T#}rcG~q`7+THlnJHd%YH(zU5WWd%$<D%BT8L@%%v;%3e$z+bq8-SK{-V{wnp$Y zfsD-UA7Mk~2QuPr6~u>gK*UZWK7#RPyl?<ldhVp#Oygax3;3*EsAP_+WQ=gSaJC>H zHV2>MX#qIIqEVATkw73Lfx@q_6-5t874ZS73M}fkmM*oe0$&e0t<HlE3)W^xBs<;S zV0b_NJeqwNUES4`AJJAXUJP<AJ^0>>RGSPO!MVuw@x7K}f&r0Br>r^S`H=#|hX0H0 z*YHX%!Og`Ft*weO`vM#g-&%hC?_XM~Xf6Nym;C~tkYoW1=@(H9;8{;eat($>j$)NA zS?DFa#e?SlV4qu~CbK@?e_!wLO_xOXIinzZN_oPrgPI)Cq0E2UWCSo+BqfK%dpqW{ zkS@bzg&Df!VTe;jXA0qP|M=h?=K-Rp+@|=TpX(*~+2FBq)ip(aY2~!Jk=g9JGD<pq zBaPCm_}sv1MnUWqMBT<~R(N7C)SawmLv3asWHr^9d2saXJxC`_HXG`ouch+~ng4To zdlSWbScg;_nF|W3Wm+0#i`uF{eWlY>wA+~uwGw1=Rf`5zf`f-aiI!)(Fy(3Ds5lbE zR#Ezq<_d)Rq$$k`Qjid)-BblQosgBEBcq7j!+}sJj+rdPTptRELh*rvqV6W+&x8As z_&EC4a5T9eUyO%?`;o8a1Qe|CIISj#B-gbvgle6Wt2VYeo9}nUKcyk<j<P7RH?29h zUY~t0sfL_*JwsWB%0cZZ7?{nM-Y>Pr^7k6n+maQPb$cb3tZl5@#Ze=s`EuqU_isD6 zjcoMU=g}mR&)-H?I*G?8XIF!dqpoi^;(S*;JUyz#<Ad&A%fJ5F{{;(DC_ap)<J<EZ zuxs#gt6X?UC<&v=^B9JT;^lT?ngWhWaV`C0oTG38yMch3!pKy`&|X4>`B-JXkdKJ{ z%&s5q?I)uXt6;Pq-3-pIMzgz5(+_WHwdpKEkvj-()0Sz#hu6uCAc#{)QhQKM*!;`f zg!}Zu-u@piUs4=xkVQF*Br^StwFgDh?bx&@Q0ANVz2yk#_MHq1R2!ySy}`5MFgCe1 zY$`3PJm@wpi_sMzU6w>rJE{@2$mAkgzhr<^F^PR+lK3^mC8Tn27$SKZ_>rNdaJIqQ zh+GQH#f)FWRTP27%o?z18p-jq9E{(JHT&o^5{O8wYA(`gqy@#+TCq7eX*8Q1@vzJB z^Q5#y5iuom--+wNbaoOQq#f;N6x^?UGAqey5x<7R5Jl9AqKGO`H1?Od4AGQNBC7%< zGTJ8=^0qbIw${8IV?*sraJ2%&u8-QE(6m<by0y@zZbh+fmFuQeu4_Gr`)$P7$~`n< z-AX+)VpY2!T&?<W549tpZsi_ouRzmEJw$f|yJw;pwWr!evp#B^H0y5Trdijno601t zW-N*5%b?-Y7D126oR6U5g2MoaO-~|I@LAho))0zJ976F-2YUP|LV)fE&I=*%uI5w+ zB(gq2;#RF$ZFQY4DKUJ1P~xhdz&R>v3vWcNx~TS#xcK^-^b{ioSd~F|O&SbqCgjK{ z?D8q@P}pVO_$L}&Xk8SaB0~wGT~d_mWRdycW}G>~!&-+L$tKeL5X6G=e$>Wd@*0v} zfzLmX!ZHQ7)CoM$nuO{S<SC;+Hojcq%t`*y;oT>bH%@{$jgm=Os--M-#AoFqFQb8{ z=7W+00YbA6S>7L{4ixY$6Nnym#OzZD(^4BKsDj#s%xNFgn(pO1OU`ug1DuRJWs!{g zWC=z4)2<8Ylmd2Z6jCjfHNgNVRTVTD<JXAB<Cv(Kr=*j1%E~Wl#esP^C^HoYAyVUu zxISYOk$)529!y;j#I$2=Mi^A7qD)kuKA8ZS?GxoJ@rg9b8rZ@2WnZvmTL$r$J>ffB z{pL*U{lEX$|Cw2ti#G@d{99DWh<9HrN$l!)i%{r=@SUx@gC_f-txOO*3gv&`d1d?Y zbRbXLk=7)>MA8tbueeXFZD{{^lYzkzjHw#5gR;j7t6uLYR}ONJ9zQDjf-`HeyCfdR zrfENs{^Urc5+ORJS>U*XejCq%T{174>*LG5oNG~NPlmRYvnGpLS&dqJZUf>0p}kOc zWn#pa@BojO5IDQcR4bIF59DsRgfI<?wVz7}_fV9$<UU+ksiLCuFafFJ!|*VLFf!^k zC4}Lm@r5R|aS36dlpCAWKA`4_%OU%`v==c>Jz|tdPa3UdQRb+QOsjd^L;OHl13{66 zU`OBR5zp6Tr1oT%!U8BGC<20_T4(m4dq6M%zZjAdv8k+r^#Cg5zA|2>0FOmfLrD{e z+9|V%7Sao2Y5uF_Kn4p|28OoW92|F#Pv4zVLacWu-S>y@k0{|nef=M`QNvB??Ce?_ zE6p`P06n{w8+g2v3%Od%J`~nuQ|shxYKsy~Hr?bl=-G|ToE{NW<vA(>b#h|Vj1Fx1 zaqF}AJ3(=6X5XxVhAebb6~W#)2x0S2Zw(Q0BL5!c^T@%cq?3rkKf<PA<_z*&>_GB^ z?z_%@XTNjMJ3cg4_$pZlyuTVJoONM1KA+S&b$uPMJ%fO)+N5?B;(dZ+SICmXFe(SX z{Z>a<{Qf&p?L?Bx%0o<KKyH!BG+6$%%mdx~F`<F6!Q?1k=@4?*<=!Admq{&4ou-Xp zf7i%=czV>x#|Pc%XfhsLaayDLT;|flWM~ykIkJ!B38a+=HB7VXtX9<_RQ3G7(k8fy zarr9vX8xa$#f#S$UTfIAf5|9)iWBZ7)TV|pdE_U+N&BvB@>t6go?Gb46Yy05>>P+_ z|IC4WobL2F-C4`<`Nik{8c%8G+2<Y(yEm{7ag8Gj*-hBmM242-%Sx--ypPLM5@mc| z3b}5l)~%#de(Q?tAMD6oPG85G8qTZu-1J1t*Y_3SZFVz|RZiKYB1#+><>9FUlK{%Z z@{BREIOj;gu>A+NY*DZeDHpa3GXpD<Jv^7Cs?SB>xm@c4+R+jGQ+r(0=king&aQA( zXrFEB_=&xidQC2&D_qiLUdJgQ+OK03P^L1H5u(OmXg-VcbFz>QubrB)iMCb`4o<eJ z!okT_SD^N-+_WEdx9x{r<_Ogk4kjtFjD4=0ENA-Uh#eh_CmB~q=LvIumRSR*S!OqW zhf+*AdI7>=m(mTAd~(#t=}vpf?L0;dZigK4Nc`uThkqqaL-@ockiq9sigQLZrt2W{ zOuCGcn&CZD?@u1!28+I0i`M?ZNxe;Fo`;3ARkj#QrS7D5EA8PTS<>8C8_iLkqP&cR z`zyQp{BLk}w5GIQ1W*5y@$9-Nu!(p%>!RQnU`*kOl1oLy`N+9Xd`sUAae5_U<ORKj zf~?>vrFX;`1~pk)@|4W)ug=S9l_lXHJL_@xf&C-=fIdt@zU3>d<RcJsC<iD@XVYsa z29!50RxT=>Z6o58$>Y786APV)vqn-P^`>$;jA=ZHrdkDIQ^Ba8!Yp;pi9p%$&sH;H zUKg?y%ugZo82KsB;3I#t4$^$NLq#Ey3z_Bp8$sBzL+rkOU197b4E_FyE~#Ho57s>j zWvh7(q9UY@_^*_P5*7Ew_1Wu)R(-$FMg(g`E?ou;vv}dzYjD<5=3A4zho?T}As5lI zNrv*8C@vxfBnvq{bPbwYOSMx;7FkmvKLMTuUZCG!{E6%e{ol%@_eNwpwt2RH<1Nt_ zJ+Y;|2%-mpiu8uYxu8{_!Un{laDYmYD+u$_?<SZiI5mNSHR=Evh_u2bDI1xp_z0WP z`hhrAV7M{_7f4Z}EXUd?yz$5!el5$-8di(}<66Ng5;4_lq<G-~8c3J{A=CM$Hi3g% za-}Az;%^ip-f$E?hO>Ab%1JT4&B)C-E#e2r%bA#Qu0jrKt>GiHDH2KCBML7i%Te#` z+m?UZ@?<>c%($Rh{_Q-sbN&P$j4F`FzUA9(W81I}Z8D}h$R!?D1S_H;dkIdb8*O}$ zd7fEkZCHdNe_KZwhTIo&?Yu-iW&#;I6+QxDYP#@buz#TBPI%re-+NJ?GQ-lnm|0A; zo?h=%{OcVv_Q}!V>A}&-`*&SR{Iv^R#ARiEmARZ<TBG!}^wP;9R=_BjebkTgvC_A> zntiBDMk!qJ!jm3><8wx#euTT52x^{fYqZREVa`!0<{R<%xAiX|^Kk~@gZ1HTb0Z6= zPi}&m9@AwamplV==k!w2<;lQIDO3vYLeAJp)@285M~-;))9%m7@wZUk4JY%ROSOEx zgCXh74cb6Nnrs}7$_H~!mPU2dDr@<_b^q2<{O?t3zq_vguTO3;z3Cimc_nw#>6Ti; zmB=o+n@)q1I>$Rv$sqZlF{xZ-d{vf|Bd;fZ?9=k~cPzv%nii48WJPXGyo;g*gZwkK zHDgP0>yGFO)sPWCId^(V=7fhD?9qbsAT>cnW|ai;ma<`DXz!(e#0A6w;N2RLDfsCE z@_a;(3cJUm;dr!0EQ|9l4)y~+(<7tqz-g-<?xz&iLTkxQAPWjxo+)6dJ!FGEYNl-> zU};bs5#OFrX2x;azOe?{q!+OLmE%l(w2ptHTZ<md+C5N1Q`%3bZG#<f&?_FNh{tLD zytnt|m)Bqa`ugYB9%l_3gr^i3rGrA^@+n5Q7queBChk}v*FtUYrm2YD+EA|;<jSrq zgn*V(lWLrO)8!kXAjO#?;z&<yn}#WWuL~f5=F9<w$VT|chOcOz<|GkJbdMPWQZ-8z zE+zOKTrg%jVlB$iLUe~{ac(M0ibRXn;b@L!<6^YqZf3z%5hTuaD5QU6WLQ_o%vo2+ zx*01q2fMaRuNyOUoswaH-CDoC19+rK;!c-v5tAAsC>uAdXM~8+s>xWH2pX@}g!#U< zyx8*#Swg?%Ula12TeU&x84aCm<YYKALrhUy(y4NC6f4a7ojw&+P7~EshAq9KsZ6=@ zc^5{0-o=rHU2Yj2u-0K#YcKV)O?OJm_sFOf2)9aH0C9B1{yOqI1sN)E0;~c!yh5Wj zjy*0!{CGDpf}LQC+*m;swx{jPexut9TGEHt(#Q;411fnUs605bFtR2(#7R`?L<UfN zH47k(EO_#n5UL<7k@#TCuz;0yxkAuM2uDE~7KA#<2A4X(KAE0D=#qSx`WrZ^VV9ku zHL8O%lJ9H{cYW~)8>Ul`*$Xig<WSJO{}Qjlwx`QsZJN}E(yB&pd6n<Lx|KAce|`2h zQG0@vc!sF|<JrXZA8ZF?g2>&l&G0YU=kUynhUF|wfdH`%8#Dl_AwWCHnIT13kr&!J zXi%Ytg6yY)*wy5gZq6QS2xl2x^Xq}^l7oIkMNCujV*BsVld<u3r$q<X^es_(7vLUj zuL}h!5;kg}mi9u5CQOwfW>+jwX;3xb<QjgZkY*!jHmdDK3UFa6oeegz5k?1CGw(;t zE5B*Jhqs>}x=k4_!Ayt(h|53GGw9)uWNluA9-e7b51cALIxcst_t#d{HkAQesp9ve zCKXv6cdV2|&nPaVCbgGb;|K16terSj)6$kfpp#+{OBr(z+z@D8X(LO`=PF+95TSZP z^aQMflaxTW$NY_Rp21-+I9*J1wg^*1R20eiC1Mkt+G_J@%fHxiF8=zqJ*z=4TmI{* zphwNmkZ!Nt#s{Ij(0Kc8*eKeG=U(Un-bNFu3&I-l4V>i+vo-ExeQyHU6asxPT0hi4 zlrckNi{6+Z*9Y(S-yI&Eo*YuXmG{SoC-0694^AjZGY8XzOt$>boxlF&AA7I=_b*?6 z`~8>ye9`H2D2_7FLj^0oUC7(;<1?sP=OkhBHd#2g1a5E{+%AFBI4eN>b0@uDS*IEt zNob;}5doW&hySW<fNKbHG~Bg`>Zm63=r-5ID(H#nv%BtMdUJa}zWCRS(kM5!E!uNz zd?0J@gH~bD5Da{KRV?eQBD0Iz$#6ttK<|Qr0FIvIIz5z%7$~Ny<Aqz~WaVe1VT3Mw zxbW4Z!i06QVbWcV=TJk$50r>LqOb@k`H8F1<=8(!o`1yim}+$`A7L=}Hm?Fq&!-UM zM(*t+m|+gmHMYp6M#tOnvZ0!}wS$hx5_+$bN1FFej>i7Mu1=2P1H0pq7_A?s`Wx7^ z{_Rl<z2lVJyFR+ndT7TD)c|Xs%$9m^34x$2!`IK?=sT>G)fP^6n_Lfmnq5o=*Q42V z{O?f>EBRvANRVF)#h7*+pg<L}wST1At^F=<@c&-3Y3!P`v^17Ys*!z??y;G4S!1mv z=o(S+kjMS}Q5S90mI$U!M*sC`G`*i)kM2L*o;NH1589+ZY->iEABu`#Y@6*al!FDA zSb~|1IdM@S61JZ?oR*mE%~@A!a9I;4xFy!+71_t>1(fuv18t43EuWmfeAo8b6O@>b zLegjH$<Y?0)|SryS?#bp^G)>P>H74$T1B;n_8RS(dCnk~Et++WBLnLi$M?k=qe#3Q z2qUATzC*tHRsB@)3s<&tBw|RJ<2N^Pt{NY9ADk=+%bpxjpJYJmiPq9Hcb|J%@@Pcs z=8E8>+HtV&c+)>WgQTCIVbYeb?UZDzOcvP|h#FhYDi1RU*>mUmxG22N43nYHWstuX zoHAwXbHXk)H!88J4n2y7x2@L#H5Pwfl{w)?_AMC5*l@zYHnq4gwWC4YXF7=7X2RCD z3E4(#3kqt-l+1~fVO);yuSSE9)7kL$=3;!=;9gDdrPx8eJ<(E>^Z|b+K4hTAMG4MZ zLo-^QZi6al%8J?fcg&!BspB-;GJnll+yZ1NR8^FOf481o3Xc<664PlAlBFrFb7d*5 z9zIE(OH0N+rq7Bd86SUIYlwtvw@_CI%IkSKM1+yOpe+A5-5}%>S)o1UG6W@1&1!I5 zp^fNoL7q0BJZw>3A=i`}gMz?83IC`|GSpJ854KL$ZtohO63SiJoP4k)%}_;86yzx_ zYuEYo?qM>%AJx-gL7MnK3Xj0DkZa}_H!zq_<Liq*71qJLO34U{Dl*f2#hx#>znPnY zC#_r?c6>LPHiQpV@+cMRi@N3jqRxOnFPc5$TNG;FIHF^E`wQPLHC!$EE+%ibECV=? zK#&)y57MbCZ5|)a3Db^kTr25Ca$AdN^yW!^p}+$<*eQmP451DBWR>faDR!-?7t93+ zR^T)yw$)S{C3+&7CYb5?=K8SH?d-p~J~-$cboPnm^4I>}pW7|}=hrVdsb7O1jcqH~ zPR1Nz*d`UN*HU<`5a}C1PW3lpXWw39iHcO&UwtUbJlBD+P#L7thDghluxow1|Nap+ zrPMA5nPRo_P}*E48vHk1?(Q7D>$wilnF2yEzSNC9noV82AUEtxe(Ax{yOYzycL&F( zU5Zm=#3Sn5Wgn!`sh&;jLYr(O?>y=#ZgwXZxm@bTwk8$c(F88}MLakM3yOt;LMJx2 z<~8LU9Ma3VP#+<5IN>)04Dx(39qi)6^XFC45y<NNKNi-9`q79E^S2O^w}mpS>^3V% zyjA}xjhJ=C!EtZ@sJDMynTUINQZiO3PHIC2sCvGPhD}-W46Lnr`%Ra-)l#LqRTpB2 z-BYELM|`ffaFisxF)Gtot+u8MvR^jFW`1MF{>lEqe)r&b|LEWQ@AmhNHSIzhUC3Mn znbjwF$=r%F$n9#hmPr`Q?Gm;IPr9-2!ND6vhYdbC)92NJQs;SoUMr@xgW|Kzs{%+j zWRbMT_(<L}f8IaGm0iMo=hpLM{V;vLGio~2)0Lb<{xAvoIa`)*%0ZG3ucqU3viC5- zoL}4KY;pN%eBP}S@I?x3UHz;nnh>w`8D!e9nIWS2I@w~Z=F()9%wlfP_9%WzZ|CfZ z+I#-X-j|=l&#CzO*VlWUzr5Z?EHYi2V~=L>!p>$Z=?fy@&O+{YkR~ncwZohlxefB< z>fY<W|M)-N{H^!%pWlA@`j3A6Rafyx{?xu;cR47OaA6Td0HO$w(d|VftkaZB7SC<0 z;Z7B?^G@}CQ^FRyA}ITT(`%aqh;!h#q~GN%2NSE2^t;RLjadT8neiOJ)=f1^#RWe! zT{$~zUPDFd*DNJx`?G4bQ$0C)_UXwHd+B$-`>eYADSh`@wMtKpI?*SMyEj1h;ADNY zgL|o3HPyrJdKV*8b^Gb*ESCnF+#WM8n<&P*S~bZ$;-}B5Rg>Xk_tUycS0l0o>ZFT1 z)fjAt2&=Z~#yPdF{@1~AQRQwb!!%~Lkl~zk1j5e@Lvgxpt$JiRec2cL>yv%@lsT>q z0fB6Few({*$s`B$RC|!FwNGwKvBld&ZrwrK`2Q^(^7CMsvHQv{<=j8jNSl(yZDBU$ zn%h>B!Y+3>ty<~j1d3_Y`8cy6MOx$XAm08(n>uO0U*2x5J#wBXNbl=32XO`~<hs4P zpf~WFfGzuE=v|0WMW2Mcaoesar!P(Aja4yA{K6qL$63RsDdDWNtY~MOrk6uer<f+o z?bhbX__vf9a3mf3=xe(qrJL~L%iAn@o7pVsmEaOE;mvnzcb4=-W&8@tz?RRCx=si; z&tAU~f(Wo%j%R}sWB48JI<Hb(xX9N=QGPhbboj-n+d5|+WD6_NX=yg4dQ}wCZOC@o z^pDH-F0dvK>rOqsT<g1u{Xaxh2LC4L{lfj4)X7l0_o80-YJO=VeX#Vtc&;<|lvs2W z`9W$#l@qcTNoFI8YPg||RhSY9G*P#FxI&h6ew$)$bM|E6Dt&32%m1RzmdDPu?eD9Z z1I7wxt3Zx$L^V73kn9;T@UHP!#@EGaFI;?naVy4eZyBjSx519qI{~G12TvfQH5%9b z=sVxqX-4aZb3^XN=pmj(n^J=f9tfc05zdHO=@||*&J={`b&B=6eq~M8)Hz+_w!a$) zgHm&67Y?Al8I<_4-+uq~FEL;V(Ru<osBHp}8+#5u5kk~HXW!p@{o=(7P6{Mq#=hE~ zOF34oQ`4A4Ktz?fSq$TY+tdxLa&2G&c`p*-3;75lzR9f@Njrb8h1&XBD?hlziFRvQ zb6&6IBjwKS9-bZ@oF2b>f3Q!9K(_PI;B0t4x~Q>dFQ)!_ZtJ93ubx^w{$^6dwajM& zCkv^QYj9Qvoy>-n^Lh#YmPXFyH|b{6r%E~?#9j6T4w}wkkAjUvysI8z!!La`w!WyG zomiCkEa03^(Q7+Yg`)CdwiCz3JcQ?**~tzkw$58!>*#pTU(rjtZk+<xCm8R*+kDwc ztV!{C8s9CCYM3AEC)>mw&u~8f^4uC>jll8S+L7;d$l;+u{z?7rjwX2R#)g|KKHttZ z|J)9|N2s@3&%V<J*6sDTXUc*Ps!;%BaMnM{vQB#e9>@2I-eruxI-XB7Id6SNaXz2~ zAgx!QlwMMDH!<IkPoYsE*f`zjmw1S~9c#5Ro`#L=)$HIIvDLk#WTRQs*@%-KoCZHO zgCu_-RiP$Fgo=Gi(KdW8gQWT{|9}%{G_Gf!KmKXw{BfL5nvWmOi9)i~7#dGh)IMnb z$aEreqFms7(|kGlmF}FT{2RoTm_pdqWon-k<p#muJN<6|=hp7gnthjXiNAw61@<j; zt|BYr62dw7$6!ltxP)-|Y0OxFj1t;>CL+_lt9%%(YwLEciZs^l2=kkI<iW01tG2Ad z0!$#-QHO;`-_HGx2b%Cdd%%)~MDz!)c^=3zELuv{_(hT9_lHIYNq7QiEc5aA?C1)# zBy5$1ROTMF1p@I+>|tYxUa>*4CRLPRK+RG`nnGo8swGunYjd9I8oKY)BhQxD3Nw9j zv<tDfad458i}!z1KRJ3{KR6*wzPtak`pMC@&e={F!*7vxlg4njzC$LGUbL3Y^W|)b z^CM$NoS6>~5i%nNLNtwl0OxPMKHKM;oXxQl-2dXR%fOrh)J~2XxPHef3nOwi!{Yum z2CtLFR;IRM@~>_@!YhuIA_7ZhXEi`+_Mh?oaT%P|iwvGGzY)ZP%t1Y)Ua-xZ;dlh& zD{X2P&61wrt)skj7Vm&Tp7Z14r%d_W5*Z5Va4KRi16hs|>A|xRc=E6{1LMh1=*#6$ zB%35>LM~YxBkrTG?EPhEje1Qah+YHTBGJ~^0Kw;odvUSI_VH1>*M>5q(A<Cz3|$=> zuDQ;(6w%1L&1yI*i0K51VyW7MU*hjbq^V!=FZzA4&rqDqxy(htubk<yUDvmS0>;f> zng%8bP)di62kDZ<fKl}Kv(|sqc5-|!JzkdB@V553zKzTaSTAHn`AeB-A&PymvX3CD zayK-KnY}gtq9*NTWhdshz+2qtyq<kxR6?0BDrb{(|2JRuw)%xE;5JRSfS+GbzS{un zfDQC!bP8b?3XBHD*8FI4#;+O6yo|=MhA2ibC7gi<LySQ}>2ao7A<msZVx2<W1%c<z z^=s_b(}i`RfvykJK_u=G|H409-k*tSkVZ*|cTNEpSEJ_*m)G~t8xl*Ys>L^5vKxNu z7ZDy812w!on+#?<X(#9{J&irOjZ+9iN}8WLV@gC>+os!ydA=sL%IO9dI1h{OIJ!6u zeGfZ-`d%+y*G|O+tObSi*N;!m0UDyksF>U+I0!w_%r)^Ps=i@B6mpG)Z_-rP86cjY z%N6M-S5~U)Ph+<KJ&3*Y(cNS;9Ndr2@t41T#+#+-bs@KtGTv6tI~~fhIqVIr_KeP7 z9~`{z?!WJzzCS+Rr;HTG?@#uRPL7V=y*oann6$<gs{^}`ZgVxeu`VnSY0sOy6V<kX z17&tD5o75`ofBPkSg0CYM=v#~%kjO~Mc6MI^%6?yWU$WbLgy0Uil96Jq5-f$X5#NH z|6>Mb3VFKa_~PW#00P8}b*K16EMI@$@bx*04bnYtaOE@Ht8`)uX85k#IKP>8;=1(} zJG;JnPG1=hj_U@tjWmnj*22AiOg8RT>t!q1o9hg3>we3>=H&;TDoW5HT7IB@B@N>d z4B2h{xYld={Q!Ik5Ji&j6=w~CsOPjUGq9O}RPiBa1})*&2TO|&0^s!}gpaV9Tj|sl zz3u<ueo8xi^5E!r#9&InHCE&gqrv%TGP|d|4%6|!N8_}i-nOUOB%srVBir`a5b8c^ zaM+^!qNQciglMT}+CN^g-J8EBTK6w@eg8DzI2!oOHVs?rR}AT@$EDe$Hp~JMP_#95 ziid{7Kq&5iV(E33QZj7q#J*{G2ILUwec$js)SLO3{CVdq-!)Xv8vgK=lU;-D!O0&1 z<MRgme$x=sLVSk_cR^!h8P+IqebiAl%*as7_UT=ic=|nVJl)yD6{`-vYVlb^ivqEt zx%ErSf5i*_jI4e^j+O=;9(Jb<$KbGwO{d$2lOt*%{J2a1t$`mM3wy6`DK-L&mP(d^ z5NBjSz|*$j6E|#GwqIIGwA5E)MP(u+BmYE<_}wyack~uM&?P=+I-oilpGBoz{T4Ox z1@E}8nGV|)2c`W=58*R~^g9C-6Q7uii;5qu+)~Lh=p_?AV;H0fsRQ^1HPx2MwQ4C% z0wviR8<#jX;UM}<x;Z|MiOq9nnmj|M6NIKa23(G;dF_K`lT%oLpkony<vhHXLyE-2 zIXh1c4nQ;n_>B)xP$)hxKzl@Ic!oy>1u(~mGTP~Fmb@)x<-zwDPIxhg1RI31f&XnG zSe?kMAsRmFlI>Z|KFojZi{E(l*=5Bx`v{ShlyqQAeua?rgvk1-bt9Q9?s(OsECt#K zqI}fR`!6`+&BTN{h{v8mK!Ui8AiaQGD^Q(I=f#`&0uWpl7?0MNmvTUpnPInOB_E+G zJ<wavI1Y+jkAzjITALVA?LdvcCNO|cnyjD*SSk-{axoP#Z(YI&Q!7;2Qw>hAWn2*< z{jIG+6Tv`uXkkksL*Vzm5HNf8j2lZQ=C@#$!*@NUW&59?S-QiwfyLJxJ@F7T7Y#yi zdR_(awJBt$WrtgFZwD@0KH!aF)0!2EziwE~<#P;sTlmN4EeL>~w~U=M&s!#y_ga!D z{*Cv+;f4NHKi{V(l-xYK$FQ}tleMcSc3bX=_}i?B*!4H;IvR~TXEJ%r=#`<A!$ghK z8yoH%crfA1&#Sk8ZGZjk;N;Ek{onTA9R42fjfV5|YWW;U;^en8jYR`78G3QvYdyuF z&h_#B`<kZZ$vC^4Jf$c8h~bBlUNpATGRmQN-ZBNFp10g@Q!4btzrk68w$U8Da}B%i zPxrfr-R|M(yOZ~nWFgXpjm~RLb||YvdM(Xtkk6&j(!e?aP{f8>3vz}10XL8-m~)oZ zkT;TQ<{;`TFt1W=dodFO#SXCdTkX)0n`_#<ucbcLPuExUc=SZ`T9k%_%=zq4t)Ig} zF15+tl8w+Y7i3|5@Y~$N&v+un`;`vKf=tZKdGY)1WRF=OwcUe0q)~1?iTbsSqE9Uj zV#0saOuqc`^Ll^3{qy>_gZ+z(i;LgCgVp(W=Hi0L)7wb7!nezX4fdHyxQ(;SmV$pv zv&ryomkh!t<A%vBYU@m6rD;BD$b+cW(1gzTItTAXSV%(-2YPL7u#p)xzB3SX*&)Lq zbDsA&i345!3#s$U!SH%^Ez6<1w-4GJc1O-}r~$9ky9pt8Y0s!)Yc;Lr&C67-<s%Ua zCow*BdX8{D8hxWiNO=B}DYr)GyNjR36qJNJQ+UHAgfsA=d7aT{O}~dzw8m>W@`)_z z^(+?=6Gd*zwN+4T(Z#O2cdQz8!6(IdgN@bSJGpl3(9=JRVB>h++QxShwX$Ba6DP>W z^v%)Fq-ShH`P-hEjKv?61dft?giU;w>bEG>bXjbr*C3IR1y>>kP;TGGgt|L^E6A+3 zkwxCIE_>76-|zNzLN4RsnmAI_l6s=`*JWjh%q?2<dM@n80C6sVHiF$xKRd58(}r4O zYuhriCmiz_7<3aS;#mv7G?A$fJ1x)l;TI+D?n5oR`=o#9C;dY|=^y$@|Ip8OG>w>& z?z@)nGzCsY_y6B=*!@m>h;MQKuI2eY@fGjiwS3o)`9nYE`+nAcP*v8}af*tf0HxVk zx%@**L+NI7F7ETax^i&xy}t6tmcwqOw+yz)Ca{ImxJ@N#H5c1s@g1!d2iXxXUk8d? z%pkB*LNgz>a8yy94haEtx@CUH*)!cT!($7%f9nJ0at?WilCjKo(x?%^?F!cCE9v;% zfqUOSD&j%vaADn4n=Fr(2{NWtWRpSNM`=o5)cnF=i(It)mJ8MdlWpI~&~O~5z-E%M zVMD04<{I(m*(Lx^(+Y+Q=`M$4b#Gqxp*gn}A)4(gRQSz>PL{MT?cu`zyy-PI)#()Y z1pYt9-gUigB*_-t=jZWLpj^Xksmqjj(UnzlwJgalby>1Tlv+LQa&sqvB$+KR6G8%# zSY17@b^f0x+h0aRUT~p2{e3fKAwdwtB{NpUinUC1@h3YK!7+2rv@-DlhqOB;C}lM7 z5oUr7q(otWjJX=y3(m3;sIr<(=CAF!VrgwtDjqp*vNS#*U6f{Ze=t8VSE@i>0o;B3 zk?#U|42_x*_?VM&1l1!z6WZ3uJ%5I?InOuWM$s2)kWL}?*Sz?;MAf$^&NFmC<VSjC zCUvu_xI{lx3G5<`xfy3iiPyqJqRvgsZ}K>cRM!k%mLiUl67r8oi^oltXbzylCjJs= z?FUuRAflaTThJX<ITrl!>TMLwYZoW{VC2a)bZ-Cu|F=YDyFY6{erdX_65!#yT+e2% z%*Fb|XOPA8jzREp`tl2r<mWxVDaOuB4fpu?{dq{cwn;J}QOQUs31TXk702C7D5meB z?}$Y<_zg4K5_KD}36oe>2+iDE2wP!kg&2jjrA`oyd~Cjt)Di~tArS)~zEOra2MU$< zhJo1hY`)5hDs~!|NgZ;164O-;yS--%QQPzj6GaV&{a1OfYR5WG3s&3fTqgBnjaPYn zQv>()`<FapX?3q(RnBW4JXr|&&13a$)cs0T_qtIHfI4PN#p-*>d2JIuNp{MDgjPr| z`r&A!^RW4<gWM5OXj}B#LhXJF7~lb@6>0RPs3APasF_<^BB9xqtKgxuRYjCq$LCaW zI=tCd*$dHnSZqNqhepL9Hm43!tUre*0S1`0^D@s@y~LF8=NcMKMO?45q?}nF(k*o9 zA#c$fUzZp-Wd>dJcMf~~{$9U-I6T<d2cebyo!#E<L2vhP?{F|YfEHJbQL&YYDk~>U zvIJ1-ROMnWBujr?h=R$<*vxs8F}%vb%w+B7G0sF$WdfN_SmpXt!~qJp3h|q-Z>(+$ zmTWLJL{%KKGS|8s9Lve~G7y@icp4;A{UUv17ip5*?(N~S9bJrXYOM-ey<X4Nd{RDx zjuo%RI?b7k7Z6ZXsAC;cfeX}H%uniQA~;oa{sK^HfM{N?|4e@u+29LNMJ6|^jO(vk z&&$*!RTIK=4PK3v)a4QwPUFm6y3PY_x?1E+^AUJ}T;E=v-JPG_{4zN^9^V{~&yO$d z4_Yw2py|%R)mWL?*?^_z-QMBItZ(LR;YsxQ{1i7;RAFkp5u<>oaeI4yO0U{KNE+P# z=RbU*1?E~Ho;5b@K_4*@wJ2$XZNREH_bqZ^s`^C9nV3_St^z_&h0QKHTGK~foC<ya zA?F;L*AZfZN!}Hk^9uv}%jHL2e17D4%Cd|n*HC>ia2m44p8j;r&B9sv#_J+IP7(`w zt&jT$m2*s$A+PC^Vo9w8Mj1uYbpW!{-S`-Dk@P#yWO9Caesg~OX>xaddHVUT(&3v3 zZEIU%)-7eV8s>qllb`v?-bkIQIryo)>*!HcIjM8g2&_B$X<^<^D~H9Rg3Xth^2Sy* z20MbJL#ZLP6is=glEl2CwVEVO8p6CjwvbkBig>i05U3KPIk~L{&Ao}pC!i4>RO@Kc zK{r!u|H{orhXb@K4L0rV%xZgy;b2zVOJK7vb~<QQ)Y~fTrn0uF+FoHd1x*zGSdC5f zy{hdN{#bzAAFv658XT%n*-9_Iyvd$@h(+VYybe#}#k`}Vrv;a=?oe|!rn)NRt>&gD zR3_<YYSsjlh_^XpX?cAPV1<vO4&qG@Kh0h-^tn~CEWTaY&P>=;(Mh_+!cA7-8M!KW za1v;Cq{?EVW)md;1C=Wky5N%M6IkJ}_rXRI;6DV!ooALLLI1>KaSN7(HwvPVF@LCF zS}f3!a!!~@#v~h0PI;U%teQA}Drac~ZP3Y*0fk`Bi|&%o8K5%TTinIwV$f%_AH{y) z+)iP(S(He!kn^f!#mvkz1sjtr7fS(Yc7u;V*#{tt5>~CxDKG~37Tn&zDe{w=M;is# z#in!Qk2b(2W5MJmAW=A8u3}_tY1?p&*a$VIVQsegbn{7RLItzx!M!Q0Q@tmgdE|@j z1GP$Dp`ucHIUR!~9UMkNl>@)9tx!b+5F5y<{kFMU@+EZc;I@o9ibKd9S)3gGQ%yA# z>t2B%`pEM0;FgCiAuim7Ko+mUw2be0v9-*a+oqYrYa}vhV7Ntd3UmRPR&s<Usq=Ug zWeaATkmo96`8|Soi#X@XUieulV|=qP-!xaar>*-{046BI*jRN*)ckQ#PNC*IiYi*2 zBuj3iZ4m$Qk3DpLN9KirXj@4N4hiJxh{20bOOqM0&D2xQWt8(rb<dNa!U!f%<_szl zJ;(Z1^Bi;E$LMfNxYDaj!gB=a?*K;nSfEi6JbQ))&H8?0USMuJK&s}wg#N^{=dp_K zO{Ax7Lp%|$Ab;@}l{a80(4*oScGNlJH4J#eM8<0v^Z0j_b6wl7gnsnOHiOfoD&>Ts zFVoS+<}0%;Wg4i?2EZM49$vv~53M0KS*7Ir<MA((lg}4ds4g@4aQ^A+Qc-_R1Qnur zne&ADI}Glps@W)76h)RY%ksvUklM6oEKR2@hBqoCzCnS^ycZEBV0aRU1Jz;U-+8X8 z+b)2;TCWWj=dx%)Xv5+DV0UoX8yp_&?DY@(AQmKM+aQF1{5^9fok#Nq(fiCS;Kl5y zxlCrRLtzeL0nA)mlr&K{Z42s&8jxRgKS){_@b-(~xtgb|Y@uDdO0eypFazAmB^G(1 zs@bwF!fn;FtSD?^`t(&|P+g5hHy4E&9YK!>dhNPe;ZNUvacQ}VcqU1_+x<$7E@V*A zP|?-dg;NKE(m$S=4MIg`_B+AbA1_LIZ-Z5Pywl6ESp_pCH3!LeTnCw52P?H_=yn-J zfwe}NYn4-XcVin}H?R@1zG7I725BrOU{P;hgccP-#Xbks(fk>dL@d0mwyN-qGczTY zviK4fjU!MIu2e;NR!)ETU1YzfV(RA-1lEWy-EW4c61TZ*e}!iV3aPZMjuUluFPN77 z5v4+$h$PHf)}#P<u9^UjC39liBVB`P>ybY<$G)?W6)UCDR22FI8vSZWaKYnyNC#eU za|U`LvL;|0+%@@5XV2GsZUT!OWS_<;Noq-tCkrOzxwJJ<YFhDgyGttGs4?EZ^Tc)K zUzj@vor8Cm#Ta$lX#O_~2kDto13ngGn-xkRPgeO?Atx(1=9m{{b}G!$b;=*F`TSSD z8vpW<7f>GlpwfirSFBjv%CrGSFOL5<A;#sW^YIP9%ui|#Qy-?R?|Jg7qh02Ng7C1V zj$FW3W}AOf{FCkOE<6^|Mz4FgX`i(v%c6U}0+xsasWD4g9_eD`l^vjlo?{814oam; zXq&d;%79dzY5<B<Jx`W=S%<3cj-p;oJp!f^d~<MCvy38_DpD%7Qb|>~ii%WTno7t8 zNAJ9_!Qbo&jL-!ej-qk7r0VT;AiuBTf~E9U{o~7*5m{P){ZmK(mjCIu-?6G2R#9!A zd}SLU#@c?(ZRBJn!C%&KF`L`ycy`-x@VsM>SJ_sQXBVMKtUpw@g-WO4HbektK$ySZ z9)=!lsk{PU{Wf>s%u0mwscT!t=2d|iSC(K?v8z}<#w?9X&?Z567U;2dG^uIfI&GGp zG6S9srFyWap`#^x7RwTqkv#d+vfw%i^zBC*LQhb}_Nen1Joj@E)BT0>10s<_!7j~) zr_I3TgM?sTz^+q1Q#lWvuzu=x;U9jcS2-tO3RpEv`kZ|DSi!IS*-SR>x6yQs^<7i} zf;y`!+Ylyo7!`Yl^E{eDL;sv&z+mb~)f}5~U_Q|pA4Skx8*#HD)zyda2myKhDi@C; z<#Vnvf#&{3eI75K3HrrIbw?l!@1vj5-HM|ZVpc>9r0NM$`ra$^gvLt780*9Ig&Zme z7y)k*V)Wv!p<zIl^GBgd9q6eZy~WG$UKIKZ{OfDj!;d{m=gBj=>6^GhTDS{97AuXl zjmQqgx~2;*yiAtRt`7+|61sK@S~CF!Qi&p=*em2@wOA48|9fAlpz9tyiWANf@XJLq z)I3l{c)}B7Mbz9Fs%)7%UXrwCl*OnBxn%$wNLY~zFh-2j6(p1d{JA~NIlIR!Mv=43 z1ey^M%_!#(_1iWMQX%g>w$vQFw=#20=bV%XKwh6G*w97AOcVZzoG0ixfo8{`S!RB{ zdCj{@rWjSzoiaz^(dCCRRYCwSnuWkUm>BhF^CW-d#b1;N3!mZJ>!zLym8&?e74t6H zQcUYL#p9Ie`#Q`#;pXbqFy$3Pif(1&88hKi?c?LK=vX(t2s?YK8!y<LH9+pg3Oe~} zbyRj=7WG=>d!Dkq)NPf`I%QTZnT&b8l$o<aJ=U(0%4aIQZ<aHW4@;@Mg+k;^K+o6X zCLKL7Fx4XEjm=m8diCnnsYs%gDx)Q568I)Rzk2oR*wT_CVh`)lKQ?|Iz5eo#*I$2l z{l}Xx|9JEDhc}!5Q7aCj#9`KkIXXIOk}2(5di?$z=x50306>Wi5<H<s&L9j&grW<c zHSlp0NRvcHW6xV5i~hmhU~gx)zjHVk_6~RVK^5(A*dGoCyZbwP{oS4YgI&;XD5ZH- z=2H9)k21!X$C4E)twG&$>G%jNwc=?QK@}?NVs9t>0^dkRbxFuBA&)kwiItM7ldcC9 zo66i;tr8BAAf}XKl_ype0TJ(GmF*3kOgw*oa{A%pFMs*<)5Yc0e_oGo{(ASf|N8qh zPG<APKkw6}%pP)GJU%_Ieuv(4BvjGE#77tlfRir#D^W`(WWCJU?d|t^mQy?Bb0IZ~ zGj@UYfuPJ4tshEhC%Q+L3wZcC4`Ih&62<669Ae9vl12AP&1Q{_dM1mi5QENmeB_Tw zPR!!~OWGk)j`rkQHg{q%<|PAaExusANaayK(S-}!UFIm^F>rT7IftGrME=nIP5(eO zNvu)Kv7f<`bbVKL&>9!YWCX##dpj^EW1^swi^)e`OiuaZrAqjOlpUHdb#Qme^CsFf zppW*`7L?vuVTMpx?rz++@$_lwps7nno<1$djg5|38!R1n)<w;`8;Fz>mNaKZijtTJ zDYIKiYu@Lxi*q?^lq^BH{O)Fa226I)Gex`XJJ-yN(I1|HC&k`BI$o>`JeQ&<EZlR~ zeSC9$c6`wt-yC1xxQ(ZuPi`;HE^oSLm#35yq#O-Zfk-74zAUE(e8*WJsEPSTsRI2L zl5G91N!IUtf7{GgM4h+}@j%)E8vd|}X5!*x^2k`K$6zBeWrHp~1FhONmUVo@lB5Zc zaAR#xv@)*ki5u(3lx@e9jbrxrTHsmh#^C@r*1qVu4c);;>+Ya(QV%dQtwE~<^*kZ2 z4#;3iC!YbDlVMWq==0&=+LwB%`R{yhr@nD-=R;%9^Woq_W6$%wosPzy`=d_s7V+9q zC()X9-z{0Z0AC*xg|i-X*z?Cgc;eBT(KR<(hck;=Q8kVztOj3rDY@!K`nW($3B@Y6 zkv%szLhMWg3{aGIm<wyFkg@htWsoJT!$nvtQU075yb~d3D(WPj=PO;w*1hkrltN{6 z6!pTG*4hj7u;)I~JkEKcaiL5&@y4S6?w~mzD&+aow-r%yG~dfV=LK~Tb@X+S;w)x) z9AH#La`0HMHdh6h$9Lo77P5%V8krR+;Z{xvP~8=qbA2vvHK*#R3G6R;k&9T5Q}sk! zQF9~5jMK&xaTsm&$dhC+xP;)tiZ5Z66jT79=1@eM%{Z=(=rJE*QXn$_1d(~$$`RqT zq9M|n<(vaOt#Xr9nmAVv+Ac+^x6Iy{b$J)*EmXLJ3as_c6VTu%(iEifC@T!?Ur1!R ziYxi+wbop5E^fon0W>B-y7(UYCf#2Z>5v6y$qf@J{=S+z$d(DKY#n*o14W-)X-KRL zERhW=rPc=ze;i9}J=3Kqak*kz^W`*MMF4=c6RS37Ws6=<2Eosw!BWU9Ho?u3J!i2! zl2sI<x);ta*4J+o$>^O~ur^pe*PAt&JZO85kF4ljlnPzA5XOcyK>@bZJkX#HTtR3l zwZ(Iqi=1Uj#WSk1)xEn^_OoA#Dt!rcP>)4o%{j&*xwBjCh8qQ2;VnE@h<VJ<yHe1@ z6ug+^R*ohOOa6By!x$%&a`wG`W2T}Twd8dy%*&zy9j{o<<|V6DNg=^+o}20sij>Ks z4wA3fy)g579ev(I8L1|7!c{(RoCEe0){*WF(@Q4nK>L&xVBA@!CO<LJIPP{TrrRK9 zW5BJMr?-9=*)IlDvZ*SIh)L%|_v+Pgk_Zx5ae%ej_hF(R-wk5(^LA?>jB-4EAD<+r z{A~8YMN-h(WGhi%p1)A)-n<g(9;ykVXx`1UlrKA2uD@2Q==_FBmEqtwi-~G%U$-*Y zo;*ZF?kq^ssEK?pSXN>0n!gL48=MPf)ivx3bRhFRNP2_lgNTkhd%Jsk{lUThu(!WI zJRIzTZb}oG;rdwb6(2>Nqz-`dVj-BkTnTp1<$Q8gvUpK)wDpdJEL8MSS?gi!$i#}T z>!yWmorg|>)w~V88L1djoXP0bpZ^?nJIUKl68(Vx`SYKHm0QPVZL#1OlY|62)eMhp zz3WO_bjEXX*L)kK5Q$7&6EY_gW2*LMpxbKsih8RRBG<UbH5+g{9nIKMq${7Te`4D8 zt+x<|fjjKZ7^*u+ANC!$GWn6(GddcEiUn{+6X-WLSE%}4SOLk347$<<-rFi~*sKWV zw5!!!TwuzjUC}VZzK-E5v@UrbQf}X$-xy4Fe);iS7F*+($qG83Rv9TMEZa$(*-${u zihV6Vml2x&m^Z6|q=CMT1pAanqfu~&%o;ltg{ESdPMKbeKuG~KAO5rCpsp1exZ2!m z=5++E8JCG!7zkJ2oxoka5L3kEmr#ltP|w%}oeFi0LA4g=lVBAAdG(YRyu$TGsjy3H z&vpqHNr(6udZ;aYH(RX_<tcwONWYGtL7w*xxii1q+*}PNA3tAzzP&lWJR4se|7~*e z`SRrU`ugnhW`a<7>}kCsc2V_BU4jagsoaywqLG(HD%3J{WEu#U(Kg2IP0xynwnZXY ztzj?fJj^&+QDWPEBDA?U$+S%GyBIWd-CL%gm=+T)S*91Nm_QwbKlQN=3SGM`l~80O zc-co#8-*#|QW1Hw;5koJT-#~|wyIkj__YN-w{JBcOxh4|3#@M6Ivlj2ZS!ri^&DjD zIkcki=T;d0+=|1WTY-4In71Ht+*;)d$IGmRE=*fP=;~^#kJgsG(%Gu5L3_0W);?h_ zsD)*)W~xp}0H-5xdHX38V#0{T9TpI*dk%jUGC775zrMJu<s*qRgEeFGRkkb(Mo64Q z%+xHxny&4KZES^otG^)Z<*iVc6Q5dKu$<e=2Ob}YjoqSl^af`A31&AYpdxAB%^TNT z5yTJ4Z2+Ym@CF)fM0d-RnL9e#7>|#m_vkAHMdZy9i38MucNI)SxCUktp1GuQ^U`4> z%_-MKu2ywC-HdLcFP-PF2$G@0GepUR*N7n~6aqaBgyWpYTs-oCbKF!If?D;G-E%XJ zlvc<pnbUF1<0`D)tmK<5XnRF9)<rqzp{$Uv)>dpn!@mN!T(1`s+I4QeR1Tod+rTy{ zwE7DmaoB<j-AxKKJwhh(JU-10XhABlS-$g}$Hm2aN5eMo{l^HEHNkudtK?KehO}Bx ztSvH?ri5>+t**|5N;0XSe1;TFGiV|Zu&*CQOO;#iP#Mj8uZjhaY-N3J6Ats9mzJ;e zx`G-fgjkijb2H-r&k26dJXcS}f>xQC%I^bH0fU{bO0c6e10H~|-oSAx^8)6<EEl+i zh9nVsI1E&minP7)en_ek`=GOem#dpWtFs^#J`*?aybv>xr2uLgx?i`!;9%=tX)3sL z4NU-3^#_rHAkesd?<UTIw#&1v=y;ZkxY7R^8`LXxz2ZBE-oV=4f8~<@Uh=fI`D4zx zOqon-C^;9=CnoP}d*5+gMDLlb)oK58_4_JSc~bAC6>`op15=s@X;!M?OrAu%sI>sA zJc)i$PxYjME^>q9YsmU;D>^H4mDTn>Yv24=mCn^XXGy(0Ugn|@b=-f!@`sXZroU07 zUJ6+j&CRH0R;8R<1N`W9waFYyR{5&P#qx&w0`C^0;P6=MI#-<fdV^NqkVOujmM3bN zA+td|qSNQe=ZmXPXE*1cFDIvG<CE+2EA#KMRX>3WccC&7N1g8<Ub(=3mNQCMn+f12 zPnivX_`CL$!z5&`q5?x<CRGZ8Nq8D`zfFt+>n#KmGvsJsFY)WQZc#qDy0x$It7hf` zW=8r71UNPyH^Q9t7MeDUJV&P?Op6KI>gLOGi4^w1aBwi}?d=Trc83RhhkJtq5MFiW zTb&2gjKlnbP3&nc<`S6ZQ1f&V$W*D+16fQIGyuHIDpWli!bA%4I$=Bb*V;A#oO%t| zw3pAN56z`sa^FsT4l$mkH$a7cTqGcVKy`XvTqp?@aSzv{L9e%Gfl*>E00OzN-e8{| z3ih5225KtsG}N@<NB(31e3pwxb9kh$HuRp#Jgs#OJ0QHuoKZh{4cM{3Wr05zu6~P; zDm<AG1$OkCs`zjS^qeGl?asS04RRrD;oS+{LznoINX+_}&+EO+`oXLRL!VCw7_xpQ zxyprv64<zvJ$`$0V&<wU5x_hqrDpR+#)2YpqMJkh$^cDboO_+Fg3Zm6j7YW8pNyL@ zXNH?EpdX-Mmh!$t@-i0ROmu|ry!$J<LgF#ZRjymnHfKZ|@A|z>t9KV#P5@)TIzrei z#nvUrgf=!qBX}dF0jYwfvKIuBA)Wn`itmv<aCgn;nBTx$$FCgiXdp?MOP*qy!;%Pa z*YnIxF!(95H>@++p>xSh+eA}WIh;w&SHcD&Ro1(c<{AgC6WALCw*F(+nP@#F-Ycbx zI(gm;ir4z5$KrQ>M-$8}S4;BB8g-J*R~shAG*c7?c_@6j=>(!JWe*-hKSNkC3Cbaa zlY>n~M4d-sz6*mdKluijSmbe;GBbCPC0r!r=#}F^IMM*TZFTB8`CZOXf}k4kkD{x= zV22trsc03K`6Is??C!N~9v-yry*uc)Y_72)><_Kd!q6Ctt65dc*fAbZIjqv&{EVH^ zEt^XuICz`oXLO@LNigd!m#Qb+znS%DNm{JgJRHzw*Y#dugeT4_S?Jhl_<sK^(zGkl zlNPC-xctKlc*S#gHf7A=UEq03is6%DNqgqu0EDy_gdaWkJ2l}0DgcL;a_IUDRqh!C zE<pv~u23%ZioAek{^6sFDn?&ui8ius7L-=-rWQmV#8X~Aea_6Knx<SPk6Gev=sM5K zWv@a8V8EI)7~d^h$rH<Gu8TVnI!oCqvTSiX-TTx6(q^KMCU{u7`$M?}>do$G_yL#- z2Wz+|iCsXTe*rv4^DkVRp^jR|hxIx$#y)ELPXh@5<Y7HI+<bt~%%bghuD0i@Tc~c_ zHP=tWRrJ7~j%$(qHo(|z^H$4PcwOO#l9y(I2JiRWLg<etWd^|u{q2p`0?TB=_LxTr zTm)2^N01ga7lcs%WgYfsY|f9<RK>L}U9SXHwZ^~%O~&#<uryskej#O<4j!Y>lJ(V8 z$YcpMW*-54{QP<B&p+Ejs>8XYivEKxI7@*q{^08L)Zh$X@bP5)#CZn9@1QFh#<nzn zFvqKRuRq5eN@W%8VIUZ;qKxw#`Jw{^<0~02as?z*pn%&_R*<8je_JtOn+VYEU8^~K z`@ls4NhwY_GZTFU{F{?`!X7i|K+8F=BYv!g-zb$DOf(#fDUJRSI~=H?A?Q9nj#^3E z<Kw86w|zTq-#$K$3{-AxzfiJ3TizzCJ58CacN@EtIj(mm^L)z0KkFF!J(Kg4C0s8W z6zyWs0^CnbQ2SS&Cv}`(=@vr{A}Du)He%3~LKHFIafXo1vS%&&8pHkkJhSSyEfwLG z4rDa&&C<I5)2-BO2K3o}e{ZM1I~?>6278CYorC_)4rmPT9t?W>dwadZ{%~h+f2X%U z7=X}|d#T`ouS2#rG(!LiD*GNmx$Qj9!|fI2g^rG_h`xF6I8w-MMOtINyJnw3UA}+* z-<_Y|9)0;b8Fhd7(|>&b-J5^>_m3N!+gtVS+AFJQQ!{Qfi0WJxvPJX>*v~DBjUYE; zk>R8P4XZdUakU6Alxi@HQ7ET=H9I;4NGdLP(ZwmDTDdh>7iClGfNH6`W^PIY-C_~v zN~>A1C1NG3wcbRayG_0dD!NjbxtJgrcJ$J0NiN(b`e~plb3C9B<B`XFiL4chr(Ks9 zGUr{@)@3}u4RZjw920fuSSIIqqT+Wx7Rmckq>jgY>O=z#zPOblX1X}fh)xb%ykp2z zIO|OZB|dTqG-LY^6?qEO>W{p*KptoVsI);3gH*^oJJ1;xTwfB%s#k-lmP>w~jw2n^ zc*mfd!4n*$?c@4(N8Lt2WY<uPPtlmoIFJ&siAd9=LW-PNvoS**z46<BY;OGaub(%* z9C!cT>mE+N{;>Jmzkl8Y#QF=-p7jEvD*h}AXJi+3ZjL`v^PYG_MIB3%wr>H<4|V-= z^Xhk!7T6-=g~|!HEZOsWm+XSBcBmdFLX(pyIWame^@z9#(OeaQwy_6GBysGG^tRtX zAWS7;*VW2p0*C?HSA%ZX>UQ55yDZbz{j1wcr;+TA;~Y!cw)_3vaccWlx0g;|*&T;~ zQ~P$mzdKHC|LXRVx;=?7;JUaID%HXr2W(U8qzxI^q1<19lfdfQcjG#3(5Uy^!R}ip zZGnVOgG9_)a%3K3<W4`njf7N3odh01$hZ0ft*PFAFwlAp<T_~C4&D6iSggO-(a{F{ zNZ@f}w*07*Y*s*;nprZptK<T1qgBEEUjCdxeW}r13~n)%4r4OHjr2-y$64tNabLgn zxrvjj+lY7;udK14?Rc3?R{)u7%2Qw*X5OR9cK8vU=62B8ut{8cM9i)rl&bP&)O)Tm zup!N&i$uuVHehDH0rE7GIS=FaE1Zt*8dioF6qi}NU{Z5)-a0FD=#fR)At#25#c8Zy zn^`^3eX7=DS<WR3sIGPeN>CLFI!bdsH&3aF<_#z$Y>ga2hz8LbyN&>1WdjI^kZ!J) z>=~qwM`Y-i^Cc6~fe@aPZG%Rl4tb7;sA3Y&)dW91LFqI~P_Z<fvm_Y>eCFt*Fq5<w z@m2GjEhF0nVLN;?K)Js6R_j7#uE`hH6&h>y?-G|e=;4(r%HVN;@@REn=?DDNGcR(s z%pmPQW$}H00%5Ur+3<=HI5=TY7jW={g^Yqit*epOA)yOV%$dP6!XA}Ks<qW8DEXLc z1}@0fPy;Kq4!&CZX<zZRc0%R?7Ln61a)F_Dzff9t>2n4|e&i;SD0$*}%$Tmd1%z)F zehdLzy1x>7XDUs%W(hbWflXf2qELK0j@miN7a~bg4#=)nw#}K;Qzq`~oxXQl(S?$8 zl{R{KXY&P<EnH?qWG%|Ww<%+C%2-kF=lyHS67i^Xq3Q-Wx8ta_|M++vJpGlW@TN7& zr<eRG`a5UMqH+t6_<L`E)azM`^aOoZxl^z94Qx==j5-h2sD}Or3EKtJi!YsruScDS zR~5RntzpJOkKTAjGCeuiv-_r59=%kcTG||-a8)Ywlw<|N(|M+t-C3*046_j&XMoqi zJ9y7m0SD>qIb$+u;S)HyEi_g|X{x|4r-6oFSK;kvO5!wCwM>+bl<L7@zc)M>_I7sn z_J_m$-f*u!1l{5vU0c4bW$Fl8V=>jm&G|D>7PGg-^QhqbJt)RcWVt{rYYUbgr;$~; zFlMX?qe=0F+H9cN7N&SL!y(CwZ7BMMx>iEYR0~3lYS1-=w4+`R3X%q77mV@}QbB+2 z-!48?gqK_&a#>*_d;g#9X8)pz;fht%Fg%Pf<$W8g<yN|qiO9E>@Wy3KgTszxVducH z4T#uQj7u#u78k()C>rZ0o@2OhdO42JYzU@TLE<Ksl5Or)@H^go2?^ZcK!w?jK#Wk} zIL<kjSWs_I42*icc7AuS*9!^oHfue4^{S)abo85wJL)}OX%phOfl_Kt?0OimSGUoE zT}=-xS-j|?lC;kQutZJy7FZbRg~|}vI{_vy5sd@3_b-6_=9Ze%sjN@t%XysWfWn)V z(^SOf$5bn_*Qb}(qoX!3K8{F1sh(DFo-+-_Ffo@9xz@y_Va|ehh(DW4A_{ogDKiho zaW0z0u3Ya7H(3<RbYf?PNtvfu)Xq147Mnk9U{2wWZTjzb-R|bOD^S~Lhvo>NsN>va zz8dGmcZ1zs0P^)L#VL!^)`2k%h~(Uzr7PKD{-fX|EV(F)L_Nu~=eu(ae)=tkTleMT zbzlBL$mEhgHx<atKz$>4I6-=&tw>9mk7nW3raoAjLW<{{L{M^{`@r1B6)A$XB}IT0 zf7g-~!2z7^T&3M+0X0|{Zf7YI^2dlC@T0Prbq~<5whI*!^Qd<<T_ByRx%K*{Y*y#N zKrUN?YV-#!RGCNKdd-Rj42JcjA>>@mp<t5fcVRZ!8SQQz+W*x>%Aki*s)Q#3t6MW6 zlPFwv9CLw6&u(IF|HPZ`-hjZFESD1$Z4h!knS;PlMfogKT09f!iKOSd4cA>NKA7M; zqSyz&r;<Kdi20&5uM!MY6DzHss0~z8D>%@STL}iL$(7bm)CQ{Q6&z^EuLJ|t1WW5D zY6B%!t!=k{kds+A&>-OxE4#_VcLSlYSp`8_!~%F)<zAJmUaJ0(<J`WoEO}xEV%ld- zs^t?1iLcA498`+XIiEREZj9h=WdOjh`MjQfpmYUfH$%?4*8H>0FlkC)`OXweXutV< z`uXQkbe{91jNv7fN_NF?;QeIqa=Bb2F-U?L&gLfOqF9vEtynF$pO_Y@nCk7h>gIf4 zLfKrv1;cnciSjb#dK8V<9*w1`@8H&9#r@++G<Bw$NWA7bs*9NqLAd1l^Qf{YRlzYG z5_P@qv-vyYIl)DS6<tW)934fy?RmT%ui}(zQn#MRUHsb#;0OZ{!Mh6mb~RO1UCzjy z+$RHjbC+`fY@RV0=`D0+^8U0}k)5ydQbsdr&M*t~cI2{Mb<DfaF1dMH3a0N}>}xN9 zCWS8$qFl0Up>iG-!a(v$5j)yI1vGOtHZgTj$uXp2YOZtOdh`o<kbp4X5#FS0$Pd-( z<8{Sq?|URwbTU2<m})MYP$3yrdZ)oh0lmr9%p41LGfy>`*&^*yJe1r-)zqrpRv|{{ zdZqN5T!Zg?g;nGPi{WR_qX=^fZOra565s^S>)h!}{shr_6I@&H-mK4_-7_#zpO*Q& zL5n^vwfR{6Gk0r8-m7xXgnTq{cHOK=^5|TfQ`0Ss@79_)_~mxhth?f@TJ1OJ9!w}E zvAd!_9Bqt{=DaL*F<G!jK2ef`S%uZhu8v4mN;Bf=%P5FAf~HEd-qw9=r6c9lm4pFa zse3M?aHd3^A%Ny4tU)Qo(iZa|c!AIsk_|{iVA4fbEka>z$xY}3^(H);7uR;5Yg5#I zzq({g-kt^kNwA&W-Tq;JcQ7~@?(H4y_78e{d!VPiKiJ<r+}+>n@AMCbJA>WB-f%bo z#jr}()Q?f%#pC`-m&rr^Q13WP`LiE!!6jy6VQqj8vBaz!o;@4p3CxJsd9zzbQRk6M zR1nLtTxI6g=uxncNdT&%4^+TfC|y)^Pu!wv5E>;t^P*8-pR$}suOUIIWEb1zy8v8T zOp~Z@`uObp^KGjRnImOgon1ssM_0d|jK4nsUIcb2^JUi&9f{#gFdrrmgOxnauL&<1 zoKLe_uwHwGGnjkaU5Hhxqz(}MvEK2b@-?Ms+o0u4p{6-Av%lYvviM$;oR`6#UfDZL z4w%LIgGkegnQV}NZRH^B4cD;~hJCpv%QNcr;OU_5)2hxvaCNrm@i4nK(gdXx&s~<s z3-QQnE>QGm()5Q~h=P1#A2Czlt(|<Tpq>%%oOYfJ%!^8EJ$J3Zqo|JX-E6TwDWIWw zygxYbBFi=w^E~eQK1lp-Qze&5Mxk)roP+C(K|9sV04s`|QUkRS^B0Y{P6_-wiHISW zuDtk-jI7e!f0pW+FOg_zxe(!sVcFochX9Hg&mVcxnm7PO+SZZJPm<@z(XI%WBTM^k zy!L40wMTR6=00*DjdQd0gUEGz{@{{77eV_xJ(%84=1zgXr}<*>I|t=*%yl$$(*cZp zDAUyP9hPj4{>$UFN4qZ4%L0G<jXG5tm<^ZehEFMr0F)BnZvRQ>Lh@pJQ54z8JByII zgJaaNf_H%kYyRKwO1cCU%*r4gYn~`j?}nAbYjj|u%0&2en2#J`gY%n-SNp^^w8|X^ z0|7l-@`Ql=#LQ|F$)75SK2_#9D<+_oxFoYhE2n3Zf1L-g_ED$_R;7^(iNfZ{fDRqG z8Xir~^4exJ7yOyocLB4TCNSvIn_xTfkqgq`Yp=n#>qmwIKN1p2)rV5XPVu0^ZSZA{ zsPngVh_$~575J@=jy9x{lOksjnH_Z=H%WiVv!^@BHtKu=%q6(&_3dr9cgPZ`_JP~2 zF7X5_dP8O{!e-Xalbv^T#G>J#i!SppCssy=>qho=!Vwc|ng?tGEN@w+>4eJCRmOH& zUN6P<XRi(J!W2Gd@rq_Nsw|}`&#&KKL6<H;yRcYtdUt&N!S&Q%u{l3s@dAAJ^e4^? z(!;iH-;s?MDVRw=0v?8bU!g$^)S*Ae2PkEo5s>9-expc~_JZmAkqeyzFbuv(iATfR z2=2DQS%d3sRV;W;vShWPz$MDxL1?W6gRCjbbHT&b>?fux?b#$CO=uKsZEX9yH>=9b zm5Qd^tUl%i``MOBtYI#6EaSF{OR|UN2AKPW9f=lbAO&wnps;N*b*9o3@NBKg+u(5` zMz|qR7r(+z@3A=>&yzqNLv()XuDmW(cC+AjDo>MI8}~d0A7d=6*&9Anc{KN@5z-Bo zB1!pC+Ykh%^C-t>0=fT`Rmh)~Wx=1dm?OQUQelS+Wu8O810%DjSDwRQC}vq@Xr8O5 zHJ>6SbMsKwW#4@0OXLWj-#{^Qu-vm8JhXaz<dx(X_R~jMj1)N3D`=yu$7;DOC9T-L zXlO3OJzv4Ine%^A@8=52b0X$=#(z7zJpWtWb<4yKXR=%dF@&ZdqS{pqPqOvv!`eOJ z@+$aVTV3zyHR!wZu=(n`l+l~cW7O>~c$y&-5V{DrUR}X^LRY9zCPXfTEcw>fR<oG? zE9cqgJTbFmRu;Y<0Bb9enOKsbgEv$rNR1!<)NCrYF8R|X*cX|wz&H1r@B;!rlB~Gr zJR?8hmJa(`lW#EO8hxFy6fk0KK>}|~L)a`@!qnG!Xh-58P}W98r-^g8H{3tmKRD>^ z_YV8}{lVdGe{Zh`O5GJ979wC~EEifyoW-!%4hXd1s6$~ONM>t$To(BXJ_$W{541n3 zPZoR`z;0@4L7ZM4Lb&7wdq<DtStHsizgve`a$nN{Y?fmvx+C_km)&7VWgOx)A7F(v zzyLYb%Hl9BrA!yiia88ne`4!UDaAuDR0qbGl7Zjdz_KSc?7VA(tm8#Fn|XJgsZuFt z5~(N@oUBO{b<zKrk){eNrAN?-HR>e)`WM8_|Ngg`gS1F^^sj%xL-Fr_yGbwcrk7-; z9GGB9u8B09aGs^BI%}TEBv&HYO8E2op;Z+<@Bi)u)Ob=I5?USZ?e)4)d`FZ_ea*B+ zQyQb;#_SA5A7hc3P{B7=Sx|WX*DwILNRi&ZsR_d8xWlNL62^_&d5FuY=pIH`mY+{n zr*-HZ`{}ug1Mq;K&rkiQq>9Eo7c4~)vuG|JxzxFd;*-e9u2WG|iWJ{UDrcFvwNMrw zL$;<-PCpv_qrcY*azDXk0rs9%OfT~EROrmizdQ%{3FYcm{OK6|C#eXn{==a$FiyfD z?3dy*p65KdJ^#eyyfopKt#6w^&wTttu9hE5k)Xe0rNRxRZyEFRBph-O^pqD&q<84s z(=`h~u2S^F>7wC!#s3gi6(}2wqK<~*vMob%NnBJGC8{tJ6JFEsmH<Zc!8%s;Fkb?l zDIVUz*8ZLcrM{Y`o+4f5xtg0<jOCm)V5)|$HZ#Nd9?e=!dh`ZAC1jj)hWel8$WVk| zi*BEb3cQV(<`c~&hCR40dvs$^7QGHmb-?#T+nl8za(&T_A>SL_81ntmcIfi>1KHZ) zrJn)5G7#&a!X2BIRzO8UN+C%7Sv|U{+n(*K3iLlPjMMfJz%>aTf*wM4sLq+?vXgkl z78^&6&o53ZEPS7dMqKS!`@QGRGi7DlbVjim_)ABB^_Djhh%AYXS6M2GRbBU&wAY4E z@z#YU&LMn;p}n2@5JB-a0zPo*E3X1V)H9g`(_Pgfx}$TRlrmwmXbuIa?OtTCz<(h! zzWrT5(+6fh{L48`qrEiHGrV5<BV9P6b=!ssc=s*#hIJd)acgoB$h*O>vb1KPf`o|O zd}?Apbte)CL#~*}pM>V8%FKF685d(GV1v&b2SR(KOmM3-@WkU#{&^;(&<jXQt|?!i zJ%=`5_#%4Ve`}+5s^(F=OsGv5KWHbP1XufyCs=JJFJyqoCKxmTnL<gZUDeAimEv<c zljbH^P)tmIOMx$iEV3deVgv^`jWN8C76NbF^VMcma=bfTbs+^)l_M{NT-9XS9P{7S z_DBAo^Z5Pzg5~#jP)#49eGK_dRFL}82J{G0an=Y{grGZpX-))W*T)%?pAgh`5$9VW zbIq3wU9mk*Y!zBVldD%ALNh%_qWvgRY4XU@BM-`(W&5fxn3aKpM>x~$kq0(p^T>*b zKk-EJC-VsQ!RKpU<^5O2y!P8i1MEMDXP%6)a*vw<Nq5z(J7_cyRP@~Px#e6K^kHC! zaN-G6#J5@qtL0Rsm=N{J4;7J#gyUG-w-EGn$J9TJo%;F<F6`KR4zG#tbE(h?(E8lX z_K=tHECP5$sr7*;To>fF9z5$vCUCk*34|R)OfHx?I|I&%7~3ETKn_3~w3^R(5zyVF zNKcq#32Ud|pK!Uh9DiJD_o2J3c1l2-^jR3t+8EvZR&%Y-<UAF60h6z5FhMP|*ETUQ zq0IZl>dqeZU$rsm%>-vQHOD@PwBY%v$o1G3=k;ot3V9EPrBt^Fi|;<6kCE8fBTL8l z5k2zEMfjVnp`CCR0|Nb@KACU`(+D=(MNQ}^N4BV>72pE+yn^H8pF``CtyyDE&yM}d zS9Z`m`(_L#wcw4u4(x?}6Z<_M`+U~BC}vszpnq_9aJbVO?(Xa!?C$OC?;Z?$J&-Lw z>>chL?(Fya`}>2#!NFj-f7svc4MBhm1%WZnwS^N$W%3T!mdB6Yk6VGXxUbHeXe4?U zb&`gCwUS+XobSH>kIw(z*!<HE-L37>k3Su~`}xmbzW!tKuRs3%-*tMtnniyZf4;;e z4e8er0FFwI?d<ahmnLvJv%pP;{GR88l4M)}xiHT*#};Lf8Pcq+j6M^21^hRZ)`C)c zTSNQB_y(HV>2sL;0a7}U)d5aa4Z28n<r2Ct9}x1|S@h4g2;bEik8w<@2zAw4##}j` z*a#Td#wx|ihrj&`{@jJlA+}8rn7XuNlWM+>pMLtSv06deTYCb^r8FsyIr+0R6<Hx- zR6=r^W9G8dJa49A4wsB*a{M{Fyu>=ES>x<-2`}|kuBL37uC8*i<h25H9-CFAy*ORw zsWibDNW!$@<`aaJL1+E{j6+VJ!?JR{-yR{hD+M<Z_nj~KS{D12yVm0u#_n#$PCv}D zF#_9chq?{g)&_Qy-8GGofUxhj|0Hx#8>^ImQT$T3aJhF6Nq47ZY_AtEi%<a)@Z204 z?GZ(@LV#`Fe;r?Z@`YPp5N-nV`j~?;Z@znD#)v4;_*^T4e2HaBmxHyGjsWf3Vl^os z+EavOWW`YG&`vKD3%rWV+*2trn`x^*vFLYM$?PxqGh&O*_r1Y$Mq$wL_;Ra{jT>&Y z3d&E<D;L2)=JYWz;eW!CyS>!k-!_ZqXpI;)pc~YGMwH_=Y`=DFchGN))z!&BiA+Od zb^BO}V>ao6a}H+CY7O)O!p1ad)Jb4(fR<pp6E^91dK#G{!Ng0EsB5Nik*N7Z^xcsa zQ>UQLoWV4o6eI-xWRbV);t$x~?@N&uLRxbJaMVA07R8B5c*7nnP#D8h#8UW56)U2p z(nZusj^CeC<gHU>>)#YZd8zU+NdfuDq*{=+)*W-eP;RD%@&PM~+=_tpp6g8SFqIL& zeS<~~O3gVG)l|M}1+j^k%?ygw3-ts}7@!UgX?4QCF_Uecimt;QWnX|?4-HQh%{8eC zjzFyo=yz#PSFdEe4z2Q(FE_X2taNo~k)(VSXJwZrw8~(qd0rW;%8fUXE}Ypmq?&}B z2ZQrCN|b#&V-ykl?kJjkJW;b*AQm={J?Onq2|t3XMD-ap1D}3WCxcBD88bvo4(*yd zZ=wvdR(mdr4H&)7dbwPh$Zg4<sazgdW<$ntyb!a(`)McY8r)kyT3kk=S<yV}A6Yxh zJ0^<2aSGUl|Ld|q8<Ez*0?df#LT;bQ<cjA)1z9<RIZ1OMBktx$)$&sk<w{Pn3o`Z` zBu3Hot6H$00+?MhsIzE3%gUmn7_i~c^yViO-+vxs$2pW+;3>7~RlZ~~z)LF(SuA+; z5uaOswjk(B2?bZ-&q+(m#J>bt>&t*+)P#5&6$qV+6xqK}2;n&eW-q9f>!OVBx1uaQ za@Q8s=giOZnA=O{FEgdJaCxMA%wN=UCgw$);8fw&0s^PBKrsNz;;#Qd`_he@x>aVD z0g-alE`V%^b%Ug+n652x`W=`@W1?zGRicY7OCu7g3a2-eYi&^xFmaHh<KqF=DycQ~ z0WP<q^<4gwg~6!HcACBYSS!=s{NI+tZ|?zmA;>U`OcX`MlbSrKJOMVn{^4ljb+_Bm zuh+5ai4Ab}5EMr1YF#IuSRizi@GR%Rv3VPH^efkzVZLueZ$_^>`n65h#cG<f3B-x; zK)~19PuP~yEvsND<`Rt-i+mL@{mlxTmnp|QSSobUYy&W%o%x)~R?WegkaM0x^ZNMY zA~FyGG+6-Hk>Kq@>B8|?fvDiaTZkqrUE{8(Lxta$QV|-?{ST4+VXmHqiYmv$x`e}L zd?f$J*@zd@7*RWEffV$DpGGxEngz@!cXoI7clL+7y@P|joxPoY|KM<Uf46@KT6$() zH4oa4YiJ1OsKYLX5SV_jLeX|braS=VvRRrf*pwGwDGml&5_R0~xu5$`U+>Nm!R(ZR zkL#3aez1!Ve<>4K5g^&|Q`AZ9wRYLZFjKKc_`J$;aN)C#ro4FKTt+`_dqO_OijZEy zS@)-(8=B|gsE?!)Zs1mAl>vgjfp&3prx0LP2WR2KG%)*uq$-Ljg+l2*%VMCahw_kn zyHN6NM4ssI>%+u|Bl==?21NN?{M?!_DXsi>+n{+>T+4r8rnO|*TYxQQpov=`Aj6ru zN<GjE72iLxN8X*KOfOpG0U^x|kwVR5y)ai6mXW8(=5Smt2D3F?DmGHWg>hXKT!)Cf zjcLH2GbOn!v`vo$bE#NbF?}4YT&LUXa|CvcE`Unb#q$4wV<n_mvNT;`s|im+ce>B- z|8jP66P=%)UEZ93I6u2KH@MgD4f?yionFvs4Qh|seXRR~QKXW@Qjy<ZT-hG~=IbD& zC8v_?p#wM&0+Wk=@92*|zB~Hk-5)>w@$Tr4qj!J&bo9s3Pk;RPAOHRCkKg{`-QPvb zCyv22F$?eAHQBuftOgR}Lyvdl$G5Q%KJvm!0<NbhKs4%e9%GomYc_M#o)1|V9dz8c z3>qY8W@bQgW`VW2uY107o<!yWqivY+3oR8aiQdwq7plywOopJ04P1t*6NRN96)Iv; zrvOErbySCT(mka{TGJ-p?BE5$L)8GJqoe=R(f`N1`Yh_`2CqSY%^>28N{7CQ>O3Rj z-JACI{esQSE7KrZ;BP?%_WDn;y+grZ@JY}{pusg%iv(iDYBC2L(tOIaLY&~WGzq$y zHt#1;H>>^<HOGAP8N`%9$FG7YrtX9RSdvUKDr`4Y16l^X4nTFVrUlS4SYjl-CIw?t z4b*H8TI|m#-}msf@FnSH5@uNzY$|{i5eybESOlF3%})lM=Y_#U1y9*jZ$B|JDVo(` zMTm=5VV}Uk#Lt4)l0Ra$rkDQ$2nr@5Y1cwL!G;T1BD@@~bL~{KsJ~|~NAfjtf}$FO zh0cRp1)agTd97VH0t`<4;G|F!8f=k}$N2$F<Ju$x%zbTB2bkte#tWjlIG&>@Ad0Xa z5nz2&Y5T#OYtOoqP)u(_{1L?PHWR5kK)1Tr-ZCj9K1lV_s83bIbLEKO@H*-2s6uvt zSUlM4RkUFqA`)Rt#0*>}ib%&Q<9bu7f){HOOg@N%&J--vd)Y*Hwap$FA`A2hTC%LB zkuRi6*c8#9HV`KBjOF};%E!)34lUs;=_%}?sO6`q6N8n7TCzgKL3akyEizWR4{y(7 ztDwJae%3Y+{I|`|rK7tetAtO>`L;nA2}-ARr+mR4h03?55CdhoSOVEhZzbfU55Evy z?Fd<7c1EO*3>&l_R5CD7QPp`VAF{I0sd^ekAo6dK|Evs@2f${JDwsk>Gcyg>GhWt` zz_yH_Rm2)<1DgsryF@73X<i2k|6k0Cm}!vB_||w$N5e|SwVw(X9RpGvZRx$h&I^=H z^r;nvxiH)=B+If~Wx0UJR>cKQx~QV)awBLj?Zu<uv#qLt(Z&UT7O~pADf4?B9m^y- zVIo#*QWfo=J=?P42yNMu*7Sz^Y?bs-S4^}r1Hh2>=9j&<CZ7G;t}I|vA!c;J!j1@M z*KyQ;Wfci)25gij@dhtTpGL48JdICTJ)J@R?G1k`^7p^J{shGUrJ@;sveUA5%CQW9 z5y}a!As@Up0CyAupm?hC9}PC%+j&dM1|Lkc(|L$4RS|u#vrp&2X&t&QlB~2+xlW95 z6rH8mJ5Z^~xY1ACr64fEsU$DjG8_K0VN>FX)nc_?0Kakz^rI=CnX7rppNqj@f4D!~ z+uz;U84iYn-tOVf{=xq4;Xdg4r%K)1OiWW`P)LW+;G{4!XsM-8&5&=3$R=@JlG5D4 zD$ya71P)zyG5bN9@)Y@Z9sp^#0d2@PyqGoE#>@cJR{%zMnnaxrVHNGyHA<LunXef& z(=*IgZuCOQgst92y+QXcOm=JO0h>T+s4}i6R9Mw7U7_{n?5Wz-|F3`9j-$3dh-wx< znh9Pesw=tf=4u&2@<*P#%6l6{;_Rf2>@YsQjFQXoC9EUb!|--L_*)Q{IX^|hLrurQ zEOzkJ>4%c#99k9OsdFp`fb<=0z9@x^&4NkD4TAgvgjcRaZ7q56v7j6ey&V{6(3*gM zNR{wb>cjN~kr+Y~w9}PjOA%Lf`d|3$3C|16oCgHC54l=GBiqNokE|7-dpFgqoX0{} zO;y|c0X_*`tm`9a!RT$Hpm1k?-v}KUB4<Hs0>F*me%t)H%?#k@-~RpcCIq*DXA{M> znIgglH}tq5TP(M{l4RaZ1;tNoM2<0}51+B)8{ZY@dzRG64*_U=^W7Wz%o>=F>(M&D zf;u>^j#fbT?e)1sr9hErVCM?5wgiegWelAes`LsnQ*>Atv9&*EucTw9L_43t`)eLJ zk?R5ki_FTR%W0AFt-pP~eveeWL>JzF<5#}g*t8*}Ps%9?>4|_mZm^uad6W~Wb(&YD z`yV@wQ>ro746Cvw%)52Lda2XxLi`CSymE>8!~oPHU2lm-94(_iMV)o7XaqlNo|gzX zAxt&#Mk(o*Vea1HRNQLq%xqvZF%R4%g`kz^H=j>GkD?`CF4ZG-?Awovy&Z@q@F&v6 zcH~8sM->cOY7Q6MxzUG;Or=?Dub0;~0lP})d>CDqQn=PJ5N;>c5Ih%><`;!ErH3S& zExt+>`5h2KI-*GD(V|%a3MtWa6=CZEH3VFvZa)-_=odfb!cs@pOV&qUMxE!cFAR5{ zM_;{~ojEN*^<+ngsLE1A-GEnT&S2BF;gz}~6%1nSqX0ouDv`S9sRaY@8MGSMch>yD zlR5*zza1uO76p<C>TUn7O`u&BK<O?TjpML6!F)uL0KlJM&}*96j&K<X*)=~EIQ(Ff zhQ90ODYfP4D}fay*Scx$k4Qtp{uJCbVzs1srQ{myVk}#KWCa80?`Rns2h84=GhdQ| z0s?jiOmZGSw)M%sNCFr|TU%SqE1v_J)#SOkwYBxi0!)~lnh3L+61L92jtR7timB`4 z5i(+1=EF|Dz{fV8DK30Ka2HgxTh#9C*!!IQE>gi7c4uw!`VQ|AmxX3wcn^j2#@gRU z{CN}=`e-N8Pe(fuXho;+Rv+obt97(=6H}Z$7esE4Jmhoz0zyeWTNZx#HmK=GYQbKx zEQ4SQjhw)%E`8(?n`)JoR48^x=CWM2m11oq3{6JRg`IDW`NJ0|&3=6uLq#pTau+<N zT)s3Mv#j4A?j7tM4EOg3{k{HPZ*aIjJRI&H9vpx^{O;bt&TyxHaIn`q=pFR>I|qA* zdk2SyJAIIovp2)NJZ-(|(4DTiOu9;@D<`DTdBhdKOvHpHezYb^Q}fr7=W~8tN)zts zNF`PsEBf*^FD0qR+jW9u8EpSw=K&Nb@sA=ed9;C{26#K?Z#G{VE?*wzm0?+?=?kB3 z45x241KGUP#1^$K`znT{R}Z5G6JmDIq13n63kiNu7%L`Nf54u{NEaea;R=&Lf)3gI znVDAMV~#BnHVw24SDE|f^*cE|zB#rNhE|{zt1fxrJ#M_2$NEw-B3!C~Y%k1<?DEOb zQ{DOgwgL!4MSbj<tkUe?{P_(SiZ~(nwmNK<o9P9f!a8z8=QGgKHFFSsn#alF+tTh+ zrbQgMT{nug#Z-p~y-~|8;Zd-#(baq`d)|a&{=042AE}irIwjpG%)dXnOh)H1Xz+#Q zuow=$g9+RhAOISI8Wje&0O4$)-E4DeA}s`A)SB%9k$D1{BnAIRmJ2i2t}AO2vD_tE zFhQW=!WFnpbm}T(DmQ0torcXaY-Twt8h%q34M%?hJ6yC6H(*hfie78>CQ|r%@v$my zsv!l8+?ZZcNM+@{EQlmJjHPfFZ2AO3jH3us=j2`scHEDf4Uus_qyCovCh4j{$Os7N z8m4HQcgGSU+H{*h$c8Nxo;UDo&SzU@hNC`bOU*+%wgodba<>F)%v?2~Xh%b-%U>O@ zXN_p2s?=Po7&a7Bs;A}~rSKz2E~4}4JUCaQz+Lxk1RUr&6ZWb-lstzDAqFSl7?!fR zt_-8fIS+?X>nyL@8<W?#S2ww1X$nCVgb=0mj<ds;OsbaQwY5iVKUwF*MgY)Wq$cKN z8mgYNEr?Ruhuh(!^TGDKZ+Om$R|&v({V){W%&=Q%24*53nzgcAO8q0YFCdFO&P4&7 zO`gm-Ma%g792Z4CE|!IvjR<L0<fdquaPq6nGCHv);$HlzDD1T4cG1nW1xm3|i3p+` z@&f{j^-RR5V{UMvNCG~*c@2+~<Rg^>&Y>Le5*qvl92^-u_%d7^eO*)8%vgMHK-nhz zCQ7Ncfx?d`SGmIEIlOJff*I6g<|^npXaRlJ4+K!39~aNqrwe$^yI4Bq-lf3iMJScx zi*0^X%p_o<QPBNMYeANAGycfs+ytGL#bxKQCz1060VB~&%(I+287*qmT&hRDo*X~t z#T{q&NHuziJP)~C^u`GJ^Owc3)+!e3i16T3myuE3Jzq_5ZBJ})^Ae+-r+oR+xa7~p zOXFG2AAQ>ZW)|#(i)vqiJe_rsv-KBj$o6%0>P~^zk`(}>%>XW2lv~V&L??0B2yd$Y zJTLIx<Ad~L)hn=0EN4?D6D4_qRnpsLmGt@!9Nuu;fgp1aK+`oMk!iOW6nvSfoaG{2 zg$sjLv*L;620nqsVc>esrYbKymE6H1dJB;^XyT~jBx#0IHwrT2X5g<p7qeB}pZrRt zB3@DQhPa4CZV%3)s<d8HTT9r=E51R>t|9w2nRN676Uq}^P7{&qiI9^-<WMAyUZ|Y{ zi@eFMu2QqdRo-@HqIzsePq-93d0ks;08?gVq_C0ob%>_h3WxP7DzacDFSgFFE||Xm z78(!S#y`)hluj78l}FTRZ`K~G#OjZ^da5Gw!NJa;zu!CD8TNL1JH6ii&T!{oXXkLg zw@*s!4n59Ts;l6WRnTQ~JpIPF{>C_evk6q|N(R<kqg!d_BNH>eG;ZKJjl0f~nSfa& zO{t1f%ACh)F2N}jP_7jO!#t7+T}iMZ<FJOwNTrE`u%)zxhMyuKVVSDb2IHV&Y1z}x z-Y)9sxw31Wc_>D}>;I(GeTgE48-e0Y17(h)j;<n2IJ%HgMv~y2$0{E<D+|X+LFS>; z0}u1EqbN5E)$cr4YsR%34^_iG5Ugp3hpggi<8>9SdYo!m3TyD_6@1gLb+j9b^5Gfa zI95(8^;I*CmpQLBh1+=9901fM{c>t%yQVW)_48w!g+ET`Di_6KY3a`tv^oZKL=0$p zK60MrTtjGK!fK|Y+nW;u_BGtVQBd`b%xv%ClZI;B6orRDLSmKi<M$`0XCFTPat?j~ zpTQ8|790Tv!=2r|{azpcdvMskXAoYx2k>q51UgG9RlY0In*Qn!D#tCL@(sM^Rk2X= zqD%{sf_9Fp;&mQy-s&X2FQXbJCgyfxD<xt_AS*M6(`&$-(p4Urw^N5>m8Q5pt?}A= z3mKa?U*Ehu{_i)I7#FmPBRp4eiOtJ(DK^hR28wC}o>$R*`}aRB1l1fIOY<#hd@oss zJ!sHr8)1FYvyh=xg<9@XrWftWB>x({pvDG~vUhU_;(qi;&DFh>AR=cj1y9IL#0KlY zQGxtaAiNOd)uyY8g(+Y|KMQX3o_oE`Ams|gn7SKze-C}5$n=BIzi0gUYA1pBt<J;O zz_q-Am(dK`0cJw&6#t-!^s^`?=H=e#B<}oz>LoP!S}CwV6wIXykKWK7y5}ob_e9*- zsC-uHlL?<eeG*#Q@Rz!3{dAi1M?r0xl%Gntb8)BaIHJo=5^Wfe&`CBeSW+`v)`#Di z^BES6dq8cShdtJom`KjypvtReGng;XB)!^V4WexPk>{%dTGAMlvsDJq+7nCf-5diN zjdpqoEDK%+nVr>FaGH1tMtYcG-S4d~_jDC~9!Fo6LW6Zz6{2CUCp;3dl5v>>cwMp# z(+K95m_IN_)<mKSuM{9d!t6Xo_Uqb)?|Ix#swJShoibf?$+*lBYg=oaVHvY^2Xs%T z9V!5mKy1IvTmZR3&MV~HCUqCZ)oF){fB;0h&;{hxvg;RW2@+^R7h6JVo)=*mSQlze z5WFb0RWqv?pI1tnW^0S2SyS^Y=iKXzQBj&X5J{LH69&}W3%|Qe5$Olb(>^VLpSGHH zzSEgMySz^L@S-$$hW+LCiUBsJ^9>wz+_Q%tnhD@vdT?yQftIiE=Ma(%8WiB`_4w7x zUxCCGlFpY?6D^@4mRGD<)3O{&z=v@nMBV1R2-KW`!~);gL<)=)X+({_4&&k5G_q|R z4&*Utl`ULV6iVo}?bUpbW0gvhSGKt_LVO<P1tL|I3k5I77J3cUVHV7kxWhGIi>)!| z_kP-bT5uVoQx}RznrVk3bxL-JO)9_+GLta?=Ml6y%c$GYYrVeg4jt{DBSbfpJ-z3v zBg}Su1I<QgiwEN53cCb^ZG(%dNB97mz|9NgcEGCf+8qe7o;{Q-u-Jy>tx%zAA|3}; zB`V4GcLx35!S2p}e|OLu^m@bn{{GHjuye3G+yzDR{eEwEXRtrq-QVl=d%ga_?!kV) zKiC=U?eBujStXvM1ZAa|OksP_IlLX5hZJc$_m)o3JPTo4hD7D`L{ncDI7-)%p?O^Y z%F->#i<7yEj-qN~D%>8k$v3BBV_WWn9gMsdLeuT9*sNI{et3$yC<>nQIe*S7ZZl>j zMQt7v7qxV;#%vnMZ#RUrZ780oq6^;DB#G_G9}A`zKGFAmh+s*Rr3zukVt$4w)V#j- zpC-f?U`6%+d~1jQRRysP3~5nli&UAdXnHDcK8p_qgEeei-*j8YnOdOPkSMr)O7NC} zlE>-U^(F=MPM8iNV>?yyG|^Zkv)WcI%-pj|$M$2j54NI2bPOi$8q-$seYEjzZ+CaN zyLn>n#W8ZtgM8o>Ub0{Ls$PV}uGoB4H;5ju-Qk|Ey7)XM+$P=K1N>40szU}fNLckQ zGBG>RGwOod(2uWUmGh9=is$04x+pYHXC9L%idi9EAKzS`9ba_ME>CN)4&OTt8E?d3 z_|2-EFFf&2FIaBk9SFfv&SodjSoCGdp5Kc?e|7(ezB`H}a#x|6y%6&SRENxUAm65R zW$Q^kJ>>O)L4^m`GP-<NEy2e|$RaY}1<&M@xeH+A<6WYN?`dU@*1{i4CZcHGHu1S$ z#>cP?9gC;5dVlF8U%l#7wZ2+eFT8{sIn(L4uzC_>q!Su|HD#>~My%;W>vBpIlIl5N z(WjJg&Sz+%WiJNq5Gu?O@sMe{sT5!sv|yrmU@(%#H5~gja#X|kN66@j{mvg%v@+9w zk+Wr{!YaD?IAlZcSG({){EpY_^ltLu^Yz6f=d+0cJ8O5)MV?J`nPKyo#cdezcDuS@ zb58QKJkOnO54G0WFse|?H0o$yPn`3j(OU%iA}?1AJFBnXf^(y<RqtO5$UyHbJ<hpg z?LdaaoDs>`$_=<VOO##=Bo4Ip(ymx6^O(@Ae~VJy|BUj^T<S9C<0qaK4UuPGKf*GO zBO1F59_1CFxq*22X37P~ichBZS_X`<<!oC(WaPUe1Hut|j6CfV10s;u0GsDPKMHeT zFDXp5?4dJ{SU|7Y;3t?=%)3TEI-HxGOA$oXG0Rviij}*ju4O>Gi>^&9!O30QS0Y0} z$_tfLO5XM+T2*Sw%e+{1S}IvA8cIK)F06SmnXV=<XjO!eS_xnkwGM%+Y*v8}5Gi## z8YbZ>=dvj_M8U2#^jRMcpDdU>6}b($&9$p_o?%2y;}i|F?NRv>e2Z*M{h^fc=UE_H zY(awCV+_YN`*_{~+Izf)+O<@2wN#~s+irgL)&2a66$`WUc#wqYycd3L&f`aGOI2ZF z`eShHfHixz?NO;{(Mm>H%Hi(rV81`y+dnwy^>%x`!@=QjcXw~l9}f2qK&lw;DG3qV zABaXb6(b@_c@f{A<@3Og$hQoLG~|l<J%o&YD=YqqK6{B(qtLT>$!w<-014`>vo4I- z9EocfE2xwM>-nWR#hLg7Qvl9;^IV=iLt4I$MXYZPd>re{PTs~*PbBsw+w<^suCHI; z*@Q@iZ`lH9YN9|bPQ$g{z(hCzTSO^mx&UuEZ$NG7P5PlUD53r)n1~JVOO~rgk+k9H zu8$xk;*FeVyb#!=3=AdZL@{b9i7TF`5ejPsjh2)mO+a-Y1E>X0ld6Uf(A)z-W$)7K zN|(i~dl0xHkDQ}tRm}(MmhiBrETcUtroK*wcPxIV0uqr;Z6HYKg%bJI8dgxmW44M_ ztJ3+KhIKK)=@=GUwN=_&ae<VzrUGM(_vbfMGw?*FXBHRf%0zUqmzh3*krloT!$I5I z@RCN)#9WU%?0u^$##Q}zATrev)AyAAd2`QKZ{7wi^f)hIH3Qy-pvHl*ZF}7YJS?bm zT+0c7VkUVW6LphpghCl3Mna8bu|W5BnyROn(2Ewyr@+(2d!6X7-p}gE>%velW%VFB zNln<+7g8YpKk|FfXJ3fYJDOhX{vO;YTtJ?fj)+3;!KZ`%n0TSYtI9c&GPl5-(q>VY z!j?14&#lq;d^6rUqMzTxas6y1DES)IIECoi^U@wv)q1M2YFU6OQ26#~Eg-PHAFpeb zBU*04+L2S)#C}beoH9=sw&XxglO_Kw%|v(7=HcpdLl6#Nhzlo>lc1HW5P>~I(NZHa z?~C6W-t`|N+(qeaY%>}~NCk~bn1?|36qogk=M-wfNsRD8tVGJKF}<CANxU}aD~$3- zk(&OK+(RH&*o6b~Bv7A&cKdCjO){vrf{Mu+_Z9CY$az&&#kRZi=!vs?3L7Zv41H#) zi9-WIJNUJ7&wc{{?d({ir)?FL5~6S~;1NdSsME|@VxEJSlx!`8SnuIt5kn@Dl!K1! z6&W|$v&~D1f+k**)lP4vd@>W9t#PL-|BK+1+9-3DB$njBkPInn5btSTK<6_Mc)3i_ zmy1vp?QDLLh2$>0r#anS7jFxB<82|U+<NRlLE|w@Wj~Vs(<Ohp5%E3GCzH;X{#Qpr zo2v;LOa)xE2AEiu2GXUg34e~$QiF>>q6vC#Haf|snFiiQx=7HpUlWdS5-y0tF((UR z7<#Le)QN3rC819V*7iwy<E2W&?>twjnvWts8A62;$*m?bc?INO@UbXUj$BHYvqZqZ z)v%d#KCZSd@hJ4Q3D%#nz01nAnrrU(Yp+p_%cU~Ss$ioOf)<UYF^7TR4|ACQ{{G%@ zckf_$xYO$mc6&Q}JA3>42mRjO-ofDxNP!+49Q5}OcKV0=y<UH?I~Wdz!-K=#?r^xX zvp)bOj(k;qC=>(#q2Zt+17uKL^e#GdD|!7+{7AEC2b!8{R#uvlU2o~Xs1}ZiEpuo6 zBrIgqxjMf2r2`J6R(8twC)oar*WK>xTC8sMFph$#-R64FPAX|_xSv;N7gd=T(!nF7 z5d?Ybb_ovI8dO0t0|Ir3{wp0-K?mIe6ot&w=Imr60DQjZ!nNtt_-?PiyoR>RiUcO^ zLf0;s9lR33##GFgDj7K@i_no?!t#jmyR?dzo_Ge2KP1dQpPwRP#9dIN$VR?F^lSo> zYT(SuVqpU66||{Ru@86g>xmWP0D2tycIq-SuX$;3x3zmTFEIp1copAF-jLt|H&0%{ zBVD2)-6JO-Ll<EEXUR3XvDWkZ<8rFwTuixDv1~Yk=!PgoXjz5WBvhBUr-B_lIYJi7 zhS&s&h*IaCm?g`ijn2)cWKvn{4iL$AkWfkbN!3JtaD#m+ADf6=svk~*RSTCvI(5n` zZ#^!5_k2ZP)S3CmiTofLMqk4LUHk&_+z3c0<p<BQlJOcY*PHGe6I7e)t4N9hc)LrU zu0T-ORci1o8fq1mY8D(N1w3uLH3=ReDcJS3g_@ApA5Nk{Z)e}K61z_-PjHv1nwPo) zK_E%d=@@((7;y^ZhT$K8$)K9G3Jf{d?&6I(*Y4sCI@j$&SZJB-2F4{!FR1atyp18* z%w_8#g>F04%<Ns{D5BAYJKHT(SIDC4<qNBnwqH&@-N3>dvf50n=2EMWOLdQT2XY&o z<b}$}8!>wW`2oxA3)_+WWTK<aV*@m42rWVjkpQhw=OaGWLI0ce@lZ|>k?^JOOGE56 zie9k3bf=3iqHV(k%t|K>cq9nGt$+Q@CwS_zBb67f4^R<~0%dIH4``L`6g|N=pHDyk zJc^#<1vqjPPb%tnAwghajlOmTXNYk^QlR<S&?A-3ECDFtLH-}sPjlA{P5_OTuzF@i zP@KjhSWj9Vh@vK~iFp<=mqDQKy9eKkLccH5`}Zu*1<y+vGt_Md1Yv?Dy#?n5rNZdw zDC*Tw(vlY}VFe==)=Mm|3Qw!lkc;G!kz|Fo76!QD1-ca@Tki@zJ%p^-RgNs60ZTnn z7Pf$=9pqq8YNPqvAPTXDr=(`-++f^sszsHyj-A$yqbDYcRLJ{U*O8B1m)&>s9#&}J zDPJ12<ShkEz(a8AsK`t1^m{&9@MWOlM;$Y1H@vDSLrOr$&?pGcOBW<Oj~p!srQyxv zXD&7LJJ_4#j)S+y)6TG6w@ONL$+*}`anp-GJF-5u^N4w=4O^Q|#WZL6s@>J0n$Ze7 zcdX~}#6?lqz2nhpgxCV^h9f_lskEho$Ex&tn}kJCWO}r{9cb#>%A@;-kdRi4ayS!$ zS>~Icn1;e{2HjdMrU^0G5RgqX0j&3>NRu^WFQ<R_7bT=+t<)UhJ@`t5jzO2AqSJwW zrv;g9QI!?1Po?r2a<<l$h<xs~0PRfrof|*UYTn%(MPwIALXGX`Tp_Vt1CuZK=@?qH z5Z&A!2(^_Y3fb}dbKuD0OmF^56sQ@(eAvbVL%|zYW7*l+=^Y#ndWQ$Qz24qnufNyd zJKWhF?CtFjhI>O$4GB@5!8J`(*FW%G5NsMJd^TT*f8M7{sj`P$7v<yA^XhlZIP%2J z@2-m{;h6yyoyX0N_8y4z8*QD;FL1S18fN=13E(Z4N}`;ItCHaJ=z3g1b^k#sn@Nsl z$}HDtszf>**u-Ssi_!M>)6>(|({M}W^X<P~eA@0G9v*C)mjI~GfHb*8h4P=aJNli2 zlDLo;Y!3T$APf{T@JEEJ*wFy^E!G5f)Ecm9_c?uGACETYya@4>|NS>r?+KAr-6!$w zt9Ra+sS;q90gNIps^0}N(Vg!fefjQ&G^`uSkZ&Q&={h3HHT%qJ`?&fI3Ex*pcf_}& z7&aD}S%_O3wzO2{k>Sg!LC7``CHo@V6>4ifOeTStRH34C44{8Hih8t<Ua<b!fZ6Y} z+aJ{SvJofZSKx4~+`sA-smdx0KDqv6<~+<^nDd5MzPb<fd11put=r0ja#x^g>|>Af zH-hDrO5`K%Q}L;A%vhTaJU`wYJC7?Of7N{@_NHuqdeHB64-=Mj`~9TfJ?Kq$y1ic9 z+nFUh!(Mzq`}F?@`wadE`|P~5Psfuf0>JH|?kMWqv>{>=C2*DN3Yev(fW+n<nsxQU zTuoEHbZ;Z{FVW28psBlrW){Vy1Sk~?Id4bBKcV<y7p9<h?fX=5F;AXYo@ionR@&g* zOo|C6TGVP`yJe_|R`U=mgo4z-rs#qzTCpO^;-k*@&ycgIanh)Nz(jUJN1cSkCWr~s zrWb-r%K-5f2BHNx&#ps`s7JLq`yj(B>8osBx(6kD+n8{jr>fRbP|-7C`Y7sr|Gd8X zg-FqybL(;NgYGz>GUNKFUcsMueb6B8)&JYkTU%SvlC6NRPKb26iqujR2*b=8=5>rQ zCBC)}=BAc~m=)26y-dS*N1LOl<Md?gQ}q&sj*=*COuFZDlwHUQ)MQMfoX1=|@?<MI zdxlnrt*tHSnzFD(n207P`?#QU%0=rz#}PVf1|_!5M)J~1bO!jd-Z^C8TEkCL^CClk zMD(CU!9W4o0935dya+3sKwG7+vDS?6AX-+IIg=t_5)qvSj{(XOh<7IRfr;6F0_usB z;f2@#X2I`Np4Mgems$6n<j+MGAWZjKj<4>n&u`9x_cBdACc>lyvz`e6F;#s3ot+h* zd2Hf{3g)5Pm9EIu!?~KGa6L+f0zSityBg)$C&w1Qkab`w%nMbv>%$L*U&+p(^6SoJ ze5oYyen5YrBD@u&gad|Eprm0SV$<EuipG;iI2gz{K?Db?TT~G$stHk2Vz^f8x|s@X z;`d)5{~w&Zk4LOYJ@w6uA~4-0zkoK{*n47wpz5Gm_<14X=%&JgdjSUpCUp9*EEg;h z@e5k-)`#v~x>gur)nCl?{wrVIX3(L$rn=>hWDfp`t<($B@&t512+QsSb0?I!zO@sO z#$MRTELnJ@7qAymOB&$o1YP$=wK!og81!~__If*qgWcY+KkOa!4tDkjd&A*yuYb_r z164*8y8=?V>x8yuf(}9@+%JOWgahF}AC$b@b3;3!``)-nguD`&6(1+%TLd&b3B>XE z!7i>)tZ>v8SPTD#!8|T;iriv4$y?HXg55fg0E|FO#xC8q?liNHpy$t6UQhJXcio8a z0z3~teb?=N6N=o3CI9A523&k|Cxb?8K`jbBid<JFU3~jnK=^{{2R3!*x-%*Y8WsO; zMhY;U?{BLj_;aP^DeuOMTrGLm<%H_ZL<ye?Cby8j*rjGD+b=YRg>dF3)(R%E0BXs# z1_}DISQvZ|Fwz`(%7d*J_;r3KOP>6Aash}rfJs2Ht2G9pp0`<^zqJ#}Ie;WM5n46Y zCcG*Z2CfxGUs!alTmoC-Y$$guav|@L&h$c&lQh45nbW{}Gq2gw>*ejIPYo}Eml0lz z#bB5Opunr<d62XMxNpf81jX0N*ZFJ$m1=JIvw7%5k*>_`oMZou!GnoNoNT_ivfC_4 zc|IJh1<RbpiwNA;0$aTuGueSvLahjUOtoMW{ME~_ekUib+}!C_>Tg$TYrRk*7rCKc z3Fqr8r!;liXVfj<r=L%5FU~G+y5pPU>l^d)eA|;*-(0~4p;w_u;1h!LFd6CR3T9JH zSPvORo!E*3y;!WP*U&I3cZ@(Rx7BtM!$C_MQf;TcF223fKqlYbN$l->d#Bm|<eX-$ zN2)Om17(L`CksWfj<^PkE`>z6I_Emt=;+Pp9kKU<Z2+V$mMl9_2_F-Jg!MPD@`PwL zkn{l(D;iz>3UdAcH6N|_um&AWaQ+7hb`g<){`b#T*B_DP8hQVJmdk7cKYSv<pL!Ji z({C}C;;2*A$;kQKUdoYM_44?+vXr&RF~X$C;+SUzRB@qb+JT66LvOxyNH6Ln2<F24 z0u(HtM4Fl}qk2QLLn8XpdH!1IX6~$(z>%Euu<8%=n9w6`zGU~@>^BP2R3L6`5kKmY z<z}9O$Alt5j9s^&U7zRCw4DE36SIJK5m8jAXkm`KuB-`T5K7MD_wx&u-`}bH-pn`C zl*RY_|FZYr@o{5mx){7WX?J+j_c>={)Ll!mn^i&%>|tvuic)iiqPQg0J+qQVa|$?B zL<<F!a8L~0>TCNtd!5$4ch@=R?CYF!&N-)b&N;{5dEb+O3Z%NncmHwEZ^SC#0EKYE z8=m)hO3C*kC@K^W5^C5Z*?=rDn%8(A3Kjxr&sX%C()n!SVMVe-^xpQbK3SFr6yh%e zs(;IDA(EBl?38jlnbc#+8>!5B$Q<gD0O!&D3j=T`;3E*~07Lzl)<-ZSOCT`j;Vc54 z##{!j%|Cx=5R$;}HkI{&@X-M@y&yD)+FYGlD2Ol{tuW%;X@rM%fQ3u4KMUc9bNL^Y zA6uDiQr;6cuu;IcnoMVnx>X>>lh2#??rBqlwwUQ|^6gvN6GNmeR20BqU0i+icooNi z<2bhKdbaC_Zr}uA;M>0Ig`N|Jv7Okl3(R>z5IBw#I4=JZ#cpJ~juSgU?D@7I_>K)! z1kwZAhN&8Xfyj)-Cz$W{*oWJy8fgq+QzM!${YZEo+|Ll1Q^?cTP+Tm{8*v}pL%JZv zKKH&3bX1t{+%Po+HgWNnwt_(3lwJKX<!x27X1TkiTG6^*-U`Y0R02!ppdiA4*(^X2 zs%l@cjLFopR6Bu6cW}%05eWj|98(Go)!OH!#usLPLjT5A&tBwZBOp4;g~G`Mj@(fG z)Mh7O`YEf*0gieM)MModq{e%AJEY;Cgzq(^qVP5^S1>DJ!9X9!7=j_u+inpP%1R@s zM$&m6HweE}Hb}QxoW~&rxFJZhLncdsk&E&@c=hm-4I+E(taK5SXzR8yuk((ODu>3$ zfiE;eT{H!4;Il+N&8Z|L6!m_RmG4Ns@DD8q7Dr+b866y7_#zH)PMF|j7fZVaaponP zjYfG2Kcc1o2~&v*erYQJlOn#g(L38*%(f@dR+x-vSVy0ao73=w6x<P>HN9$TB5HLA zW`abn1Ehx~|K4KXL3CK@Jc!_lN;}Qe^99(u==-Xbs>f_0vP6VuNxn#>nlNKzuC!)5 zg)M=5l$9@rUoT&c!KF{?^t`Xgv-b#V$hfSE9AAjcxptWLfL%|_bfdgxg7-noZM(ju zX;M0Qs+K7C&8@unHs=alXL&183n}`RX7xL~f3mx`FWLM$yHzmgq}7TW`9kt%V{>7B z+<Grt@3=P#MAi0jx=LndqHCT-LRY9keyUTY))C^KTS_2LhN@i<*f24ZCMXY_GpyvB z38oC|J3Bhnpf|(0glw-|849JPCrjbxHP{vq++Rp59uU<Fb9|V=LlCu+B?mtWNCK{G zn|tf_mF>(`pDk2Vo#&*ufQ*1ivbb%{w<198-)?ntts1h~%1G3MPhK7#?Z3pe4)9}I zOIWYSMMW~D)h+N)Tb8J&F>t2%aD_NU-jJbil+$W@y_8D=)VmN{HzCu7DKx@Z&YGnh zeUkir0aITGq=}ifyd2-f+?(L2Kz<3}h!<8c6pq1KD@Z)~zB#uDk&|7&=$NleCj$R^ zI%88>W+#*z5oXNjr@CTfQu13Q0cYiu@5mUQ;E~8ORb_u#Q=nPnPj=pAO9|sGUp_MU z`o!oSPj_&TjO*$W9IVDfAPbZycWhJz+UjH<G~;*5yA`tZ!MbbswOL(F7nhkSc{EvS zrt8S8`8qP8A^Z6BY%aYvB+O(q7j<KnWg#!e%d#qU)gu5RnI<luJDZ#!U*@Bi0MunK z8Euf$NzTK|w4B$zd+%ye$O!As9cN(QQB(iU9a!t`-1~5iUY(N}gXM7*Oj0j$Q<55f zBUG<wk5Q>#(t5aU^|%!w(Guv4qUoilco@!|Ix{t#mkE=(s7$tHbp*;}^6qJ_vv)I< zzB7x;9+T-Od2=o^3cTTjOrf0{ML`fmLCBr8IB~qdv4g~p5+|}<H?jj8_~Nt|ClQu7 z^Kc6W^ZI-mevOV0EidxA!WwIphEV{Sqo;>pd6l%90W3h(I`QW$Y<n<}Qg&g?tC()m z`6rd1>GH^7<!w5ytOrM@QX;NiyH(cc7T(Ydw482iCcKlbWE-sWb94+!Qkai?VOXiY zq+^GItK3|Qu!w4SZ5auJ32Dyn4)gK0O!cS~4HCo)Q(v6TNEx*1Ph{Cii#twaE2ifv z1uq%o7D;}gh5$l79-w!1JLjpBZ8;(nx_5iW=;_IUNwnU3y{rOlA!tro3Z0TdiJIwk zneJL_?{hL`e4<ipMUNi@bK*V?88d+j#;IkamsuCg>b-xl$^YRK!_VK=ZL<uIOs8n( z>&i}=;z7kEqxo5N)X2{-pT2~t0+uhSUYS8~E~_pv*#VQY-13TE%T6vQY5uri91B^r z*ATOK-O>;fWZp_h>`^7%AB6A8g0yVDAPtf&aT^5)^(&$>&Zx`NpeG696VxqT9A8H# zT)tfNk&uOh=~RmV6)yeJ1zwjL;fC9_*wH(uSM3Z|8w;!%E7cL3F!!1fL5Kjgnc)j= z$5}nLFB_rNgJhaYYK$Ma&AXkMXIX-`1MHsZad3Ogt22v1$XF*JdKcg(U<7HE&w<Go z?mOR{e!*u9;b+4yF;X!i3Lx3s1iG^a2G_8DDdm7KRY#IFH-aiyJruldxVA^t!&#ZC z2f{@4Isg|jg|m|GTyvzaq^i5i4~I{<ly&TXz@zhl_2YgYxBOVmr$Ty{TlPQ`hor-* zhGwWMt&VH@2{)p7Pm(U1Cd)EulRG6^1{#GM8F^6vCo=zK*aH?h+D$c`kep9{i=Bpf z=VCEs9Yz;S$zVN|6Xfc&um%x9dyRs+PE=avw5g_gZU+rzV2!K!dy_#PxOBdGI2$qG z5`b?50H<>gQ$3fKPc<*sEbl`&43C#V1X)u}HTZ8>!?@i$ekw#VQgG|?ax9Q%^{jj? zf><g~1LK14;9W`i;KDZHZo(@o=Rere_fq$9igb8Ks0%wsn%1TEmdR91hv`5dQK_X# zUR-ya`{6a8eVZz+3K)`XTMouHOS%Dy5*OE0Qv-N5D|Nj*iWS#OOQ#e@59iA^f!zJ; zBcuyoj-KPTPJwW?RVf*P9wSA8I_MJHC1<2X?XY@H^=5d*f=NYcc2BQO{^y6ss-{zl zA$^}-8xKY}HQbkM(4K7n?kR0<1-fIjIhmD<Aa#xxM^O|<G4}?1KM12BaFf7Gf;ey- zFK`17Xy?Mji{r#gY%j4R*Nwd>3jHWdqQnh?Fbdr;0j`P_L=-xeR?`&H9BS!Y|8N}= zeKL5ek#l-Jpe2}@GUyGb9ExD}Ey`gadK3CMQA6b&E)yyhK(7!@XJ7Sf_ezm9Xtr@g zqMlQfN)*n@5+bx#B4gX?y~cLD^R;khbL~2yEr|kaLv|nSJ?^v<S;!Wc8XVh2Hh$V% z-C*SNbIBomPS`m>i{MJ?MUqNwodQF=Xc0V1iA@>^tyU4z!Lbs!s75l8aD>^r8_Qaj ziV}5{h=)p?NC;br-;v~8k&6LN%q(IBJ>;{H5P}<V1{dXk9UNbTAmeUQ>B?(>l6EXs zfW-sk*n!`35pX(5lH`R5Hj+{q`l`&mmD#+VP3^h2Yv+XXi3|flZ=^C>atDy~dyVKN z_@u{gyR=1UoVDkB;Deo&IauE4s3PB5uO-}6f?jD$SywYx3gO}{v3_abDxXYb@O66u zt>>JXYaSqDL!jial=A?7c`&BU0_4+tJJxCknE@$^CS%kWN@@s_##P;jr>k^!A=U@M ze|f(KSss|+;-vwzYmTSSi4@(LQ{I9;#;;e2Z<*p*BD_$s!Twd=Y}lJJ9Nka`w3e12 zT1F8IW^IhC3h#MZ(>`w9ywUQk#G_uy0stZ9yWEspMT3k6XUnJ@r@)OSlhAw+0rl@W zC<2Hw_q}Q~5-iJn{-KHv4q3-5g{$Re$qh7XXjAdsH#Jm2@s^>${c>*p^%;y1IUTlz zPr5*&rOX7U6zG<D_d7$4l@?COYTK%Y0<5*cKU_+x=FKVcvYEto)&_u3oJaRD{tS`t zO?F+TcQKc;ZLv!-mFAPA0&FUbdEy102-ALrJ$N%{2nzcT%Ek5l?Mx8Hd(LSwwVq80 z_jxKy6qLL`(lYKAWT3vz29G2sEFU0b#?4(-`p?ojpEhEwURN_~LatF_uBl+gysl<7 zz@P^hl?F!oQ%bEn<GjI37^imxdr&zeg>_!d7=1<Q6eSqfg}kvUDkz0fEjPe(Y-zZF z_jhJUOTvZ)S}v;^Hubd-odM^X=>iIv?)41cwZIQ>j$L7b%kcI?SmR_-34B>lRkE99 zH7*(^G6k+i8qG)Cl38Undw!VsewYMK5_qBGJ8>MlUhKz7=ti*@JDwi_j~Z)gzSeI` zDFSPEI;CZHP&RiTf+2WNHUMxyTVDYg;Br1N^Rhx<o0YV=JFAO%RB6i&e0p+tqXqk5 z*3BU<MfI2fnmOCFO*yv0IGt~}z*>8HasXBRN~!=3!k}i`P6TyNe#{ve@0Qsi7+gK3 zO%YgyU<I0xPf=?P1}X&TmNd-EZbQ&^G{k~*@g;<mbZx9wYsEu`w7KNV<#{!$8Nx;L za@J601pP8qu&x-Zv`mS81CNsi2jy8w7CxR?c@1WeOmN+~bElh9oJe?#WpYBHU1an> zD5+Us7%hN{-wIdmmf7tA=(mE7!x?YWke_jM+iM)%_8LdGy~f22XJtmy0&uM=N~s8j zWg#@*qf;jEW)~sH5mv53wJ^MUfSo{QR}F)P=!y({cIdhCQ5(0=y9CQ%9{3<H1;ATZ zyx}cav|w<}bN?<=9a|*6Iu|SDQwkcS+y|ng5t1*BD#3D$p%E!vT>(d>8rh9dbLUUV zk}C5lVaTzCn0<(9^)hMWIiaXH#Hgr@%<^^RO2*x+0o1I*Mu}-L5*ifJ0Lo32pcnB& z^eV>^01Po=Y!_xLFvR(&25EGfE$0mGM&Oo$JkoQTz5+2EYnV67a2^?jd5UJMFdW*% zPDy%B4IBFgV>~ZsOtjRbyAXo~)?M+&TbTU%l>mh(Ve6@^$0k;XxobH(q-*SoXz}SR zt5gbs4FJmjogIlFhMOCaMn^8vab?Le1XU&|wylAwC4RU8^*_}~6oC$IH+s9MoEILF zR2dTJXkh3|>1k6<xe2y+{InGzgPpRhpyd$Y9)ds`0YIs0h$>WR+uClBDsiE?4aV`~ zu4$~U-O!}cMh4`th^1J7QB4A)$b2G17)LuL1%MDtWsrKztlkA^be&7_J_*GX<iK;O z)A>s7WtG}mwM50rloFhwILm0GeKUA7=nIO#4nE|)g9j(urbTP2&5xUNsms(<)^1&s zYZWctw)TkRq~@N{h+c}&fqGIZ#2~E<C|joJKgjYFU`bpki@z!stPC<4r9yJymaJgp z`H}1SQIJGoY)5wD`;L>iz8^bY;v{w$c`;B<#bM-yPUJ;N9Q(Ex_>pS|N$9%19VS5% zcwU$|P#xV30s>rw78!7k&<j%Ros+ygsxqq9M}XyE^a5u&L4Tp_qN1u^NzpN2IEM^7 z_rW!#4!*zcuS+jb47gL^FCCmxnn@`^84~F%D~6^ZCVy|!a%mJ<V2)wd+cDy~OR0*w zfbrgIBYr6P?J%dRSbcO=t3d)RmkmJ(j*-4&d4)H|O&3GCYbuCfhgBve1=~q$R3?K) zIteGJzD%fi%Zddu1~U=9vW&A8@6^=YHM!nKSG%W}VNjX@9ItF~a@{D`Q!$M1(`y`T zEuD6y;&NG`dJ<oiOnn<>%q~b=3|<CIluVND=yd_ZQtRJc-;(vYj8ZFaRzwWB37NB( zf==hc5RrgfJMb_lo3kxhu_zfoZ+03286dZ%!O8G_AoA*fL`K<6aDHGN-L~3kcva|f zA-DGtq{Mgbi4f<$`tiX7(vS{BTA&OSl9)^&qRA~(0Y|R*V9YK_JsKS5CB-<#am5T# zJN3jp!FRyKvz!(rg%>AW^GpNn(UpBv355!7f^J(X6yCdpASc#EHs_=P3Kn)f0hM3~ zjRI~48mLOb6SyN%6wInAD2bO94j1k-@<()&6=oP$w@sgyd9kdi_-MxSyY-ERDKJj; zj>lC-OK@-cGe$9Hi58YnVF25kNg2m+O)mkbuq7mnERt~_8BjwCK>#PHtExfyWvJK1 zVqNa$^Wh;f6M~<o3+-*)wV3;0QP|dWqC#Nfbe=7BJRJZ|ULipw$EnVX3kz;oRSj!u zGF^!V=5`q>cw6JCs=RE8dE<w%wSkrz9=L;rtT6p>8{#2%Tb>L*Ra3gjhAi2c_-vwa z#YPsSrlKJ2W}t2#lp*eHuH7Qh4ng3m&a_>W7dXdjgXrvfN(TqBR)T@PoK|~YB{X-l zU3PGM1W6OtGPhcK3Kx<Qr<0%WT4s=~>zZb>q6z(B-W*q#j=im2FUJPv;I<SHGQxBf zYyl`^#5#Kn1B5M>Xr{ska@oRpXk}AuB99o(MtNnpPBjG)lPO^a4*^cQh}ivv<jn(G z@Kx(-3Pmcy%Q?9FL}{NuGG0Np$aqOEUQl<M*h!er^3poqe=Ncgx_JpktCEY54n$sB z(|k$`fjt>h1-$H{J+qP>wJYaT2y!_`qCxDT3P`~PgR2_n7qpc1r?43*Gj3$b&~}=k zBGA^MRFZUJzNgvZnl=Icy+G(U79PD`7K{`jNN^8?^S-)nZ9#TeypK6A3qvOpGUd+= zo2vRwg;GI0kG4t6yuk80lUKi0V@HHB!5{B;z9SU;x?02rjgim>#1%yci(sK`=_By5 z3pmEb@Jb0E=hh2^M{7!6%}EXb|5h<QCqoJ3kiRIa^#njvB&55#hY;Sm5x6PI0pEFj z8*WD_gt5N9JlNZ26%jyuE#%94zIwXrJL~$o1>RF+`-KKDbO~KJCT5$ifvNZ<1gE0` z5nU34EUIeSjY7^Fjv8~r%{PTX>1Fe=O065$t|_}zNpr)ZS4#|UkDyP!%owJh3gC#K zW>s3#nqK4}Pm-4yJLF5o12ELe;#yZp!VNxw&?#@Bi|u5-m_HpjgwbNum$YDcIR=ZV zDj~WB;LQQB-vL)Tzh<=rasy488G^unFrBe;-ET<x3Kr?I%IMCm>c6B>xe%xc^cywk zlh1=STRnP0n>tU0Pb}aO{DF+q38`O|^isI!GM)wTpsZ>IDn&FK;(vVJ5Q!CI>4MN9 z<mJoCI@ZsAOGN&Lh!?<KF{<ieo@KNYivD{dkhd*L^#o^3yZ4A01p{gjZqz0pA5aam zu(X<_uVy79BRT*}W80cGwFKky*|?x8Tni5FElsYSJDY1i8t2W=Z#*OY&vyI2X!nyr z|Hb>8+Z)fGU*6>(?`>|}+kQS6=gsE5cjxW1b%`3@hKXVwLyl1Qh^S(bsU7mk0EqVa z#;(O;1dkBi_?Wz+fPq$q@<Yk<w+LhjJ6C0S4c<UFqh_KI^c8ixE#kaIP=9!>uV*GE zS<zM@9}gN@8*oXn{vCk=ja1?V8&Ps|m|Qh^X`RyMkd}Ogb=>$?=AY)(5etZ(awQRo zns(>g=4D#UGVb6gd17`w8CC^DD_fcI5~ePsfu*c2pI&-QK&V9OUXj7~Rmq<rN~deP zlvfH>siH(_q{G;~*Gr0lWKb1Mp$=GZ1?Pe`mu_ZWSjK;S^5E!H&<+}O3zE_3My|D` z3~!6t>Lmy#aOlu%iyKF53ym+NwFA#z&LxY3W+^Gs8Bjx-EC@?<pk$eSjf{h)*@i}j z0J0Ra{HAvyG+gKvsDfUTNihe=oPytL)fB*EQ1ivujFvQqKm|APOQbbM0~zD>aBnh= zH$k8i|IIn=RzUil=S-qV7u#cae^qU*4-9i;vFX$;G<t!y)2-TWu4v0U^OV+ws>g%2 zlkVas)d=uqfQpaBW<&no7N^@g76zZM?%cTp&!nx%MXaWpiVz1>6-k|?)xbmOyQ+Go z6DGr$t0<xA@(Fa>iumnfa<v6JTNOc4^a<pey4UNl1_p*(cI$$eQ4fUfGQ6BEZWN^F zsG6w8P}k-Z(T7!GO~nidcbI$b03(}fz{}kC0s|Glb}ZC(AX93TNY?mKtEfoMBCYEL zLkKpsLZ)W^9WT+$!YjEbCb`lD!n+M8$V+Qqr2mnVx|d<4$r*P<`P8#3DrLk%nCpn| zq{?Wg@d?JnmNbSip^TgHTNgzw5}zrEkFbakJYiT%_+xvt2Z>4vA{CYXk^tzQsC~}( zh^X`Nm>XWO*ei}X)TFY;6)ALlV^&(ySgl1uQB*0;m+6bHKLMm=&YD3@C)EW8EC(e7 z7k6&O?>)z$rbTKMh;sj`)0kf64a1_FZA*L*Fa$6YK@gADnDdgBrNI5KHZ7$S%>8Se zp%zsCv-4S#RhOlhlIKDCYT6`aO2t-Dm~Uv-8<c>s5*oaKE#~ZP1%c@IC*-P+gQY*A zV*&x|t|Bavny`5(v%Xs*!p;U#0|`i_Sb9z;1Va5F`@%?_kNWPw8Q25f;KnHAE(3#@ zzo@GB+K58t%pkSnEAZ~=-ob%hn&tqCdqO=)n7L9+scq-Z7eh!<a^PWuK@4HL!6|={ ze0DlP?F0-G8QSa^KH{rpi#klcIn5VVVj2=gUWcIhPQO0~8IxkHU6$fWp4JtsM$Lft zCH}<vI$+ll-#5!pDv_X-w7Qx(>)_ao)d|~}>X^!euvb>^$|(5MByZd%xg<<7MG;my zgNFqf>yr0*0;bmpZ6MZr!+bnAP@=JSg`12pgIvROc$btx&#V>5gNSgM$wC@w@Sts) zk^((S$ps7S*Jd2fOm$Lrsq5e5xN^CPz~{KO0e-amuv4~c#03`=?}`|ddfPhfr2|%~ zjAG#$%0CDL0-ni6LCc+9wuuWP)_IyL_A+_Z(r%n1R|RZ5Rw4p%xVdkhopnXyg-g7# zw6@lGp;fBfUrmsN;c_M<tS;J>WCeJ5{4SwhLaNM6YkuCmUL3RPsP98egUu$3h-}XV z@Qk}~N<1GmD7F0{B~X;j$GD-|woGi*#b9xwKw(Jqs{w5;a1E<jDXfBH6?#~`(pRiy z0Sgj9SYi1(_pqu@^Kx9!Cs+~zuBedCY?Hoj&$GTxNtvgYHEG90h2<<(Fc2aj0P4r^ z6@tL<?&R7c3m-6L2t7ul#z_6@X4^nW>?4o0n)s*Z*9?Ncpa7ynXdB#LP(@0xL?2@y z{GQd+*H%B<ffqk*>diHF%^ua&rF<$%fIwazXj`7o%2)S|46d2w5Rw-qy|kX3N`%=4 zbXV0H9;J+JOpp%<%p{{iVr^vs2jnNevtzwH9;bZsra-8Xx`u^a<T>e;SjG^4Eb(e< zOJZv(d)AJwsp~GW4i{Lhfe=vDFPP#OW=YUnw5C_hjjh{tAm2NEawMmDl`!TTMX%gH zIeBu@CT2RPMZpb#2a0wNW@c`Gw~8p9mi)c(cf8G~`xa~ohRuT3C$n-{>zmV|_fhSz z$68ReCB~4@zsSKFl7$tgFvV<3yp~X|lvMpfyWVQIelpTU5p*)75b?$&p=1mY_Dm=I z2m^Cz^syDqYeC+Y$MYlyz@muW9+`GZq%nAlN4Dz!aNOz`ndCcyzMGk)MaQIO^daAe zhzqD0(hj)w^yJXM;DO3LWbuSZ2P*5df(4Mbn_}8PF6OgRAfpZDqz-|%p^x7#?l5X* z7Zz?{o$%m@UhbWpY+DB(%gGuH6|7)D3jpK*GL^3CC@|0l@(bL#A$41f0vSQ3buMw& z^EOa_m^a;2uQunpd^=iMubUXIM``T3%W}iI=vZ3@%hmQ2eIWcOrY*!3iTbDG@9&+y z6R+k5GU<f)i_%uBLFG58%4S?mXnie{{X!K3<9$Y5k1RKSt*CrKWeZE#Wn@kWihils z+~s-RpoV5UUAjDqrt_eXM8Y`QlI-My=-B%Dy2wve^~=k=%&JS)S_`2_RMBqqE*Ixb zal)Z09)kAYXS8F2bwVg+IR*gKfB@YH#mKHYW5Q4x;b;H`N?|AtWNmFn7*Bmgek)yg zES5Ftdn~lZ&AP-^Y^dzor1n+sO5f#J2pmc~6NUl3n${xRgi3bSMomGU7vI4p;qJ-i zV!gWF#oM$-HFP7XU>0LnC4UQr)+_HO#;r@CQxEX{!G2xy$#oCox!cxJB_r38Y)=NI zx47%e9rX;<N0EbSm2JAfI6X!$kid|9v<Eye1}7V2AZ6dpt8zIZjQ}M;;7diqxO2zO zAMKr~EhfTWDbvD=U($QZnngXgTZg(ZAazh_73yPnUU;z^qOi9n>9t`0C)uYn)*!v! zOiIh5k6cO$c{OS<EhXZ@VBaaem*YKQd2#dQHU$dm+C_6QsTO(p3Z^Ov%4%r@<doe= zNy%ozEU($iynLDE^@AMhLWLr}gb>oJ9D=T0X2!u1xv_SQ>6|*52|QZ`_Lm*MKLp=H zc+j|l^UjB(iQfxQOfN84ycHHpyZKXaQ&tqo3dmTESPNyPwN<~dzoCtav2flqFJOoo zGRC|SUsS1N)??iz*J!<H&9ydoC#d)<F0LUCQ0J0rP1Kg{@KdsL;_Nt^x8cS!N}*LS z$s|T^LB7Ne1bub6@=j<0k7NmF9y&g4T>+)MThkPzE{4|@!OYjH=4Mr@XfASoDr?+P zZ|GvT1ayLr(Jp4{BCohX%gl1sm20moztW5E4b3sGpqqDA->yt+H|->sVr!v>OxBsO zvvzhy!z3}}%(|>^H=6=2!j9WE7rY&Ec^6rol|`Mscdi6I9*loYs8ePIzWX8Q$z+2) zbh2wxjI~>k$eQ}45Gs*2h2$>a(+rql2((~qCV}cHDfv$#r*3wuD30>3de>^Xxg>cr zs=z2LsEAYQMg0R2J=$5ECV^5&McLmN3>3E|Q=7}j81qeCjqcAR=GA1@$Ul=yj$WTs zEpFXngg6#U*2??k+g`S>N2hxXPO77)hlUf58J@H1>DfakM1{3H1D$m_q^15U=poF8 z5+=)=bdx9|g)$O~yO5i0r0LvagD115|76s^k1zO;UeID22<x|GQd6wHM-}Y64fI<2 zl}qr~E0NVp*c5>GLGURc2gERMPV>(wGH`<U3$Uw>@|2XYSJqUuvD#v318CR{OB>*2 z7HO*-*HwDJN3H-V;S)K7x#bF{WW+>&_im4U*wq(88xVH)*oS-P+&yhhI!i6i<zg#L z71+*dds`{31(i7!KwO&b(YhI^fDh{7GA5h_;C&fc?^SHT?Pqwg^m4B%s+y0#jm=vy zMZoxz%o5Nok$VYo!C2pcz2g<VW?Rr7p&9>rBWV~Mj|(v0g2sZtY;zMq7P#TF7oDVw z+d17mvSww@2mFbsM?264Mb7kWusRE+2u#$<g6$#Cd2+hDW$o`hINgObki-Z9`bA9? zM*F>8A;c^ea&E$dmvU`ACRf~kIHcu4*$f_4!v_>q;nd=;8Hd}8`m*#Dys;cCT8&1% zrcDORJVCV*Nf4{aoP_uE!yo?ehyBNo`wt$pnRU;eJU+CfgbA@8RdZVUw*-2Fj4<y= zf@Dk%zm;rbGybzPA+?BX6_~?AuUgDk7!j0*Q=`;a^V48V2rzWKALXTD#9f*I(-ulA z2e!b|Z|M%|@968x91e!NRPw2pVRMo;K<EQmO>07~I<^LBRoxj%{4!Sr*24jNNQy#= zVl9Ove{VLKLi<@M4GeU8wqXL?;TP3Z@CPjTY^T@E5#&N>$7IOW@kid79!a`dsC<G< z!4}q@Ak`P6{Ph_!@FJTkI^xEstSYyxlwE9DpU%p>*|H$Hzol@9o451j4HHFY+YtjT zi397F60;%Fe2d(a;+%){)FLo6w*@9v-(qw^rsq&_kJrks%ajc;^#hB~cXli`D0zQl z*3bPM6u==t(vIFC%^<P7zMPO({Jd?}Dp96^HR1@MwhB4|0Xo)@61|4Bt{6jrwIal> zN;aAm#kJs<ot69|B=s0=MBG<t6#>s~O4t}}A~c3%QT8MGWr&HCN3w9vu&fNVY={tn z8_maUZkAKL!>!hH%iz)i2chqU%<8|_x7ax?ioW32>c7`td&e5(Z*@RN&u?X(2AeKA zU`eWG(E*F;v{dQ!tZbf&VFlKgCDA{8JzZj<t;l7}dHWElxSa`Q0G^d<ohZhb<P0tq z>mj(=@jjF`Zo!9=UV>31u^5b6C*%^1DX_DYul|F_hXMk#$m-e?wK`&T<~QB%e+a=h zTCX(Ij3e&J1BBi|H(Mbj`K7$Hq^+yUv6NI0QT*i~9=T+{4Kf*qC>~x28-%tV61 zmIGdf&uDUCg?0LE4uGtTmMy@Xh_X+I*SI9q2AqU1KYP_wGe*x#tfOOh2zW}yA2#K- z!M2d4rB_p+w5ZykXH_l9uaR-f0jlss1$_mVU>Y++YJpHQK@7m#S{ShjrIv;^e^%Pa z!F~(T8pu1$(-!qonC<|*Bc<9fns`pRJut)pDc2ql)ykFfA!-a5`<7{WsU@mgoz-J9 zM1uqqZIEuOUpdgAix;M>5z*`=K;UI9mZE_%fv(wE@C`xO7$i1Jh>#mC6rnlN;KIq; zIA+#@7_}&=i~^??Cl#7maF0SJ`F?%IFMoCQmS_YAe0)O3>NX)91LHyFFGLqa;sF_* zQ6&D|5RKfSc%!PZfPQa4{DDvM!`T?J7}b__N$PS-VxxhUXwxt@r0XWr4oj>J#Dt8~ z7Lm|6MQ+ob9qZ+zJw8bq8I2_(S(k(<n)^&R1tk`db&trnbqAqsAbq;Z87y1VTnNa~ zx~A!@X5fR9La`w!%nJ6jzSM1Iujr)_t3mJyl|}9{TAoo^Lx-E@kts5Er{*k#-zsSJ zjX8y?q*|;BiXuAIS8&D5d_5u~O(#`Dt*0l4tAhE9muwN`(TEz}sdd3^US3qMu<B9X zpdp;A{S=*JU>_LCIERl-x2vR-U6*8%rvkVyz=$nTr4GTk);lSyQrA?e;JTtD9|{9Y z=7z9t4}CVEQQ;$fO5thFEyHEb8k$-){Ztm~))T=3i;#o2T8E8g^5k?^rY5AY=Tg#~ zHZDNg-1E=?#06|yy|W)}JZJB1^w_5Uv$?TxZ~HlW|IHSBY43aQ-NS0!0=uXP8Xsqj z_w$e2zWCW<#hzJH_46{VsjPe+R#ibssVll~zgC9++a954#czFt6aMH~|NR&Dp4t86 z1^?&ei}yC}ZErub`+?ZH`94%Xik+MH-d&7IP!?Jn5qm=|P)(<~Q0S85ZN(97u^{k` zaL3BuK=@EfreI}3%y&g4_$h6kVsHzykQhf3R7*<B^x(n%(V6weIz2l%IC^Bgv35^S z4;~#^Z#pWct0E+Fo^QuU<je$UI%&F$NR5SJ=cL4CT8wwzKzrY}2K8QGaX8<}P}Ng# zn{3!uw!H<yp75^=|9YrCs&9bz`e{uwno`E98f^<k38YaFsDYUlHnos5S%NtT)8Q2{ z^Fji!%IG6OkRy|Q_pd*~q=Pby4Ud0Hn)7WbwX%Of%Vxkpct#N@nJO%@-e^{4)2g8* zU-d-3QxJ$tG96j8U6ne{uR)ZwnN~%yZ5>yv`Gpys(M%`&PfZ<4upYL>iYXRMoLMyd zP7wRZeEhfqV`N*;G=SOUFNXIGw6jDbHrVBtahekNS-Q@!hM`^ShQBzlo-$-V;;u7b zEF}e-VYXO(>{sbIDaTl!oY8tzRn0y5L@{gJNX9olC4&NfX3+`B3u$EWPRu>%ZCUFE z=T+WHDIn5Sjf?P>;AK`-Ui?jUqWVhOP!`}>-`TNx7jw(iZkB=Bq)GY=wk`0IR?!;^ zhT$%M@nX^t0|G~>!0Ahpi3`)oQFuC4G1~HTWZCF#{UTBEzz<P;SVn0m<P;>Ml+0vt zhY#Bt(uE6rY<7rvMbzIEHk#_FJ0e~|`0s2j^uR#Qu%<YL!S{_`_Wo_=u-RO(g!T0O zeaH2*rv;R{@{(ta>Lr?Y4Q4VkZ3CANm_nGkhFP$ewc>X<OK$=3S}j?;;Gnh?$Gm>= z!b8MJ5hNILtO$czL2tEgL|&CQ(Z3l?KP>-@E~$&afVarYRrOrNTc3ar4G6Bo)rlFV zRWT@{?~5EDKG6{C7(^R{!iwVY;$3$!N1BXlNZu{w48ankT{El?c$i=9@)j@QU-`_` z)`K!{);cj(p(r>-Y`&rqY=>Ue?>wSQ=6qFpsDWPcn4?DL;0<gT>Nd2K*9&OOwyp8B z|Dk|yX#z4S@zGGJ^7URv=1b#LL{&N3qtN_Dr%RT#y;K@OOe#G;EXY{j#zTN_0<|lo zAl1wY9%u{5Z4et+gt00G@e`4)*86TI=`sr=-;%A%IMj$}%39uPWSusoZsd2kGzt6W zk7IZL;K@@$^J;c~@4>@IAARrphmVhrf8pfx?Bh><@WWpmrrBtG{^_e?Qchpjthu<n zy8diQAXG2^#WfV+VHA4=VPP|gdwhEO1eIL}r=)0*qTeKc5{7<D2jGI%`RG~)7WwZp z?*9N~K$^dsuxrJvP5=S`teOT-t*$<R)n}u}wyYl8T&cd)b>vEvh!PbKr~C@?=K6u) z*sbcb3Ip!*dp?oJEZKinEjVUbeJy6+YQ>+*y=hCJlNPd~ujlK+Vh3t3nQ9@Tk1al? zTzQP<oLACEhBr`6dEe}1?ZwK_uBjU}F>i}Hxy90+y80B?8cCzkiQx7!lb2O;*|)=> zqGAshdJSiW@CI8HJ)A?CbpnXs5bT=C)9=kD)71%738-2mMh*!4s>qPfT;?En4}{WS z#c+<vH@)^{HNnM1>;YnQX3p49kbR38o6mDtORXu3WG^hP6;nAD;j4<WxiFcEj!Df& zu)D;f%ANFSQ@1F^`56G~P-ZK|d~`8VRrd9gu$n1yafS<XW=kQkx}Mq)VZ-z$)XFlG zuwX2lKA41iO!A-q;PIh#Syzolh5g|1;WprSU^+oxW6tK+kuA;EQFW~TDV?a<Q78%% znO_5o9H4nJTSKr|NSBPvb6c0Hf@9;s-Ez~~vHFhSnprrhvM)cYN+udiPBkiJhH;w> z49vWE{|)|;-{0H3x4H3*?!VB{o%c8Iy}P*hMAPp<k_xA7L&9&B(_oa-nEnInqA%Oi zOG_9<O+~CtE4MKr*Fe7{DJ-ym6J|Zze{y{E<m~k6@$rkzn+#!TTa&3~6}k}Uc2(*s zX&0;(ghV78WVOQ_Tx6aZWWK)m?W#W3)_QEM$IhNSc(QHnU**lg=&YUzmmsYsl7sso zolGVAXHsF<Y_Wtfc#V$^&JOo?zkm92@5#}_gGUxEFSt|9hu<VGRn>~FXU#DAi1Aq1 zjZhRA?xemR^JTrMtD>MaL?8ydOPvVt!L~Il07)xrkA#FmO4y^b>Jx-4Jgn+Rdz#!V zXYK7IhfETy%Cge)E91Q)S2Y~cZ+KMksd&@sTNx!8pLoB6&(zW?7@#4Buu}m}g`8Ja zQUjTB%cDwq)fh*8ThIUXOkfg9K|+m_{s-bs&q}q_t<8}{RTv`x!8JV$GG*ex7#dBQ zZEa+T=b)hxDg_3Tvg*f7J+j-^9^A<BwonEE=5@ehK|PzC`2|zPG9ufXv6rWi6K^9h zu^c-U(UntKO#n<ERf&005$!|?3P`Ua2kJnma<fX#ExLGblwZ+IsQpQi&7~p(vl4^e znJHKcF!(CFHnTAIXL%t;7FN_l;E{Wr>gPl+n_K1{R5NZKt&VQp;09>xe^x4|P@*W` zCWo^Ph9P@B<Bw}tgKY#lt7y&1STA%%5MmXPUdpyQ-!*0btOnXk0e@(px>Te+4VD3y zRf&?d0?3vN*Oy8TbYcxQ8zPN=IelU&Ff4asl{5Kf8C<=rSt+iqhK$EFvlM4;E0Bpy zxqXrC7qz;Q285PPo!?vwTA|d)R*s5BtB}61xFD^gShUQTQVWh?a9|o3g!YQ3UC41= zU6xyTS)gJ%oB`i7E>lZ#3!1$_Mul4Ym$(!dOhOL=R(;tHH_iAYmY(C-QrFRnmFZZ9 z@S=Jb6*C5+!Ns`S@DYNJ!jzV>J3e{2dwjfq^xy^^P$0&yMyCEzdOj;(Eeg^!)%2z~ z4c{pIkvY+JJ~z#v{?%lW=dJ-eee&?^liid3=Z_^Z(DP5Q{>M5xd%lM!{1}7P&q2ia z7ps!87Qja;`v9Y0j=Wx2_wcND0eo;W!LD-aJ*Lv@{B3d@70dV<@`^H9TgCf1-+d$T zl6Wf<@`^sz?E2ErcsMK5C!=kvASj)HRNMx8yq+R}yrIq9bUH2a23SdPF=KiyBiRLa z<P-t|AhE!fhAg0Pu??`A3uI~U!mxQ@=-mj|pOEP@Z2CeuSf76(y#OG-!sZYl!vmzA zutZ*|{RSz({k?sZSLZi*13N(Lum|+khv5<f0V)l9!_G+?Yc`c3RB7knOk{?qq!KG6 zMvm)zLcdS1x2+Q3ZF+A1aL00Sks-6@oG(Gws47R&6g>ukWhhXqjAlxdT>P3;2Tv=E z{2>o4#F6FHim2p`UbY1(QFsBWp7EBB7@vO7`Ri*58GKJ#mU*5tR3>?8X^jOTgGk-T zI85)g(8zwR<D(3r1vga-eDu-w<Hy^lr_TmQ@ZSp&>0EU|imhJL(KFuhCbS+??d|YQ zfDIR`77WrUAj<d!KsO~tPNdfC+pMC?a_eBZeUdlldj*+@#H*2DZyA9_&YG<@pFBZ& z1YGJRS--0B&nJ9Neb#$D=)Hbngv_vBW3IUIEmA15A^{{RZ|`s-1|Lum3tUbLW-}(z z_`%E?QG|jTKGTAvjb>*CbA2JLl_-SlW%Hd&mD_9yIxeO+33jEk>nS~v@JIed6huBP za}ku~8<B{He=>^lMUqBQF9A6c-t-4LHiY%eY+6@*g+{mYE%HTqDFksWt<wMk&s0I} z2wM)d+qRCHU73ZrO`uNz%XQ(LSkqJ-R9g0FHO<k4g&}jhyve-2nf5<r4h(t|#_YfW z)m7H$HlY7<3mTt=F59%JF&k13M10JY-U6BcnpxAPKIOB@MNX`Y_YPLmw5s8pBEkHD zz_#Fs(A&3!_7mziUC7X13!N^5Q)yMQ*#wN}yrvic6qe%9w*#BRft}j^&?Cc9;5(ih zgn{k*Lwguy(QuT-L*hpE&`W&J^@3nD8v4V?rgl2a!r{;#j-rw0I$mNA6Q9^#>SSIJ zrmo|-uIGDhY-ge41gVp`&M@<$(2L_?Fp6AnH1t!~%|<j#GvA8>Vh6;I{3!H&KMP_f zN#ek^BkK7A+C9@Mc}B_os^w0D%1WFaaOS-ww5&2DEM|Er@I&1stst=3(Cg%)0yN=l zNN;`6a@bo`6M$u8tx7c3)Ras<u=tIlKoZ=?JyNFUQl0y4mXnU7G$Ge*PZN|u#T8dL zSm44}!^k=mI=CnRG^|l*6CJYDrRQli1+E2agVpIKU{RR0k+DXyC2q91hc~y?!j!!j zh+Q9(f=`_M;M{YU9oMas!}Czdz{r*@MH2}LS+ayZqRk^XLrZ6`1sg)VMd$Y*ha)?y zMYFLyRzSR}Iv)#;AqXN#9soFQSo7D9OMXXB#3;c(tS)JNADS9j8ADrlPC*6`Hm@{c zXEpqEhh3LKZ0QmBI+L8u7)6ATxIdjDDz4Eg<jpY_FTw_Bz{~V72Ig^E*4Y%9y%9sH zp0z}l@M3F0WC4zZNK0v~{suR<CD{f)_LAhyj*DIgf)*ioh*@pGe~t5Uyt$Z*Yk#j* zgQBS6@=^h0mHoiS5wdY+B0h=Bh-3zrw2v|+xqyXJ&~EBsvY|u!nZR~sn{S_E6v8+< zji9^<!I`f#a11UfqecUIoUn{3a!eX{MGeQk$XPDE@L}<)m$k)vMRv^;mMRdzmCdEw z?wr$NdI#5arA1DV5rxmy1M652fC}XHbv3I2@g)5ym_qqPZxq#u0y-2tHD$e_zV1`T z?OR1i-RSqN1fwdG?2iei!QRD!4rh=<7nHn$idC8p_9mI31G2q#h2&@^E=rV7zy1KH zWx2r_fMkcR*KSd&^j_=7#9thiW!Hmt)jra2&&5Me0e;RM&s)Vrwc~mF#aKjBbtGD+ z2(@B}!pMm5(!m48d)FPAfO)@RXv!k8>LTZRj<Nao>9wLz!cjIQd=gn_)-izSzfZ4o zQx&~Kekg1S1j-2_@mKV^kE4BMeotg2!N5MJ7J_Xgim`R%kSO^#QGKz$_uwOR@3yU? zy0ogAzfgE9%QdJbWSpl0HX-mkOpI%oEI{cQToS%!^AG!FQ(uGQvabnw`3_*TD2`=p zgI~YENlgpVaQ_;u2jFiLBM>D-H^zB$J{xX9HjNB76)hNMf^@p4MN-jWF~N9XcO`;= z8~m&YuPD7M-UjAAnU`6tBYvy7=xylUx7ws7J*JB-wB}@5l^Npn!DZ32{5mPK^(||? zs@HWWuni*EFX*H*G|Q^VOK=UvJY_@?ab<*@u_&@POUGde76S)ovl~N#tw^9Xq}LU| z`=+x7BAsC1z7|+ClqpZEa#ZALBf>?C+H~~!%;d+E)`AU3P&tTe-vSG(C+H<RBH^;0 z+yMMS>6LWeaa(J|nUe`ATU=j2gUPI{(kN=a8Qz^yWG_^{gyFQY{`vYQln!dUXJdV5 zeN(Bh9f+56vl^RhIU(hY6j<D@vGuLuIKDn&v*Mb6AY*aAB+F`H`vR>nNHKsZqUhjD zjSdij6#+l`5}5sY^yUg$Bi;%4^`L;TK{jv`P-pq@Wy^}&Y6=xm{O$yI1?Ki=HB_nc zxfVvP99-b%$N`VBer}6#*KgsjrG&_8YSPdeDG4C!3Fc(W+CzVj-*gFj8iMf+(f@6H z(&A$eX}SE^ZoyxVAuL^5iE<cW<VMhi2<KtWnAoc(!@Q)~EzF7A;`C=FvU-?+{ly${ zm**6^h)EA82-c0-YaFX`66}^XBPfJB--}w1VSYl#yY(2BOOa-Lv}YaH)p*OAO@S|F zneg!)Va$Cg!xo~J5a={{BGU5;Lh<u9tsvX#^Ob3!x(6B^qN37(D6CScL$zIQx=IOV z0-Oc>nG7M`3<j<aHcD=3z6viQJkYe`2HFs>?7Mu<l-vibTiPiMZN=3*s_GO1G#EmB zRIM{z<+<2$e0p-wCRW}y61bWYOysPZykII&sjKQ9i%cyU4*9Sa!#U4@q0aJ61z2mn zm#%NMVt^py3ErN_(5Iw4D4QoW5QZ%WI9m<L3nc}M#aJ6HIke5yK^kGZ)^timp<qio z3^G?r*$S)~^j!sbOxD1_Vg;45gkietnf*c+D3=+Qo@il`3)+?w7SzyCTJoJ8tC#7; zK^xxNh;JklS-=PJcXXmLG$yv<Q~+vdV!-C5^{B#V`Gzj;ZD}9yZkCR#dz%Z&-h}=; z^hbQkd1+18S*H$;6;;y`VQi`j6?sgaYi_j2A}z!2Lh4nyI4(c}imNTE^wpEoGstP& zot5U-6_hTwUu*{813VdRi>rhH_$BmJeAw1SUIW!rORr*yb$Tqt3RWAa-H|CNP&@G! z1c47{d6Ahl$@9KsOSM}TPUun%T%!hvd9oeX^Mf#o6EaLQIvStnP-sv=rNInJ4R-JE zJ=lNv=%WLuOLzi>2~VLi!PLbONl3s|6fiJ=*r;Rgnz3K7{g%WF=>@Hgh+)-2Yd}pW z9DVv_kG?6>rl9af#7(jx_b&7Ree~q<{^P@g#|LL0K#u6g<I2jaR2q7BA*MDsrOjio zArJYG`SFQZxFF8*_RH6j(vM>|2%ps10Uv0L_X4THrn?^IUBASO?(2R6>qcz`cBi!F zma~D#twz?Xyvzh^rK;nrtEyQ5THCA2CNF11;Ei-K7MVw{wV6|xu~^NF1eUOUg;t>v z6Rv0FeLiWRTJ14m8cHDgil{^^3O;LKUJL`tS*1w1JH=$E6rr&8E7&#W0QzbzQ|kqc zlB%Q<o-dGsNJh7ShZ}>dK+&gT2S_D|Dl=*Zs4h$UEB^QGulV1*&WM-~ZaL3lOj1px zLRkR?3AT*7mwDl^BWSz4gD)Qxy63-t_p2S>e;JT8^nxrV#3PAEqoGHK!z>7*Fp1-E zn1+Fq+2PPm)4&_rqtF|s)Jr|;MwuJh{xBRmQRa+X>bR-z`q3yJrZl8M=n>zyM{X3^ zUX;a-o6(`?5qsnl$4mSmi<3BYlh7Yg&v&Uiq7I2h$uOogqC=lVsXa=l6T1BOydVmP zo)gfNro&<A+hOcQ!%^Ujg27jO0t4%-{qLrNY3}CAsu)0Vpk)u~DyU~%gjAeV7jywi z5%BLVx%H}sH774Gs^TIq$B&_=_5ey}Qwd6v<#Ty~u${bFXDZnxIHI#znUNCsRV0m( z_33Of1r%M6S(oP(69Gk>dt@YH&9W@(*M9Yv@b7Q`ZNK(Aey9AXH~;D{S-<uxzl@)M z<(K&%3EW>>>w*qdVGu&ol+1&G_O->cTAKAnrl*$fj`dDD=I*pa87h4r0z#}!Wj(5H zuE*^X@O6rF*VdjgYTfBE>zP;-Us(OVNRU)D>OLB>i53|OHw;@3c4ti`)%D>njUY%~ zT3RO`PFGDE@NGoojlXGS?a66O&#@vzD_ma4Ya6k6k=SDj#x4w|hKw-_IOwsi!DKY+ zvB3`>A0CkjZ3o*F%1=rOrdkQg+$jLo>%EKht~_KlrRCM6z=y{A)o7HbRIb|tHU$Iw zoYH1e4B)Sc)sxZ)0-INjM1j2W19S|Wlu}DlLc>d1OEpGrRjicpVSEvmi3%hTnm2={ zuIrzPRE3TNR<ovGjrxLa6rRM=6L|4gJVD?(w>p7o3kjYiL7b#eQ_9EdWql|C5PPsX zQZbSk<g$XhO$rll>=d-zfCg;yeg0V^GB+{&Y6vW7j&f37WB5o+g+`83fqnNLJ}RsE zvLIRG4keb{ZN~B;NyE`;k2@8!Sodr)>h<G|ejnj)n|D>s=Afx2#g9)~3Nq53TbIS( z>sCIp`h5%u^i@fC&a`>0Lw>Jkw7!<HSeP8)*AJ8g-*H`~=y2}J%7w$6DZ0<oy~ipA zg!Cx=zDfy!!c$tzGMNm5lnK0dHuwr@3Xw&?A*JDer*bgus<G5zKQTQ;Eb?vl<d(gO z0VA2eSr~8WhA(BrrKw2{Wi)_2F9<s~WO&*-3O6XhD=Qn~e~SY*=CC@?$LD<z!AE1! z$j?@3L({IRAyRW-C>A_grZ98}tpz1c=+zMH)9HRiKcitO`@qV)I-_xljbIMMEl+U^ zK>QKGiefBHmX})=z1p^ZoRS7=i-1tUdZPyoX61OF%cu0mAJJkeGrr8?OC*+#m)CMJ zlq1<#4+d+e`D9vL>k6v*l-(P6Ey$ezW-e_9eQSNoTIcrJ`lg)eJNj}enQ7#f7DOxd zU(ZPKP+53TUW)ZruaQ=V)UT|(LHTj)F<5hetS!(KvJw1FhE;PeF8&Q1{f5s`ZxAUx znKswL4uq0~%e*Ksv{6<T9gS$(@K*w?NmcdAnoSMCX{C3+Qg(XV>b+hPD?)LfTSkoB zFbR^x55q8W0z34Qh<}M}C$Qtlc9PJu!^jJQC~-nJv~4%^?AY<Wz_INxbdxxaog2^L z28nO`K@{6j<oLepdx;adP8hq9>v~~qhmNoU&L<?@M&?~zxu`8f^;Shl!kU%&>zM?W ziaKb#Q@6}oL;Rp@2HzuTHO#jmxnNb9%6k~qy=p!@IKJ?e%Lpq$O{WEvrk_&_CGTA+ zhAE6(BgCCH5FAo+nPPOP00u$jVTMRE%Sij<M64x6_jV6=PqwVn{a<*xf3&yXKRw$$ zIoq-x?;al?96gd>tJ>N<JlH+m()V)F3JqgT1&l<o@Jnje1|YG$3u~hQ>>ct}SsMla za(f*4@)%c_2^5!gKFtUM&{9KzKH!(dFCTzqMPWTHr+K-tc~5orc`H~_<R}0U+RPhl zvpoaQ3@N{KZrR}e>HyCRK?sipDNSVn#cEP!)ns)Z<Ln$+%ca(`>CnOSpg`v5+|a^4 z0+SL5nRj|&3$|)>G&vLA)iA-qM}(a}CeyPzr`uM|ClAc~!k7X^Z;bvTsv2PGU*RMr zL)=ZblwwW+^pwwUNLFZ?vILdk@nIsj8>G%;iUV?oZB!93Lg7p5sFEXE`0Y9@6u67h zN!??=LW11Dx3ue-O)B{nX#`@i8B`pNW(8a{E_xWF*BXdgp`;bq$AKUhSz)UgV{kP= zlu>KlysV~e;Lt02y`yU*4DJ#`j2t1(Ab_OkPgn)T3L6u0WjVGV2T`z@kHB<TR`183 zHbb#WF?9G$FocaCsA;oz(GKE?#LkxF0YQVdA>-BYyxs+-VWk}-`ej*_eQqlw(TaLK zGK&kX_VAEBER=maPx!K`GhOO8DF$*+3wXm_rICir^@Ktfu<8h75|W-qL9lSUYATZb zN<I$3sxYa6Y&ZX6a^etJ$3CIMUB;Ke;@WZt_E+yWd>P!a-p1|%bE_(8Um0N9_R{`U zQ4y)kDAg%ZyJP^~A}OVo$zaCl1K}~^4=~!yFDJ;?3xrxC<kDF@x-~6u#Fru5(oxLs z{QNub_I~tp?`>?Z#5W3tV}z65Ck$#C^;74gNAh02T_+UsE6{vWw7!1nJUxaeFo&Eo zD>|x5`j|`~lj-;A^<y%HsSzl9;Gg}1P9RkZ|L|`Z3&VdO@|E!uQoK5>QpiCFdP9U< zw-^g26Po1&C>Ibs;)J5oTmi0S>A7WbNB-F}tN)pG=iSfm@1B12^5gxJ(}O2R+x;)@ zSa066Hy=HG^2~k#yZYnC@~jsxKHyKiTr|Vqm?&<|@G@(>n?V$Si7a|yvR9<l6tFud zSjaRXnI^2jm<R3|>=ji>mlcHMWzM_1334}yM#bW)Yf5^oo|Pi7nwR5a(xO6W<+!F5 zlLlr1>9B6LtM|-(A!6bXDItZLZec#l87AF^*BGGgW;2UwoTqEOXU+?zrTR2w#55mZ z1YOq%FBI7nj0OWSVc$qzW|Xg%qNZY_oD~JBuQ$yL=qW*XT=nJvyD~OhH`WH9QF6+3 z90|wfj*>G1=h)I@_zJ!`6B&t|d*{>U+}e<VusimhE$&;Yra1&SsUha3R+8Rp!`aMB z&_w3zFt>al#UK|Jl?D|pRPMqA@fmPQ5iZ)sV3&+GD%OWq`fVlUqzI4jVY`y(O!nQ! zWO~p*arsr#LB)yELF{F1Qe9G-B##p^MWaoTD=1xK6-btRjf|#M*-_}#(HoevKj3db z6nL059Z*pY+${)&LC$U7<#9@Y#To7%c$!ifCM|N-<XL`kLMNw+zvGIgd(G8Ok8N35 zevz}PhR@Ap`e+KDa`qs<*y&wp^{$I8>t*Qg^e*7apyNNRtI2UqGgO$;_rW9(8&fO5 zJ9$FK+};#q+Wgf+4*X1IyyU1xv{6+RgSE9ERx|Xtn+jMitaOqM=oK2&^^CtIK{I?# zYdTnaYg1t|YXFza`&==DF{2HJFSF3+BdMMzcy?+gBBPEIM2Tz1iR;*25W0RGg>INc zz8@xj;@eRWd4Xr!ap?G-?*wjQdyelULEw3z=XiD;hmoB`ao{C^bE~ttNs@#~5V)@I zctI4}p6~ju>jsG(I(8Tbj%)kA7bYF7wn3DsWXxBBrrK?<KK~rP4<6)fT9E4_GNE65 z@%iUKEi{6x*&S=Zx6m>(cc?-ecE=hB-j6T7SktP1x1$u$0)%H>c7da#qZeo;%T-Lh zJei0)qgRcf?4z|2DbOGf0vHmx9;)<5iA#vcJIN6bff0N@y-Z<hqytotAuR-a0w3S) zr?=G=-g3rTpedS{27T51Lf+OG?Y90B)}}~}BVnikrh&NfE&aLD;Ccb#F($NzA^dbn zQ5ussJ*v2y3`?D)lE}yB$gncuGrXu2Ry{~~09YZy6u}tDupmUt#DuXuQlvA!&K^jE z@j(TZ_k5b|ST~~hMKX8gOf;q0{cAj7#X5DV+-1aGGqB{eSmdt?dadyQLcrN7s!Iy4 zDwsDtF@;WRD#fxD#e0cHz5%bzvE~@!$CAjka~P}X2+c$8_cCgIbar<9^7!P*4}PdZ z71rLP1B;dyd0jy%1wzlpRYA(}psL4r+1+%UpEu2PT31)sHw+U<8@}C0`Lfe9CKS6t za+ssPQdD48B7>S4%;{b5n|oHz3W_p~kh%acZ$`O&$$P{WUza)<GE!9K7>FUB%^m&X zNB1%6#4Sc<ZQRZ1#a(V(z9Dxv2Jdgaxr2Z2Y{Kg|_7BDWq1=x|G0)k1?{?MNbn06s zD1nW)$Ba~oB-ps1X8uGo2(^<72XZPkLKKD>R1HN`N-IbR0x2XCs-?W&LI}AT%G%&B z?wD`h-!m!<rGzo|tQ-m|#FDXjo51Xe%4uS2Nna+HJz!VT%we`prXJBt^;E!|oRDid z>P?WIfJaX&#`0lt4fHmc2v5hAwFf7-)upPMK$!VAdKa5&ermBL;8f4|-+%h(9%6-v zaL3LG(^YY#5asPCmMfyFnvSkSz(=R?y-vtwA$MnwSuE#9sZ6c!$mxuC?{3~6k9?ax zaQywf)A*L%;BC+A-159I<HNhm%kll<)lY2ZUnyOAH7R6f2+NkyJE>~egOx7ee{Bgn z6}XJ0z~7hbXD0KW(bEcAZa`LJ6PhjPSej@7eXM%SKHyJ*7RFQPa5GGc9Ewi1RafG3 zE}NS&*^3t)Iu4Ul3d%nCbJ><gz!tzp*cN8~p{BUDSW`_et2$#t&vV=niKy#Q8c{!q zV`>NCkb0xo&78!Eoh(U1I-;@TJC4ikcsq_qf$ey46p%CwLNAH4n7A}^lFTJ>kj6C2 zJes<MjtGgPl(_DY#zQ;sqL>byG;-+3b8V7Een_3n8-{K?BvCR<;vgACzC-QU4Sbh) zaS+(<$PKdLC<xpnOg$3#0rld@jY69YBQJEKjQS)A-Ox?LQII7xiHD=aP24PXlTkeK zootx7aY7tFN@<c2&vCqAFtUenYTG2VhfYeJETXZKWD)T_CyUa=ro^Vf$TTT23C272 zKG<6=!^AL3no2Z<IcSMs4VwP8G^+N+3h_|U6a#2|m}eQ5)}2?Z5uzh(V4YI*63VIp zWxx5u<pMQIFPgLJG%uTl9y6=cj<*b-T>0?_lZk8x4)d0ku||Aiq}l0Rq~i)Z-G`O~ zQEv1XA)`fW%hXp<9Ke9%dGuue2gmy-2aorU&UWNkTtF+%@*)E{H#rjxp6@<q?`_=M z#+CFrdw=uZ#<S;_&j&Bw-vqU|_jaDM_ugzjXYb$J+*s$E*55q)(fW(c_txLs;a~5( zdG@0_FE-!ff8TjtzIcE09-i_!d++%>gZDP?J^yS^&15jg4+*1C-Uf+Gh^NEIL(v<A zh|6U_#I<CsD-&})WV^+Dj}s_Jjb$Q5s0{aN+AzpB@;A7#iIkulv+|s<b4cYfM#fYK zgg2zjNUfCip$_=;quqYsxYh=5A$Cm9Hwi19ZG4oHvx(6fkyi*K73f|;2P2v3G0bo+ zL=;ig7OmXgYc!SAX;3rZHFmV8U$vv*NB4$Kw?rFiUJ*);RXR8Ppe~5}h%icx;fn)S zo+W3N{iBO}8-kZzk+^T(Ge7oW|8D;mN&mCweZ}prH*CJQ$&YydR_)&P65n=hJ9LuJ zOME{{T*q~z#P)5+wjJLK9WS;6J4zxiaU<Ig10QfFi66U(=i9#P2a)SUk>e*}9NC_m z*nZ@Op&iF=5GP)2+fE!hp&cfX=QytCBwzkF!^95UC<)yt3=%I%9LIA*F9;JaiIV`3 zGJ)$Re&TpR;QO8z243R3q3<<(S><C0h7TgaYC4`3q&7%*AmhwE<OX2e;3;fb{eDr6 z`+VHUN^67^S(PX>=SRT1?f1*7&wnIm;D1{dy68I_n*i!=E~}S(F?`wD3Xz(ZWmQgj zPk<D6y8(Q8$!$hMk*B@0y?sr@k~XT^8XQ*T*ct#HVDpPFKL31Ry|J1)pPUI~-zVpJ zgMkY6#TWcg5nsw7bvcmq?G~RjPG>`rgJp24r+ltJ?mrcovVNWa>;F3cxAW`#AD_yR zIE$5J%Fe-M1fmcDk;9dvD6Rpo%H1d?TbOn3U>p*I6;=C|dhNfE$q4j}#1Gnb;3R=Z zhe_zf)JYTKa65^(4zY(}9QZb+#LY<L2E!y7dQLF%hVjsklf;SX$gvaZ1R<X(0*9s% zO}uF6gn^sd!^|5Fo#Duiydd(jQ5<`jn|l7pp(8(VMwuTD1KS(fwr!_j9K_TPhmq~u zK26drp&m_#Vd#2EF!X&lNkcz&yu=Q?(J*kGQS8QK6x!j?&%A6%h~p0f8bx$OqabnP z5p}ZEaU<f6MkLOt=lSu_OPx3fiSH)EQ4-OJdQR%nV3>uW?KrWQxJgK&I3eCJwQWC0 zV-k#pzMDpwGt81C9tFPdCqa}9eLswyh>V7r6S<K`!_ZBWh|<VSl7No*OlGG+U=I`9 z@kS)GqtNjJFOBRtByQxUE;pHnH1VS_8D&lw2DVsH-dw%;!JFsr>4imaxVK=-Pj;EX zFf;cnxTW%AJ)!<sQtV6L{<5lH@!466s`f6{zRf7L&YNb+w(s6W5}rX?P3}sQNPox~ zn^AVxaRP5)MaeBWwIK1ij9qK6#%*F?1!l8hUu0m`4U}$18^T>bFs3hMG!SC6%4ox1 z8?0eo{M`)*bM%oBp_(?E){b?DTc=H4-cjjqnDE6VQ>$MogRlS4difIK5-)q)7+IqQ zqsv=YR#{<adhWnczP47=jHHbq1Q8(qq8c+?ADgV2H3RDmQk*0eZt|4WjlyLLDv?hC zNi>~;FFK`l%4ZS5bIs3b4+f5H53Glfg(LhzAxq28y5rh9-RjtOZ}X^n%&n;X$+WqK zPls4NxOYx!pncjculeVrsyR9opYPLgULNKp-7ho#2fm-tt7gB<_@7UzI=e5_OO7h@ z+a8kaoi?OCE@tc(W|TE2bV^CHSCuJgb|qDK7>9n8M0~J&c4#Nu5{jL~wxcAm`Q+lc zPUMD(4|yub_dGlBZEghlq2~vQ69<9sIkD#@Q5b}Fz^$PmNJ8HZL&p#NAn=nYa+8pI zlZoTUb{xdE7dftz#8HwYkrRf#7dvhc`L-LoiQ_nd9Yjvx{A4c<j47X=I`Tu$<HtHl z6nOmFk|gvZ#|!yZ$MN{@hH>b)zHfW6?fJGBxv?F`+@gzYJMjHP#<TJQU7j_h0;@&_ znf&&eGqC!7Y<jn!uDJuLQ`6P2S@Q<ghNSW$&3U)jWbI(oN{BS)K<7Wzgp)Hyvn?2C z+S>vsxg5Ujc$#h7j_ul>?c0GJ+L0aGiDNsC<2s(>^QZ4bPV6ME&0neOxxO2?p&Rj6 z<k_C%xt{0oCm(u|7jvuFcYN3PeBTfJ(2xAsPXaq|0ypq@HweNY3gRFM?a&F`&<p)A z;C68she>2duw+Dj6hvVZMRAnGcI?D%?8SZ@#9<u8ahxP};v_DA!AX#WNtDD%@>4(k z(_j1PuYK+7{QqD3`q#f9|MLHT{Ttu-X7{`N%m4q4Z+`PzH|_6!mw);Hzxl0i{mfTA z{-*ui@A5DI|F?eTXMXml{?MQQd#yk3$N%pC?@vDdXYIdk`rrKQAM?>ay78Bt|0loC zpZ0@)HU3+#{+Dn35fA>scmJa7KlnX<``N$f|BcQ6@Eia5!+&z?uPXkFKj6=L{%?Nw z?|k!reC@a0|NHO!1;bza-Tsu5f8PC_^?$ea$9?Y~fA6pO^gsLk{)}Jz*SG)n&;GY> z{ZSA9;h+0UM*q?8^(!C$%i-UA@jw0MKk?|F9{e@sfAt6bIY0WhKm5CY>;LuBf7tHd z_nkkV{CofZU;c%E&iU(K|F_@%V-NnZ&A&YVPk-M({fGZr^0!_8uiyM5_y3{ZUrhhQ z-}84o{g;BjY4$(<ra$5FKh^)MC;#Oi_-DWPw|4%nFaFQ3|KWT8z&n3o`tSelf9mPK z;QbBkzyA%t^!<P0{lD_nfByUbna}=>5B`qN|M#EyqaXbv>woF^KmNUc^^<=k`dcpl z=il-tJ^5$u{<YPA{RjWKFaMo;f6pKCfB%2~z1@F5_0wPb`ZvD$t)KbXZ;K6Uzu`Cj zrr-QqmLG7_{$J<+VDS`HaJY~natJ;H-UL4FRj4!!U-qx2^<kC5XW%jCANUG;+~8t- zSfz(KYvk9*B$XdeNI9nFKE)~D{&t$<S<$_0@7paJW1sxSue<a6cvv~^erB@WX;VJ| z>?GfEOY?AAUD8_Ef@^0A87rGYMjqL&q}n9l>zF8&TU+}!8kok}^(n14){|M&7phfn ztb_8RdPV#Ds?=`rPXe&`g4WkoNiXG3Z2@UG1l?xM6iW)=)`k^OR)OWZ)>L@4#x)2E z{=wQ?kkF2Dc5eM-p9-AvjVK{_tNX^f7z*T0%TN8G^;_=_gl)k$+%?X87Y-Tl%?POi zOF-hPFb7ERN8vtH28+=~00+q{DndnX^&p4De2{QTY>?3@=%<Ug(>ib1*XLQ66k`K! z>g0_U9b%0@k0R1=i@yg8ixgoOZ+wvxd_7N2*O?+KL*~W$%f3-j{PEq5x#!QXee<il z(s$l@=N;=XFK1T^-!DAG53RejN$+;FtOpssTXBvFNuQjqI>);k!<t@N{XSN1Z>~P) z@6xXFnbA`YM)NpcNe?0GU{O6py*C4h0$oB~H=h%*v6VLi%le_{FY+C<9eO#)XnI~* zclZ^<JMBM3vHCJ^K2V?TSRcZu`;48}=}){@efIxur}_-~!<~0OA8`lcne*a{yDy>9 zog4eoXN$WM(3;%+jGf<Qc|-d$vc|-De-hp4bT$;^LTA@g_<u%6PfJ0E{Ipcz4V9N> zACo%gD}6PYRON$9QjgFKfbRz-fIj($b6V%XpmKn`Vfv>K9)8@^XVqgm8KQX1DFs~^ z-iq4*{PQPybAH-Pnq5HNKG50q`-Gv!4EOZSODI``+B0a4NOtF{ewY_<#KStLWp+d+ zw8&W_{~k1S0wBLkT!P@_I}<2yzEwQ{xe*{Zdh2;zUBW{<tFQGXiHCJe>IOaz3;J<Y zkVae%Gz5~#Y*y0~ip8pYkAn8_FGmtBcpwO8@Ch2PM_gf(lj3QaH?kf7{1{6>#dAT7 zz$p;s$XCu=oe1?AL%~Ph=x&h{wpS5JqYYC~p2|1%;JPG}Jmq_Kp-2zkOi`TXjryye z)9EW((55Q!Dku8dKG*3EKDeP~!vb)CmGVCbO@Ky%QPk@1LV^S8Al(lYCd+#B#@g;S z1XZf#E%T9X{Lp&ICnIA5w~RyF4}Z=v0&e`jx#oSw&x}|sXr&@<&>V;F{86QKXXj4m z$Wgv#KA0Wb_{MMkrC?NendJ=T@10JAb|z_6mg(kPlX2E%87H&Jvc1B#WIG#oaDrU0 z^Ci46+WG0pj5ROM$pw8`l@zXR)&8=Yb$<Drm{;{u&Zs+g?wF5(FnBNgGTM9i2|HKB zH<{PEX1-y}wZQXU`(kbFG#?guIX)C=5k9J))EQup?q4_bH2;j=&l~hO?&r-Z0R1No zcS#Pb%W3*iK0cqOhol_O$e2FJSz5zCFcW>8vwWBrd2@|}AAN*FK+@sdd_qTi)nxi0 zuVH>f;$Fo}3)2yXuwW0)+6U~(6hTF(vQo{;>=?`a>*Km=Dk!!+f&R)pEGSGkO)HT4 z$}_m9r_-r8a(Bp@nxxGW$nxW~E-soMjD8vtUgo5bvpm~Fbjn^eD}hHG7mdRz<x9dI zs6_Eke2(XTxu<C?7VwDpGu#(468l#Ou?E6o{v)_394HErJ;LZ?lGfEhIjUM~M4f{q z#3?d{pW^I`Z}YSvO`aa+<tvy{8I`a3V^YKH_c1cx<<0fSFzM|VbaGgwyArLaz~{g$ zB9F$$2!aLE^eLlH&mPA6Qb7W|Wp-AR$+Y5ci$5rQ9ze(}C<*a-pmE3-Pe8h!rUaf= zJ|P8sKAn)FkQ?%G`5+(X4LtJWJjG}??@)3zL2gz!GTRsRu1|mzUT|IPmsw8Ayn!l0 zS~jFOh9yoEQYjLf$0RTHipy_ZjREMU+_&ZHxC|n2&x5}cvwy3>Vr&uv>V%Z9v>VUg zHt%Wt?@2iZARGVu;1b@mTK+n#A#?`lhPy?<|H#j$U~HOO&Pc9X;J7&6<DV5zHg<mg zNiB--1zO3&@pC<<jq$0dhC^D@jBhggi2M#eaa7^zv0Dg2egtKmUQdQq!5;9{mu6z1 z)9kQH)kA=M{Wj$GRbu~(FV-vza`}{ZBcsBExB7^%UCDjZ%Kqa);`=da&cFCV)4G|b z7&o9YWes+53f;8qFTPk?6W_M+Jp9${mYLW%e+~PX9^wazk8FGG^Unur`|U3J^UvQ+ zCmFN0cdUWAH6K~@wYW@B<WN_scz<N`?ax0)^#M4OI2eEy2l_`vV{3!Hw&30@)B)Pu z6c4VRl1%J@e~(E9b%bAh!Jh_zHH>?be+mY7Dt;deKKQNRB_n!caF#cP+0495bxm-@ z!2@xU!NG&gx44I|b`$C~anE$XN85Q`Wb*NTL@p>?96bF@;ayih{<-_QbLV&U4b9zN zs~7TdTs-6^6TdI`0R2~QAMk%+e6m#lou$7ZyfK=oUqO0hOaEBA$(Q`Wk7zM%PXy*` zf*g2LP4iU0sqRSQ??fHJPj|-Ki$<+CVazVAFXFx2vY)M(!;p}2`8@V^^pxU9*W7_; zyFnb-iJJfsQyBZU6D5h`2Ywj)Ug*1a6xxnsJANF8ZX88!5{0(sd2W>0b`nNG<c9oj z<OQxD+pZTRN#xpr9VbB&yGiW%4&NR7w(q)e==yQ!dA^+lZs3Q39lNm|MnM>c{PbR! z*hw74P8b7n&yHL>_S_)g*JH=N7bOYo30==~k~nZ<FYy99@a#AV122jq&kfx;_CqK1 zyfAcK*NvkviCrg&<1q5W!1uy1@*^KWfu0-rUKlt*VEb|6`JUq^Ug9N=A0?r~ABu0= zuIoB>;Mh*&_)g@<w(W&6zZ~0fLqD=(JB))Mj3VE2ozQh-F9=-Mb{s#p{V?<*CkTVY zaUC!6{J@U<C=SBJkHXmVLoal~C~+OziS5wmyX}zwgzZLAV7p=LCk|Y9U<Yx?5A=dC z@_g40BRhy4hrgx7b^RdleLIMPIB|o>^<6u5eaCbBFbTpqv7M0b@@<!2DCFpa5OS<8 zf1Obn#Qg5U&~`oBv4hBlN9y@O<k}HGwHMj3ANe8gDoz-?VdC<a7yGf}#J(FRp5w=U z9Jqes$D!}Xk(0Pl%sWTuMvfZ=Q51MdWV=xq#-SY~ylEIY{B=07=f^>0`@ZW2cH|^c z5(c*IM~<Hajvd&3;<}C>MPU#|p%*4z9EQ9vCQ%Z&uH)E|6T6`w_(|mXQRIf9>$^c@ zC%&6_t{cQ|l*9pa_W<f_-7xTC5Bhf)xuNGoPUw4f64*hK1a=(7b`-c?<nYJi*p9;w ziUL3KJSXrS-*x!CyHVhKap(n!6GgG(M0UVW61$NfyIvgdLFLD`lh{cRI<}i6ZsNqQ z?>VvSMUXL%B0GtA7fymOaCm2p0>}0uKZ)!(j>Clil4}P}oOoUm*bzUkm+&osesGe= z4Fflh+&E0az;Wz2bOZk2pwIhB62*}p$B`FBj>iXi=-Rwb*+J|lu^sWZ81Nr;5-$#X z-Un@dkmEVL_c%e~`Fwc#@R0p5OkDmz>?lZL--|sbaT14jLC=m7H{h2Zxk((tykgr) z9NS*v{6Cz%34Bx6mH2=4j->bWB-v&&i@{HpZ7kvKJ?%1HN)xh7)+V8uG|4mu3vls5 zy+D>`{@yoMvl9#f3}*2H#x};rK$A8}?GO{v20uYNCCHKuA#J8jJ8ge$=l{7!Ha3KG zI*WV1_uY5SUC%l9N-@4}o8%NN4!g}JIb75^?M{o+Zl{JO*(JN%ffi|VQ4e)UZqem- ziZ+W&ayzLb+g(<N+hui14y(mQy_x#2)9P@DbSM@&`F7E6lblYsh1!SHNjq;BZIaVP z{SJS}4Lfa>M4QFxcG9q7k!Ub+yIhjf?xs%Ybh{i5ht+MfN^ZNw>b6qHc1sSM%_-4k zb2#l*i_Pw^if+k5=iKSCT1B_R>JV)fhlO^`ZWV2!%W1PaM7PE1bcoazZIab)bGn>% zrvrZ{!s50#><$_pog)59o!#b^teCo}sf%vW;kH>_c9%%wtd)+5MrNC27p;=ybUA{n zXt9YdyVdEoxm^w#i`-VL&FQw<sq;ClPMaOQUUb{3^SUf9Npv`Ec8kqMUEJli*laep z(?MgM%ON`Ll0~F$YOzT!$>p@UU2dz}?ncLuM7v#bQD=ACEiO80C$$8(RdTu{YKCsB zDAJxv7VIx|RJ%>G;%`}7B$tbNzTNF`x@|VQ(`~cbX!NsMB$w4qr_4r!hs{N!jAW%@ z%<6E`DV1o(Zg;v})cZx7-G%>f-s-SAoo=he>ae&ayF-*LF3DxLS{*hwTByxpaY#0Y z-6A?{cDI}EV-~mMq$chZ9U>0g;<n;1D2bxeDY@J(Npw4{4vXDtrP0*pvN{}Y7d0z8 z4Rm(5!y&n;tB7tFwFjr2Za|`yZe1?A;?!W>bgQvAtriPy!)38rX*h674!0!HQ0<be zc9+X0p{v^H0H~w79c~+jJQ{VZqDWh{Q4erCB$wUoa@rkq2HdnyHk+N!vCWE`ngjoq zfCcwV$!W8=opf)uyXbOK&y_58iAG?_MS}{B_BNM|?kiR|on?yye`(#~bXY{uZLx|D z7gdw6n<5RQPEoSB?RK}-VWakKlPp$;gAUbVwc72H(`I)$B)8q}ph4G0yX&N;=b)}* z6KxKsg9bQi`_!kLF469!;mhKb=zLqPE|=Bjc2G)Ik?t*a{55$Ra;UqyMe0cs9yuh7 z#YRn?I-A{Ybx3q;v{<cHtLU)OHtdqqLM@+qi_<OHsDD`9E~}NcB{^(PtCOyX)9r9u zsQ+1=4wprAN=}h(sxBLKe7jY0NcdM4XfT&tHX0NqdJ?ePXdH0c91cm6EKZwK!stZz zU>XK2ZmWx)4lEWcZJD}*#p0GEI@b=1M5DOFNqg(GI9yhj-QjXsoK`z6klb{YtTxHw zwu(;C?yy>D7`D)s=#tW%%4HQLm&Iar*+jP_S{&5&To#whWwToCG~C$TbXu&Uh^Ffl zoi4X%x7eL7o6{=M!xi-`x7})`fm))oWpUaaHn*FOjvkV17N^VYl;~;2DOu?$MshoB zk|<hj7K>!DStL<((Y?q)w_H2!;<OWz3->n3O^<4B2_v3_zhmZhTj(;{B?nb-yG6G< zxCTyo)Nx7FnOrnrTP3&KN{?T5t4*?7Eh4pghubMhqD8XN<A=rK!hcZVrrV}SPlpnX zTQ<>wfAWF`Er}k1tZs|l;*gwftJCVR2Y*RTwBuoe?jml<Zgo>@qS2d%8+zQ6tQI`x z*z8sp9h%MRa?=x@)ormlY<AHuI_VB!m8>)tN*1e2ve~KU;vX`#NmiR1uV1IeMq|Fi zMeWdOb5kFrp^JKy)nRqh^`ddt;<7t!qTNbQc@8@@0EgXfw_8Pto|Q5DNOU7`IURT| zw1_skf6_fevbn4-w}sJZn3K1eR+(w_GHR9yoyvp?Oz1pDF^vfgXF|11sFewIGNBnv zXfhMJfYHrobPE{WLPqCibg@kH7fkaFrrF0FyUrZ@j5!uy8b4$jf5tTSGm2<N!7(A} zOh_CP3JmBO&@eEQfe?lPMj<f@!YINRNM%?(!{`{D$S8nOC>Vu-Q5YG8nNjeJLdP&_ zhG7^818^EZ8xM>`7=@BiFpR>@z+8rjfs)lR45To?!#f2@@J>Mjyi>q1ObWxKGfV=* zgfR?(cM4PCox%n1?&C4=?&Av?jhW$RLwU0g%A0=&2HSNgZN3Gi&A$hO?YFSwvyY&{ z{}V<(1=ijE5VqaE1aIAb7uMar2HS4`8s5772`F??pwLCb!2Z23(AWS22j7N)!~0<1 zP(2JB*$e|sTVdeX78p3X9R_~i1p{Ap!oYua!@wU;!@z&l!oXKGFz|<UFz}Z;82Eo1 zVBk;dVc^f3VBqf?Vc@?@Vc@SNFz~l>7`Rae1HMWaxLyGRpH;&^pb7>?cEiB%E*S9d zfq`3Z!NBKxVPLcY<gK;v>uu{8g$SUG1m%pWpj9P+T1h~yG=o}c1GO?0)T())RufRG zc~Gn4K&`d_>v90=P6pO(05&BA*pvuhQ(}Q#m<;T~SYT~afOTkqbuIu_Q~)c60xKo~ zD}@6qDS?$lU@fzNwIl*-oer!u9oRSxum%FGpaphTG_bQwz|L|2I}3oF9S-ai2e4D) zfSncwtZqKAIu2OfG+^}%u==^cYVE*kd0@2)V6~yZstB+u4X`RLu&e@DmIIcg0!!k7 zRhWTQL;$PcfQ1ZD+U%gTaiFx@Kxs|}rP&V3coit)r-L%y0Lu7OP%fAc$^}MH&Ub+_ zN&(6!BPgfDgEA}$lwmedPD=yjR3#{<@}Shu1Ern?rQQIl)O1kUQ$b~q0+l@)RQCCx zvdsgPjRBR71(j0*m30oNtl^+aN(EIC3o3I8sLZLLGV4HPo&l=(L{P=sK@}4Ts+j4Z zic^9rZaS#uGoUg$KxNc{$~YHPvw2WOXh0RA1J!gERN)z*3fF;3rvg<-D5w-6pduzv zfe0#41D}=#e3}G&S_1HCI^Z)hfKTOscSiy5HUsZ=0`GPM@8E%V%mv;t6L@DF@J<)- zPAl+n3gF}B122RCF97g@75Io`;AhPSezpSm@ae#Z7=aHB13r`iKGXobP6@m=9e8a# z@LV$RN(b<&>A({u@FWa)G99$3R?se709v;Zv~DwK-A>TPhk@2)0_}V|Xk+GrHfAbl zW0jzdP6chW2-;{pXrpI?HYx?QQ37bA2xueipq)DpwDS@{JI@5#SxKOsWdQB0aL`Vl z2HF`hpq*g^?bHa+P7MR?Gz(~_rGa+pEYRxagH|npR-FP`RWxW-si0MAL90}PRv7_W zr3JJ~3A6y9g?XTbWY9u9XqgDmG6b}WNYE-c&?@Yp*1JKiPXo0+0~jI!L#)6svw<NF zV3-JChz%H$3Jk*o!-N2%m;;Q01xBF)Mxg~p5etk$2aG}qjAAY@BncQ|0fwXlL#6^l z!fBWUMnUT}0K>!r4R#FU0)|-#3}XXEVF8Ar|4Rl&kpPTh8ZZi~Hw73)Bru8@z$j({ zqX-2?!2v@ufB}|9V_;w!Ffb1o5P%^74ABEa6u=PLcRG$)z>sOckYr%frvjTQ0GmD! z)bm1sO`i*FdJ3@V(?B^j9@q>3Hk|>r(FW={Nx-JYf_knN)S??yf&!Fr9BlpDAAr#t zfYC<-qmKecKOY#q5g2_kF!}^w^fAEb<ABk}0;69Dj6Mw*eFkXUNx*5Hz%kQ-o2~~g zDFrxp9E56TLFilwLTAp0P`3b~q7FiMH-xAh5HdF!LZ^iQYazgjdSESDP*0f!tQZFB zP!q5g6{tfKfVIv5HOql2oB^fQ0IC!hsKR4`*9)Ky4+GUaJE#^c1XXwhD3cOFJ!dv3 zApx{5Cn%G7P?H2uCMrM~nF#7+6YyF)s6(8fW|Kfg{cJ%junrN_x`m*MBfwgcfVFU- zPE&wd6#;7XR8YsHfjUkP$|<41Iubz5E(CQ_0#yC^7Hs<O&l!z{(byS{jnOP*H0g}S z#b_2Vnq)?kz-VF_&3r}^&1eh^7sYU~3>U+2@eG&5a0?i2KEt^fE}h|Q4Ci1tk>SD^ zZYIM`Ww?0^CotSJhMU1~(-}?&>;CpJl-_<Hs;}2UqQwU#za54|%Ppu0d=47}qfimJ z2|EM7fkexnA<^<j*ywA865kf6@ok2UzRghL+X*$k?NIag4`Jiq2cY8bA3^<Z`ytWt z4kTKB42hNxq2^l}*!V3DHeLS%Yz+JvHeUY=Z2j-ApyD?_2dzoTSPh^xbBwf*Q7iy$ zbQow2B50$+KpQ0jJA(sFh8<Xe19qksG{Owf&UFGG9}Vg`5ulzk9eBkoP)A1qZ_xp- zP=Y3UA#iDNz|G--O-%+iB_3FI0jTHC1&uBoG+`mY#f1VFuL0H;3+gB<sHwY0&IaCW z1`RhGxC9ljsTNSrO$UC81eyp9u+}7C6$CWN3BX3D1FLiaFBn1NN(app0$lP;P{$cT zJ0~7^<80uQCD1r+pb0esmtX`gV>+-gc3@Mjz@{w#cG@gZyLeD*!a+Ta0H<~WrvTul z&I2~y32M_qRDA_d98D7_?iSqLHArxGhXBFd-GjRZKius@6Wk$q2ynOt=OAzdw?hwo z_t&d>Rj+D$x~FHRZ+B+5d-iswTYGK>PSBS5>LhSz&OWk`8qsxHb{F3|LiaQh`%tF1 z1g9^E{c35ZYyq<@Uz9+gjc7=N7fy%=XZgENgckkK*bD*)2w!s;S!j>q7fH7K9ev38 zFoM}h)bTcbC{8}w5BB=mhbhoPyt{XZ$fAi1az)hSiV(EMx%yCER@?<A@RzsjLk*lz zEMizBdO#KIAwX#E6t<N6QdVvf5Q8AVuPdEdi7M!X;kf4j$D)bY@R1^5gm5>7-f=B< zD0U86(2Bg7ZlX+3b%^D9NbGoh7U89jabDSZep(YgRRyJk6!&CaUVDy6S|SZu(h9?I z@wRM%8!5-#NEX8p3&Antm$c1Nlzl3a=`H21>rI3%8tn2AC=L<)G)0^JSZWV@WvHZ( z9~rr>(2s{U|BFm2Mz5bltJlPQ=?mC(h>vDAhr_Nx<_;nDyw;Tw(?Sg~CcPq;xU$lf z=C?qaWrRDljV!c76`X}XVI-<u$|^JO##=r?nx9ogO`S&QfR`>-l_n6wZ1>TPOiMv9 z=O=pfL=mv2bd+6;;E#dJ#TnXIl#!4^TyFbRHv192loX+Wki*fGtt|fs@=Ra;kjR%I zqiV#ORAl!8I9LRzt1-QK#+oQm3F^mgtlgSpX@VRKS9$WQwwlN>VO)WFYT+AG?V1^Q z$#s-IAB?NNY-JP8QOrza0_@ZROMiw$Qic*ZJ$;ZYvzaZk$+ao0Wi--Aua{)_c_;&F z(2D4&gnJ1L(^0=}=xN7~M+KQ9IBqSJp{t>;;Gq|B6A7Pl?%MxG%mpBr)_*XRL}~X~ ziby$((9(zZu#7AvM=dyF8&a5tGjD*K*+QE)<Q&q}Le{T9`Xmt+#~M*8i1{cV1YSUF z`YXdQgDPo+X{yfdxe_>ZY#p)GHgwD%ftiovEQY&P<hc8*B9e$}=oh7S;lD^xNrYu% zqS_9AnFie`QE$Q8eFbe3`$$1?{KrSnT>}1yG);I(QLM)`(%s{&MEooK4n(1=7rk8v z%%Qmwi~?l)dB(VCW)%dD3}k`tbY&_+5o4l60>+}$n2y!c$TP`?yZHYQN$ikj-4Haz zP=))Eg^Tfpi^+wH;fgd-O>5yykHmL@zPk~PUxhu>7lt(Q5lq)OcdH8{J}Ds-GQzuj zgI~czt%t3S;X$A{LDDC}u6M?1_9+^gRYUT#C#{`9s67@uMnmne$8c0nA5vV0{Z&Ev zXv=hk?jtR>gb@;j6w*o+a8jr!aYfcLRKpBc`T;xS$#u5}I^-f3v04S!l!Qv1JXAL` zq=k+cHc7ebz>FZZjYRIl=$P@TOohHo#Zo4-4^AM#eV){*Zy|!&j@^-X7N)z%1y&5_ zh4sq3Jj=ZJ%B%>aE7ajq@Nf#);0oAuWe6@1+#@l%Z81GN33rpPhsfl2|J@96VIgu$ zpmg6F4H<0>8R<l1;zwlaL}va&I7~*F?ST{4p!Bq*_WU8gi$vjhlQk3@kI*}W?rKWd z-11>a^y|<GqvcnXA^cCx7$}CZX!WAlhRASrc_{V9*!791`txvN{K(6gjM^--h#d<U z&T1I7qomqm^fGRR7|w-M%f<-KToQt4WhJ~szCX0*$6RD6O3_ZP(6s0B&^r*j%KR(| zeH%Z{_Yju(#72RLFoO&Tk4zKFe3+tViEu@834FQ5j<(3>d+y47;-h98V%0`PyY(nB zaueltb$CNbP=dN}xcgi2xcf73a?QO)stim$kBL}JgY4i<gP1<R*l<tZM9R|gaDTQl z&R2~_aZBL)9xut{mZO-(5&M#f&f6Wy<PJx0OAz`VQywjTDpS*fGZPIJ!uBQmTQ-#k z|1-I#Yzj|0mlxNU%m;=De90(}_yo$P(BRGD@O{bH=d0`^xKkpyHL!mQ5FIW0mZ@PP zn-x&|IvLMbwUnt9V*hL>gCT^U0_eU@`twx@Wol}uW(CN;PB`;btz~LoWRz72V=Cq4 zzNsP7vE9)9u8IX@k)o-nMBuGbqIoIEDo-Mysd&jMCsN7k5W{j<u(DVHAw^8(Z&*`$ z7?M?1MTx1blu=G3lhw)it7AoZv?MD-GYEI<E_AewDRVgs*KdRyq{~^6H_EDx^_$ny zp0*^?7R8<)PeyAyXrFVQ;xGb4iW+3Yca)+(PhoR3EFr**A#0|I))6aR8%kZf4=3AW zg!dyY0#A)Rh7(N7sDMd#LW;IfNXKXz0k}e&AHOP7%|m@+L_Es;PsTwNMS~MDs0-~0 zkK*XAyex^iOzj&|F%yz+Vt(0Dr8H2T<4728n~>Pos!f_@8hQH+Z+@m6_0)HsxjI_# z6Lou|Q`r||88Iqp3Tn)t{gC<De8deA)m@wIp}8(NDGMY?XPm3gn!D##LpAFWb7=6A z#bI~?a5M!7A+@kQHMlR+hPw>-GMU1t0_cMCj7$+@_3$YS7y=n^<SxQTNA9P55o6gX zqDz$X`M+dF#-o`-*d425BkbddgnbAd|FKH*tHGPP3V0qX?&`G+@nS|4w%~Q6vBb3A z(CVQNC5l>-I7c4XBZz&$J^{;Xi!o_$?#mQkAayKa|9Di^W|~IIwxX_0X4g)*!HP@z zlpmKwL|pgR`upF#4{R1cKO0+BB#f&1tdrFFfX=CprZ}d9E?-jaM}#&C_20@Y&t2k@ zzQiT{iA(w#m!yPEGKEdDde9ft^3VFaRkK5Rq`jm>NR_(e-udlHfLPO)V6pzMpxM*- zP7A4J|JQjOb${!Ph+}wlT<eYGWAp++s&3G-fB!LUHH%}=?ebkk=xSQYurF%07_Zw< zdww++YGc=}nTLq-QVI6zT+z=kzmYqT?rLyh)5FEs?a-Z%-Rhjbg;W>yQjog8<xkY5 zjMKy3#!{ETunWTK;?=p*pJ4+r)rT9rOT0NKG~*au+S@nSdDKJg=u7tMLKadxch}$3 z#H1v{dv3kg4}MOiNI4l796&8E6VJZ%1WLJ>n(1u~_6!b$`@fgG#XYRtd7MhM*k3JM zj$0m9{ZRXpt12bAI%sF~eqUN-3VQc@k9-?>ReDalqoG;b+!4L<3lDyuc+-8QdM$o6 zdv!pWM48<2psuB=r7#p~e!GjDLA*mWL75{Y#_7cB#OcH?>27~pj8mhKI^`fcgVr}? zG202S)u<qAusi7}WI7j|)l9$_P*$oiXy7b>KWY>>dfPT1w)yB?P-crM9n602`F~{j z*2Hkh@I4H2hD+vVOR3Mu&Uj7hp|xjiKE=@z(c3U^i<T%gtNm}(gePada@o`CRLL&7 z5SyfHA<C`Yaub$e`QDP<2U+hK7%oxkh?d9|)R|d|mJm|a+<sm91Z81oXJBApXSZqn zChRxmSukO${kX&s2$kZT=9=u+d(Iq@D~vyh@5FNJ*OR3hQ6Ui0U`(&p$JB6~)%5W@ z5%QzZaLgakBq;D%AmM&G@?MO|v2$=}GRo{{784VD{$tRlV7!o0@UJ&~gZX{yy|lWJ zalti%u}!5lPb1@xYlf?RrmavRWBfX!$PDv@ouG<)+XQ_9i$O__Uq#^MDF5rs>tUE* z`5@!OF2|<ZRd)XYN8NSyALyiL$ib)TId;`)STgCTqnW8%ptn$2z}z8Vq?CClu&$h` zA+WBV8C2lPTj*ZQ$y+GNvuP(7I&cA4zlDM%+m3G-KG`oFvUKHZbWIsgS8r}|z>;Ud zLX9ph>Q9C4555H&7FoG@8W!~y9)h7Qp}Fh6y)ARDKl@MT&tHjvJokEe8Y2#{-~S7` z6EJWQgg%^=r)^F%hud**an$tKw>fn?G_8Yow4DW!$(^UG(--aA*gRV^CI2T~f3;BK zEv{>(dT4gUUf1&7>*>E0S8@?wkSoLkWGR@ke4nRLQG=7G!4U8C<!iD1($%_R+l0lA zgCNwT5GG3^#eT`t;`_S5#%B$aO~qIzp{J9X>V=bif#Z+w`-4oL&)|F$s%H<O`)yF~ zDb2eXJlnjs4Z6UxAtLstPHDLmiFxgPG=XJdShf+C6`R*)NDwH`z$Y^6`PF9sct-c0 zb2rc$Jpc)^2rO;tL%Eq5fSeDsBIaFQWe+Ow3+yOaWK%)1n<@_MSa^5-a`4<`e}Yb? zTK)ZOVU*T%hJ>-YI1Z7tFygNs|6GR3A36YeZ7*8!q(n}IPENHT!ldaND}OQmxD%O= zV*!O#q?pO=u%dYiv1=HBjO_n%Tf51)hOAuQGU^Y6pS8RUttlTHMlrFB6%H_nl$2Xj z2^ZO07}4B!6498nWMB`p`nfiuhE}c{Q2XXcT0qS$j7YL+md?owYg;1yZAznk0{lX7 zqVo%`>24n<>pr&<yNs1&twJY-_Hg~WLkRr7Tf0J;ozWWYW1B+w?Twq`+`3aGY;0=M zSjPCN1|SUtr;?q-9gl0ml4fF#Rz_V-XTUsLk;VWhx3SiGEbmR(ig#+YZ)E3uS9>#p zn&+KU^_+p<n85%AKZ$1}PRc`{6>Ldkvn@|`$0KRIR319{NcnZgka%b>Ztws)|IDKw zP3Pu0hg6iYM_Qd_Nu%t?ZE^E=c!5q!@}e6R6x}e#>E>}hSg%!k35iG!u+HR32?}=E zSceKn&U6z$^NwEU6#tseLr!F{lUP(XO0%o19~aeGv7ul)ZAr_z6IPrIDuNX?rngcH zWy{F0vwi-YFsZ6%_}?NvQEqLYJQ3p$t8#MU`a);J+PGL}TRVH=!zQDCP7a~owVkC8 zwd<5?e@=E<LE%TrWgWcDE;hT%>qBq*Zvz@5p&lueqJyIRJp4jFU;h25>QOV`H0$8x zcesP}9rSSMHyA>L+%@%Qe-s_`1orgwOnDm|{4@4$=n-=6B(b(;15W=(8EyB~%G}ER z@5!e?7w^@2<F+6-(8g9r-3s^X-&VV+)|~Cy^#Nyvl|`bahH29tQ8AA{KfWl4^oRtC zG&P#{{48rO^PJhJa&cdFotvplAY2Pv!-oMm42WSs4TBFbAcFxB45-!u4e_01nV8tw zKN}@rsOcI1w}+pdTN@?+iBoSR>Z>j`=AUNm|3A^e=J?ayH!%2p(9Uv4`YzZ6RWKyb z(QGpp6?Zu_@Jf0#H>I#MJg~d-erklOa8TUa?-X({)durcK^zKOnsclrCMEIWbXYS} zS~4DTI)A}YELYR$i%UhhA=vIvYvp)3zfis}Hy)=NpNgH0P1U=o<YVv@HyI~raZJ4t zaxgvrk0Vs>4#w&<J*L<Qs`7B$%pNE|hcW#A$M_0kJir)Tjknn6J&Quio-oD^jPVMq zfdi}I+_xy?d!)Lfy#!-2z?iA#$0HkQHdGQYsoYrSJ>FJF^Vyg%ZBO2J4r&A47^wC2 zgD^oQb@7dYW)0oOVI3#VcYm-ARxP#zI{uwB*4-JTnMrtc>^ndI0o6G)Wt(#J2fc0N zxR^9`n%52Je{J};@zW)H)w#*-eq~Yv@}cK=!>?z;gh9xxE~l{Z%Y??NV_4f3xS_w( z+&#kt%-r+E9il&}0TPAQZqd_Zn;cYl7ltgGu+iMDOe*z%g?RNSNOE^gjvoj@ySsEG zFB-Dbf=|KrJqqsk`jayt<DPXBmM&m}cT!hIwRc^Yj(esFSP&-kMt_pZJ86rq3x*1} z{x)Rwg7tf*OxQ|uOu$Rtbs@&?nOead2kt#zE?|Nj`m(*#w&))MI1bEv6fW-cgVYX) zJ-%<9aAj}yRo$+eoO0c*1WtkVJ@UI2P5w39<piGg9Y8*K^la^M<(l*#co%kUnf&E? z&<~pG?*Msw6nDwGU+V)KKo~tUCVv}l^#fe`i9n(rcFhm%halCLcVmyLu36X@qJTP> z(Cn>$4G{gHy1ot&JFKZOtZ6Vu{~wUCM@LucY($r)``yZfTe~2vj95)8NNe&OlnFAv zREhTQ?*i>^OJ}ACtjlN42z-Ai$tnc<^{7ZP2?f@HE4+I{^dy;R?(`?d5B#9rA*!(c z%P2hX>oI~=SQ-E-^?mW~?NXIIX!tKQV-wcfY-c{1Tg<Sw2NfV^Sce;5{94ctuIu{) za=uhK3vYuluJoshL8?7VCg)t`#gLqN^FTGnF0i{t!`692W^iAJcUqU`1#Iy8L83h) zCLI0&r(jK3VM0aYXnI$Gix=@mUxzO-m>b4BXn>7@%fXVKxqG_Ufqsv!d!`ud<mB9Q zd%=Ft_APFj>&A*sMJ_D2BjLtTuXY+|f3Cbv>kUDBrv~2=-UfwdXBo8$zm+J7N<OOE zO&J5ia~!U;RMOMS-*0}_#l?nU<Vrr|o9AQXKU?}JHcy6gf}1N*H_t~ycm~cD>ev)8 z+2vf=<<x!*NiMeIEEzk;I>x&>M#}WMP<2VGFVMI2A*)5%C~j7kD7bk{BXBH8MmuqB zxG+_BI5vIFTlr5zU*{6%>DJIViQhDy?aoCsabLKRc)DxXwLN*}WA^c{?2F&Gw`<>w z9TVNkQISHerZL%hxhQU`^xK&WcxWCPc}p=@bQ2DS(^vl{BT2O3gqA3>8G|ArUxX96 zJw`jYKzs$0N_|Ajle`F&*_-44?vS#F4Hvon16)38Nepb5F!=AD`7f~IsblYFla5tk z`TsWVBSJClU|3Uq?zj`k1>k32zY2jut`Cl&nE1L&7KsV3IbFYdakdjg3BFe0`+nzw zz(dQnSZOkFZ6YMuX)@DnXx*|m!2}SM9y3WMe_*k9Ziw+k&Kyv}yQyp0Bu=Itzqkv9 z<)jRDf8Xi@<DDFmy(Zr8E5gGcc6(DUJNq_oFaF{Rg&RsW!xmLb?>DSeM~)!IKl$HY zzMT1nzBj&wB91@d-qD=xNHsf@mA?a}M~AK>|G}0A-*;iVzD(r5Exm5P_P-vYs-mRg z2y8n`@Oj#n{ZkBn9;%K+L_|gP3)P0m9HZJ<Tr_M!4?vS6|0BNQZZaQesZW*`WqFil zN!=ZQew0`a{P0hfAo!Y+Yc=5TA4u$gC2ZrZ?E*HlZX8~M&7%9G9Z;W9=CDg>`aHkC z=!{lPs(li2{^7BlWw!BrJ(0F4b@AAJy1zu@A0F~=ACxv1w)JowJH?bc#baRF*k}5+ z=gE8K;A^gsDJbByVWaeNpl=`2SW5E@{yirYsuLdge9$H3G|<uemg(oQ`3Dh1U>%iZ zsnX26hJS{hisTT*F<fjpDNvYGpfNRF&Dl0#BgiFGsGq07F;nf@c8qGj#NNg>?mGFY z5HejI(&p5$ek<4ZeaMwvpfGW|+PcjtWxajHHRz9P(2Q%)_8G^z{t?Ie!2Mme3r3rM zlX;t;(M9W4{Z>>x&7<nvlj`b%7U^vbhj#Dm&d;Smr~anCpl<*E_j!{FCGuC8`FWtm zINOlY@uF?E=^FHlet!uH{}VTqn)z1H&tPW9unD4;_&U84usGPmGT+6e-6hd%^?a3| z@t40tNbU4x8#XI8ek~M5IIUCa)kJabN)^aXr98d!XhgrwK_YjC%{Uo0MPE8<Uc@wa z>bG_|)`=Y*ud`hrvRx@8b;WXy&1j|{H^)?AQ<kWF>GPGA3<<Gu+m&;w;Ev*)$GOW} z4^iHbe_L1i{38-oBZv36r5+TL;VTw8|9H;ta?kH`X|8iUAa3i2O<TK7TmPEG!A)oP zZpYUK)Yk^*w+2+?lD!~{KYL9l5Ceax%Vem@&i!i9-Ksv+r8ji5^Lh2l^Xi|cRVql+ z>0MLPZBrAZY3F!H`*cV9a_1^1TrNI*MC3gVlc9>`weaMn5OnY13_Bh?8X+F*hdUu- z78d(WQYSm!^MiNo;hXmF_YH67DQ{FnZ&banVg;{aqAy}oFW6!)y+2^-Ywzi6uh{FS zKW}4#@0%2_9{x`c9#@wphdbeugM-`Q&7(U3lRInYQhEnczVqRaW$(&K??=?{3k+`z zy)WYhA;B9jT%X=@Zr%tE-UxbMSW+Lgd>^$;uS)A7rQ%1M1}7dnmmVHB{#lP&Zdd-< z&%GNjW;1V%lHm{V;SVx9Zv<}_K5zU=uMV@&;8Z9M<t^3G%|prUgWqGY*7Mv7bgqP^ zf$i>r>h_cV^BmP}smuK*!Kb;wgTdzEaI2bkS*^1AW&he$|5`fjPA+Y8s@i&Vy+&L; zcPzbolplg9KQxhl;2{6dMEdc7{6h<NEa8fO3P$J%M*Mmn`E?V4LJ)PO6tn&m(^Z&! z&5(M{m$eycX{l>xxzD?^&?)`eBK-;-%IS}Ma^Gpm8M@bqJm-omPKlIoK<IS|<?2QB z`15S+95NIC^2Oxk%O)Z=Q)Cyp;*@c`&^eC48J55qx&S5G**3{q@1Ip;ihy3B<|aN* zOSN4~yWQQfp|>u?_)h4?Jqk`PasfG_QYvaH4Yt7Lb@3LFqX?ek_CJ>$Qb!3Q$6&Gf z6$(c&3dbE%;jeV_Ep+o?jPpGV^MR7{f2fYwv3;p9eT&hH8nJx+P-ctJZrh=vVh9ea z$g}#WKZ6ktHxNjED5?f2s@|t$on04$cy)}0bb{O~+k-3XzgD(-SN^c7{CA|Rv8sIj zFa2jm`p<I)iXbJy#+$p&WLNRCQwe?@3kjW_k2*V&tySK(F2zkAbHGkHhRxYDS1FNJ zm$pmU9Z!`RV99KHTqpy!N7`8f1@|%8dY5~5yK}eeI50AW0d+M^ppk~#gHoi=rqXE% znEvl?A_2p=s$%M&6v|BjQ(Zyt|D3_{=bkg^>8V^JU!RpkQ&W8fQhjrheLvwe@lYK% zQj6#cF6xT(4fq6%T%`N-GaPoMnI2JbeW&EwmNJHg4_>-oXw|JCIv6QjP0=rUpt&S( z_)aP@=+Qk8*xne{?!N7~Z60nm?r8SRsxg<+=t6GhAK?26TEI@JpfFKd6-sp%7y5Y& zbbOs%z&245`jg^rEcNrdRe;IO(aQZo169SQU$VQDKws$P)ji_KW}%Y52le*$$Dhx@ zqYIk~4=Re#I{S93{iBlTir`>HiqzB#H|lMJPfz!e3$IlpV!?{IXEYM?!W-Q_?Or=q zjg1Rq<~uoUBOb*xAYF-|katI)Q%93+$LIS6-I)ris*2)Z#onJvy{joD7Zm4`B0+we zjyw5<cAM@wT|4!)gGMcf_A~i~r+y&Qu2Xxrof!=YAt8^!9-D2?rTap$pYdq|+grL9 zQlTgIa{E^;oqug=JO=v1A0NLLKCf<Xg`e5)5C6?cEsRgyb`|x$QC^>6IE>eFg+=x_ zun(S?N%a|_qKFqW_VA-3yAbwidpPr4O)Yc?b}x|#Z)<|s?^G9tin-qxGbKgf$%d&D zM@Hd6aEy?!=)h*JXh%t<0EM9svSF&k@LFhrY2t8RF#uek_3|^BQF73$E$<07V3hTp zE|74?f-!CHISp9x7zPkeyyQt|X?dFhvt>QUh{t+Mv1pZV@c?xn-*h2_lNNMp+Oujo zWm{ibkq#QunI7MA!N{ENL=*Bor;G%pQVjX5{?WG9p^_O1kP$|L@qLylPjQCd(Loh3 z5K2J3bN_%l8LruS{pyyHaydx5{`e-uNU`&t1Gaj7SAl%K@Moks2-AWQ92ses@6wRZ zZ)ugJ2XE?$pD%d+N6@g1J%lqgSwVMzE{`uewjWs0KjUR2=m8YUnB|87>WlydOM3Zo z#(ZU>z=#u$Wm~cgCfxZaB1)sUWdLdfll*X|oibM-oNo-PuPvF57PWjFfYX-MDEVBI zi5e`>O1fFBDGnsF<y|3w;e1=(dmG|wT8GS0!#T=58AU*R3yseN23Q>OafLudpB5R0 zZD=_FpTSl?H8B{BB9ocZ%FMBh5|WwH7NKAAlm!>nsYk=OY1e@P5Z0AK>DKfF@aHoF z{0T+oOr;j8^cTz(2L>tWjR~8zlIVI_(TRQGQumB#b-FYgs4NUKrR_g1D&z1Kizj&F z0>r`5V3jNrbqD}Ao#pd|RYrUWY>Zw*i@*$}v|3i-rHoKu4N$j?N&Z@3LMbd>Jo-*j z2?L-8<Tt$ZSAmBFLa<hzn=0X;2!X^014<a_JQ)sNMLg-U;3=@t^0Sc6w-?Dk;yZJ? zSfDzDGKYsr0cZyn;hdvaP{uWix*5zMWN4efryR#s=Jh5rirNR#jRH+uW1h<C(+C-E zU?r>0IxxS*Mp37_(uwJ@;J`D74@OCx%sjNKfK`CY1m>~@VN=HC-$!$XCI$<ZosqlH z=)TmK4^Zm+2MvfQWM@JbPv)Do)Pxc>tr~zunHR!n6yr^kuFjZZla;G12(f_>Lik`; zCYwVWu9=uVNIUrZI$ZTFu}?NE;gy^|TwxNN%X-KZu3*kISa~humGVLaRfFg*KjZQx zzkK4S2`o;K3sVFsfoS0?)5MeSkboFqv_LEoRed^-j2cf#kMt1mVWLT`zsa=-1XDq1 z@-=Qf>V*pm4^e}Byno<mMS!A081FB&7;&Kv5bB)w*vItuw7#?#4s_agMO*OBL@7X^ zF&6*Ve7B;?{sy5eDfudEB<Gkn(>3iETi%?y1k{NPrIsRwb!F^8!l}TFl;w<?W>Y0d zdJu##Cms-D%NmF>HKGjfjRC_o83?dj5^1U?(;AEg!y_uZ-pql-{|J6f)5ikW!6INv zotR|WwD~|A`U%xaY2we%Hvcl!Z7Ge^U%&Bwz+F^toQFCP1ElEpCu)F55L8?GK#aQ# zWl6q#m0#ZJDvGLL<jUB-xb}<+-;#3tlk_jmR7Qwm=^f1!MyMVPt0OQ!oWgNiNQl6h z=0eyr6h8vAcN~WhAIWyg3bkSf0a$kBz$!;FQ1}2`D4ppLBq_oVfksBk8&6W^jZ#vk z$AZ;CJ6H$*0PCq<kF{puK~?+5b^e#xVTWRG;>qLe1%VP)xvVxoTQ+y4iPQLl7RPz* z1638#UCEa)lG0Lx>fIYPRg%g6`VhFgHw`2CRg)gYgwsaTI;?Sse-;k7ck&~6T=hes z5n0?_=zoOiQU<d_5Drx_Z)G+c=$9&zKn=3gm#W3cmuzolh*Xv)xGB5s=!wmP)l9k6 zn>YuT!%TUQ51&lCnn5Y60%$T>2%O7K0B%mQ04!K5T1s|UX{6uu$x;q1*kMEsU%{Bk z!DSXMZFp1i2&5?sm*KrES?Ns$N(z}f5x#4SsZD_)pP1T;KWVf!%U&l;F|{^--lOJj z{*=;(*N34(8=nZkbDx+s*y+gI6y;UPITov-(mo}4Gw}tu0&+2q+|D#BVYztc3>)zs z$1#pHOOo}WC3xri8(bT7vhADgmo9Sz|543{MZ9P~OXgTCOH@8{)BRNPCGjoA|L?iw zA{31J^Wm!j+QO^)!@z}^tS{nEc+Pk2cYtIu-s|8IjiO|AxbnL=-P8D;`70dVQ(aKg z8$R8W#YuR=+~8vH-5|64JB?L~l}b#^Oq#aB8hV1ZQnNC*Y&4jmUD+&#nhc*8S>zKv za?eM4qI}}?)E9ku6z|W!yV7w13V3SDj45eZ7!bFUhjc8XL?npYH)cj1l^psn;7!^O z_}`h;(mA0K8~%(+iU4v5?a4JG=65FC|4LGA>5hBSP8NJ<>{tT<V^zS98L>sO)G_k1 z^feirV1ZG+6QT4aq9p)7p>9jDC-RdEqXepsNDxkC<)L&sKp93PTdFTh(I4{J!}K!V zJx2zo(xOjU#{Vs%PqXYvua{r+p*<IZwHwP&str|~W#LHo0)IH`N~o7Fm|y_ND}xbQ z@m1zx+i7l1mGhOktp+oJ9_bTc-b!VCIwlBdrwv^lKp#Rno0(ECyD_nEctI<o>`;mL ze4gk_zYX@vQlk?A#)7?ya`j+Jn?cJ`?3j@xU#4WpD=Z02Pm<2k4D!e{1tWr0IKu&8 zI+9G5mKQph_RbSeI2V_N0Mas8T8hKz0)gYenzh+|FfNb<SR?GAl_5o2sw19y`qaLM z4)!MucuNUU{BU;I26h7b*naXx4<vuSHftqUnJdk@eNlm_b(H5j37v=#UP!Po50ApY zw~&1C=+_q^oruaqtshFTYWXllZ=#BkK1CSNm^7`^_wAO|T!!0V_l>-Vp6`f-gW=jo z(^fDL2a2c@W2#Ux66CG?fiG7)9yTwfx0MXUfjRePlU=-V#G*^T6<0M<&MDg_Ot-e> zHHz|ffmwwHYo^($I*gYsQfR>*s&G>ihd$j7?M~Gp7)X=;2`Dt--$L`QxkCF6+mkXI zj1DsnOmj98cD7utMdE39dVmg~DnvZBF0o!gKl8AqguIp5NbQYi>J(T9{0g@C>>&|I z)DzhkaX>NQ0@MHp-<neO<oBi4!%Rs~Ctx+*Wa7cIq%(areRDz;jH45Cch2Z?+#~5t z5{TVna{X@A9}J{l-qGSqM+MT)<KYJaZ0RW`dW8q%z$lQ9fh6NQ^6s>00RPVytUZz9 zil9-bn5H{zA;W`BxCuQjtqBp<%2G8P7#%tKu1Ifp90K(FAEg7=DmQE?QH&w&r*JX; z=qn0=Yc1p)3oE6gw#9|bwfcWYi>nb=nA2R-&V3M9QYc~R0+0aVI-hO4F`+nQ(*6Du zTwpCA+{tU!mh1pYAj<f4m@O^@5yCq8nrzGPJW;Wh2A`4g0uYbwQ--9|q}OP>1HcSC z=@yn!lFSx#JemI^=q%{MHNzsk2Wc(nq?iVW!c1YDczPadDKIb%U_KgFfB0h$4pLw( zwQ{323J-1~d~PXu*QS(yGj5?d?P(N_cu{Ymc@C8Gf;(nV1B_IX9<!)v^T6ylLn6W2 zZ0#N+q<Rmj(?`t<AKJ5rG`X!`Bp+5T9C`kt2;-QHqSrsDjjDjdGf1>A{lTBWmlK$V zZ$yFEFoTJ(a-#$xhYSKS4d+UME<h<cF?9xc+IgHM^bdpx<#%YwWztd7j#9`~Wzs*8 z5O$d5wJ|XmG4E>UWF$^pkZ|q-WTKZbC{K=&uyuGmYf0!G0p;_tPgXF{jrq7-$gVD< zN$^YC<L5_Y5yZ}l7tXa*NE@=a5~fegIuOl@cyflwp5ahNXp*9g;-CTvagr>S)wbPI zx`&hwwlkfy+2RJ4r#zDnC4fPjrEEWP6d4&$o;HunM+O39f)gfmdt1KSvH>)SS{`)z z6C)&aCnEXfHgx<&?r*h+c#M?<eiZ|lFfbXq8353Cr(+_MoK#`B+ZOD~_WKT}Oh;hW zzH@a)JSD|=l!LmEU*7Zrq#ub-Bv^MJYJXV=P#n-ic71;P{P#oFGYR}42@y2`wM@@A z@=KUr00Kx3TJu*T>pk^KU{Zo11Ql8z@mzmZbVUWm|Lb(N>K}VaTN*!7`w$i3$JqxH zSpIA37v|&J^L*OfAi^taE?Zxew;J-xfSw_9Ulha$A<Tn4AjUx3qX&>+3O}wL&O|Bq z>T1Pw@+v)asSx`G;lf8YHR8Dlz)>&XFHT31k9*GAMg9|jJfFfDMGYqJjtC(F$qnGV z0%_2ZhzaPk&@gPj57AB`N#|gy+Qyd2>SH+DW)IQVA>$Y^I08Bl(&`D?fnTF=dd%k; zgwW_<uAg9DIV`2!iT?xKMSbW|_@?MiWDVGiF$DWrNqWcQ#c#3Y0eX@6y}O#>pgDMH zTMUe}6fyE(b2{`MEoH?4uD+-(9$R``G_`cpSUaF19cG~N6)i62RJz754DbglCP*zH zMV$EsF3{94)|J>Bz$MGw`UNQ0i4Fx4%xgY~{bg)ly2+pCt{;Qw&ZnM55Zkh}?~9fa zYwr69EmwfZYL)t_Ysc@-VuM0<lv4kD5tIEOIf%IpES08!)Xb+`?vQ}S4{<HUPTsNn z=us_Max4g={BF`Cb~w<Ye<3gTB1x>hjn7A)TcB)t#A=nH?pQ>^gYnK3MacXrib(t_ zw!Zwm1X`enj|aWWJ&H}j_6^8EPp_ya!%=Ad+rkb&eYGJ4$-G~U1hdja;HEQplHMu) z{dlq+Gg9l1iBkrPd_q_{h!+;K|3r1m5RMxSY$~HUg;rcCg}m{=?xc65aX@&ajp5sB z?aVGc<4Hp;7f|B!Ccy184TDtT6SDWm69O<3gEo1#BF=YS=X6mU0lqQPq#_S>1#Ujc zh>-biQfTw_2XF-=HZ+l!plA6Ji7yxF4x%i|x04rZ>UK*T?#L-kOoo|0I`#=@km8cw zL}sCsL%JiKLp}u{8uPZTYQZqFsaISf$E7z(R!VOevjGa)@Izv*m4K&XLg}Ssr|Ck; z!WN39*MyLq7DQ-I3qj!KTI`E#i29bsx5w^BB#6p28+d8YA29cAj=q#2mv)dtGVR6S z8X5fXn<SklfrsH;<3$oe1Uo&wY1yFP2SB1dRol+IG*hmBNgf~Q-?TZ04rN>5N|SzD zhnO=E@81|-e+dcG2q7x9AlVr@q)G7Dy(!$2d+gKLO4?!(WH9-yZ(A6E5UAs-RDv%C zD7Genw6CRzGu+b#kG26NuPGsY0q{_pYbtQ>o>uy0!X<+gUU=LY2@jnVF^|<CcT(x@ z&D^Ng6_jMJ<}pO!g|IYUo~*S0zvMZCQP^v$+BLc4yQ=H2!=~Rm^zUjf_)wN>sq}E- z@c5UcM<MXeh+q62zQUS`RWJbCDn5Nix020Eo|nlf5jkJ{{IAooJnwmn6RuWp32U{4 zWWPfY&u4Whv3`dqmH+ZULNF}yUtU<)SUwrcH*3YqWNPsG`u#fn=V?C$o~b#r;sYb< zzTY`C;TYxymZXD^XqOfFAyoQdk#vF!C(`A=krRgN?C{4MDO61Xz?*#`YTLjZ;--)J z(21@<&bis^N-~>){-brJf%hR@E%Db^RFd%EiIJV~qlIx2igBKufNKRg>k_(u*zC{$ zwhcD+UdaLiwWksKXo14a_LPIP`x+&<g5g>tYcnkzxZ+cZt*ZgVB!pm+%FzMGP?1xb zNs0XTvy*ANlJ+$cxAzLhxBS<atv^mJJR9$*f8$$y62${ZX7&t{7OgFOUvwe3_9TSW zqXS1TG%++c0s8x2@nKben$PZC_ADU0uZjPoHq1AQ5b_mIdB7sW5SQY-CnR2&#Db10 z*cgBuP<bLvsPxM7`*tfy^;3idzQ_Kao*-f04#h;-h#7v=0Tr77qaO(E4jb}Z?L?p) zt+`~(jqF08rVP{^@tf&AmQpp|-+jC}q5O0KYST%W=G9gEP@$AzO?iqElZ4zZV$z%g zl0#cEef!31QtzA9fGGbRE)H(iX`YXqGp3!+ZuY~!U!82iJ4JX|#O5*u^p|c*#7MY^ zh-{k-Bfn|}sK|tI{}@ZY!>Xx9^T=SI7OKZ)Px})4h47GzVsOI6+XqD#EA^KvX>ap! z*w@sDiQB&MW=?({o<TI8|Ej#_B=3^x+U5afdcuCC-ueSIo_h%A9UKyY1mU?G05eD6 zG^Tl4CSl(i5``8&nGHx8bGAC`<I2;NN2=K$@3|l1LV{WK&pZmh){M7!N7}D*6BegD zK!FP9d|dxh#B>NeE}bq?k=zbuM+(vXoymA=py+Y|tb-AXoiV#u$xWsp3_0eYXe&3r z1yxZJCzMPUCk35fYZ^NVfllA&xSsre2G$o$ki;JllMs{T1Yr$R^d3DrQ3b#oYyQK~ zW4$FjXyPXCHF0>6wMvei;|#N2@WB=5V?!cm!5w#0e)g9$wO)*B?`}es7Z{sHNTZv| z%$FO-JA08p>|v1nd+s#$y9S%rL;Ye%o|cN@?-Fv!pY{utIF<8{;ZC3J{Xk}6ng=Yg zX#)F?zf^e!oxX)GK)nA_i8V9M9~7ZI?nh%crqj*9Lh%epPAWzF>*&agoLrys)y{x= zes1ZtFY4~f@Cza}ag}xlbN2#6=92B~$gZk?{uiYl&Eo%c!6nlfTh!_5-$?x#@9H!+ zrT;JyG_ya{C~U>hv^y=58v}&pxnrN~pLLPnt&-+JZq7Gg+ZSwf;fC<u7xH<)%E(?* zGjX_$nSb2VpUVF%Or@OVae#FPuP+@4$bZ-{dw6aj>n(IWBYxPk<M=Ez*v-l{=3Dxc z#p1uOJKsJ!RY!Ft>EurHa2Fi?*)zCiFWddI?(bK0)<=(<Qb*vD=cJsE*5HULpa^Q~ zk&rZR_p|d$9ltt~o2wq}&mwVPy|T3@!^hONE2ralpWRC1SO~~0K17epuYVCwqx%DJ zHZ}tk8?<j(CZ}+Pu+1rReH!dOg2fuuee7MTyY7xQs7g-pZEaZcJ|SP;(jBlr_qV5W z%kZ6dV>Y_xr~Vlj>b8+{Kv*%e03kG0D44pb@8>tkoW&WP%5@kFs+qSX=TJ!sWO&ki z*ys9(ekdb1qyoUlw~1P`>Hm4^%)jLp4a&=v`X26o@m-CNl=@+wN*KjMiB-UsB&>o& zLZm0|06H3|_iUu~VeG8_<r;G}<so1Cnx<!#iub3fKQ&0;%|?v7sCoApsDWh2E_m&m zOY}QWodB`mU1MCgZ5@zz$otKrEiE`rmVjG-*XZ9wH48az1MS4sQDWaqRBxI=tV$;0 zoRBF`ZbE;+@65KRgz2a+B~b!4XGs^im@F2N|0bq_1bC*RJH4A83p3|xZexU)o%pu3 zgw6SOd_HadCq{3B`G^ftSAu;XRHC3ZJT~e~oaIwIYvG?MK5_I&ydq|gW)qvp%<`Oz zqw?`MWabRt3Uw;vQAOw7-^Uegxppb=CFpheb3xL}A{u93Z2hhL55?u8kzgm6<p?jq zl86&Ue_dKaAc{?MK@-_5nEe<h@A2gE+r{@Inuo7@)eD?jntty0W`*mI@7w*!i)NSO zDQ^Es1uCoujuQN}X&sW{XBDSOK36NLkLgXdzl9?ZxV`=|D`2a!6_w+wrEshJt8#TY zMqjsU5@Ji1Ghh!C5brwLjI-n5KQ1|7>oy2Jb0jlxd<<*Os49uMCXm|pJ6<Sqw_Oj6 zRapLZlZ)!o*Hv;T5qGeT9IN0@C=olwXMp-}N=VLa;6S|9QyUEVGN2G!QgonVAyl@@ z$HG#>IC!fwS?I6zz7`9}S6fQv-8V7cQd97<-xpdX(9P-*fPxY)!k_YwsIe0sS~^wg zh@@7A3jO^(&oUjz3x;etpf&!dEhA&}K^KJ|P2~Q07wi#DKA_{rqQ_N@D#X3?6|G{e zPw9@GC<`EI6)ZPj42TE3)IxAireN_8r@YCRm>Z~m61`&mWiu?X0Gv+n<zd{6Z;*#~ zx!Q%@^970aY7Ne03g-3p%>j;}<uXqN`$$YX-%14HgvR|TN7BM>=gxEqEQ01|CT~Wb zUG;ZdNiyw^DE5G0;q1JChu&v5g3M%V@u(M{=kv8y@%OXTBy5MhYX%+~DHrt(z3~Am z6@F$(mv2e@Z!|$ZhnPk0a^d=c;&s?iy+EDZi;&Nm_UbPe?^R0vp%!;3{fUCw=ub{8 z0US&nSM+^<ZcBU)iy^4qZOmL-@>a%M58wR>$29t8ct|rp+8(CFrt?-*QHQOvS!Q^l ze!0?h)GMHKm)R1!NEqf3JEqPslct((re_KNZuQmvb9xPJn&NK#OWAl>sJ4F^?abq1 zRArteDB!a5;p_Eo#Qsup+;5_|rtb@DW8s;<UT1S3T2kXLPVOF2p;^~sQFj^w(AViG zqEXTYEH6x*Bft%xj|7|7*fTKL`%UQn#?nvb@4Kz|L&zp&z2G42rtUYZM;98)9D6&G zEjBF4RGOTznf*qa#otc!tgbH(2rK*RvBPuZnL%<5p7n{ndIlsUjnn@HYh4`_js;&P zmppO@Lr|;32mYvpNkH=mivS2(R$iJ5LiKj~e(>CO^Icd86J8c=<q29S?IrDb$?pfh z8)hwv?@|y;Y~P0w^Xcq$!Y_kA-9IW7?T!u-#Q*3eCLGM|zL~`HVcFWgYncgHwWs1g z4!+E50lZ34{E}w~Fc%{HcL@55@)7b-v>!z>xTk1ln7m54B)2&^{plznUqqy&KA~i% zN=#60Ps)v(AarVS_LoOsuEU{S=m^W;^9=7RIL0D}tA=IeSN0<pG+?=~mibt+ROBre zHTD@L!sAFkhsDR*zqf|tLH(h)f<KHxOfWJ(a2R*wQK1+fS62ZVM+wt?&tC$eF4zhj z{7GYTMgkL4gIXQ_rME|WJfUvZ$HX9LUr&yH+<3?Jy8u9|Za^!gCtqPoe@}+hK_N`W zZ(-8(B{BU%xTo%#qrZu3H`KYjR9JlY*)96Lhnt_rke|vXy#~$(rDO2DwEqFlrNE40 zd>ip$NWz+p&m<=iLBTTuNQj3@Tj^F7ySU6;MO)VWpuZJ-+5Z4C*`ny`_Pl)0W~opq zpdV;De4f4ReY^Zx%;1*kur>F(6<ql}TNPWjjHY>{AWZ>2x$Z~46_p(svz^{sWR`Nm z%ea!tSrj8_<v%&&aCCbVN)G2D-jRLwas|X2${Q4TA#6oT5h!_F^lY)P;#_3K?QiET zN@L<RMy4)9#(Hs4#|(X+`g&J1KaY61py-^Y)dlPmmE2fLI@)iMB}@47=$#ojE{xw6 z6Zv%U=4^!Pl~cYZq28lID7)ngUuF|`>8Bry5G!7Z0WrQH*+DPR9$H+ccvOJ#?}v?F zPhj8OZe*!Ud5gMs`ZtFGI8{v5T{;rn^8Xy)%MVtkv1XbT5r>~_v1IuOzu^e2XF3@r zZSV$+mHZ;vP0K73jg5|2C-1{P&5Z2HUR?eo>~&4}QSogefN6~%?-F{NNf(SIz*%FF ztsJn#?um*jgUQ??&+`qAleyIq5O+6W4#+D=id1Czgd(cnb}q`^A*)c}>V?LC<XcOv zl$CXq@?E)g)?8}SinBH4t53?fZ6ny*dV7y<(=aU{`RRx|TXky>I@LV%Z?ryAVGBK> zFhM4ZBT8bhm*+P`Ub`@v{*nLBXX@z1UG+)y;cFn?M|+oLES3thIyyA>c$pJhF4d=B zi=-Rn)yn;*X+z&#sht$s-Whq6WA{a;r$(8KQtGh0zawb)4Ew6MQ*&eJHO8AQliEvv zBoXqT^V4syMocxE0V)~R|JGptn&f~fvD>)tE&BA26Vk@F1QMzU+?nZ*3eB8RWPHJX zakrJ2GATaP%$6F61x68tdhA|lU7X4D{EnX+VkBZe&{3V&%4ku>r0&M=q6vE-KIWsW zvXku%NroZ}{8Iam+ESA{CV~bt;M#T7BjQObWKfdu>G2Kuou{mVxhGRnBEwAW_BXmt znE3~v&oMlbkq}ZlZsLKb;<e_hsNa-pFQBhhPts<87_-{D5ZjTK_zp)~dwHvcR-W4r za)PVv$3#I0!_k6_xej@V&G=T*o+zyuc0VrFzd2y!5jGn}MN@wMAe+4gDMYW;k7U$N zR6$?E4|t=2FkdxJ@Z0W{GMSVBGX@A_X`M(bKiAOXVO5QgcVvL1>K7QA`3PkBmPu1Z z<P3ip*E~}p5-qEAcj;!R->37e|Dp??niKIXU%1?nV@N)49xp-{WsE;4P*-+>n}ow+ z8g@>RNy|H5PU+PJb$>`M&)N5&y_H3Zf3sb{vP5n%Pmw`M_C;hBKvVbrj*k#~eWZ&u zJI!xBU%()eci?Xz2S*!aJ4$$l9LMCTQKPi@rxt$6_6@#LUF>gsTsqpfBXpy>m<Qvd zS-?|ZhD^mo%#dZ}X;FS>B`Q1T++xlsl4X&`{P72@g_@BZq|KekjH>!*c)I%tq%rLq zHj()~EMrQx=fYK7;Wj#^D26A2j!yZcw`~RRO>kVcHHrvhIvfid*nCk;77Yz&6r!!1 z(qdHmtu4_S>k;7QD#mV{86-?3;|m6zFIk!@ybj7ou~}jx^t3WZn$miC4Zs6eh`mWn z{XX)e8Vd3=r7h%z(Q@(S%<>e_D$@D_M5$rk8K}~l1sJvc!}-~x5iA8bC|C>RsD>v! z8C3B!-1z?4*&(WwdGg7p)G6q;lR5kjI6<dAr8h78h=>^dS+S3i^xKPyeX7``-k9Gu zIvS2Grx}8j^Tpgn=)|6#(>bbXG^0e+cg{tXS$j2g>ck{zc)36srfTwcBR>mzcMrta zADLfhu_nGb3Lq$IIdt+h$qH~DKZNJVqGOnx$#Gr-vYzx_0uksUzvi9g%ZF#$W~l!n zwD-7{nf!v8A9a=#m?bDGSB)2(q~#M*1Ynzf6XNmJIpzIE<Ty8MyK=w2(Sgok%EkV( z`0hPR0WfUCc|U{~5@d>pYkB-6?`;jF)dx^=D#2f;ziDkzT9Z!xeV!W{x-)7Uviey7 zb7i)>L>TqS<rQuVg!iK+jBm#DOvcc=T8?wjk@?gm^-pT3e6jX7fb+~FF;R?O>rEK~ z)f-*&5gg`?&HR6rLXgtbsmJWv^4M?q9ezB@>aPdtT9^X};k>5&Xx)R!&BOt4XkU;Q z_S)}=yRnhv;Xa|n#wy9FF4q3=tsb*h2xHTZ&S@uh!FKYN$1PXMvUmTt+Y<SoOgDTS z!ZTU(M;)|iXEp)?FW47yY&VyR3h4$%DP86vY~#D!r3JWe_`kG2;$aMvV>>g>^a-mP zRigb>EzXKL`oN{R*>~%VuxW{AFkE>h&#g465JqkkVLI_E<f&Pv7B8MrRp554yV`?t zGVXE33u|tfmQNxh*;d%_r?}__pvndofJ-0;r3gT$xf~z#<%AXgUpUSdU6R9ONQ>6v zKxX`ZtaQ(IHA<BqR!fGA_A0#yPh6zGC(|p2GjRo=;5VhzN@nBYH_&0P5hXCtQa{f$ zLUWUY3cGcdOX*>@`_m1D29Zq6Pmx7K^k9UEGG+Ce&-+M0W0C!g48oNL9LJu@`nSx| zZX!E6*kv-NDtH{Om3@PF^+VXrinR1vw8ELb%b$6h>yItnsz1!eeC*JVlvbC;K%<RG z@W}l1GJ5m@R5XN+h=79TtkeiUF&|0T&@LeVJ<dx$lkF4#IsqR>1SW%1loq}Uc@cci zhcbNeIYZf2a3KVp&l1T5DS=N<GG&8vi*SLRcf+=1f+9u~TUU>fKp-hlCXA1S=X={c zb>46J)S+Y<nA@&hxI*t;C0e+Z@xhT$y3d><T776+j=U0`%0nWQl}uE3()z<i=r3h? zY-=bpa`K#iXTC{yn>Q$bD$W_|_TD&@4<f5AVsKE7cJ2v`UfdC#n`l<S`dn7j3^!EG z8ZI6hkAyTQMXL`7Y;nJ?9t`UhE}4XL`fStUjJUHp@<D`?0Ly@T7;ldm3pJad_Q&Wl zspdz|h$?SV-AH)gtyD~3zHb@Iel~I96D^fuHPC`fbw3Htj)br-vPtLTZTT827QYAS zjv*!TH|*}VkW=op5|r5NZ}_ro8S?*zbb?W2<qP;@C*d$EqnFCY@iauEjMkeM|0<(W zm#Z?+9^kCldsi<XFZh0<Vr^m?mcv*2o{deY$*Gv2lg_7-bqiPIV(BaTW0J4{{`Uvj z5cpYoz6}gVraU1=rH>u>!$pxDlyt9Ted;6`eh8$%59C;*>YN?)VbhGZ$pZj1TdqXI zo)Pd2A2i{ZuHBQo41yL%XKbqRZx#IjxuWQyHr<MgtbSB8OAVj2lxWQZ5$eLaJ|95` zpqjeDMz}a*eY06zT%Fx2Zd#G8RZKW4_mxkB|5&a9w+P-<m#mWiPo8O-1)matwx^|N zLzkVZSQew1ri?TfjSBCauc#Z)o0#>SA(M=P9w+cU+ern3Jy$R4qdEQ+I~~0Cf^YTB za0=@ITNXo%r<(NB+$#%XIiYbhaqBZdd_pl%g5vKC;Q=+D5!xO$tYK_XHGLHw^)hbC zvA7>pV=7uq1SsF0N#sY>UqKfb+DU|7Xh;kwxs@3uu2#Z$r1}U-sLQQ(UYniKj4A-6 zxHBXu3cQrGPO>wf^Au!JCsylNs)vutS^l>2_q_u$e+)xY8K-f1D+$AfFHd<h2kHsk zp4102L?k=8zbK{%oT&KW#W)M>bXROq+I0%V@$?g>sb5mFiK-kI>*%r@S!qq~wD*6o zQvIhrLN1&5s}?$n4v<ef5<vReo;1?x*81AI|9c&@KD+Mcx9(-M?j^GBb-(U~v;N=N z@3ZbR*HYJ=vmC!!zl6P<{{vM(s=s!`l(8f{<Qi0w8ZXWwrgo3VD2W2mcObscfn?Nl zAc5MR!!yM_P`xr5rQhJnmEw-1KIxC){2xHchX@o?b7B{n=%GLar%OW+Dln4*4>VIi zO;Bw*qQ@b%7TA?Z3Dk-`DI{ahFQxwMtRd5Z_>YR{zlFo2{)%rvU<fYsy!haRIx-mp z^isKy^WuZ@f3xHUXCeQh@&>h4ZtV@>!Ra-I!l?*^8K{B@46xJ~E$riz2x&Hw97#g; zltMu+iLnF`6k7!oSDD~r3YeyP%<xQ64>I=~F-0VjnMo!>LcJjkLA1%Z3X&w_{DrVd z3jMf@c`wQ!CsEwq)tUbyML>$J38LWR5rrq>D2w%ZXm^0XBc{?kt&4kzRh6fW<>&YX zc|3pjC{>H6t>x#~Wq8`r-T{j>HK<U=;>0ByC8B^{&wigWV9>@9f)EqxD=`s`-L%LB z9;YLh$q~g7<ZsSme<q~aM7E@0I(rc$a;B}T;z&-x3hH$_+>;qZkk+tX_2LY~&<rED zjt!3%(N{oCTO?JKA=IcxwaH|i8%DdJ2#gWNNUB4<f}xD;KnKWz6`O7fZ&HaCfkYyR zb31sC$XFXUfy@EK9$LH_VTcj>4e=FO(QqL%+d(ic6R3#vHNYAOQzw($OB{rCCcX(E z9*_y_BSf8wKq866QRXOu7>9*D_eJ(LEok}LWY*MRJtE=C6kw@3SZ@mV6ccke3xJRN z4GlvXKsyqGto8CYhV&&4NaC+mLiUg(48?g{V(;m{t(Z(2f~!#FzpNo+14R%LC?G?S zr_|jEQm9~UGR0|)a3-VznJ$Rw_5%xn4#ud^G9&|07;sSh#hEoMh60=;bUII|JE58b zLr4gc3@b93!N52GI2eRzfe(b2_RbnIQIseGMk^S@Od-kiP|grcoF%G<?CiJ|t6H>Z z!8Q-sizA|9NF6qsm{A&mQ6C|R28UuP{WjjtQ|c~twSy!mHw)(v-uD3S6SPx8EGD*d zh7QrIiPgfI00hPjdL-V<D+udMZrxrK5fug#On{dCsJ%syP!c&fn6IX|<s>5l%R%*j zXCW}l1V`P`;@<+-&5pzXJI>XD1lR+c#zRh!9XNhdVs8#<>iNSlMC=jR<iS!#K_ow; zzy=Bc>{9thc@Pndnnx1cEJC9qGaqtft`w;zHGCF-W<rkW^aHh)s(YhVLVAQW)<PJr zMD%(pMoCFkb<!HBscax|xB;gtn&|a#CMcT$tF;(}zzP+qmFN&Xgpk?=cq>Soj;11# z&KZQVOX5<v0gs_wLc}CI=(_v1bfeVBFk)_M@?=if0+6@4HJD=6T0CBC3jdIS^%DF~ z8m(8SfmkGaJ1;vE*I_+O(r+%2{!IZP6GLIo=~|2&%5_~Rxq&L3c!4T5baDhMf(LAv zg02Gz1C&Z+0B1vP8Onxw5KEVY%TtJB%>oLt7GdB~lI78kzi<O9Ldu>4GC6@LmPBVd z$&w4w&P*bt6oNQmQqmGegMdvd3>Z%QV*(~9iKavZD+^H<QyfC*Kp4&(Qmj9L#PQ-7 zQe<O*7l7(J!wMAxKGXV5g0JZs0plo8gG_EX6KaIPX^1l<?!>C+B7?*Uv~ZD#Gtz~S zbOxspM?m}ou}1LXjK}f9hM;IFBeiR&{jviEQ8L$*5(tt|eHswm)!JkX(yA2*E5RMy z5E^C#KLQJ(bT>ZDWdWD{7>h)*RvAT^HP}^dfc*m1(nfB|mqv=w^erTQMOc}TlyXY^ zhLGiPSn8?C9~4R2Q5jASD?rvA!}qDVV2mq=(=Z@~ITpmt_Rc+B5hUVq2I9Xk#7HBQ zBsx=vfJ2Rl>Ig8I{viUmH}Fizk2?c+SO$pzXt~}R-rQWwFk?`Zst7=AT4{-IHWNf6 zbhq^;p_@EI;@~Xihgb}&Q)84N-L!nuf<=5mykzU<MPkvbXGuVRG7cGWMGfKrSyonl zvk<7b2`CpIC!mT0Y~X^Uv&rcoA)a@f^5ZZeTv&1B(L@HRzxZr~H9cjcHKjF~&MH9) zuvG$be?&Yz$&s^(t|%4%43soEOx8`KgNTUx$yM<<*V3}eC~y+YOuP}vNhwW;1vsF^ zb1xdbF&U{qLQarKMu>vc_rk&;FeYHM3!k<PXdxI=AX+6EN~c8hkUW!evL&(V=Rj)U zB_S20Kf9=`AbqkZ6322NaMDqz9+#MrA!cJaR)0z;Oi^*>w4wyGfQg%BkpnJgBA3pX z5{X^%k-!G(Y9JJB;Jf9MdvJBg@>aZ;NGA%zF33n}95w0YIv7`B0x>x(tC1P^0n<_Z ziT9@Zk9ZSzUXhUR-V!eI-3e)^l3a^86jc(KZ6Ao>l8C5C1XhNqwMa0M*#%T-)tk`* zae_1$$t1<*Xjm?SavY=qlp{$<xFja<BIglt>5YKA#a8}F#RW;zp?X-K$#8hgsKym4 z%D<kD=#6?cjzHoB6Ow~eQ9{<T5;jp#bQObel^#J%afWO%KmZ71y)J>GVL469!jKFc zvZqRaLPoV#i5f8oga$$q2-T8GQ7Qu5(HKTmLCwG+l&R~dRAV{~oQWtMIFm3|C3_>P zPo>f*<uIn=J{F2-4T6vM<38C7HGr5KP=kXwXkfXEvUJoE;$Wj;IV7PE6!IZn^JN3l z48IxMqZjKbHwV^((Zt?y@P8mQ24oacwo}-Eb7~s%n2HVL?f`|TF+2!I(!e+ndn5*o zbUqDcNG60)GGP~EkK^G0kqahdFz_7+w?LDMoxPO<6pf;qXtj?14$Mvq+Bk}8aJ7zv zs}jLswFZM=vMe&8D*(J^#eb5xYY%RN0~_C|fGrqPfrI4UbjBddf1?<Z=w@ac5hlSP zGKP?^*`7Nj2^T1eLeVTOhUjrlL<-<;f{%-NNFam6_TYY!95uT{zFr4{*G4e~ECd12 z8CVe2sJ0`jB~C~hMcN#qa2Q9VA+R>t04F1W*a6BFV9;pjZ$%EmkOG=wR3?TaY0^+w z3nv5ZTk3DX(KOQe#=i^kUS3+nXwTcVGbCc~+Ck(D*+tN1RB&>3tVh`DhR8v1VZwGR z%U~BC#QcDZ9hWR%N%?bhh@KTo4sd}A<tF4Sek82mc%ZH>3oH!s68a{kQ#us4M-v*! z*dLrYYS?df%y(~)te35w5@HS+L#tFmI+)-SDg-0_Jf!Yv87T!$l*B$r1QokAo@yuh zhgiVZPKB4`@JG-xztLRe7FI+5pT4i0E&Z3=-QRqZ!{;ph1Q`okjt~i~=?|#A4Ob`u z;u%aqo)F_RA&m9{(F_$$5*USeK&4JrY1GLo98pr;Lntq^9K~@ojaF_=ydIO9BkO;f z_58=s_`i<j6pOOILsu?hn&Bm1ss=$TRMMUi0j7TpO+$d45;AC0wWv|cvx1RQxDfIJ zmoo<~<p$goUr6U!vGWWpDr+X}1VKf#caaqEsp~-|U{F~hT)To$`8+mxChMA`ppXx7 zQM4?JCXCyWDxwa>FtuDmiSazp{iklg|Bv{82l07V00cZnBFSnDNAwa}hhhQ`AqnOG z1V?2D&dCmvM1kdks6@z8w4$X(XsixrLUEX0k`nYh6MB);1I-5Nf~FyIJz^yE;80kB zktRLLgABPzJqYqmC^{0e%p*EFn2IK|vVjuRS~bp!hLtjQf0!6D6G~HS)oHMX86U6) z7-vc}NEu-8Mq<E1>?X2vL`W~0Jyp>n86h7`0L3a3<e3S2Bnc9U{X~!gloCVI$vT#h zg80XZ1#z`jiDV?8N#IppCpaT`NhT)KD=?KhiHiCG4JurjN>@gL01~rt3QNbvLSiG3 zwun(gP<%YpvL)Z@qo#XZfIpb#7EC2)@^^_Fd&#sXx7a0nv)21B*2pY`$uwatglr3x zkc=jfPClW-;wi7<tbp!e9mD)XJIA`l=XinRQDcxeOJUHnda{w<nOcECHss%a)Gy3O zx{~$()z*Eir%?mWsi7#)o)6g3Og?B>pN##zNJ1t$f;t!1_#Ad;3UXRaCe{B8qzGf| z91S&$Q3g6<U7%AOeTrUgbdRJzEj0=3FKlOkn|XIJ+t{{bsY%wt=`LfS+@z`RpLwr2 zvJDM`ZW1>Khhmz~d6AEs+OZMOd%5M5<SLlXQ@A~yKzBN_%yvJ}m&KsZ5kcVk@|&c! zkOB9{e|wv>-$b_Y!Sz4TEzOKrF*ktQG3_rlOyjLl#BG^Yq9$mR<^`B7qGb}DsVE3` zi!=qQLA8**7sYc}jl@s`Ze!!<m1AYOdzclc!<VhCmtzj6a~Z2e7GN-B7c2oRWQFeF z#m4RkH0mnBq2a|w^8BuoSMj6Kfj8_Pb$_F0*FOrr;V)JHuY++obzA>VZxoYQE4C+- zCrRFe>TpnrR&G#haJ5!sF4&fE*D$-=3Q4m>f-S939S%uQItThUCAa^2?fU;g7!;d8 z%!Y;&(;V;j1<3yw+rbz#8gfWFvO%yx3@Btndw4;83*xeZs>2{5hLEP1Vi$A@F~9Ml z4XX?RlXjYl=va<jeybUR5}5UuF|FB2Mt4TZ=Jjn6Zfzq1CE}H8JtQ^_BKk|sTf}CN z`!8$JLNZmV_%DtE54#R<Ra_6N0Wans8P(NA%<k_cV%U$v|6FSqo{~g9Lg<?bO0_-# z1hk0EUi|l6UcgH<&PbH}tIL^y)hMx;Hi;aS+li3dL4jrm4*G(YYQ*=+h!&FcF!6g( zN<(4LQ_oX<*SWCKBRWlH$uvfGQ%R=18?Zf!fhuV_K8d5lU!=Gt=NPQMm>Lan%$QKC zDVsC{h9{`tbR+@QA^;r-_2M_(PUsPV@+3S0&nPC?k%Kb~_=`}1AaNFMM1fHuf%%d* z9B-c`N1)##Q89=_FBhzbk5GT-c*!o>%mM+XK{6TSD1+ibdpj17v~d2ywLoYWj6_0g zK?cheLaQcF7tH2pd5QmSgFHSjv<IPmn2;G5qPUTL>^9*tQU$fOl{psE9h75igDB+7 z5z&8P2}U)pVp)+$1CK>KqV0bIV9Ekh<$z=u*W$qv5!pE)sHe<=&sJg3Q+u;<l;sFN zL$98-aC!mpIhH)C6!*#M9n~cvrgLOeP<WV^B*$_aR<37|#a6WlqQqzfqw1nre4A7< zSr8<&U^eFa#k<(JPzNK+i4#E<oXtE+AlR|aN&weMYXvcUf)3VWYHe}?T?a3x82kms z3OYZKmpf+a8$n+>B@?MiYT61|OX)Szl8wxi<^v6XsFHY~{S&OwK=!Df5JDW7s#U~9 zbkcYdtkK{qJ!(i+3Av+C+9#Ar*7hjIhHA0tlB;)dMA@7C6~SNyZ7@*KeU6P}IU<u) zj+GvYkv=4lJjXm?#iIaL#a?Hf9!W3JbuQU0E!n*i=u2%wZ<Ib#YM*2Vyw(n<qL!IG zlc%6}CiEp<4<UM~3WFZBg=EZ@z?Bd$gtQhrW%H{)u|5M{ObP55i;>gQ^8^MhYS6L; z2L2K_U2@H(1^RVr5>o7^DUu3igFJzD%n0q&hFBj=8WGIfPpM5so}3BQ648_9K9;w~ z%7VBobRXD89}8gN%Ta#_7M>7A%~dif$D(v&L8@Ulo#YEP+%2++a}E_F-m)d}3vrAI zlx3a#F&Srm{4<34&*}o4g$jvrY?Fe;O~(r~B~~H|4RO;Y0jA<dB;pV##_BF9*a#fg zXENRp5Y*q-0BeBNkv5ePqX=qbtXYa{bYv<*L@)*>hrysV%|tiLfpN85tx@CL+K8MD z3U7_9M<lc$p25Zjg41EO2G~5*S~H)nuMBc`rmDXh;Y^Gy^P~mEGt*#2c$Ae8&^5ST zO<YqAs^yfWvIu(1uaFqQTXIkmuQsL|o7jNx6RKqzuO}1JZ;K@uP-B`$mB3~d+hi<+ z6!9@qL<UK?(Js@Hi00IDf{KPj0#pqyq%0_%wBJ6Olb>(uD?lgep!zgOgk<1u*+>TN zPW+!%#8<uPR)h(R;SCT$o>v*kz-1z_8)YG<tqUSQdvO+$f#*1g1eAIKg9mR^vimMI zD$@y9unjK2aFbPo_$bsomeABF=4-wn&I*3#=>cwL1?7)caQx8<##=~nKbn9rO;kus zbOyL-q`SYWac9V&#SpUZB$ww<dJJXY)WFHak;qsR@_q&(cC^M~Ll-asQWzB+fB;vV zj6+kI(SWWgl8FSgP1ES4@I@?yP<#kl38x}tK9uPxv+F{SL2ZEk6X=B?MMSUGK}b5H z&m;rHihW;X8X!j|qOPruiqw|@TKWf$APtIwCO8DSWev;-q=MlU5PJ<kvb7*F@Zf0v z6s@e92%9<y%B0dgXxarF-DL2xPNz{Llz)`nyOg9^AT$#*$Z3i34>ti&DM5>Bb%>s- zc}m%Q%=SXhV7`8k{RY-e;sT(&^gJ}0s9>s}hz;}6WOt|P6JQvsP{UNnf*#H^Is5@A zIMpbD!`~P3kXrF|N)YM9)}*tuxnG9`gvYwZgP#aF$wN?{poL%t#er8{KzN{c6U%~a zyo~)KODtdwOx{9BY;Uh{a&vHi;{S94^8qZ&AHrjZaJ>N`?voByLevKkOo5^ru8GG? ze!x=II!<92G8r5<q9plY-Zm#XElfm*T|m(cQ%zKs_{1|w3S70{TziuGQWuOhy0d97 zAk&N9kjdPkkkK&a>N}Kf$)+bTWo!Tk&$*+V3(7Y60Rch`lt^K-2mj&;oCj-#0t}B3 zy8kZ2D~`Z$kIjO*SuB+#o}xDku1pE%;%h-ApM{1a@g1cQnud1ZgV-Fx)Dit%Ad_sK zz)5<1elVy8#+cs(LO|KC%0vmg=Mzjby100`BqUHA(9GG-AgKlWDQ_C8YAT8{Ul!xm zGFzhHlDHTza3%kU<Fn_aCSd6?A~E}S5l_3~{3w73oJdR)@RAXWH(baCX2F2;H!zE% z%CN2vp?Wy}c6AI@|C4LUF=iD%J{!+zTa;zw``ycbw!Y#hhYcCF_?Ly2|A62EEI8Ee zWa2Dl)v>Hi^IQ?dK(Sa)G>f?u>s+?<JP)B+7l_nq`4OEl?j<RV{Eq_Y|5E(CDQ2En zy9XI=%{1oV8(DO)A{9<X{xEd@za(m&-%gS0t*k<*s9(BpD2_s?P*X)K8>U$}Ohw|D z8mL215Dq1&=@IQv18xT%vtypIBd#H4+AO^V%2Z8_ZBM6alC1PMLDT;aMoIIcTK}uU zn*U)KGa!bPmj&3bnTH6)K_=vS_&->fv$$|&J3GE*v_}cM(v!Hx???{_Z4#<5U<gx8 zTL<fLwoQgz37fnKX($!?Yr`$sO2(Ip6$ZVz*9-_5La_}(&UFj1*d71>*z1zTUdM8R znhDsOVz2+>!Pn9MD%d)@xZrA*(5=&>3IxM`Px=4v<pUM>FuR60yThn`$%4@dI_v7- z@HaxyBma8nxqV3k&xLnUd;paUqP#REj=1*!3sL5Rp?T)riFqx$%=_~IKE#p>3A!#S zSv>o1p~|XF_Md^P4S*l2$EgBp0@+;}vLF+zg?yk^(pDBDzWDl54k%30iqNL)g?~o+ zLaj()gZrZ!^R7ejp<@E4MQr6?9hODZC>{+>rRYS(2LF-Bi0bj*g>RJ<J^%HF|2cND zE7$!mT>F2USW!X<^Sj6XWni1c$tb!71Z+yZ1f*Mw>eB?Gm&{_CWE?-HX%t4|q^lQ@ zGE{=;iIVdwUU^UpJnN5hNn|3CU^+>O^GVop%YP!TgcmOK|9Fat{U0Ql6nn<MOD`!t zzl2T};Xv1wWhgTlkjO`cDaF6Y5~0H$=p>YX9ry6RlSyK3Or!;Kg6v{~iX9y%LWW=_ z5I2Gf0D`<q`k>5YxKV4F#=JD~!f+TTduOqFCMBu0YRV<en}9`*%q{$;9~m9vx3jY9 zux8nqo&d=ff=Es0bBlq&F}hboXTflA8>j=YNPDmfpHlT}OfS+zh#N&rXGO(nMc#rx z*xF)oT3{b%E!Zp!pEZmilIaof1Z`CgVG}=r+NbPLajNwvSqPR@1c0(oPz`OP{X3AA ze0b@Zru`GrT^kQU_*q*0?_t1~EWpW{qPZN&*cxF$gk`hgG=??rzi8@EMj02K`9gre zz-e$Ml&V&w61SMwwp0bv`aK!d4ykc(;xWviP(d(ApK_+#*bB$3gV1+%5-_TeZFB+G zBHJf3J+aANv6(tV>CCQPPrWQ$oJo)HgY>B8upshKXe3aSj4|_=FhnS{KbjDqv`Ppy z;9!Sj*KSr9U$PSxmys~-Y`rbilVX~3($tY|y00-=+3CLj7zre)U{R(&5pavet6~T| zScI@nK(GHFWO4`~ev9G}p9$k6&|U!N$?~wEl9n@F1{zW#8g-f)NAyC68;MB3bHpyq zdh!XBvy&sHayDjdw^=>Zi5se>N>O9{`T<OfRQ@Ow@sLO$kwhZ;y`W!0QUK!+tkF1g z+7X&vPdx<*b1*Qy<yj5l1(k4|1P^H$=QI%hC-j|#Ky*qmmoj^JLLjfs?1xtF7Fb>Y z%4y<AkQpy14bd8yw!<!*PZGLQBvqjfL-e@BQu}Qip~4RA4*JvpK+Q6hpl9IBB>$-O z7|t76CnO}KAs7ZHBUDeHk{%wawZo<V3078;b2aIUEa^z#1(tjiO){Z09Zt6|q21%A zICQ}4fT5?Av=ys?C+OO)PNIXmndd1<&OoMW;iit288UHJM3kFfM2-XG&T2f(!zO-S zIQa@0lbsL}6xP`!?Qrg`4b%|^CH|SSB6lW**p=(q73yuMy4N&kRKZG`JCd6+qWV;@ zCq#=Hl36^0zea(z(avWfrJX<?N{G-SToqkv1r#UB#VTgK1iAxoZ-5@oWcganwRWDh z-Sk5!tWPC$YTMX$bXRmLkX)+_A}gM;1!D4Xs?1)=5>Y6BAt-o7#uF+~f)f}JD}E3Y zQ0}~3z391th$iOGZZQT=N2!OV_pN?sA)-ttr~xR(3Z{#gxmHQ7-%`3aGnl1}X%3w= z%RLE0L3aWkW`HPa*xaaNwsCf%6mM>7UNYOq$44aKq_Ln1GC0En+;3j<Vre#NjKwr4 zLPnMVU_C=_$HOzbl{?$d8~xYV2IGGQcbjq?BJ?YuT?n^EJHg2zT%CqEL#Uo$>Q-ji z;^e)<A(Wu|0{x9aHY!1ESp9q0WxLt!mQ*;d!@OKvlGV7%AeSo8G#5;l<mTa`K;?Sa zMU7zw1aom~?b_DL%7T=}kw`FBpLg0FtV9Wo07UXznOYM<;w&4sLB)^KiXaCEQ*}Ye zm2aEDVYy6f7l+$%+D|bRKlmlS$r7l1@r+RnluT}?$<)S-OHdcFU7VI7Ffiu?BudE6 z4rH;J2ytJEjdC|;YinyO#$mZ*4xP2fQehRS7E>!JC4)UaP-lQzP~3`4s)T7h%wyhA zNwNvas&Jf@(XVMx6hlZZ03b;qEZ5gh0T|{qsmCBV875RmS~SVzij+3sd60xe$x9a7 zbpOG&&5wbbjAgpv-rnS99nCMjDJsN_^f_2EWMMe0Rl<5Dn;sFQ#!4vJS|A6?!s|T7 z$;14Adkg>Y2HHSTDpZd{3bkHgP=kPeREMk6)cp`D+MSg$ZPp}!2`V+iz!oyd5!?-- zxC78m(^>cuV=VRlf8r9e@u%chSIF$~-*%myIZgRU!JD|c$sB`+Gwar~hNjL&jZ;_N z)J&VP*c5xoAubxH88o<Br$L0dp0jz8Zxe2$v6}^EGP8qoB^_Tdzjq9kddD3RBxF#- zvK%nLaR%dH2r1VAX`YEJlR<8fpqYc6)XAwo)mLPm^XVYu^JMO&dF24AKO_}=!}7e* z8rt9MCuvatC+4ywgahfsk|1sabs&{CP=~_QE0WW`iMUe;CTL7#4aDM4*gq8wXrdzQ zjx(VeiXj5nLY0-kAv8&7u~Lr5kib4*EfkUHAR>_!Gsq>RN-uD!(hLd}glSMC!Y+hH zGF&S4h{Sjl)tRY`l60~NFoSmV;jknXs3psNMAbGDKv;n{|DB8jg8D(HFB#>(ab&71 znWGFp7>q&?DFnLOkbDYYx*7v#k!0WrDr8_aTQs$S)Hue*7AXYvpoxSq(y-1a4bB8@ z0w}V>9+f6QCUOfX9@)nk)&fnyoFWO6Bks5Ygvq@A0&z;*vk?}X<-A)6zz2Hxkh#i$ z&O3A9VP(le#=0kJj2eYuGN4@;u%q$~v;u0B33??3kp;l8lyxrNTJa6n#3MPr6pa)l z<}|&f9~RbpIl={IQMeE&WFWwXK@%@$3#uJyN@5W=;%qGlM;853Zf0BM2idZClo!P3 zSyumm({YH0#b`ld$DF3jr145fQZbbRH(FRB&uSMy^EnG0uIR;({E$qDU_S_nDO|8z zzmV;j=G8b*kdfSOoVtY|y55~5J_Gv-$jcXJ5x?g+60B52S~PluM|SEE+1WohiuZ__ zU`;gv04)FjBHG$g7-?fezm_A);XSWb0)rd}UwDOK?Cm8IwK4<prJOvLYQn^-l^O9e z_PG#W*iiiia=7s*<^Z*H2t25o6ecdD!3jfYa0c<O#?;lCD?^Fh*pihRQmC0O2?{kC zZPS7S3(j^aDr0&;p=LqL1|l1>YBEg%7WX1kT|!AjCL_WLa)85f(>>;i?fkq<4!Q_y zSVDaR_3C7`mV%U^U6NQPg*P@};2cZFP!?_F*&M|k!$Z1<hDDLxKrv1aQ`!Zk#8v!` ztW=aclYh~Q;V(uqGsB(kSx3-7cXnSl?ogb=mx=A|A$ma)Mktm*tsn;n{>nq)R0P5d zWRwVykkzCM(sXuc5=3wv1jcZvtq{-V=ZITuuqQQlsB%^g`9f`rai;#g#(o6W+uN%l z8ErGjfxIC#<ih~V8&W$t30!$LRyfIoI{2A6TP^rONikUmE6rBRO1mKrgA}L$BV<xk ziiwFR4i%WqQn*ljF;6z<CVe$bI+5N?$|4r%Y*uH=prw+Acsm4g42dczfH|YWv2M%n zk;Ss-ot6fO$8#WGE>wyQD4@sz@sF3Q7Xd%+tP-FJ=U9B#NhW%byHsRVg3^&R5<&K2 z;!OupaRm-Jq*o?p$^cu8ShPs=Si&61g+Tvk@^wBV7s!Z&Fr7wCwejMlSF&;e&9XX8 z!95l-L#<4eB3apprb16TiopmK<KoZ7ixcEafBeTKT1e)_3nmnd^DD`Vf{9#0t{)lw zAKAW}3M*x#Vl-K;fS6}wf|*1Ax{Z)Cb)q1R9>^+IEFU&d?-iiF7O;Yn@+!sJFp#J~ zI*l;P=5FBBrfnB=_>mA=P!$6Rv?FC+lUd$`8XSVcaS_=AQ44c`3_4mx=8Z_M2Ry~i zFLm`IpLAjpP5B90)T~Md!d@KsiunDCxEX83XYFzxv7F*XT+~0Wh0GZLB}^<nS-p;R z<H<ZpD+b{O-(hljEWJ*ky$yt9ctJQOYXxCOSt|$udCds1Tp6aaDplNnK6O_#xa|5Q zv-H-N3E!vgG}N?}8=bIknMb>OE=f<A(7-BY>e(JqMYrP~Hr)Aed)Lvn?^@g*G3@EZ zq46VZ8~o}!H1x{tnwJAg4b2(kvG_ni%F62#>W(d2UW9pjos&Iu-}Q0H{k`y|E^S;s zqc$&2U3IqJD=9ar`nTl`y+_4bbu%8xusiS~Y(o3hzrGF3snqqe-TLXfPYu6qT$9uv z|FyM!%H)<WmJL49JT7E?qn~i4HG#f8$32raa;r2bqvGk|j~r6o<ewfpF`(L(^*DCG z=IG0%5dlS3HJ`3teWPk>{q_DI<XDfTt4=)(Daw-szQ6Ld?+|%?>BZZR?zGXQDz^6y zX&16#$Oky?@Y+$0_vS?Hm@-pYIHBsn^z$pXG?{YTru@kAc@<C84Bz>r>nzt7P9t7C zdaXKwshaoeKYWE>>w3>FNOq;q$GRpNeLVx)`T4%mv<k=9c3-ooer%&Wt9-0Yi|Ag# z73%~)G+u(_mnLti`)f^<(`<)Y^AxW`E{oqMe5%+rZQ_Z=;okM<hqVr<_^Fi7#X4m! zI#t?bQ+3Nq-}hyGYaeRZZD*a(IkD|s&j;Gy&RQB@RMa7Ps{aY&E$_*%lPig}*4JM? zAHQtIlnWtm?Yg&`g&x`B7?Aqi`Hkb73FE8TARC*FRBST_NupLPn)AVW=iGBS?gcI0 z>`L4_B+I9E`rQh~qS}QqPoc1u<FzLY{>zv3db#iMs!}hGcPck~zjNyS!*6n3WAD}V zNLbv@xUE@1=lHWPv)08la@jCqW@)X{tc1Zo&h$#EbiCQYITvm=aBes7T#Zq~zDy6Q zV%z14a}GAX!zOXy3HWsS+}pVseoj>@?QP$7;z+N<7az?sB9fehEnU4|M9=J-QSM=9 zxmC-Y=lAXo&`z!RaL$%StH)X|e%BnEFkAU{g3fnD*c2ytXnLdL@PJ2iC)co*Dc3X` zxw2Z-aocV0+mxEDQW@13mo?f}&ZBp$lOOKfS=Fbl=c_pvD~n_94?bnQdq1pW?5-x) zYp<^A88h<a$BWhLC#BsP^>vKM{^Tf|sHxc>22{Q(4OZA5K3(k+I#iw9x_YhYbGx^{ zynA=AZBwIG8;4*6?pNPG!O76N;Gz_tFc?=Ih;6<{q&%NJZQGL*>f!spbxk_AK6X)u zg#{I-4fxbWTRXAk;G@y|>erVZtNp_rTl+P&XZ(z9k}Y-zJw=1(#yIS~`2=zFZTRr% zuEr~+w<_3K$Cgjrz3tj=eQ^H=F|TY+m(@)k_)v^{ysCWTl2ym*D<8xk9;^tD-0o-F zcyWj5)=5{V1&%V_S^8S}eody%s(uG3_uJ7bNR`pKsnVbA4fh814EiwGIosuRzRk9> z6LWp8M9*r!F!D;{w?)H|D!~m8>DtV#-gASu{BU>Z!Ryi+KfP4WiSx-n)wJ@otol}~ zw~Eu>{*wH3Hne-YKCDMSjaA&D1H)%LnH=DjBdWfA_EXn=hVr`xH>fs19OiQV5boZx zcK(ZgE7rsu@8+A}>o<CQXx{g(nGRC_Re?oIZ@kDw8}I3z+_ZO>KKeZilYFX#k6#z( z7`!uUNaF#MTDA;rSEl^+W2oloOk~N<+ADr)7u>hq>D5NH+TYn=6b;$_{m?Xf`?%<z zsp^nhPoA}r95Jr=)>T}g=YdL73ug668k*IscAD)g=#yJNkBbfyr;WPhG_1z>VfA|L z9DFhU`i$IiVc%kZZhdv(L42tp8U9UP4_bTb*RT48mlr1WSuv{p5qRSHdq0odFL%FB zrH!o*6oyD+a^4RPL^j^XUA^1))<ig_eU~R6cz^wQ;f_bc9&EfkrwI1hHF*D;8jTk_ ztRCQ7#?WukfWQ-P^M~zEcST)V*E(8brsKo{o3Hau$aa3dIJ82Ql*K(go;@`l`%x~z zzxA%+%cd;;X%m_vsjA%4+ROSz{bzIV^KtPN$NFZfA|6Vj(m%h~HkZzQy6l*z+OOxL zg$aYsci3lFKl{1!x)nnM=YCt9Shnjt2fNvee?02zvbt}baTU6tNyZ6Ts`G;z+Ml=H zIJj+E>zTLxA`I2i<^?!4{c`FmZ0+`4>SB}i<=Cm<jS*M7Er}^uFd``Ed9BihQ<L4^ zsMAMfVJG_>iSIRUxaYOi4Hqq5pPc$~?&bsNx_58gJ!VWTkUDlmUUW##vzO;>{&`|- za74TJ9cwF2=e=^<cB0pa3bj=;KE)gwJ0+`9Zu6J!YaYUF4I8fYYkA`Fw~qsczBqEM zQO$2f-IuQnp3xvz-1L6kb3-Z}86_V*vR&^FomM1dJ^NAjSa0bC*WCIqH~)Mv?Y*OO zxjNXswO2c&T)O%rywZyk7lTrceUb(*88uJWXJqA_+e%I9`EA>6^yqo-T_G<rDqWZ+ zak~?IO;xj_r1=@=`rCXXgC{Lt>S}+=273{8|J;6QrD@Y{t}IGP9q?>{Z21M>cCw}_ z$Kc#!UzROxwymn9%V<^CjL4pT38y!&aKE2)DrIwgpWL34s(Iz@efwZX{jzqtu2Z_m z61(*JlJsE42q+Fqx;cGOgKrB1#eoy%!P&-k>by~nA9y=D)}8Lzanp474Nb(G7a-xA zgTfXpI@9l%*O@EtkNAAw8o6bR{rTNi<(jyRIi25i*1ihOx*4|mFZP<{c_aCXzIkG| zvz@C2jQrI-S?%-b!Q=X_flog9+^&}R$!Cu0!??}Ezi;?_c<huJ?n}Z3{(N@bKJmr$ zg-s?&zL%X|^~cM?ubl(4LMJ{Q_3qlDf+Od?AGx;gZl+(zgdcmSm0t6+XG+@c#qQnJ zMxChLhYqiArujaoTxo_?7v-!@{r#jf*EE`)m$mrd#Ho|6y2*1#=aqk#mv(apHm_2h z%2sVlH#>T8aFt~_$J)+{nKJm>RF|JGb890$GY73(JAOy1e*EX)4jJ<o*UZ%g4XNG< zN_KF(;@EHCsUwQ$U-H#Ewifl@GH1=E#k+z$>o3g@aBl9lCe8cT!Qr|6w*6|A(dONA zbaUGcR}5(_SAHHbuv8&*sqNRJ_0(bC*A?x*(V@Y>9zi?M9v3!?x9)D0IN_Ug#<3sL zJHvf4SD)>VUODsQXim$PZ_1QDvS4PM&7}!%k^-Farab)kJwUDgIzFvS+LBW{t{wdr zVcq-P1m6y_{?2)~_fK6Q%N`y7!)N^u?D3NCb4DE8R<7d8@-`ou_dNSCs!!;|7eRB{ zMO~hh)h7Fdcz?^8;)Q(=UToL(!bqp!7m4L_r5&L=(`#MNot0^LzH08HltJU2s%lpi z!lf>}3@df=TKMc|?cT3&J2Uy9HZ91i?T2o<am)6|Fsr&j+sC%;U-sk8fL`m}gI`@x z6`Wl0<M4)e8`u9>zpQkG_OO=}pZp;$=JBR>MTU=EU$o4)(kZ+8M$bIY)#onNt{v}n zFK2jiINWljQ||YLZ4K69+c^t7ed-L~vRNB3VN=fa3qc`0uKLCAJY0JDjMUn1^CnGc zS94%Nr!5<rw#gc#i2blm3%#_7@}1D3`N4}in<)#1UcV<@cd{sLNIQM-QRjxAYb(|U zj<1qkskA(AV)LUpfwl5<c_)7Pjd4DBtb^)a=AK>C8l7JCRxzS1_U1hP{8`ek*VjWM z4lT8Y?)7N<Dmv<`pDyj^)t}z02c4X8daASfS<a1vvEN*`@4fW7#@&vO&->?%YOvGz z%B@WP$K5LzjS8z#D`=)W^6d+>@rvYQ{lOP{KR*=d|I(*_*V#RC>ZUkU>#1>>a<cbm zRl6ziK}SZ~p-m$~BC6gD&0kiqdUuV`l(#SZQ_7>e(QQYr#186yaKwX44?5JyGnSp& zDQnA}f<T{{^*uvg`YyTBdeOz|vU7fe<}LAxepEiR+L+CoJ#K&7mEU>X#Q}A&)8)SY zXzzXO^-;%RMa@3AefZMeZ{Y`Q_xF4Gt=50-HMPa-na&aycllY^WAK-1JM~U|eq6E| zBbnp=Wa#(H+vDFF0&LFCY%lpBUHvI#60%RGe%oErc3kDFn$ssXgtwnq2~tHCO_iN^ z4!?w+Yc?*`Y;OCq+j_f>&v)OF4_oONua9$Bmv-Y;<Tw|@#hs^b)UVRwNllUapl12C zGY2esandipYQ0j9BkUS2?o&4j{aWjIH;*RAzm$zel{LmadR6eX!S~nDm$91XeJl6r zV3WCQ?fg?4Zx!78E*aXj&$_1jZhM{Xbbp{O{M?|u!>=s(m9JOcuCA#va-<^Tf^Q@3 z!Zj;>x+tveP`e+-M3?I!lOFqM1FWY1TvoohWWt8^Q;xlDGW*TS9*PRDE~eY98aq6y zNmuu<wITW~&XI$E-dmIHS|=~2U3A8-GOyi2w{ChT>E-+)W%TYwQ_H{UV>dB%(B8xz z&gGU58quc3qv?a}&a6A<cHM8;v=8^JW>(0q+3Ur-O*gH!k6YQN*;L=@8RItB+Ok~n z_()ONQPobn)qBwQL9J#7jE0Zn=i~nS;wx1NNMGW2c4uzT&I5MmPL;bDq|SZl?s7p{ z@bqqJk?8W7%Y)<2Ykgw9_m_I{ebd1G8`W2nZx{L=d@x~Vn@VwQH+p>DT)p9}BNH5Q zSC2c|8J;<??)<}2d0Ixlv0kg8y=%UDxJq{R9$0^&8}ecC%?@^Rpj|aqb}xA5d~?nH z(~2$PaMb9vd7fi(Qn%)Fj)iCVW$gN}3;(2PG-#9m`!aXWUd~#0*D-ASj<Bys?wr~7 z=IW^`6APR5mUi)byzTCgk@bQ-UXN*;H{7HC*``n5K%OmUPkH>Y@YLiF>wd<>4H@(3 zN9mYfqw8)uEv@hW0M8gTGX!q@X18j3NOYe9kA>f^A;(SxPmXS8sIsXql6Ro~@nsXw zx%@ah;`oMJ{dc3{UyV=q`VsDGSF7jjM`J_d4z-xk+;7J(#Wh%+E0uPs8~b+M)zR-# ztv3a17})gG!#<6zSJ+?iU%en}u6pE;+2g&&KN*eBKe59BYc7|rnA)UWQ_tl!LtCUa zd(?V!V35~`?iZa#K+SuX^E^<se7{-m>jh6*Hzn!$hn71>`KAm~N849$u&Xy_{izEd zrLC%tIWnZJ8@&1L$7?eV9$PYep6{>yYkQw57?<(3+}xy!3)`xfud@q3u)nm|vsQ}& zM^{p{x!x9+|3Z2>p1d}+a=%SGo?YqCeWvWG{!2)e?Y;+p=<kN_@@Nv*`|_rc+j~xW zFG$YuPYrFmBKqs{l%28jkW+7}pJ|akxm=*l=x!f2=3dSnUeLVRG#~4>TPps1S*fqJ zL+M(p%H~!(SqWZ_U+&qp>V)`^SK~*O`<xq+_Edc0SV3a5l=62*9=G?KUw5N4=|PXc zviCiwk30Ny6uvrFZjTQys*u`1<ahAx)ox*x(>->b?>GER2hr)8-HuMXaL%E}m8`yQ zCr6c^;!w0?ZTA+|h9MQB8x5M-Me=q?+&WLsF9*hK=-ji*&IeU@hFg`x6AoRLtnP8* z`S-prX8PF_9_~Kq>dx@O^sG_v%U+ujyP_{!2H~{}Bol)NjBWOyS8v_-UcGxfsJ>hB z^3LVA`iuH$J9=Ns%(HEB=5}^p^&sP+TQ538(<1Jkc%U78r_RfMEtW-;`_OLQ){6Jm z`mgZ5G_%m@`-HyX6NihhuMe}msN3E$^TiIaldN+0y=OL!`Mj@+^7g}ZGv1x={4(9e z^?rhn?3>c_y}UIl+1kym!MomB?;g#*daTNx{2C*Z3Zc|>KNhwQUiE0bKKb0rS073z zj&7PeH8%5M_IUk`f#3WcUqW3Umo5yy9H*MMCgRt!)3>ks{+K4Is=Qbu;LH0#FIv_W zd*!#dnlGPTDtFL=OR<Z3cvM|{W??_?<?rl<x_<r`_GHwS)HP|+fsH0Q#%g5myCvG+ zxpp}3i~s3c!C?>XTkV&+J<+{-yz-}N9eQGYnHcNS?=u|BPth)K;n6=gJ`}q$f0N73 zj=eW}kKggGo5QPyZn^th9pUvYJRbfWaK6QM=|jV(+M9+dwNGka`20DtiSee`H#E(q ztIGdXL6>gbueZpV3is7GZa6czwxXf(euQ+;^7i|%(@AcMVB3#vPd{C|cG+vM6%H#r zb4z^+*mLw}!*Pug5&7s<wQuzq5Or=suRc@HOndlc<C2*J+MaQFI(}R7uSH)Ux%P>7 z7#nr2apAH$%iFp4@Tx4%zL0AF;n}RvmWs)NVa_#1e5}8rgRXwZSNB7XKiJl8#rwST zq9@1CPJ5ic_taWgRjZ+m=1tUvgZ-i=*l+LPa(Z+973aI1df?&qWk#2Gi_RU~`f=g2 z;P4Y0x5*b|58P03TD1+I^YshLY;}yj9Ns#^^~WUjjN7+c7QMP}ZS`X0isqspU)p%f zf3DBmKkxnz8}I0ruLlj8I$x=+W81UxtiGNfZKQP<Y|YC*SGUUQ-X2F+F71=ww9>mh zPv;MFJRmETIcIyqBKKN%jKkzu;E3fe%Ko(tiI0O~UHiE-T#?eT)=!@bjYgL48{DIA zDg9W_9*%bcR(wrzZPHK?7Zi7Mb51JKKiH{GImP*Y7Yi1@i22%ZP=T&TQiTvhzjH{Z zcSqFlMR?-RE(O(ZiR?bcN0%GvkkaeuY)AL_c@3^~eDkcJS%ZF4&u)GxkNX*9)v%JR z!NfMQ=pN2CUCON(?e@yhb9~X-x%aAGOzJvnNQ4Zo`AvFm-tq<0gYA^xr(bWD;2+^M zv>;|zN~O!Kq@TPFS$}L@SiP3t^XpZ@7Tq}zySsLi83Aj9P7Fa*9d=9`b7|_DI&wo? zSfiNA0V4-sMQayNnY%TkiRaNNh7WgEyli-VOnUE&-5kfgui&nIy(nYY{--gQPE2ec zop$N-<c`Ue7Qc5Z`g!7Lmx;AzdWN2LA9Sl}&n=~bTa>x_THkN!q^Fzfe_YWSemhT; zU{^-@b5Ux!Tg!ddr=7mht?U)-c;DEpDF;0Z)&}Qx9KHV7&`J|_WOhCdFKyPmK}P8% zlXu-dox6G7IoXKN?x8ckRXfu6WcqWz4)>hub~`xZd%v%;rL#sZI<sqD?bs<VPcNRa z&^|xZXVQMfsLETPsv67v+H0&n6c)@i7JNra*O(h0v}ewM>i7DE*+UCoFK*sYzB=&E zPG#qD<8+4|-5yW4JG0rcZ?-+c=LM@|Yr7{rv)(+V*@n}f0!trUvwUxt9}&wd-1RHf zput(u*+F+YoUEv6lrHYwO{27NX{XxwdE&W%VRZ)%{MBRI!}(?4i&c8uo|1bP@s)%g zl3a?p6Vqwk&jzB*GVoK?)J?Z~F1C+TZC_Y_`Bb@P-*W$37p9-Y{T#CP*15N-*Pz2w zVj{zx#re|Bh4Zp+M2sBg+B90@Hdt3C;Pk4wmr{3^A8@Pc!Ndh$J-1hwb7^&>cca6* zLETDCz2!D|^+LyW^7nYuq79DkHebimzXye1S>5ga(t*g7v5kj{u-fzA@9}WE@aEo) zA&9z0w?%21c|Ls)EGyfnt>IzY0ncJvc?=pVTHN^Ljhy>cjvev&Tw~0{DpTr?wl4o^ z$;}a?8f+VV?dyW2-+#tU9XigV+z83bft5G+|6Ijp|FKWQgEQV<@O3;tcR+e#(>bwY z+ZT;)IYG2Tb!k}ZkO^xBUHRr%K2LdT!+Otpb-q<vJ?Gt!1tTucySvf0V71NegUyG` z)a+^FJ=|eV<Yyo2TFwEI7Tu3j^Srm|XyM9{hW4M`X7s+Z%?-c1!Dsl?qQ~PRzfJXV zJzXPWL1E%HkF(Rtx4YS9TKdCbb@Q$)oa1rG{$b~fXEimy`VTny;r8lWo%@EDp6XO- z<RhckjRu-CyAD-4p^o_>zTRbS<K~|>1+Q!qcGNRxY~ZWAH^Y0+|1`Pu?&F4?ck7*r z8PaU`kZu>g22>iqzImHnsT*IH_Hg(bs$B8;q^fgOpQ^s)*RHO%yxY>kGWkoLs=(zE zRlW8Ubk;lBe@v-(aPhM#&AJxBYZY(Pt>b1`mkqS;fy;h<c5FE7zH`OroB9u(QF+z~ zdE@OzDld9|MO1jVVXH&u9?akJW&S4Q=IpKebW=kk+s9ZJ8eCm+?|Dvp`RHEMv2srD zpQLCmS9n~iL*<r>Z{>b$=d#}GhNm~SB5K5}l(z9h*S4x9g=f7SaewdfYrQVN9K3(@ zd>7UI8j@};LZ`USlMeZ^Dtpwr!K?c0yX>|o#c@FCo#*ry3+AsHyxS_q&XDR=eYnT= zDIX%{r7m21)b{+xA6uHLWw~`*dpxde*j5%jS9edV2Yv8e;{8EGB1YfYe6{uK+u<Iw zH*ZvKvo|V#x!r4V`s%CDFGKCG&EM`9Sn%!Q&|`<|mtD4Y%#zPXQp(>-D3>u}T$tVA zd$xyOyqKQUB1Y4$^0{5FYxK#TSkAg(!&?h;qvM8$g)Fl=dtATi!ty%@z8VKK)y+%R zZAnSnQfjB~*$A5=D6CYauqKIP8+PuTns2<H-}_eO=ht_(GOTRqJ1Jm)uG`Y`4vSYR zk6$`J*RE=}-V=Up^?w)So|?C8MCAug2mBYoWk=R;(*gcbHSt!tHX1jNp)aP2%7`4+ zbz1#!k4*i#f0Ov{qed<W55G`eHL~Z)7Cum7i&EvQV6XjLn^!}7H~eI*Y~1&C{NNXB zlHudyB&EZ5EgxF@dHYqqGt0IfaphpS39g^T@vr(k`&B1BSi54euV_#0pLeT9&BV4o zlE#fM(>8t2iWI+>3uLay{9$zu9+o~n*34lo?CUY(?xb>#@_Xa@?V3~d+JKvDOKWyt zlHMxB_g1Ri`%vrV$@2mlo$||%MUDG<`#f?kpVd0Cub&?6*M48$`kuWu&g)vWQ<I2` z!~LSx55FH-zLR^1yv6bCecNuH`6@cQw7dUn&*>vh*>~s-^$F>jf-hgzT6b&5g0TKA zXN`&8an9PS*Sp&1gIl-I_R&rrKPKh0+ud9K2e*_9{XA;ew?3^<s~L(@@*O+iu-E9= zhYRlq3_5HRcUBgC;j#6bXHC=WBX7>V5Q7f7`*C>1D+RskHu)LfRC`Oae(vHKPg~yn zwxI5b#HnRIY`(O~Wk|;8Q-ym)v%jVt*?)D!g03t4XFCMC>lO??*rpcJerv>o`I7nK zK3Ny%g%0j;yOpN#ww9}}x0&odZS&hlbGkljcdn7@mTT5k&Fj;-ap$+rD4a29T2Sjt z?RNC(@;){2z|~=^VBaIRn<jpX%$;((%k5gN+r2o_s>#R4rP7annAocMlMS|8-g;DO zskf~>zRky@ADYy;nOM8d>Q9@$dbfVz=kWBEXYPn&L&J*p9QrlTI%N5gLmy5Ve#QEs zVGG(Hf7<%wy{TntG-<lM>Fw*UK1cPvBR%yZveuf)JGZtUa^HHr|H?OyLvF8H=<%if z_K$Ts4jy1Mc-6YOIOnc?#|umJK8<tI?xtz-rsrj#(es^_dCctiawl@}xwTdOMdOyt z_*r&G|8p&?Uh_D*KJ8qiCv`sdv2{BiXM3_ikG-dBS36uOBkFvM+o^ktympW4^5Mvr zg2vg^Y6afjyrxf=hdXNf%lcLsUU`gmZHx?yDf{5Q-LgKNR;7-8ym&#Y6VE@spL^)- z+0TL9t?%u-HOsnkySSSdMmctpJ$PNDJg}oePRhVTkCs^78ZEiI0vTsj8-3WQVQdq) z)bIgGgS*VA`Ri)4`hz2TsZV|`T<B4!(b)H|u&!ToN|j3*a_;1`w<`iA8#hmChFl2q zymD{U(Cx4LxuU+)Li8_cj<V?*iCzh^f3adx*R0#kp1CaElhG#bP>t*}j+JBTKdM>f z?Xx<qFCQ4F?qr+ecVN}^#4gLDg3jlMk9oLfY{7=!y9OSq7ukQoy(1M;%Z+kh+Na*c zP9IxEwyC!IT#eC>xB7WkZls89TDfbHyl2HGaohI|9q+p(?COyi@y3$@#wH&|-hiK6 z-yU~xi~XDZE`_?5aqD(Ss$FV7yibgL(1K<)WHm6a_s6sEe6QYXm4^>H>uD8n*)<Ly zY>wYtvUmE=ncD{4dE}B8V?RFT-NYk_H?4YA?YZ2(Yu&ELnuoN9Hcb~Nd54cVJK}+B zoI&QJXmNbJB1V$kd;YIdi6f3SC{x<)(WLQ<l=Zil&3sjPVxYojTAPDY>$r>y6MZQ3 z`5b=8MsuZE{Ju@D4MpG9&c$Xg5LHUuZ##YQrC`S%%g=XHT&?OdbT@RvcI2kCwxtIT zEh<!|JpMLx0DNNqkp6g-zW&~(Et_6hKk8Stu~QEYc~o8@em(lVQ+MB+ox_*3n7x1e zu2(*VgI!MmK|sF0J~*1@mwi5TUuoBm%hKd|)i0f@xANz=6$4Av@k)+6+5cxs<J*JI zhkfs|uI#qtwhIRLSeX)EYUU}0xZ@eEF78OPOaAFI$F;vSZeG8+V=KRmik45tM-)C> zvv*Na_srfAxlWzxN90v?lUJP{-mjY9ru}2qO*{9#%Y)iIU-h{@Vb}KlJs<Wd7dddi zk`9ff*-excc1*f@V|bHglRtc)v!hhG#>Sjg#~$c<Uuz|qS}(GZ^w6|lm2>uuk}UOo zc;)1-pDS%|1f=78#9@!}4kKj?BA$xtEuK-=>EgiTPq#mc2lhI&?``)-9ol-F`FgOS zP3#5V5olmU-phvd2G={3SJ87NoC>L1Z5#Wv(u(Hw<EvYJ^^4wI&{zL-`c0>bzV}iF zjM{O?zWb-)6?&()(^NZGFtN%>pVeo)ZZ3@Qo_ea1%Xs@n=Q^Hq?pas7{MoC--J=V~ zc9=g?UuNF1===}vNMU}HYYF!Uo%3?lFa7laJM^IJo=yIW?@u-_U!Hq6tJ3@{kq+C& zE$Xs=&Mu$aQtLmT?vGfVtNh}Aa)bTRW4;G$ebch$ml4;3f8|6KRh!cx|7e%o6W_w5 z?`=<%Iyk$f@6V6BQ#$qDa^z9+>inB!)?XWU<CXGN;lzu5@9mU)896d)U;lOYZg!qD zaM|m*PagYUnAiV>q)L$ev{c(;WsV*)j=<Kri<+*SbMa}=`bI4#1fQ6)@8RR9yAN+x zsF@Y|M2vO4J37TG=5j!}k=+-?js8-!s@?Xl-jbeo1Mb`y<x(yzaMGd1{pzNqFKd(e zWq-Bk8dJ8~&NCDhjl((}ecy1|$R5|{bUqYO@%^@5_W8LjHWrP}=+l35-=xwBErK1_ zj_rEVBYo>lpC6euYFj(pd8}NI&i{M>!t)P|X_Non@Nn$?<=t+itiK#|Ec^1C`AbqF z@lwuTSNYWM^&Q(*)PDBF`3slS9`?~XE5ycr?ef{Tp6q?OuII-e33&}xt-0Raxzn9e zakZOI*wL*@n^$jF>PFuSPb{CmBG}i-c=64khuingsPI^Vtg3h9%csjnTQv)B_Ud6_ z+`bXhZQ5QeyZh&`BmGdX);ZS4E{#EcyxnwXWnP(tsAgW5Uv4i@l%L&q`MMO(dB+lV z-?}*J%%!S^Q}b@NcOAFBK_{2;zv@DW#P{5gh)<RC!|Hy1v#0;`*rH2CZ@k}oUW;CI zuJ4**@t;NwJAC~7_2<Wqcm5UUesz7}z|(mR16REiH-O)DkN@>*zOkWyXScma+d}#y zhlfT?-5mU7U+XBzp!pAuFTK`vr01?$&Kp~miC%<<yu6)MRuW%y<kbz;iZ319wkE4; zCbqe}^{UD_?M%fE4nwL|4*#_L)drQZTwTM1him0ONA^z$hF(u;xUtv03k?cJDb(JG zW6cR_m!2>3bzMJysQjtjG`lvFGe`R*EslTT=>vtn{qaNc?dF18E3UcE8h_dN=A7TE zm%HW-uQIPqk-EX08^hMVsnHotkLh)_TjcliPo4H(8xr)UQq7A?r=IQ~)TEKu{OCOn z?;<o8kJwLN)$QW>ZrPRgyDy1Y_ifdL`X3`IhN)7YbiZ4EefryFY26Bs-Iny*71g~5 z_SLKVqU__I-41pS{oX#ot#!QbI>$}{PwjtARR-1C0k3<vMV|EHXJ9MOT~_dxuV**J zy=z$g@tjUOst>TPd-HR<EBj!d*wbr&l}&Ep-}Lh0B?p^?iC(T6KOpLQqv68__O51A z=}SzI*WKVOV^cggqQ=g|Pov)*>f5w(nOOO(8u=c1@SPLeJ8mm13k5!jkFIUlys^ny z{KV@y^Ip5}DU}l5)fhQ5v-Hw&)fz@Rq;2;vthzAU@z;QjzvQl-bKYh?a&L?W=4=TY zII!C1)HiGEU9K+aH)2a+ll2K$<=EyGj;=iEUoW;<o%Ln*XSrXmYkMmHal85*t(SNI zdE?aaj`}+HHH$XH+C{n7Ke8wu>R-Nhw>FL94$VrK)Zv7(#+!cg^0)aY>hAFxqec2& za9mry;+aN@#Siw!mESslR0>*3yAW}@TBq~6-TC#d)SVmMzPYz;-|p>RDZRvJw;!mo z;i)mqYvQBTdw1{2dFS7;)PcZ{g(|q<WMST-l*LWvJlcbN9k1TrugtQxo}CV*9iOv( zVSDSv9mm$P>V3`SL6c!t9&>kJ+O_GUV_W-WS291vh%TwZ?4L9Y_3i*gZFtwV@ydpG z%6{rJ<lxrx*rLbE*<D~bNi4VZ^vv!#Lt*U!|1?IT(ukO)UDx1!`<7{TZNHtgO14|S zT6u<kOJ~UROYKL#slTXZRF{D<%lfX+Y+Wah4wx`UwD;TTX?+?T9KYsvN@AmwbJLD( zs`t)KJa(c-=}F(47fyS9Vq>3u*R5yn(tPi*WoSnHIjBdJa_^{Bs=~`><NJm!63@1) zo4&NiIe3?wWB#~|vhzLPcM>mO<vt~HaxK5If$~<k>+RH<%}-uSI-{KNZB_o7J<od2 z37ssGjhkS7Exp&C9{22B+H`HT>2Am9TQ{7)cqfj0vu0ZDQg(H%q3}U722?21ane?M z71YC~*8Qu~Caf&1`>=A+!Y`|1q9)qiIC0}<!Ov!;wzaC*|G|ij7k6#>8a?~G<m2HQ zijdR_ogxy?x^#UX==F7W>8=wJt>UWAem-#Lp6UDZsy%;rwTxB%Z2wYEUXLj^Kyta= z@%_zXX5CX3-FPs1L#v1eb#_<1zeKku$#+CrohR|<4-C0BE2qn~%bhP@?^6EZ^Xj9| z_zm&>+*0OH<IJLmM;3`(J6~_V%=v5kq>TBBY4b0aa=86`U%&S5BMOQh)jBi8FzF!P z@18^kPi+-!Y&HVVa6S?_Yj&mP9rpVA-1bS3`HJQa{FJbx@{I!<+YR5@IB0ZOJ%v7X zr~8mAy_T%4bJM!rrEeWeO{sL_>4PcRn!sI%Yp27m^->L*Hx1LGuU*;Gdz19w^k)6X z<ygO|Ik}0!kofhZUB}ONUVBfO?{i_@meU(n^>8qDyRv%=JnL3u?>T4Ow7E;ao*nwU zsg=H;?T}Tit6e?YxMgAreB;WF&@VRs9{>PA|G&TvuAo%xet(n>PI@{#nOk-g(|Mim zN{{;_>lrEz#iCw}ypg!&7EqGs?9n>huW*mztB>$ZsJjX)6ZRFzBAE(zZ3kU*69R09 zw}YQnhquGm-IO*aNz&FXpm1H3NYYqpj3<l^XBMpHws7NEO{sAO+fxFBW7p*VEVC4d z$+4N0%y`Uj*lSK<IYp!uCa(Z25j~kpNd*^D*3F?R;W7ZToNWXWroRr1a$_6wsRN${ zD+1o47&ec|#dkiCO|sQ|x2$rbICz5;Hnzxl%J=m=ko1ZbvcL1wd(@UxpW7?CV~P$i z73bE(zLR=M3h8I=V;+o)M-zr&<=yhg*=ys8hIWckh7@Q=u+ER!%Vqwd5sN?dE{EPP zfb5Sw4Z4~gIG>s_9iJ18m50UIt|157r}nvA0cr*Yon7tY#GVBo%DQZEg+de@Q>v7d zdSUN}t@PF}Uc;LEXe1IxpwhgiTzv08LVCSGfJ_Eb%UG)xM`TLXPVbYA)GWi7aMAZd z&wtT#p-Hm!&6wi<5B_GhQ7(I=zF|M4uhY60Avb+5Ze{PBpdn@FkEQ5l$+)w}>qlA< zIv^!;<x5<RSb_dLph+L|;xb{x?5DQ~!R5P5F4Dh_r=?=jix}TCK$o|!(f3X2-Vx90 z<E&Fkcg&gg!CVk=Iyc}TdOZ_=m{HepSRt+i?uM(GEQ}8muo~>bC3o?Umgry$m<p7W zrKI7p%;_Mo73~%53!r4oRM&Tcb7(;`oY0U_wjaYS;7=)2u9O@a&2oe05Y2$1`II21 z4T^iJGExLiBm<nbftr?8*_eLHw38CBI*-;JLNOMCjB~>xWDubFPb~OFIP}Gj^`IKQ zta-FMaKajT5I2RjSIBGFSdz5S%-X!(6yH}Vg|5WcXsaa9Sx$4*wb*`u%$3B*K!;zm zxg9B5-L8bbmAOy&V6%Ywb{eLQ#?@8aR29k{M2lIRCp&k!Bbn3up1(Fc9WyhT<Bchf zgiI|~f1;sxj@!?0tGHL{RmhaOd3bNGo!i_vYGZ#k2Tx4P)picIKa`(~i?*n`5H+wL zdeEK<ct*m)pHyuX6a_rWfp=grKb680RN2^REMAr4g3^23`T(=E0eQk>5lf--i<^ny zHj@1c+Q!T5k+4FS($QLPtR1^<_Z+EH9p-@N9v{;Zq!2-O&+iku!-p+)4MpFyOE({y zQAa@nhA1HLa<e9^9+=R`>xHMvr_`zGSl`<X#Z%dj4_W=pVPl;a$>v0BV(D_vWa}aj zVcCE4h_ar3yFP{kM1Bbh3gH!HMui!M3O&mvNPX53;@F5eD4h##_L{S(Tt~f#Mfs%* zxOc#2d28To!YA5=6x;sb)ertU(~#0VSOydG0%B+`VthlO4Y38tduj&{s+zw;PLGfK zPU$6W!ae%8$u)|_1OJwj`{m%yl*8*oIDV&K-eH54W!}y}wIU1&b&$W*XTrCtLf$Ns z*05Ub`53y{U`B4HDyBPXsh+EQ`Af1g4z}Y$mIGbYn@xNMMQTo@rqq6(TWn^qF^XsP ze0zr=wwO7t0Rz>Rvk$<<S3+~9a^?h}82kBAh;``e*o*%}x|v<Z<YXSVll^_)u8vEL zYv%-*DlfXd-Bz3Mq5`h-950HjwK)?F|DA)!X|?h_r0M=-=((^?2D^7b%J@%XpCtVf zC|VSnXm9wezPCDFU(*36?5~@*$5*c1Kcc%LC6gQSLQ^!ON^MpCfSmndyCr412RWcK zi6Q^t5U@CV5mKsDwr0TU=JJ#v85EAP@-hv|eWGTPzN`BovF5UN05jqHP#7o`0Ew6E zfi(&BcmH+m-LYu}Q4p(-vG9EF&zz_+?L3tUK#}WT_)#&fNbQJ+8=pKLvJdIt2alnl z{HMEsEByeqXU&x-e>fob2ba_5q={S32SkZKt%Hv;VIpjlTLPdv!3O!qW0l7xuzOB1 zk5peD4Bk&kiFN-V?6&2;8j8Pc+u?`%cp`9*W$iV3tw+T2%+Lcks?<mWe42qcv#fy3 z&KGW;$j6(49lisLYjZ}bUOUu6_a-5Qo2B1o2TBD+{c937UJad(icdJ#`}m>E{A1Pi zfOat`setlTP|8Tpc(o_8feYXirIaZc*{Tr0&5Jc3FhAz_N1Y0po@fU;)I(1%o@gHg z36hW&DpXAer=XnGlcKI=fX0eN{$bFJ0FVG1zcUcFZHmBHm2@eThh4*`)8-E4x>f^N zWiAB$A~R%-X<46V8KzJbu6dIln92NNuDN8!G%0N{*3+)*WlmlKvs5G~1eN(m_6e)a zac-tip2;-n6Ss90`IHyAS4H5E-asB0R(&Rmj2AquGI_~;5Mq$i8!>@W9U!8fw_CjH zUe-0x^jx>54`J^x%HWw{DsaK*3RanGYSh0B!yIAe)oZtEm|Jy=w+<e?OOZ5ppYwj| zR+XXuOu*t-G1Y0#j*ItY1mUK5Cgs$7qZIb+<v>2dbovGao$_>s4JcvQmHcX-2=T50 z$LhMPv}QCbeJbRY)m_Nc8S@}i!u8Z1Nl3biLoqYk-NEe%U$`;T)3d=!=8C9FHAN5o zQ0y<$Cbp<ggDB|K``jBjB~s01C|cyRdJlmzN1ghU@&(DX*1_19wP7?zfUFP&YD2;{ zlJ5~cFiYjOK4X{h44(azNf*+M>(!V<!4Z{gE{x~F{deVeWlz2Vbn}g;R)N!{f)YDZ zz7_}TmVe-pB_DJ*IL#^IZaHL~#M?`cCY>e%aaraCW17y!IcteU0<#ctBwoOB028UG z8B&D8pDGTqj1`E+k?}b}_QuOrg0|CmMx%Z)2-%eNO8o(nl`n5EPmz2GRkQUY)(N^A ze3ij;-Mc4z)fU$mRVu4eg+GriDWua-d<4d_oR>x{&5><370BY`@T1!5zM?>b;6Wr= zdKUXf10?C`bw&VgL=J@isz`Wpk1*<wC7++!`kP~!DDhDC3S1y#t~m)fd2L8O-p#y4 zkLrQyz_hR0Qnj*ND)Bzz>UcPKqvmf_k5rAAQ@B5`Gdy|4qpC+Kt6C8uElx?^tiDjX z&aKkrua)sO5?w|UM9nP{Jlg|ZvG>R|JJ0cd!B4f~Fpa#fa^^s}qdMnxkMjbJgfgH7 z3b8vO+n^jOkd0_Br|HGK-Q?$8+h_G-J7MQ2n}fa$1g3q)cg%q%5KSZdh%0G=HCfR5 zHJxsl8wFPWJVD1&BWv_t?an-fQlvT|7H_xWC&q6Sb+NlqI#-d!n^vIJLxMG)Z2_l} zW*w|n46F@b4O!Z?GdP)%bb;Ojcm}A@b-zs#^0a094EW440+!5PJj}lL_1%ZL_%&^( zul^y=cO7+6oF_q0E6H!`CdWtgRQpWGw-`(A&lskwjrg$0;FVkennpk0IT+FNC=$<@ zeFeQ#%Q7E_SH$508U=aFGIo6+l!dGzlmq@-CX3EUXnt8f4W1tu31s3F^a0Sx4K<3* zNH^$21W$V&$lVUmsm4W)ln8pa*dPq$JSn$v17~z8S6XpEMRKl~=c#H!wsHCF>(zPl znAEDfve$2G)M+{SwnqO|;nFGNnmE_YiX<WuIta36<76`Lz-}KX?)_Q>w^>%T3q$5W zI)Zw63XtIhDp@3UW$wvJo#4$%rCv)vMz&I?Wy;gjp8g))22?P<ZF=HY8C~6f+_#R8 zO?^0aXiD|uEq2EVlt-L+2eX-7TTQ-#HhFGV3^*m@K*!qiH!WbU<YpDV>J1bghML4C zVeaY%4Nu`^J5K@^{F}z;@uN|JV`!)8sKdj^)B~|BbpSMLvlx;SM!W(_P*Ha4b$`bC z>nhMzi-gvjCW05+frFJ$<(DOSzcj8>Q8-^@U|hRMfC%HSmJV-LM2L440&2gf4l!wr zXtlH6()t9ILdh3RZHX7<@F3u+q2;@cLZr-Ry(TeV{fB`jSP)1$mo@;PVZFFxW}Bl3 zsAVnh-a>5|Yh#p81Zhc3R$bjk?h*EPFo)7fIxl+^vVsrY*sue}%LDQGGz>-=p4S)y zTrTtY7eT1Hh=_}KCUU^sH$0Cg4;&on8`2QQp!eWtgnZQC!0fFPBJi7Td;YgzK~<Ns zKMFva7#4jV$|&RNn?Bdf*pug%OVAC>xNT6IJjkg`fjG~udemIzMN75~L;NO$>KNFW zRGSAuDXicc(zOFO8Pmd40-Gn$lF7<azy~w)v8eBo%cp9k$2SdtB^X*FR4p_&3^)^# z@6y#~Ev%BpV+;eya9RUl7`kzVw+T@_`N+^*EwV_HyEBHTg!<?Rz3W=Kru$Rar|#wR zee!=;amr|xha6G`8gI@!6V<uoz7G9U%}^~D|4jEYq3aa#6S(XHstP3TTV`)SWxLOF zttF)7A4>?P_JPnAU7Y}sEcou|PcStis-CLVMg#KWksPcCpV|t~@eQ;iKAU~Cap{zE zb2C{X`J84Hy;r|v5E=~Mu3d&Dktc)G3%5S2+Uzu+TRpt5Ty<Z5?c<RGZywZCpJ_=n zNInl(cR?`Auc;TpA-nyvXPPg6p>K7l!9}7WBx@>>BJfI-C%$C<1XwD@W#p~bkMO2B zz5k6nKoqJ>sPDulgmFhkfVA3+4})%-{}<m!6Po1cevLq`)WMM>9>;1t*Y6$uxy#7K z{=2(Z280>v_<o+X9NRfCUl3%Lf~t5*?_UPO@xIODl3V?K59W7JgK#GBNyXQ{A@MZO zIvXGq{4@ih!pdLvQbjZgo|=k+FlCq1q1b(i^3-{cbHHD^0yVvHj$mh?b>6fjAM{S; zC1L$u-i@$7R0*UdNJ!q5BFtr&jTs-J-wtkZH;O{XU-PY^mzGb*!^-!0Jfr~(M6P^W zjU~Y`bt^zYi@+fvBa_}$i5m8=2ox>&`e-#<md~D<Ua@g+Cl~2R(oXT>`3!=g%Jjy5 zJlGhrARA~G@;*~#ZJ&sTF3Q8?$5?S^K`Y$*4QKm*B}{|?3XyevSBTFCzc%yEDqiGJ zQY0dUJ)(S#F4-<vFM%sezW6DUx@R<(@mtogR0;RnMw^UX@pumNpvaeD$)tsvrt_$q z&g5YaW<o*?d8Tf&ss_InWSH!ZZ*ayX!k?PK-d3LR15uiBGVV(TtPb_Y??X}<!Q5)g zBH_3Q3b??8s(%}d(EM$^(Ze#{C*%uG?41&WJSH8SXRDb1PWH~XJjkz6THil?<cA%w z%E?ueU;BD)Sm23|^}CS?H-rrsz;b-t!?l_Fs->y0u0%K;4~nFM<Y%_sw|H@yr6X?X zg*io~xb*7aO=_w#4#rE$+0STjUeSL6ONwTlz<u&cY4F+2i*UNt%ER_5T)A6my3$;a zrNA@O!6>S5c*m>bbmAjRh`}5!$j|JwQ%79^!dl3m365o~%BIJVbFu`UHb&3tXJk-G z(C6aJ?9Df#V;e|16oBp6t0_Q;3$VP$<G&~iO5!sw_*egVP*(Ck;=Y_ESYPWWG&L4t z)=25Z?r$e60}$HAE4I;7D(CRsQG;>1=O83@AVrgn5db>>k2aQTOnjUbQ<vEHnn2gU zqdH*wGI0P5J=M54l7y!BD$!_pl3l;&2L`^*blR#_0HvDCjDEVyc@XGc|MaENaSUN$ zrnck1fkznkdD7+`%Tae?ww}e-mH+ss-qTpOkZl-L_q5-^wo4A&0VpeL^;}#{R#YES z<YC1Vf8Fq4jQg~+f&3{8AWW>mhaDH6;KS>ls(}<Rm3fi+6ycKLk{bnoQ?=~rl8@hm zbPOrXvav)Ku-+<KMG>bg455KmXiJuQR)|0dS@d&ZN+BN(C~NCI!SKp7+?tGl`(gDs zDbYE!-)_8KI^41jAx-|Vv4wPUu7=?N1TF@MJL_&-E#r~;-ZZg=uIa~h)Uq4Uv2$Pz zz+)(0VXe8uN?%evNhzLB&zer^9V^3)xDBPq0UthWk=g|6a9yxIfMwVU4NGzEuX*4M zl0{h`gNbLL7j9_fT1vO*zGhiQjU^tUbEY_z92A4{!5qDY<dzOk&n`Q7{N;3(s5;Gh z`hp}3!CpZS^}}v4S|EjW1enqkN`5T;>o9M?89d%Z=C{;19~|3CHqKpj8Y%wcTaN`i zDzdkXqy9Gn!_q7lz85ZfmM|$q3R|IGc@F|usaT2E$TyF*b+)9N=(l6)8p96^4EwY$ zAOEL0=9TUH6qaG5^?;bGQE`+4|F+)S+-Rtb5ye~WdY?3r%a`#WgvyTqS}Qx)_NpW3 zUKf0}GOslu^xRY)R@Ns6L!k@ev31epUY&=veSn#BHpIuxTh*LZM5TAx|1%*)vbp;p z8V`f<vZy&K^`X^$$xBH1-43KyzpmEC+RS##dL=R^|ArOpHchY5ect$Eh^mejd}N5v z)kOfEmj%Fd)$^uM<3MUcD+j{)?Bb19!KM68G!>;=zsRUc@l6p`<*t`&?8W^}N;lLP zRH!VE!c28|AH>rqp38ALTwnuvP!Nf1$wHx?J%sRtHj)-JNp$m*C<^*7sw{JG0Ty9! z!sxQ2x_?8=h$q9WqwS`Sfz3GwE-RinLh0fv<zNDv(`RWVGi8v>g(cKfdCDOL)|(Bp zSM7m!2%=BE3rgeo@4;YX@AiZY1h7_vgs-tAE50Zc7E|?OfhV#YtRh)Ob@Gj4KP#nN z@3W`GSKe_HvUiS)08E1rENC$?UDZqQBxuKR9JUvRz|ppy2&KXU3EMG0T}~KsAqku~ z#tgt)?R?$Bk0)X46(Abc_%~{ZQjRXIGnwaacvr+4AyF*OO#ZW&1i~b;5Sy*#wT;qG zdf1S|FUmRv(Tr(rQyb|AEfG)F3A�g1OFbIeZx`dlft+>t=gFEj;2k4KqL4R}4t& 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%0DbrFh&iK{-!w+Oxg@06_o0ikSLU%50+% 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¥nG_K&L4nj=ZvLasA#||%3fVmT*K|r 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�I;%^ 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 csRv*ERgki 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⋙MsLMA3D9g=4(796 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Â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�d<i;(-$#?S%;t^d{-O1^P9 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%0A%u4lWlkpvx`H&!Q2HhG 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%0D<Bk#|ph^yte0VO+)`n8ljuUs{5BWP-4 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�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¥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%0DbMRLJOHv!R=~-FdMNXm6fKrk} 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 pJ*>)` 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±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%0Ax@{d90x+V<$@;JA+~z8jxoB<WkO>2eq3TJ7(p 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%0DG|zmn4jc^Gj~)kQ-H<;^xOkWdg-pkU3p@d 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%0D^^HiYhIdZT!e%ZE!xs1up;loc&?~ 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%0A3(4PT7^Cp?rELzq<%dI1Ywsn~38-Gbh!szuN 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%0DOt6P>N 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%0Dj^=2^DXPFO!Uwkh6FnH@z$=^%h>0ia4K|}uz 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 Rt*8ghw2v#ofoZ#Qs|ZldEVu%{z#*h;JKDR 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≪Omm*Z54iUUi9R2q5xFz%?)ALM+p%|s;@ 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ΔKtNrv3d9f2W)IwJiR37V0V8ZPSUL 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℞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∓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'=F2PQe)5qB?jV2lLvoEYu1`C5N0$stq> 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 Dtaj97