From 0efde7d4b1b46f45a0a6fbb15b2b7394e9701240 Mon Sep 17 00:00:00 2001 From: Ivan Milev Date: Sat, 10 Oct 2026 20:17:01 +0200 Subject: [PATCH] Update CodeBoarding workflow configuration --- .codeboarding/analysis.json | 19825 ---------------------- .codeboarding/fingerprint.json | 355 - .codeboarding/static_analysis.pkl | Bin 4649541 -> 0 bytes .codeboarding/static_analysis.sha | 2 - .github/workflows/codeboarding-sync.yml | 36 - .github/workflows/codeboarding.yaml | 30 - .github/workflows/codeboarding.yml | 65 + 7 files changed, 65 insertions(+), 20248 deletions(-) delete mode 100644 .codeboarding/analysis.json delete mode 100644 .codeboarding/fingerprint.json delete mode 100644 .codeboarding/static_analysis.pkl delete mode 100644 .codeboarding/static_analysis.sha delete mode 100644 .github/workflows/codeboarding-sync.yml delete mode 100644 .github/workflows/codeboarding.yaml create mode 100644 .github/workflows/codeboarding.yml diff --git a/.codeboarding/analysis.json b/.codeboarding/analysis.json deleted file mode 100644 index c08954800..000000000 --- a/.codeboarding/analysis.json +++ /dev/null @@ -1,19825 +0,0 @@ -{ - "metadata": { - "generated_at": "2026-08-08T12:08:54.459927+00:00", - "source_tree_hash": "beb1c0fd2ca4ae8569788e16d9901fe3c5e3918651b8e2bb73b1a77ba68adacf", - "repo_name": ".codeboarding-target", - "depth_level": 2, - "depth_cap": 2, - "file_coverage_summary": { - "total_files": 306, - "analyzed": 216, - "not_analyzed": 90, - "not_analyzed_by_reason": { - "other": 90 - } - } - }, - "description": "The primary flow of Bloxstrap begins with the Core Management & Configuration component initializing the environment and loading user-defined FastFlags. Control then passes to the Execution & Lifecycle Control component, which checks for existing instances via mutexes and initiates the Roblox launch sequence. During the game's execution, the Integration & Activity Monitoring component tracks the game process to update Discord Rich Presence and handle session-specific events. Throughout this process, the Localization & Resource Services and UI Presentation Utilities provide the necessary assets and data formatting to ensure the user interface remains responsive, localized, and visually consistent with the Windows desktop environment.", - "files": { - "Bloxstrap/App.xaml.cs": { - "method_keys": [ - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.GlobalExceptionHandler(object sender, DispatcherUnhandledExceptionEventArgs e)", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.ConstructBloxstrapWebUrl()", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.CanSendLogs()", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.GetLatestRelease()", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendLog()", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)" - ], - "content_hash": "bd1a652536c64e5b", - "module_hash": "c508cbadf354ec36" - }, - "Bloxstrap/AppData/CommonAppData.cs": { - "method_keys": [ - "Bloxstrap/AppData/CommonAppData.cs|Bloxstrap.AppData.CommonAppData", - "Bloxstrap/AppData/CommonAppData.cs|Bloxstrap.AppData.CommonAppData.CommonAppData()" - ], - "content_hash": "e86c3c291419c6c3", - "module_hash": "b31b468df396b0b1" - }, - "Bloxstrap/AppData/IAppData.cs": { - "method_keys": [ - "Bloxstrap/AppData/IAppData.cs|Bloxstrap.AppData.IAppData" - ], - "content_hash": "00b97a27946db7ae", - "module_hash": "398dff52a6e77f55" - }, - "Bloxstrap/AppData/RobloxPlayerData.cs": { - "method_keys": [ - "Bloxstrap/AppData/RobloxPlayerData.cs|Bloxstrap.AppData.RobloxPlayerData" - ], - "content_hash": "6c313f8b36ee28a0", - "module_hash": "398dff52a6e77f55" - }, - "Bloxstrap/AppData/RobloxStudioData.cs": { - "method_keys": [ - "Bloxstrap/AppData/RobloxStudioData.cs|Bloxstrap.AppData.RobloxStudioData" - ], - "content_hash": "d651f8db0201f08a", - "module_hash": "398dff52a6e77f55" - }, - "Bloxstrap/Bootstrapper.cs": { - "method_keys": [ - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Bootstrapper(LaunchMode launchMode)", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SetupAppData()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SetStatus(string message)", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpdateProgressBar()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetChannelRegistryKey()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetCurrentChannelFromArgs()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.FetchCurrentChannel()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpdateChannelRegistry()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetLatestVersionInfo()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SafeGetLatestVersionInfo()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.IsEligibleForBackgroundUpdate()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ShouldRunAsAdmin()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.TryDeleteRobloxInDirectory(string dir)", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CleanupVersionsFolder()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.MigrateCompatibilityFlags()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.KillRobloxInstances()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GracefullyCloseRobloxInstances()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartBackgroundUpdater()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ExtractPackage(Package package, List? files = null)" - ], - "content_hash": "8eea6ceebb819780", - "module_hash": "e3505da4c47b2c37" - }, - "Bloxstrap/Enums/BootstrapperIcon.cs": { - "method_keys": [ - "Bloxstrap/Enums/BootstrapperIcon.cs|Bloxstrap.Enums.BootstrapperIcon" - ], - "content_hash": "b6126ea0dd2a9125", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/BootstrapperStyle.cs": { - "method_keys": [ - "Bloxstrap/Enums/BootstrapperStyle.cs|Bloxstrap.Enums.BootstrapperStyle" - ], - "content_hash": "ffc929eab8b5fb42", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/CursorType.cs": { - "method_keys": [ - "Bloxstrap/Enums/CursorType.cs|Bloxstrap.Enums.CursorType" - ], - "content_hash": "feecc9bf01c15586", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/CustomThemeTemplate.cs": { - "method_keys": [ - "Bloxstrap/Enums/CustomThemeTemplate.cs|Bloxstrap.Enums.CustomThemeTemplate" - ], - "content_hash": "71cbccc09c349523", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/EmojiType.cs": { - "method_keys": [ - "Bloxstrap/Enums/EmojiType.cs|Bloxstrap.Enums.EmojiType" - ], - "content_hash": "ed347f3685572341", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/ErrorCode.cs": { - "method_keys": [ - "Bloxstrap/Enums/ErrorCode.cs|Bloxstrap.Enums.ErrorCode" - ], - "content_hash": "b5bc9b0833a77909", - "module_hash": "5c3e7b5aae47842c" - }, - "Bloxstrap/Enums/FlagPresets/MSAAMode.cs": { - "method_keys": [ - "Bloxstrap/Enums/FlagPresets/MSAAMode.cs|Bloxstrap.Enums.FlagPresets.MSAAMode" - ], - "content_hash": "9e845cfc170aa7cd", - "module_hash": "e0436042fdf05414" - }, - "Bloxstrap/Enums/FlagPresets/TextureQuality.cs": { - "method_keys": [ - "Bloxstrap/Enums/FlagPresets/TextureQuality.cs|Bloxstrap.Enums.FlagPresets.TextureQuality" - ], - "content_hash": "8508162531f60464", - "module_hash": "e0436042fdf05414" - }, - "Bloxstrap/Enums/GenericTriState.cs": { - "method_keys": [ - "Bloxstrap/Enums/GenericTriState.cs|Bloxstrap.Enums.GenericTriState" - ], - "content_hash": "3330139aface0f2b", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/LaunchMode.cs": { - "method_keys": [ - "Bloxstrap/Enums/LaunchMode.cs|Bloxstrap.Enums.LaunchMode" - ], - "content_hash": "6e41329512337597", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/NextAction.cs": { - "method_keys": [ - "Bloxstrap/Enums/NextAction.cs|Bloxstrap.Enums.NextAction" - ], - "content_hash": "f51f21fcfaf01360", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/ServerSessionJoinType.cs": { - "method_keys": [ - "Bloxstrap/Enums/ServerSessionJoinType.cs|Bloxstrap.Enums.ServerSessionJoinType" - ], - "content_hash": "47be5e11f7c876cd", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/ServerType.cs": { - "method_keys": [ - "Bloxstrap/Enums/ServerType.cs|Bloxstrap.Enums.ServerType" - ], - "content_hash": "dbb67ac174b83fcf", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/Theme.cs": { - "method_keys": [ - "Bloxstrap/Enums/Theme.cs|Bloxstrap.Enums.Theme" - ], - "content_hash": "36c6d6cd3f2eed81", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/VersionComparison.cs": { - "method_keys": [ - "Bloxstrap/Enums/VersionComparison.cs|Bloxstrap.Enums.VersionComparison" - ], - "content_hash": "953f8991d515495d", - "module_hash": "316502137b3585e2" - }, - "Bloxstrap/Enums/WebEnvironment.cs": { - "method_keys": [ - "Bloxstrap/Enums/WebEnvironment.cs|Bloxstrap.Enums.WebEnvironment" - ], - "content_hash": "9135e3e6e6f71052", - "module_hash": "45dda35b2dad82e2" - }, - "Bloxstrap/Exceptions/ChecksumFailedException.cs": { - "method_keys": [ - "Bloxstrap/Exceptions/ChecksumFailedException.cs|Bloxstrap.Exceptions.ChecksumFailedException", - "Bloxstrap/Exceptions/ChecksumFailedException.cs|Bloxstrap.Exceptions.ChecksumFailedException.ChecksumFailedException(string message)" - ], - "content_hash": "4300de92a2bc697a", - "module_hash": "a72786b54df0da62" - }, - "Bloxstrap/Extensions/EmojiTypeEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/EmojiTypeEx.cs|Bloxstrap.Extensions.EmojiTypeEx", - "Bloxstrap/Extensions/EmojiTypeEx.cs|Bloxstrap.Extensions.EmojiTypeEx.GetHash(this EmojiType emojiType)", - "Bloxstrap/Extensions/EmojiTypeEx.cs|Bloxstrap.Extensions.EmojiTypeEx.GetUrl(this EmojiType emojiType)" - ], - "content_hash": "22b45566e0e5247a", - "module_hash": "1e02c6b8b60ba79a" - }, - "Bloxstrap/Extensions/RegistryKeyEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx", - "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)" - ], - "content_hash": "d27ad1f42ec0eb8a", - "module_hash": "0f238a96c929a97b" - }, - "Bloxstrap/Extensions/TEnumEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/TEnumEx.cs|Bloxstrap.Extensions.TEnumEx", - "Bloxstrap/Extensions/TEnumEx.cs|Bloxstrap.Extensions.TEnumEx.GetDescription(this TEnum e)" - ], - "content_hash": "e50fcfacfb02e324", - "module_hash": "6eeea6d982c5bb12" - }, - "Bloxstrap/FastFlagManager.cs": { - "method_keys": [ - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetValue(string key, object? value)", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetValue(string key)", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetPreset(string prefix, object? value)", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetPresetEnum(string prefix, string target, object? value)", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetPreset(string name)", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value)", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Load(bool alertFailure = true)" - ], - "content_hash": "3cb942ea5565b409", - "module_hash": "13dd473e8283712e" - }, - "Bloxstrap/GlobalCache.cs": { - "method_keys": [ - "Bloxstrap/GlobalCache.cs|Bloxstrap.GlobalCache" - ], - "content_hash": "8bb6b3adcf404c42", - "module_hash": "9dcc94ef02820019" - }, - "Bloxstrap/HttpClientLoggingHandler.cs": { - "method_keys": [ - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler", - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler.HttpClientLoggingHandler(HttpMessageHandler innerHandler)", - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler.ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)", - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler.ProcessResponse(HttpResponseMessage response, CancellationToken cancellationToken)" - ], - "content_hash": "80df7527819c2178", - "module_hash": "9dcc94ef02820019" - }, - "Bloxstrap/Installer.cs": { - "method_keys": [ - "Bloxstrap/Installer.cs|Bloxstrap.Installer", - "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "Bloxstrap/Installer.cs|Bloxstrap.Installer.ValidateLocation()", - "Bloxstrap/Installer.cs|Bloxstrap.Installer.CheckInstallLocation()", - "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()" - ], - "content_hash": "b49482bb87631247", - "module_hash": "781f98d0d282706e" - }, - "Bloxstrap/JsonManager.cs": { - "method_keys": [ - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Delete()", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.LazyJsonManager", - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.LazyJsonManager.LazyJsonManager(string? className)" - ], - "content_hash": "d9cb3a6e10a1c99a", - "module_hash": "b75d21d6b502b897" - }, - "Bloxstrap/LaunchHandler.cs": { - "method_keys": [ - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchUninstaller()", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchSettings()", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchMenu()", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()" - ], - "content_hash": "2506bfded6ae0aff", - "module_hash": "e89fc93ff59a7081" - }, - "Bloxstrap/LaunchSettings.cs": { - "method_keys": [ - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings", - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.LaunchSettings(string[] args)", - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.ParsePlayer(string? data)", - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.ParseStudio(string? data)" - ], - "content_hash": "a11ce4d898ea4bd1", - "module_hash": "de2fc0072363895c" - }, - "Bloxstrap/Logger.cs": { - "method_keys": [ - "Bloxstrap/Logger.cs|Bloxstrap.Logger", - "Bloxstrap/Logger.cs|Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string message)", - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteToLog(string message)" - ], - "content_hash": "0ea680f4f6531270", - "module_hash": "a9f150def13143a2" - }, - "Bloxstrap/Models/APIs/Config/Supporter.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Config/Supporter.cs|Bloxstrap.Models.APIs.Config.Supporter" - ], - "content_hash": "00e60a42489cbd69", - "module_hash": "461d8b78499f84c3" - }, - "Bloxstrap/Models/APIs/Config/SupporterData.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Config/SupporterData.cs|Bloxstrap.Models.APIs.Config.SupporterData" - ], - "content_hash": "5aae02d7170e6bb6", - "module_hash": "461d8b78499f84c3" - }, - "Bloxstrap/Models/APIs/Config/SupporterGroup.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Config/SupporterGroup.cs|Bloxstrap.Models.APIs.Config.SupporterGroup" - ], - "content_hash": "0c7d7d2677c2c592", - "module_hash": "461d8b78499f84c3" - }, - "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs|Bloxstrap.Models.APIs.GitHub.GitHubReleaseAsset.GithubReleaseAsset" - ], - "content_hash": "c23a70bf27c42c32", - "module_hash": "e3b0c44298fc1c14" - }, - "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs|Bloxstrap.Models.APIs.GitHub.GithubRelease" - ], - "content_hash": "ac0b2f654198018f", - "module_hash": "d14aecea20b5ea4f" - }, - "Bloxstrap/Models/APIs/IPInfoResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/IPInfoResponse.cs|Bloxstrap.Models.APIs.IPInfoResponse" - ], - "content_hash": "efb9c3453b58bcb7", - "module_hash": "75b36ca2c8ed4d5d" - }, - "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs|Bloxstrap.Models.APIs.Roblox.ApiArrayResponse.ApiArrayResponse" - ], - "content_hash": "3beddf2a1eb15f55", - "module_hash": "978f0a4f566a48d6" - }, - "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs|Bloxstrap.Models.APIs.Roblox.ClientFlagSettings" - ], - "content_hash": "8c80e44d0e564f03", - "module_hash": "833f631ab42e1ecf" - }, - "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs|Bloxstrap.Models.APIs.Roblox.ClientVersion" - ], - "content_hash": "6a64f2b5f5d1d07e", - "module_hash": "833f631ab42e1ecf" - }, - "Bloxstrap/Models/APIs/Roblox/GameCreator.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/GameCreator.cs|Bloxstrap.Models.APIs.Roblox.GameCreator" - ], - "content_hash": "c7c19c650888a99c", - "module_hash": "9db4854ebac2f78a" - }, - "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs|Bloxstrap.Models.APIs.Roblox.GameDetailResponse" - ], - "content_hash": "7d5036660c904c60", - "module_hash": "d499d5510333cb95" - }, - "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs|Bloxstrap.Models.APIs.Roblox.GetUserResponse" - ], - "content_hash": "c30efa4b0c0e1499", - "module_hash": "450e4e76bf9ba886" - }, - "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs|Bloxstrap.Models.APIs.Roblox.ThumbnailBatchResponse" - ], - "content_hash": "bd72783925abb622", - "module_hash": "833f631ab42e1ecf" - }, - "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs|Bloxstrap.Models.APIs.Roblox.ThumbnailResponse" - ], - "content_hash": "53df9dab1b69513d", - "module_hash": "c40152876493b701" - }, - "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs|Bloxstrap.Models.APIs.Roblox.UniverseIdResponse" - ], - "content_hash": "2c8eb60d74ec73eb", - "module_hash": "5e1293c069beac18" - }, - "Bloxstrap/Models/Attributes/EnumNameAttribute.cs": { - "method_keys": [ - "Bloxstrap/Models/Attributes/EnumNameAttribute.cs|Bloxstrap.Models.Attributes.EnumNameAttribute" - ], - "content_hash": "71c0d2a83ee7b1ce", - "module_hash": "d7c95d847719c2ff" - }, - "Bloxstrap/Models/Attributes/EnumSortAttribute.cs": { - "method_keys": [ - "Bloxstrap/Models/Attributes/EnumSortAttribute.cs|Bloxstrap.Models.Attributes.EnumSortAttribute" - ], - "content_hash": "aa150fa6e24e00a6", - "module_hash": "d7c95d847719c2ff" - }, - "Bloxstrap/Models/BloxstrapRPC/Message.cs": { - "method_keys": [ - "Bloxstrap/Models/BloxstrapRPC/Message.cs|Bloxstrap.Models.BloxstrapRPC.Message" - ], - "content_hash": "645fdba1655f208c", - "module_hash": "af1da68fbbab315a" - }, - "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs": { - "method_keys": [ - "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs|Bloxstrap.Models.BloxstrapRPC.RichPresence" - ], - "content_hash": "98f3f9850c4a0b03", - "module_hash": "eb628e9291e1daa2" - }, - "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs": { - "method_keys": [ - "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs|Bloxstrap.Models.BloxstrapRPC.RichPresenceImage" - ], - "content_hash": "28feedb67a951b69", - "module_hash": "eb628e9291e1daa2" - }, - "Bloxstrap/Models/DeployInfo.cs": { - "method_keys": [ - "Bloxstrap/Models/DeployInfo.cs|Bloxstrap.Models.DeployInfo" - ], - "content_hash": "6f5b36772cdc21fa", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/Models/Entities/ModPresetFileData.cs": { - "method_keys": [ - "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData", - "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData.ModPresetFileData(string contentPath, string resource)", - "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData.HashMatches()" - ], - "content_hash": "a9216356c79e3c70", - "module_hash": "5c88a323a76f75e7" - }, - "Bloxstrap/Models/FastFlag.cs": { - "method_keys": [ - "Bloxstrap/Models/FastFlag.cs|Bloxstrap.Models.FastFlag" - ], - "content_hash": "cf0fd7b37f44b38b", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/Models/FontFace.cs": { - "method_keys": [ - "Bloxstrap/Models/FontFace.cs|Bloxstrap.Models.FontFace" - ], - "content_hash": "f8fa053f750a8032", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/Models/FontFamily.cs": { - "method_keys": [ - "Bloxstrap/Models/FontFamily.cs|Bloxstrap.Models.FontFamily" - ], - "content_hash": "e01bfa9c10b26bd8", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/Models/LaunchFlag.cs": { - "method_keys": [ - "Bloxstrap/Models/LaunchFlag.cs|Bloxstrap.Models.LaunchFlag", - "Bloxstrap/Models/LaunchFlag.cs|Bloxstrap.Models.LaunchFlag.LaunchFlag(string identifiers)" - ], - "content_hash": "3146ebc376568a39", - "module_hash": "096493bde4f4ed24" - }, - "Bloxstrap/Models/Manifest/FileManifest.cs": { - "method_keys": [ - "Bloxstrap/Models/Manifest/FileManifest.cs|Bloxstrap.Models.Manifest.FileManifest", - "Bloxstrap/Models/Manifest/FileManifest.cs|Bloxstrap.Models.Manifest.FileManifest.FileManifest(string data)", - "Bloxstrap/Models/Manifest/FileManifest.cs|Bloxstrap.Models.Manifest.FileManifest.Get(string versionGuid)" - ], - "content_hash": "a9d6ea4ec1907e1b", - "module_hash": "42a593915d348d94" - }, - "Bloxstrap/Models/Manifest/ManifestFile.cs": { - "method_keys": [ - "Bloxstrap/Models/Manifest/ManifestFile.cs|Bloxstrap.Models.Manifest.ManifestFile", - "Bloxstrap/Models/Manifest/ManifestFile.cs|Bloxstrap.Models.Manifest.ManifestFile.ToString()" - ], - "content_hash": "97c0398d88e1e3fb", - "module_hash": "385274317de77f42" - }, - "Bloxstrap/Models/Manifest/Package.cs": { - "method_keys": [ - "Bloxstrap/Models/Manifest/Package.cs|Bloxstrap.Models.Manifest.Package", - "Bloxstrap/Models/Manifest/Package.cs|Bloxstrap.Models.Manifest.Package.ToString()" - ], - "content_hash": "1f817221f6c4a38b", - "module_hash": "52573c3cef6a67a9" - }, - "Bloxstrap/Models/Manifest/PackageManifest.cs": { - "method_keys": [ - "Bloxstrap/Models/Manifest/PackageManifest.cs|Bloxstrap.Models.Manifest.PackageManifest", - "Bloxstrap/Models/Manifest/PackageManifest.cs|Bloxstrap.Models.Manifest.PackageManifest.PackageManifest(string data)" - ], - "content_hash": "33dedeea0cfda8b6", - "module_hash": "294b9f9582b3f80c" - }, - "Bloxstrap/Models/Persistable/AppState.cs": { - "method_keys": [ - "Bloxstrap/Models/Persistable/AppState.cs|Bloxstrap.Models.Persistable.AppState" - ], - "content_hash": "6a2a59b965abc62a", - "module_hash": "609d9f841736f347" - }, - "Bloxstrap/Models/Persistable/DistributionState.cs": { - "method_keys": [ - "Bloxstrap/Models/Persistable/DistributionState.cs|Bloxstrap.Models.Persistable.DistributionState" - ], - "content_hash": "582e6c99f30d7c4f", - "module_hash": "609d9f841736f347" - }, - "Bloxstrap/Models/Persistable/RobloxState.cs": { - "method_keys": [ - "Bloxstrap/Models/Persistable/RobloxState.cs|Bloxstrap.Models.Persistable.RobloxState" - ], - "content_hash": "03572ae7d911dc20", - "module_hash": "609d9f841736f347" - }, - "Bloxstrap/Models/Persistable/Settings.cs": { - "method_keys": [ - "Bloxstrap/Models/Persistable/Settings.cs|Bloxstrap.Models.Persistable.Settings" - ], - "content_hash": "36d7adc260370ac3", - "module_hash": "984d6ebb05b1de28" - }, - "Bloxstrap/Models/Persistable/State.cs": { - "method_keys": [ - "Bloxstrap/Models/Persistable/State.cs|Bloxstrap.Models.Persistable.State" - ], - "content_hash": "34ff83e0728fe701", - "module_hash": "609d9f841736f347" - }, - "Bloxstrap/Models/Persistable/WindowState.cs": { - "method_keys": [ - "Bloxstrap/Models/Persistable/WindowState.cs|Bloxstrap.Models.Persistable.WindowState" - ], - "content_hash": "793f93e405012f72", - "module_hash": "609d9f841736f347" - }, - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask", - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string prefix, string name)", - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string name)", - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.ToString()", - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.Execute()" - ], - "content_hash": "8f56fd32ed3bda75", - "module_hash": "45dd89596bcb1622" - }, - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BoolBaseTask", - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string prefix, string name)", - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string name)" - ], - "content_hash": "5590a5364f8563fe", - "module_hash": "45dd89596bcb1622" - }, - "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask", - "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask.EnumBaseTask(string prefix, string name)" - ], - "content_hash": "4a0f295e784f4195", - "module_hash": "9bac3c20087a9dab" - }, - "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.StringBaseTask", - "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.StringBaseTask.StringBaseTask(string prefix, string name)" - ], - "content_hash": "1b3a818fb092b208", - "module_hash": "45dd89596bcb1622" - }, - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask", - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.QueryCurrentValue()", - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.EmojiModPresetTask()", - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()" - ], - "content_hash": "5a194c9f224078e8", - "module_hash": "22c49725c09c42c5" - }, - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs|Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask", - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs|Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.EnumModPresetTask(string name, Dictionary> map)", - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs|Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.Execute()" - ], - "content_hash": "b1d06a8143e4f9e1", - "module_hash": "4ab68087114ca94e" - }, - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs|Bloxstrap.Models.SettingTasks.ExtractIconsTask", - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs|Bloxstrap.Models.SettingTasks.ExtractIconsTask.ExtractIconsTask()", - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs|Bloxstrap.Models.SettingTasks.ExtractIconsTask.Execute()" - ], - "content_hash": "e28e4e909e5a3e2f", - "module_hash": "2a1faae58ba449ab" - }, - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask", - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask.GetFileHash()", - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask.FontModPresetTask()", - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask.Execute()" - ], - "content_hash": "181f7eea8b641d08", - "module_hash": "89261aa556c63dbf" - }, - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask", - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, string path, string resource)", - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, Dictionary pathMap)", - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask.Execute()" - ], - "content_hash": "9d4b056029d177d6", - "module_hash": "4ab68087114ca94e" - }, - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs": { - "method_keys": [ - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask", - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask.ShortcutTask(string name, string lnkFolder, string lnkName, string exeFlags = \"\")", - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()" - ], - "content_hash": "fb01a8e0a93c91c7", - "module_hash": "e1db86e007b93be7" - }, - "Bloxstrap/Paths.cs": { - "method_keys": [ - "Bloxstrap/Paths.cs|Bloxstrap.Paths", - "Bloxstrap/Paths.cs|Bloxstrap.Paths.Initialize(string baseDirectory)" - ], - "content_hash": "0ae2c5a296a12c78", - "module_hash": "9dcc94ef02820019" - }, - "Bloxstrap/Properties/Settings.Designer.cs": { - "method_keys": [ - "Bloxstrap/Properties/Settings.Designer.cs|Bloxstrap.Properties.Settings.Designer.Settings" - ], - "content_hash": "202c007810762cf8", - "module_hash": "8ed2e81e0ee3fc56" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs": { - "method_keys": [ - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings", - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.ApplicationSettings(string applicationName, string channelName)", - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.Fetch()", - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.GetAsync(string name)", - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.Get(string name)", - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.GetSettings(string applicationName, string channelName = null, bool shouldCache = true)" - ], - "content_hash": "7e3fe87e01bd0f58", - "module_hash": "f5fb6a2ef4f4c3ab" - }, - "Bloxstrap/RobloxInterfaces/Deployment.cs": { - "method_keys": [ - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment", - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)", - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()", - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetLocation(string resource)", - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)" - ], - "content_hash": "eff288a1f288ab0f", - "module_hash": "a64b0e954091db96" - }, - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog", - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.AddFastFlagDialog()", - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.ImportButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.OKButton_Click(object sender, RoutedEventArgs e)" - ], - "content_hash": "ac9153c3206ad7a0", - "module_hash": "232759789e17cc7e" - }, - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog", - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.ConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.AddException(Exception exception, bool inner = false)" - ], - "content_hash": "4e9efecd5d72f3b6", - "module_hash": "4fe8335cac6e2238" - }, - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog", - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.ExceptionDialog(Exception exception)", - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.AddException(Exception exception, bool inner = false)" - ], - "content_hash": "472afda7f387fe33", - "module_hash": "1cf64d3098b8bab8" - }, - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox", - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.FluentMessageBox(string message, MessageBoxImage image, MessageBoxButton buttons)", - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.GetTextForResult(MessageBoxResult result)", - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.SetButton(Button button, MessageBoxResult result)" - ], - "content_hash": "073767451a15a6d2", - "module_hash": "5a3f81a832396e43" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.MainWindow(bool showAlreadyRunningWarning)", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.LoadState()", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowAlreadyRunningSnackbar()", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.CloseWindow()", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)" - ], - "content_hash": "76868d4995e00f6e", - "module_hash": "7cc99cf6a6513ee6" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.FastFlagEditorPage()", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ReloadList()", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ClearSearch(bool refresh = true)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ShowAddDialog()", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddSingle(string name, string value)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ImportJSON(string json)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFlagEntry(string name, string value)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFilter(string name, string value)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.Page_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.BackButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DeleteButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ToggleButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ExportJSONButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)" - ], - "content_hash": "3c62e8eda940fbf1", - "module_hash": "886052b8a27dd881" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.FastFlagsPage()", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.SetupViewModel()", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.OpenFlagEditor(object? sender, EventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.Page_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateInt32(object sender, TextCompositionEventArgs e)", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateUInt32(object sender, TextCompositionEventArgs e)" - ], - "content_hash": "d3350b835b02c460", - "module_hash": "15542c348379e5d3" - }, - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage", - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage.ModsPage()" - ], - "content_hash": "cf5204123917a316", - "module_hash": "46047bb03b404124" - }, - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage", - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage.ShortcutsPage()" - ], - "content_hash": "546b5b797a04feed", - "module_hash": "85f4e9b26df93b45" - }, - "Bloxstrap/UI/Frontend.cs": { - "method_keys": [ - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)", - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowBalloonTip(string title, string message, ToolTipIcon icon = null, int timeout = 5)" - ], - "content_hash": "f19a4072946865a4", - "module_hash": "c139e842df10d136" - }, - "Bloxstrap/UI/Utility/Rendering.cs": { - "method_keys": [ - "Bloxstrap/UI/Utility/Rendering.cs|Bloxstrap.UI.Utility.Rendering", - "Bloxstrap/UI/Utility/Rendering.cs|Bloxstrap.UI.Utility.Rendering.GetTextWidth(TextBlock textBlock)" - ], - "content_hash": "a64d84df099c4248", - "module_hash": "6cca933329cdd458" - }, - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel", - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Save()", - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.OpenThemeFolder()" - ], - "content_hash": "d4530699bc38ebbb", - "module_hash": "6d8082c6221f0390" - }, - "Bloxstrap/UI/ViewModels/GlobalViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/GlobalViewModel.cs|Bloxstrap.UI.ViewModels.GlobalViewModel", - "Bloxstrap/UI/ViewModels/GlobalViewModel.cs|Bloxstrap.UI.ViewModels.GlobalViewModel.OpenWebpage(string? location)" - ], - "content_hash": "a9019ece9b2e9577", - "module_hash": "cd2ee437bbc1aebc" - }, - "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel", - "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel.OpenFastFlagEditor()" - ], - "content_hash": "373fd02c6405b3cf", - "module_hash": "00a1c2a742a9401a" - }, - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel", - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.OpenAbout()", - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.CloseWindow()", - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()" - ], - "content_hash": "fa1151332186024a", - "module_hash": "cac36d024d6c8071" - }, - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel", - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenModsFolder()", - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()", - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()" - ], - "content_hash": "d509df30c7a6c73c", - "module_hash": "4b157c95a58054ac" - }, - "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ShortcutsViewModel" - ], - "content_hash": "9991a2853185cc72", - "module_hash": "16b82fd3eeb3a872" - }, - "Bloxstrap/Utilities.cs": { - "method_keys": [ - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetVersionFromString(string version)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ParseVersionSafe(string versionStr)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersionStr(IAppData data)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersionStr(bool studio)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersion(IAppData data)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetProcessesSafe()", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.DoesMutexExist(string name)", - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.KillBackgroundUpdater()" - ], - "content_hash": "5d78477575c4bf46", - "module_hash": "95e261c447281de9" - }, - "Bloxstrap/Utility/Filesystem.cs": { - "method_keys": [ - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem", - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.GetFreeDiskSpace(string path)", - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)" - ], - "content_hash": "f5000a8a34e2f945", - "module_hash": "6ac20b6f593f1c71" - }, - "Bloxstrap/Utility/MD5Hash.cs": { - "method_keys": [ - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash", - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromBytes(byte[] data)", - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)", - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromString(string str)", - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.Stringify(byte[] hash)" - ], - "content_hash": "9b519bf181225f18", - "module_hash": "b7e5165a69103dd9" - }, - "Bloxstrap/Utility/Shortcut.cs": { - "method_keys": [ - "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut", - "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)" - ], - "content_hash": "72d8e4a8ca7896b3", - "module_hash": "cb663495337a0591" - }, - "Bloxstrap/Utility/WindowsRegistry.cs": { - "method_keys": [ - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterProtocol(string key, string name, string handler, string handlerParam = \"%1\")", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterPlayer()", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterPlayer(string handler, string handlerParam)", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudio()", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioProtocol(string handler, string handlerParam)", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileTypes()", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)", - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.Unregister(string key)" - ], - "content_hash": "b355230504a917c8", - "module_hash": "ad2a5c653f109d18" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs": { - "method_keys": [ - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException", - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)", - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)", - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)", - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.ToString()" - ], - "content_hash": "8c17dc0b063cfc15", - "module_hash": "3566e998d6d1c0c4" - }, - "Bloxstrap/Extensions/BootstrapperIconEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/BootstrapperIconEx.cs|Bloxstrap.Extensions.BootstrapperIconEx", - "Bloxstrap/Extensions/BootstrapperIconEx.cs|Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)" - ], - "content_hash": "b3ee3e5e62540d68", - "module_hash": "636877da14a94b9f" - }, - "Bloxstrap/Extensions/BootstrapperStyleEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/BootstrapperStyleEx.cs|Bloxstrap.Extensions.BootstrapperStyleEx", - "Bloxstrap/Extensions/BootstrapperStyleEx.cs|Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)" - ], - "content_hash": "08a2470084600d49", - "module_hash": "1e02c6b8b60ba79a" - }, - "Bloxstrap/Extensions/IconEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx", - "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx.GetSized(this Icon icon, int width, int height)", - "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)" - ], - "content_hash": "3701516ac72e2e86", - "module_hash": "bdf83a940e9bf0eb" - }, - "Bloxstrap/Extensions/ThemeEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx", - "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)" - ], - "content_hash": "5faecf25bb535bbe", - "module_hash": "0f238a96c929a97b" - }, - "Bloxstrap/Models/BootstrapperIconEntry.cs": { - "method_keys": [ - "Bloxstrap/Models/BootstrapperIconEntry.cs|Bloxstrap.Models.BootstrapperIconEntry" - ], - "content_hash": "365a1cab90c438a9", - "module_hash": "0b5da285fd40a951" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions", - "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)" - ], - "content_hash": "10c6c0639f21f9f5", - "module_hash": "0b05d36c39d5f5ab" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ScaleWindow()", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.SetupDialog()", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ButtonCancel_Click(object? sender, EventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.CloseBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowSuccess(string message, Action? callback)" - ], - "content_hash": "2cda60c70a5bf434", - "module_hash": "1d3cca31aa7d1c6d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.Window_Closing(object sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.CloseBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowSuccess(string message, Action? callback)" - ], - "content_hash": "3fdc15e4caa1c633", - "module_hash": "df3412620039f5bb" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ClassicFluentDialog()", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.CloseBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowSuccess(string message, Action? callback)" - ], - "content_hash": "29d1f4f0268bc40f", - "module_hash": "0a92ecf49bd9bc87" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetBrushFromXElement(XElement element, string attributeName)" - ], - "content_hash": "21b792575dc42a91", - "module_hash": "ed7931418b28f720" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.DummyFrameworkElement", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlElementDelegate", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXml(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AddXml(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AssertThemeVersion(string? versionStr)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlBase(XElement xml)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)" - ], - "content_hash": "9fbfeb941fdc8c9d", - "module_hash": "3b95fe6a7f702a1d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ScaleTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SkewTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RotateTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TranslateTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BlurEffect(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_DropShadowEffect(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXml_Brush(Brush brush, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SolidColorBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_GradientStop(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.ApplyBrush_UIElement(CustomDialog dialog, FrameworkElement uiElement, string name, DependencyProperty dependencyProperty, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Shape(CustomDialog dialog, Shape shape, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Ellipse(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Line(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Rectangle(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper_Fake(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TitleBar(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Button(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RangeBase(CustomDialog dialog, RangeBase rangeBase, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressRing(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_MarkdownTextBlock(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Image(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_RowDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_ColumnDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_StackPanel(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)" - ], - "content_hash": "d8bece075da84974", - "module_hash": "c805c3f523169036" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult.GetImageSourceDataResult()", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetXmlAttribute(XElement element, string attributeName, string? defaultValue = null)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, int value, int? min = null, int? max = null)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, double value, double? min = null, double? max = null)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeClamped(XElement element, string attributeName, int? defaultValue = null, int? min = null, int? max = null)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontWeightFromXElement(XElement element)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontStyleFromXElement(XElement element)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTextDecorationsFromXElement(XElement element)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTranslatedText(string? text)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFullPath(CustomDialog dialog, string? sourcePath)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceData(CustomDialog dialog, string name, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetContentFromXElement(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyEffects_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformation_UIElement(CustomDialog dialog, string name, DependencyProperty property, UIElement uiElement, XElement xmlElement)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)" - ], - "content_hash": "c214819cc12817ed", - "module_hash": "2e6dc6ff73eabdab" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CloseBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowSuccess(string message, Action? callback)" - ], - "content_hash": "12e95d916bdb57bd", - "module_hash": "fc6f58d74dc84a2f" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.FluentDialog(bool aero)", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.CloseBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowSuccess(string message, Action? callback)" - ], - "content_hash": "c5cc83c76cf5cdbc", - "module_hash": "1ae0fa0090a7e882" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.Dispose(bool disposing)", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.InitializeComponent()" - ], - "content_hash": "db073e9641aa8c72", - "module_hash": "957357e051d4355d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008()", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008_Load(object sender, EventArgs e)" - ], - "content_hash": "f248b1964f1584a0", - "module_hash": "6ab1ed1de759c728" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.Dispose(bool disposing)", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.InitializeComponent()" - ], - "content_hash": "8822f0c2c06795ba", - "module_hash": "957357e051d4355d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011()", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011_Load(object sender, EventArgs e)" - ], - "content_hash": "390000a0e4c3376c", - "module_hash": "b5fd24aff4642068" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.Dispose(bool disposing)", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.InitializeComponent()" - ], - "content_hash": "aced243a2b735a38", - "module_hash": "957357e051d4355d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog()", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseEnter(object sender, EventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseLeave(object sender, EventArgs e)", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog_Load(object sender, EventArgs e)" - ], - "content_hash": "a2da1ab646eb8a26", - "module_hash": "1d0df8e131b7494f" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.Dispose(bool disposing)", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.InitializeComponent()" - ], - "content_hash": "27bce2451d684beb", - "module_hash": "fc325b471b97b5b3" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog()", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.ShowSuccess(string message, Action? callback)", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.CloseBootstrapper()", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog_Load(object sender, EventArgs e)" - ], - "content_hash": "cad5c1510448ecc5", - "module_hash": "727dded8a45c1914" - }, - "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs|Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander", - "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs|Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander.Expander()" - ], - "content_hash": "1e4517b05f4e2c21", - "module_hash": "697de976f36d4a8c" - }, - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock", - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.GetWpfInlineFromMarkdownInline(Inline? inline)", - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.AddMarkdownInline(Inline? inline)", - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.OnTextMarkdownChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)" - ], - "content_hash": "3af2d8045ea52a2d", - "module_hash": "2cda95c3f6cb451a" - }, - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs|Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl", - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs|Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl.OptionControl()" - ], - "content_hash": "47050bd4f87a638e", - "module_hash": "b7dea6a830643313" - }, - "Bloxstrap/UI/IBootstrapperDialog.cs": { - "method_keys": [ - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog", - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog.ShowBootstrapper()", - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog.CloseBootstrapper()", - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog.ShowSuccess(string message, Action? callback = null)" - ], - "content_hash": "da1ff52a6e2cceec", - "module_hash": "a97f6a075f7b5485" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs": { - "method_keys": [ - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.TaskbarStates", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.HrInit()", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.AddTab(IntPtr hwnd)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.DeleteTab(IntPtr hwnd)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.ActivateTab(IntPtr hwnd)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetActiveAlt(IntPtr hwnd)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.MarkFullscreenWindow(IntPtr hwnd, bool fFullscreen)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressValue(IntPtr hwnd, UInt64 ullCompleted, UInt64 ullTotal)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressState(IntPtr hwnd, TaskbarStates state)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.TaskbarInstance", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ConvertEnum(TaskbarItemProgressState state)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarStates taskbarState)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarItemProgressState taskbarState)", - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.SetProgressValue(IntPtr windowHandle, int progressValue, int progressMax)" - ], - "content_hash": "adea1d62fbaac316", - "module_hash": "a8c5b442169756f5" - }, - "Bloxstrap/UI/Utility/WindowScaling.cs": { - "method_keys": [ - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling", - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledNumber(int number)", - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledSize(Size size)", - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledPoint(Point point)", - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledPadding(Padding padding)" - ], - "content_hash": "94bf1866a6eeb4a3", - "module_hash": "07e7cc8d88adc88e" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel", - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel()", - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel(IBootstrapperDialog dialog)", - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.CancelInstall()" - ], - "content_hash": "31e4f77f1cdda786", - "module_hash": "4afca4ccc2852b8e" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel", - "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel.ByfronDialogViewModel(IBootstrapperDialog dialog, string version)" - ], - "content_hash": "34241bdcba999a70", - "module_hash": "eee1858f945b25d8" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel", - "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel.ClassicFluentDialogViewModel(IBootstrapperDialog dialog)" - ], - "content_hash": "9e1cce51b848e648", - "module_hash": "eee1858f945b25d8" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel", - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel()", - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel(IBootstrapperDialog dialog, bool aero)" - ], - "content_hash": "04827993d85df102", - "module_hash": "acb0bac176241f5d" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PreviewBootstrapper()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.BrowseCustomIconLocation()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AppearanceViewModel(Page page)", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomThemeStructure(string name)", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomThemeStructure(string oldName, string newName)", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.EditCustomTheme()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.ExportCustomTheme()", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PopulateCustomThemes()" - ], - "content_hash": "9f549771b74e4902", - "module_hash": "df95c58c37205bc6" - }, - "Bloxstrap/Utility/AsyncMutex.cs": { - "method_keys": [ - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex", - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.AsyncMutex(bool initiallyOwned, string name)", - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.AcquireAsync(CancellationToken cancellationToken)", - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.ReleaseAsync()", - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.DisposeAsync()" - ], - "content_hash": "10bb0742b522c169", - "module_hash": "510bd27f9126ed2b" - }, - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx", - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileName(this CustomThemeTemplate template)", - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileContents(this CustomThemeTemplate template)" - ], - "content_hash": "195124ddddc23d9d", - "module_hash": "93de44d255d32bb7" - }, - "Bloxstrap/Extensions/DateTimeEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/DateTimeEx.cs|Bloxstrap.Extensions.DateTimeEx", - "Bloxstrap/Extensions/DateTimeEx.cs|Bloxstrap.Extensions.DateTimeEx.ToFriendlyString(this DateTime dateTime)" - ], - "content_hash": "33fc4152f0d8fb2d", - "module_hash": "1e02c6b8b60ba79a" - }, - "Bloxstrap/Locale.cs": { - "method_keys": [ - "Bloxstrap/Locale.cs|Bloxstrap.Locale", - "Bloxstrap/Locale.cs|Bloxstrap.Locale.GetIdentifierFromName(string language)", - "Bloxstrap/Locale.cs|Bloxstrap.Locale.GetLanguages()", - "Bloxstrap/Locale.cs|Bloxstrap.Locale.Set(string identifier)", - "Bloxstrap/Locale.cs|Bloxstrap.Locale.Initialize()" - ], - "content_hash": "f261694a5dff7efa", - "module_hash": "4f019ee9c1a1ede4" - }, - "Bloxstrap/Models/CustomIntegration.cs": { - "method_keys": [ - "Bloxstrap/Models/CustomIntegration.cs|Bloxstrap.Models.CustomIntegration" - ], - "content_hash": "b37b2a2f6e6ca59d", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/Resource.cs": { - "method_keys": [ - "Bloxstrap/Resource.cs|Bloxstrap.Resource", - "Bloxstrap/Resource.cs|Bloxstrap.Resource.GetStream(string name)", - "Bloxstrap/Resource.cs|Bloxstrap.Resource.Get(string name)", - "Bloxstrap/Resource.cs|Bloxstrap.Resource.GetString(string name)" - ], - "content_hash": "42885b8b2d2d40b7", - "module_hash": "2aa0ad7eea9c5199" - }, - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage", - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.AboutPage()", - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.UiPage_KeyDown(object sender, KeyEventArgs e)" - ], - "content_hash": "35a8b0e88f9b77bb", - "module_hash": "6ec613a5cfd669f9" - }, - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage", - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage.LicensesPage()" - ], - "content_hash": "a6ac2388165d9751", - "module_hash": "8f54df1656033693" - }, - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage", - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.SupportersPage()", - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.UiPage_SizeChanged(object sender, SizeChangedEventArgs e)" - ], - "content_hash": "dec3f314f3d5ba26", - "module_hash": "1770ef69eca693a8" - }, - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage", - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage.TranslatorsPage()" - ], - "content_hash": "a53c361c1f781919", - "module_hash": "28a25fb7e23a67e6" - }, - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow", - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.WpfUiWindow()", - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.ApplyTheme()", - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.OnSourceInitialized(EventArgs e)" - ], - "content_hash": "6f831532d8367572", - "module_hash": "079fc5838e070750" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetThemePath(string name)", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GenerateRandomName()", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetUniqueName(string name)", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateCustomTheme(string name, CustomThemeTemplate template)", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateCreateNew()", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateNew()", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.Import()", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnOkButtonClicked(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnImportButtonClicked(object sender, RoutedEventArgs e)" - ], - "content_hash": "5b5455f56f2a401a", - "module_hash": "1ecc62c79e53b32d" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Schema", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Element", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Type", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.ParseSchema()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.GetElementAttributes(string name, Element element)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.PopulateElementInfo()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.BootstrapperEditorWindow(string name)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.LoadHighlightingTheme()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ThemeSavedCallback(bool success, string message)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ToCRLF(string text)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnCodeChanged(object? sender, EventArgs e)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnClosing(object sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnTextAreaTextEntered(object sender, TextCompositionEventArgs e)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetLineAndPosAtCaretPosition()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursor(string xml, int offset, bool onlyAllowInside = false)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursorNoSpaces(string xml, int offset)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowAttributesForElementName()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.AddEndTag()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenElementAutoComplete()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenAttributeAutoComplete()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenTypeValueAutoComplete(string typeName)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenPropertyElementAutoComplete()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CloseCompletionWindow()", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowCompletionWindow(List completionData)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.ElementCompletionData(string text)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.AttributeCompletionData(string text, Action openValueAutoCompleteAction)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.TypeValueCompletionData(string text)", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)" - ], - "content_hash": "5e75a66744da02e7", - "module_hash": "54bbc0f575afaddb" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.NextPage()", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.BackPage()", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow_Closing(object? sender, CancelEventArgs e)", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetNextButtonText(string text)", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetButtonEnabled(string type, bool state)", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.CloseWindow()" - ], - "content_hash": "2453b72329ea40ce", - "module_hash": "c59a4bcbfdbc83cf" - }, - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage", - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.CompletionPage()", - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.UiPage_Loaded(object sender, RoutedEventArgs e)" - ], - "content_hash": "1889c49f39782828", - "module_hash": "8a7cbcd67aa1ff6c" - }, - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage", - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.InstallPage()", - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.UiPage_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()" - ], - "content_hash": "e00f6513729229ec", - "module_hash": "cfa35fe6dd9456a0" - }, - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage", - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.WelcomePage()", - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.UiPage_Loaded(object sender, RoutedEventArgs e)" - ], - "content_hash": "da44f8f627a115fe", - "module_hash": "c26137cd4e5ec98e" - }, - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage", - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.AppearancePage()", - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.CustomThemeSelection(object sender, SelectionChangedEventArgs e)" - ], - "content_hash": "5222cf438235b26c", - "module_hash": "194b084c1bed19dc" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage", - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage.BloxstrapPage()" - ], - "content_hash": "3afe654c9e03fa81", - "module_hash": "6ca19734285bd409" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage", - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.BehaviourPage()", - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.ToggleSwitch_Checked(object sender, RoutedEventArgs e)" - ], - "content_hash": "a0bec51d6ee68bcc", - "module_hash": "1c79ae2a5f86daca" - }, - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage", - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.IntegrationsPage()", - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.CustomIntegrationSelection(object sender, SelectionChangedEventArgs e)" - ], - "content_hash": "ba476d17e6c687ab", - "module_hash": "9bdb2f2ef5fdc853" - }, - "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs|Bloxstrap.UI.ViewModels.About.AboutViewModel" - ], - "content_hash": "e6f7c33228d4717a", - "module_hash": "45904227d6ff7716" - }, - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel", - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.SupportersViewModel()", - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.OnWindowResize(object sender, SizeChangedEventArgs e)", - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()" - ], - "content_hash": "93a0978bf0ab2cae", - "module_hash": "45904227d6ff7716" - }, - "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel" - ], - "content_hash": "22ee098be09c48e6", - "module_hash": "94b675da5aa4436f" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel", - "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel.SetLocale()" - ], - "content_hash": "bef58b5e138cc0ac", - "module_hash": "103c62409ea46fbf" - }, - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs|Bloxstrap.UI.ViewModels.Installer.CompletionViewModel", - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs|Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchSettings()", - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs|Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchRoblox()" - ], - "content_hash": "355e4ce2fcb1f433", - "module_hash": "dae5754df07049f8" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel", - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.InstallViewModel()", - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.BrowseInstallLocation()", - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.ResetInstallLocation()", - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.OpenFolder()" - ], - "content_hash": "699a5c0bb37a6663", - "module_hash": "c0ee956739d6fe9d" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel", - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)", - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)", - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.BackPage()", - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.NextPage()", - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.CloseWindow()" - ], - "content_hash": "7486b5f507046402", - "module_hash": "569f0282f97954e2" - }, - "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel", - "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()" - ], - "content_hash": "cf2578495dc56cb3", - "module_hash": "2a4f366e1a71c509" - }, - "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel", - "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)" - ], - "content_hash": "4c83e8fabd6cbd00", - "module_hash": "e0592836de10682d" - }, - "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BehaviourViewModel" - ], - "content_hash": "4803f01547ea6340", - "module_hash": "16b82fd3eeb3a872" - }, - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel", - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.ExportData()", - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)" - ], - "content_hash": "9fb1fe6120ba89a7", - "module_hash": "69d73e6b5b375ca9" - }, - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel", - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.AddIntegration()", - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.DeleteIntegration()", - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.BrowseIntegrationLocation()" - ], - "content_hash": "dbe562eee4ce640a", - "module_hash": "07b3a4b5a6f745a1" - }, - "Bloxstrap/Utility/PathValidator.cs": { - "method_keys": [ - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator", - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.ValidationResult", - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.GetInvalidPathChars()", - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)", - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.IsPathValid(string path)" - ], - "content_hash": "50b7bb2f63ee83f9", - "module_hash": "b8d183c4c61f8fe1" - }, - "Bloxstrap/Exceptions/AssertionException.cs": { - "method_keys": [ - "Bloxstrap/Exceptions/AssertionException.cs|Bloxstrap.Exceptions.AssertionException", - "Bloxstrap/Exceptions/AssertionException.cs|Bloxstrap.Exceptions.AssertionException.AssertionException(string message)" - ], - "content_hash": "86232819ebc2d8f6", - "module_hash": "a72786b54df0da62" - }, - "Bloxstrap/Exceptions/InvalidChannelException.cs": { - "method_keys": [ - "Bloxstrap/Exceptions/InvalidChannelException.cs|Bloxstrap.Exceptions.InvalidChannelException", - "Bloxstrap/Exceptions/InvalidChannelException.cs|Bloxstrap.Exceptions.InvalidChannelException.InvalidChannelException(HttpStatusCode? statusCode)" - ], - "content_hash": "b39133add2bd21d9", - "module_hash": "8567c30fc1c5a794" - }, - "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs": { - "method_keys": [ - "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs|Bloxstrap.Exceptions.InvalidHTTPResponseException", - "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs|Bloxstrap.Exceptions.InvalidHTTPResponseException.InvalidHTTPResponseException(string message)" - ], - "content_hash": "8eaf5207ada52bdc", - "module_hash": "a72786b54df0da62" - }, - "Bloxstrap/Extensions/HttpClientEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx", - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.GetWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.PostWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)", - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.GetFromJsonWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.PostFromJsonWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)" - ], - "content_hash": "0a7355406c659ee8", - "module_hash": "ead74b29310eff1f" - }, - "Bloxstrap/Extensions/ResourceManagerEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/ResourceManagerEx.cs|Bloxstrap.Extensions.ResourceManagerEx", - "Bloxstrap/Extensions/ResourceManagerEx.cs|Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name)", - "Bloxstrap/Extensions/ResourceManagerEx.cs|Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name, CultureInfo? culture)" - ], - "content_hash": "06914f5ab63988c0", - "module_hash": "9669d8041855dbed" - }, - "Bloxstrap/Extensions/ServerTypeEx.cs": { - "method_keys": [ - "Bloxstrap/Extensions/ServerTypeEx.cs|Bloxstrap.Extensions.ServerTypeEx", - "Bloxstrap/Extensions/ServerTypeEx.cs|Bloxstrap.Extensions.ServerTypeEx.ToTranslatedString(this ServerType value)" - ], - "content_hash": "52d3c0d58b66511b", - "module_hash": "1e02c6b8b60ba79a" - }, - "Bloxstrap/Integrations/ActivityWatcher.cs": { - "method_keys": [ - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher", - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ActivityWatcher(string? logFile = null)", - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.Start()", - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.Dispose()" - ], - "content_hash": "18cffd8cee6d33dd", - "module_hash": "1118dbba1b7dc895" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs": { - "method_keys": [ - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.ProcessRPCMessage(Message message, bool implicitUpdate = true)", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.AddToThumbnailCache(ulong id, string? url)", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.UpdatePresenceIconsAsync(ulong? smallImg, ulong? largeImg, bool implicitUpdate, CancellationToken token)", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.ProcessSetRichPresence(Message message, bool implicitUpdate)", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.GetButtons()", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.UpdatePresence()", - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.Dispose()" - ], - "content_hash": "ffb3c5119774b5f7", - "module_hash": "e2d98412cf93b75f" - }, - "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs": { - "method_keys": [ - "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs|Bloxstrap.Models.APIs.Roblox.ThumbnailRequest" - ], - "content_hash": "b871e1da17389243", - "module_hash": "833f631ab42e1ecf" - }, - "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs": { - "method_keys": [ - "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs|Bloxstrap.Models.Attributes.BuildMetadataAttribute", - "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs|Bloxstrap.Models.Attributes.BuildMetadataAttribute.BuildMetadataAttribute(string timestamp, string machine, string commitHash, string commitRef)" - ], - "content_hash": "b82e0110bd667885", - "module_hash": "396bded52a2d5ade" - }, - "Bloxstrap/Models/Entities/ActivityData.cs": { - "method_keys": [ - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData", - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.GetInviteDeeplink(bool launchData = true)", - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.ToString()", - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.RejoinServer()" - ], - "content_hash": "7d7287ad474fd9e7", - "module_hash": "496254d89b790cdb" - }, - "Bloxstrap/Models/Entities/UniverseDetails.cs": { - "method_keys": [ - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails", - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)", - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.FetchSingle(long id)", - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)" - ], - "content_hash": "4a91cd2d725f8002", - "module_hash": "9f509dad1c61ae3a" - }, - "Bloxstrap/Models/Entities/UserDetails.cs": { - "method_keys": [ - "Bloxstrap/Models/Entities/UserDetails.cs|Bloxstrap.Models.Entities.UserDetails", - "Bloxstrap/Models/Entities/UserDetails.cs|Bloxstrap.Models.Entities.UserDetails.Fetch(long id)" - ], - "content_hash": "ca48eb9708f2148e", - "module_hash": "7ff7da7626492bb7" - }, - "Bloxstrap/Models/ThumbnailCacheEntry.cs": { - "method_keys": [ - "Bloxstrap/Models/ThumbnailCacheEntry.cs|Bloxstrap.Models.ThumbnailCacheEntry" - ], - "content_hash": "e672ccbe512c342b", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/Models/WatcherData.cs": { - "method_keys": [ - "Bloxstrap/Models/WatcherData.cs|Bloxstrap.Models.WatcherData" - ], - "content_hash": "9904ff86d4f56b5b", - "module_hash": "bf60193338a5dfe2" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.MainWindow()", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.CloseWindow()" - ], - "content_hash": "99df4ecadfdff188", - "module_hash": "bc7dd254603d189d" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.MenuContainer(Watcher watcher)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnLogOpen(object? sender, EventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameJoin(object? sender, EventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameLeave(object? sender, EventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Loaded(object? sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Closed(object sender, EventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.InviteDeeplinkMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ServerDetailsMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.LogTracerMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.JoinLastServerMenuItem_Click(object sender, RoutedEventArgs e)" - ], - "content_hash": "f79351f6a8d7ad51", - "module_hash": "1d9f473b91b48ffc" - }, - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory", - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory.ServerHistory(ActivityWatcher watcher)" - ], - "content_hash": "06e6f3328806c8d9", - "module_hash": "6e84f7bd9860fa2c" - }, - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation", - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)" - ], - "content_hash": "1234932ac3544a4c", - "module_hash": "76e4186859c2b415" - }, - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog", - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog.LanguageSelectorDialog()" - ], - "content_hash": "992850d1496a2bd2", - "module_hash": "cc788d103c2b1a82" - }, - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog", - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog.LaunchMenuDialog()" - ], - "content_hash": "022edab23aa95f77", - "module_hash": "6c555987123fa74b" - }, - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs": { - "method_keys": [ - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog", - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog.UninstallerDialog()" - ], - "content_hash": "f1f341562240adbb", - "module_hash": "30f2aec430d98482" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs": { - "method_keys": [ - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper", - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.NotifyIconWrapper(Watcher watcher)", - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.MouseClickEventHandler(object? sender, MouseEventArgs e)", - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)", - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.ShowAlert(string caption, string message, int duration, EventHandler? clickHandler)", - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.Dispose()" - ], - "content_hash": "a7724ba6343bb3ea", - "module_hash": "2fa82b955960e711" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.ServerHistoryViewModel(ActivityWatcher activityWatcher)", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.RequestClose()" - ], - "content_hash": "008dd8105a78fd6d", - "module_hash": "29f304ffc24439f5" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.ServerInformationViewModel(Watcher watcher)", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.QueryServerLocation()", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.CopyInstanceId()" - ], - "content_hash": "7ed4c22d52f64f30", - "module_hash": "dc6e140fe87be215" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel", - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchSettings()", - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRoblox()", - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRobloxStudio()", - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchAbout()" - ], - "content_hash": "2e7b5989a5d34391", - "module_hash": "06ee02f478809693" - }, - "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs": { - "method_keys": [ - "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel", - "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel.ConfirmUninstall()" - ], - "content_hash": "85e57473a6846a80", - "module_hash": "b71994c82ae1b0ab" - }, - "Bloxstrap/Utility/FixedCapacityList.cs": { - "method_keys": [ - "Bloxstrap/Utility/FixedCapacityList.cs|Bloxstrap.Utility.FixedCapacityList.FixedSizeList", - "Bloxstrap/Utility/FixedCapacityList.cs|Bloxstrap.Utility.FixedCapacityList.FixedSizeList.FixedSizeList(int size)", - "Bloxstrap/Utility/FixedCapacityList.cs|Bloxstrap.Utility.FixedCapacityList.FixedSizeList.Add(T item)" - ], - "content_hash": "8347acbc5d82d903", - "module_hash": "b8d183c4c61f8fe1" - }, - "Bloxstrap/Utility/Http.cs": { - "method_keys": [ - "Bloxstrap/Utility/Http.cs|Bloxstrap.Utility.Http", - "Bloxstrap/Utility/Http.cs|Bloxstrap.Utility.Http.GetJson(string url)" - ], - "content_hash": "bf0e5905c8feb535", - "module_hash": "d645d53c7f099753" - }, - "Bloxstrap/Utility/InterProcessLock.cs": { - "method_keys": [ - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock", - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name, TimeSpan timeout)", - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.Dispose()" - ], - "content_hash": "8c21b6409f2b5164", - "module_hash": "b8d183c4c61f8fe1" - }, - "Bloxstrap/Utility/Thumbnails.cs": { - "method_keys": [ - "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails", - "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails.GetThumbnailUrlsAsync(List requests, CancellationToken token)", - "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails.GetThumbnailUrlAsync(ThumbnailRequest request, CancellationToken token)" - ], - "content_hash": "8caf4b0152122d4c", - "module_hash": "b8d183c4c61f8fe1" - }, - "Bloxstrap/Watcher.cs": { - "method_keys": [ - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher", - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Watcher()", - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.KillRobloxProcess()", - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)", - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Run()", - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Dispose()" - ], - "content_hash": "2ba36f8cfdd3663e", - "module_hash": "007a143eb76d8310" - }, - "Bloxstrap/Properties/Resources.Designer.cs": { - "method_keys": [ - "Bloxstrap/Properties/Resources.Designer.cs|Bloxstrap.Properties.Resources.Designer.Resources", - "Bloxstrap/Properties/Resources.Designer.cs|Bloxstrap.Properties.Resources.Designer.Resources.Resources()" - ], - "content_hash": "672f47980986d616", - "module_hash": "a101ee017b995d94" - }, - "Bloxstrap/Resources/Strings.Designer.cs": { - "method_keys": [ - "Bloxstrap/Resources/Strings.Designer.cs|Bloxstrap.Resources.Strings.Designer.Strings", - "Bloxstrap/Resources/Strings.Designer.cs|Bloxstrap.Resources.Strings.Designer.Strings.Strings()" - ], - "content_hash": "b9f77f186ecfd030", - "module_hash": "dd14d82d2f67e93c" - }, - "Bloxstrap/UI/Converters/EnumNameConverter.cs": { - "method_keys": [ - "Bloxstrap/UI/Converters/EnumNameConverter.cs|Bloxstrap.UI.Converters.EnumNameConverter", - "Bloxstrap/UI/Converters/EnumNameConverter.cs|Bloxstrap.UI.Converters.EnumNameConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "Bloxstrap/UI/Converters/EnumNameConverter.cs|Bloxstrap.UI.Converters.EnumNameConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)" - ], - "content_hash": "83331c4c01a7445b", - "module_hash": "c88ca080d4d09ba4" - }, - "Bloxstrap/UI/Converters/RangeConverter.cs": { - "method_keys": [ - "Bloxstrap/UI/Converters/RangeConverter.cs|Bloxstrap.UI.Converters.RangeConverter", - "Bloxstrap/UI/Converters/RangeConverter.cs|Bloxstrap.UI.Converters.RangeConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "Bloxstrap/UI/Converters/RangeConverter.cs|Bloxstrap.UI.Converters.RangeConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)" - ], - "content_hash": "632ca7dec7570980", - "module_hash": "09745257e647ed37" - }, - "Bloxstrap/UI/Converters/StringFormatConverter.cs": { - "method_keys": [ - "Bloxstrap/UI/Converters/StringFormatConverter.cs|Bloxstrap.UI.Converters.StringFormatConverter", - "Bloxstrap/UI/Converters/StringFormatConverter.cs|Bloxstrap.UI.Converters.StringFormatConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "Bloxstrap/UI/Converters/StringFormatConverter.cs|Bloxstrap.UI.Converters.StringFormatConverter.ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)" - ], - "content_hash": "fd2867726261e260", - "module_hash": "11f8646e53edb311" - } - }, - "methods_index": { - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App", - "start_line": 14, - "end_line": 401, - "type": "CLASS", - "content_hash": "73c3ff37893667ff" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "start_line": 87, - "end_line": 95, - "type": "METHOD", - "content_hash": "68997ddc5a1dd8b3" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))", - "start_line": 96, - "end_line": 104, - "type": "METHOD", - "content_hash": "64104ac24673248a" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.GlobalExceptionHandler(object sender, DispatcherUnhandledExceptionEventArgs e)": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.GlobalExceptionHandler(object sender, DispatcherUnhandledExceptionEventArgs e)", - "start_line": 105, - "end_line": 113, - "type": "METHOD", - "content_hash": "5ccb6307abf4fda2" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)", - "start_line": 114, - "end_line": 121, - "type": "METHOD", - "content_hash": "7067120e22a965d6" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "start_line": 122, - "end_line": 146, - "type": "METHOD", - "content_hash": "d2fd863db7d8e6a4" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.ConstructBloxstrapWebUrl()": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.ConstructBloxstrapWebUrl()", - "start_line": 147, - "end_line": 156, - "type": "METHOD", - "content_hash": "5cafead04ee7b901" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.CanSendLogs()": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.CanSendLogs()", - "start_line": 157, - "end_line": 165, - "type": "METHOD", - "content_hash": "b66da3170b9c702a" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.GetLatestRelease()": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.GetLatestRelease()", - "start_line": 166, - "end_line": 189, - "type": "METHOD", - "content_hash": "adc8033235919744" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "start_line": 190, - "end_line": 204, - "type": "METHOD", - "content_hash": "778531a0081712fb" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendLog()": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.SendLog()", - "start_line": 205, - "end_line": 222, - "type": "METHOD", - "content_hash": "77f8f44c9e9bb602" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "start_line": 223, - "end_line": 238, - "type": "METHOD", - "content_hash": "83f506a13588ed81" - }, - "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)": { - "file_path": "Bloxstrap/App.xaml.cs", - "qualified_name": "Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "start_line": 239, - "end_line": 400, - "type": "METHOD", - "content_hash": "af74473c689ef034" - }, - "Bloxstrap/AppData/CommonAppData.cs|Bloxstrap.AppData.CommonAppData": { - "file_path": "Bloxstrap/AppData/CommonAppData.cs", - "qualified_name": "Bloxstrap.AppData.CommonAppData", - "start_line": 9, - "end_line": 78, - "type": "CLASS", - "content_hash": "ac8c91edc28172a8" - }, - "Bloxstrap/AppData/CommonAppData.cs|Bloxstrap.AppData.CommonAppData.CommonAppData()": { - "file_path": "Bloxstrap/AppData/CommonAppData.cs", - "qualified_name": "Bloxstrap.AppData.CommonAppData.CommonAppData()", - "start_line": 59, - "end_line": 77, - "type": "CONSTRUCTOR", - "content_hash": "840133c4fd2a8690" - }, - "Bloxstrap/AppData/IAppData.cs|Bloxstrap.AppData.IAppData": { - "file_path": "Bloxstrap/AppData/IAppData.cs", - "qualified_name": "Bloxstrap.AppData.IAppData", - "start_line": 3, - "end_line": 27, - "type": "INTERFACE", - "content_hash": "0485b01008bdbf71" - }, - "Bloxstrap/AppData/RobloxPlayerData.cs|Bloxstrap.AppData.RobloxPlayerData": { - "file_path": "Bloxstrap/AppData/RobloxPlayerData.cs", - "qualified_name": "Bloxstrap.AppData.RobloxPlayerData", - "start_line": 3, - "end_line": 22, - "type": "CLASS", - "content_hash": "4e2e17ec36f2b0aa" - }, - "Bloxstrap/AppData/RobloxStudioData.cs|Bloxstrap.AppData.RobloxStudioData": { - "file_path": "Bloxstrap/AppData/RobloxStudioData.cs", - "qualified_name": "Bloxstrap.AppData.RobloxStudioData", - "start_line": 3, - "end_line": 41, - "type": "CLASS", - "content_hash": "5e3c2f0f3866af38" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper", - "start_line": 30, - "end_line": 1631, - "type": "CLASS", - "content_hash": "1e17d489724acca0" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Bootstrapper(LaunchMode launchMode)": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.Bootstrapper(LaunchMode launchMode)", - "start_line": 84, - "end_line": 104, - "type": "CONSTRUCTOR", - "content_hash": "65c6c9905edff014" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SetupAppData()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.SetupAppData()", - "start_line": 105, - "end_line": 110, - "type": "METHOD", - "content_hash": "ef8213826060853c" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SetStatus(string message)": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.SetStatus(string message)", - "start_line": 111, - "end_line": 120, - "type": "METHOD", - "content_hash": "55287909adc285c3" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpdateProgressBar()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.UpdateProgressBar()", - "start_line": 121, - "end_line": 141, - "type": "METHOD", - "content_hash": "cb2cff9bb6ad432e" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "start_line": 142, - "end_line": 174, - "type": "METHOD", - "content_hash": "79248851343ea0c8" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.Run()", - "start_line": 175, - "end_line": 314, - "type": "METHOD", - "content_hash": "d37bf16ee64bfb66" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetChannelRegistryKey()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.GetChannelRegistryKey()", - "start_line": 315, - "end_line": 316, - "type": "METHOD", - "content_hash": "0237e8b3c7d9e51b" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetCurrentChannelFromArgs()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.GetCurrentChannelFromArgs()", - "start_line": 317, - "end_line": 356, - "type": "METHOD", - "content_hash": "0db4736c541da9a2" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.FetchCurrentChannel()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.FetchCurrentChannel()", - "start_line": 357, - "end_line": 387, - "type": "METHOD", - "content_hash": "3f0e3c304e7919ec" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpdateChannelRegistry()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.UpdateChannelRegistry()", - "start_line": 388, - "end_line": 393, - "type": "METHOD", - "content_hash": "885666a98d86676a" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetLatestVersionInfo()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.GetLatestVersionInfo()", - "start_line": 398, - "end_line": 474, - "type": "METHOD", - "content_hash": "3620330e1eb56a6b" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SafeGetLatestVersionInfo()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.SafeGetLatestVersionInfo()", - "start_line": 475, - "end_line": 489, - "type": "METHOD", - "content_hash": "b19140cbc0878b6e" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.IsEligibleForBackgroundUpdate()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.IsEligibleForBackgroundUpdate()", - "start_line": 490, - "end_line": 556, - "type": "METHOD", - "content_hash": "50225c6d7ba4bc86" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.StartRoblox()", - "start_line": 557, - "end_line": 701, - "type": "METHOD", - "content_hash": "f2a12eab9d4c1df7" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ShouldRunAsAdmin()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.ShouldRunAsAdmin()", - "start_line": 702, - "end_line": 719, - "type": "METHOD", - "content_hash": "71a35022847c0376" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.Cancel()", - "start_line": 720, - "end_line": 762, - "type": "METHOD", - "content_hash": "eceb579df63d1c1f" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.CheckForUpdates()", - "start_line": 765, - "end_line": 870, - "type": "METHOD", - "content_hash": "a1c5b5f8efbab472" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.TryDeleteRobloxInDirectory(string dir)": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.TryDeleteRobloxInDirectory(string dir)", - "start_line": 873, - "end_line": 894, - "type": "METHOD", - "content_hash": "2a09b0bd1c552f43" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CleanupVersionsFolder()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.CleanupVersionsFolder()", - "start_line": 895, - "end_line": 937, - "type": "METHOD", - "content_hash": "d934ed75bcc0667b" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.MigrateCompatibilityFlags()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.MigrateCompatibilityFlags()", - "start_line": 938, - "end_line": 956, - "type": "METHOD", - "content_hash": "7b54cc156a2520c3" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.KillRobloxInstances()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.KillRobloxInstances()", - "start_line": 957, - "end_line": 978, - "type": "METHOD", - "content_hash": "82914b6a8bce3726" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GracefullyCloseRobloxInstances()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.GracefullyCloseRobloxInstances()", - "start_line": 979, - "end_line": 1012, - "type": "METHOD", - "content_hash": "5cece7aa52884a26" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.UpgradeRoblox()", - "start_line": 1013, - "end_line": 1241, - "type": "METHOD", - "content_hash": "76796ad8a43244dd" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartBackgroundUpdater()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.StartBackgroundUpdater()", - "start_line": 1242, - "end_line": 1256, - "type": "METHOD", - "content_hash": "a16948678d379cdb" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.ApplyModifications()", - "start_line": 1257, - "end_line": 1454, - "type": "METHOD", - "content_hash": "0fe4a2bf684a9344" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "start_line": 1455, - "end_line": 1592, - "type": "METHOD", - "content_hash": "d765e64b359f2885" - }, - "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ExtractPackage(Package package, List? files = null)": { - "file_path": "Bloxstrap/Bootstrapper.cs", - "qualified_name": "Bloxstrap.Bootstrapper.ExtractPackage(Package package, List? files = null)", - "start_line": 1593, - "end_line": 1629, - "type": "METHOD", - "content_hash": "4f450bf16ab86fb9" - }, - "Bloxstrap/Enums/BootstrapperIcon.cs|Bloxstrap.Enums.BootstrapperIcon": { - "file_path": "Bloxstrap/Enums/BootstrapperIcon.cs", - "qualified_name": "Bloxstrap.Enums.BootstrapperIcon", - "start_line": 3, - "end_line": 24, - "type": "ENUM", - "content_hash": "fdf7469e703d6195" - }, - "Bloxstrap/Enums/BootstrapperStyle.cs|Bloxstrap.Enums.BootstrapperStyle": { - "file_path": "Bloxstrap/Enums/BootstrapperStyle.cs", - "qualified_name": "Bloxstrap.Enums.BootstrapperStyle", - "start_line": 3, - "end_line": 16, - "type": "ENUM", - "content_hash": "f36d3bc2f2b6e776" - }, - "Bloxstrap/Enums/CursorType.cs|Bloxstrap.Enums.CursorType": { - "file_path": "Bloxstrap/Enums/CursorType.cs", - "qualified_name": "Bloxstrap.Enums.CursorType", - "start_line": 3, - "end_line": 15, - "type": "ENUM", - "content_hash": "8f3f6ef6c152b7e7" - }, - "Bloxstrap/Enums/CustomThemeTemplate.cs|Bloxstrap.Enums.CustomThemeTemplate": { - "file_path": "Bloxstrap/Enums/CustomThemeTemplate.cs", - "qualified_name": "Bloxstrap.Enums.CustomThemeTemplate", - "start_line": 3, - "end_line": 8, - "type": "ENUM", - "content_hash": "3c29a1cfa489ee97" - }, - "Bloxstrap/Enums/EmojiType.cs|Bloxstrap.Enums.EmojiType": { - "file_path": "Bloxstrap/Enums/EmojiType.cs", - "qualified_name": "Bloxstrap.Enums.EmojiType", - "start_line": 3, - "end_line": 11, - "type": "ENUM", - "content_hash": "d70a46a6d09de4d2" - }, - "Bloxstrap/Enums/ErrorCode.cs|Bloxstrap.Enums.ErrorCode": { - "file_path": "Bloxstrap/Enums/ErrorCode.cs", - "qualified_name": "Bloxstrap.Enums.ErrorCode", - "start_line": 8, - "end_line": 20, - "type": "ENUM", - "content_hash": "d31aff0947780ce6" - }, - "Bloxstrap/Enums/FlagPresets/MSAAMode.cs|Bloxstrap.Enums.FlagPresets.MSAAMode": { - "file_path": "Bloxstrap/Enums/FlagPresets/MSAAMode.cs", - "qualified_name": "Bloxstrap.Enums.FlagPresets.MSAAMode", - "start_line": 3, - "end_line": 14, - "type": "ENUM", - "content_hash": "448e0b37ffeff41a" - }, - "Bloxstrap/Enums/FlagPresets/TextureQuality.cs|Bloxstrap.Enums.FlagPresets.TextureQuality": { - "file_path": "Bloxstrap/Enums/FlagPresets/TextureQuality.cs", - "qualified_name": "Bloxstrap.Enums.FlagPresets.TextureQuality", - "start_line": 3, - "end_line": 12, - "type": "ENUM", - "content_hash": "d3cf08de0b4e4a68" - }, - "Bloxstrap/Enums/GenericTriState.cs|Bloxstrap.Enums.GenericTriState": { - "file_path": "Bloxstrap/Enums/GenericTriState.cs", - "qualified_name": "Bloxstrap.Enums.GenericTriState", - "start_line": 3, - "end_line": 9, - "type": "ENUM", - "content_hash": "bab012987f3e0243" - }, - "Bloxstrap/Enums/LaunchMode.cs|Bloxstrap.Enums.LaunchMode": { - "file_path": "Bloxstrap/Enums/LaunchMode.cs", - "qualified_name": "Bloxstrap.Enums.LaunchMode", - "start_line": 3, - "end_line": 14, - "type": "ENUM", - "content_hash": "145b18596a926cdd" - }, - "Bloxstrap/Enums/NextAction.cs|Bloxstrap.Enums.NextAction": { - "file_path": "Bloxstrap/Enums/NextAction.cs", - "qualified_name": "Bloxstrap.Enums.NextAction", - "start_line": 3, - "end_line": 10, - "type": "ENUM", - "content_hash": "9fd13f6732a0894c" - }, - "Bloxstrap/Enums/ServerSessionJoinType.cs|Bloxstrap.Enums.ServerSessionJoinType": { - "file_path": "Bloxstrap/Enums/ServerSessionJoinType.cs", - "qualified_name": "Bloxstrap.Enums.ServerSessionJoinType", - "start_line": 3, - "end_line": 12, - "type": "ENUM", - "content_hash": "bbe1e19b0a3a8906" - }, - "Bloxstrap/Enums/ServerType.cs|Bloxstrap.Enums.ServerType": { - "file_path": "Bloxstrap/Enums/ServerType.cs", - "qualified_name": "Bloxstrap.Enums.ServerType", - "start_line": 3, - "end_line": 9, - "type": "ENUM", - "content_hash": "2a1f7bf8744888a0" - }, - "Bloxstrap/Enums/Theme.cs|Bloxstrap.Enums.Theme": { - "file_path": "Bloxstrap/Enums/Theme.cs", - "qualified_name": "Bloxstrap.Enums.Theme", - "start_line": 3, - "end_line": 10, - "type": "ENUM", - "content_hash": "9c92fc400ce45621" - }, - "Bloxstrap/Enums/VersionComparison.cs|Bloxstrap.Enums.VersionComparison": { - "file_path": "Bloxstrap/Enums/VersionComparison.cs", - "qualified_name": "Bloxstrap.Enums.VersionComparison", - "start_line": 3, - "end_line": 9, - "type": "ENUM", - "content_hash": "43c652423b48fb25" - }, - "Bloxstrap/Enums/WebEnvironment.cs|Bloxstrap.Enums.WebEnvironment": { - "file_path": "Bloxstrap/Enums/WebEnvironment.cs", - "qualified_name": "Bloxstrap.Enums.WebEnvironment", - "start_line": 6, - "end_line": 26, - "type": "ENUM", - "content_hash": "bccd730333bd4ae1" - }, - "Bloxstrap/Exceptions/ChecksumFailedException.cs|Bloxstrap.Exceptions.ChecksumFailedException": { - "file_path": "Bloxstrap/Exceptions/ChecksumFailedException.cs", - "qualified_name": "Bloxstrap.Exceptions.ChecksumFailedException", - "start_line": 9, - "end_line": 15, - "type": "CLASS", - "content_hash": "f14c968d70d8351e" - }, - "Bloxstrap/Exceptions/ChecksumFailedException.cs|Bloxstrap.Exceptions.ChecksumFailedException.ChecksumFailedException(string message)": { - "file_path": "Bloxstrap/Exceptions/ChecksumFailedException.cs", - "qualified_name": "Bloxstrap.Exceptions.ChecksumFailedException.ChecksumFailedException(string message)", - "start_line": 11, - "end_line": 14, - "type": "CONSTRUCTOR", - "content_hash": "e7f309d49f6e6021" - }, - "Bloxstrap/Extensions/EmojiTypeEx.cs|Bloxstrap.Extensions.EmojiTypeEx": { - "file_path": "Bloxstrap/Extensions/EmojiTypeEx.cs", - "qualified_name": "Bloxstrap.Extensions.EmojiTypeEx", - "start_line": 3, - "end_line": 31, - "type": "CLASS", - "content_hash": "0c4fd95cf71d9c3e" - }, - "Bloxstrap/Extensions/EmojiTypeEx.cs|Bloxstrap.Extensions.EmojiTypeEx.GetHash(this EmojiType emojiType)": { - "file_path": "Bloxstrap/Extensions/EmojiTypeEx.cs", - "qualified_name": "Bloxstrap.Extensions.EmojiTypeEx.GetHash(this EmojiType emojiType)", - "start_line": 21, - "end_line": 22, - "type": "METHOD", - "content_hash": "251ba0fd8d3377dc" - }, - "Bloxstrap/Extensions/EmojiTypeEx.cs|Bloxstrap.Extensions.EmojiTypeEx.GetUrl(this EmojiType emojiType)": { - "file_path": "Bloxstrap/Extensions/EmojiTypeEx.cs", - "qualified_name": "Bloxstrap.Extensions.EmojiTypeEx.GetUrl(this EmojiType emojiType)", - "start_line": 23, - "end_line": 30, - "type": "METHOD", - "content_hash": "93beca19cfc38962" - }, - "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx": { - "file_path": "Bloxstrap/Extensions/RegistryKeyEx.cs", - "qualified_name": "Bloxstrap.Extensions.RegistryKeyEx", - "start_line": 5, - "end_line": 35, - "type": "CLASS", - "content_hash": "0bd347232208fee0" - }, - "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)": { - "file_path": "Bloxstrap/Extensions/RegistryKeyEx.cs", - "qualified_name": "Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "start_line": 7, - "end_line": 20, - "type": "METHOD", - "content_hash": "5b87a91c96810f78" - }, - "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)": { - "file_path": "Bloxstrap/Extensions/RegistryKeyEx.cs", - "qualified_name": "Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)", - "start_line": 21, - "end_line": 34, - "type": "METHOD", - "content_hash": "e74b2fe1bb6d55be" - }, - "Bloxstrap/Extensions/TEnumEx.cs|Bloxstrap.Extensions.TEnumEx": { - "file_path": "Bloxstrap/Extensions/TEnumEx.cs", - "qualified_name": "Bloxstrap.Extensions.TEnumEx", - "start_line": 6, - "end_line": 22, - "type": "CLASS", - "content_hash": "3d256ab189cb9bc9" - }, - "Bloxstrap/Extensions/TEnumEx.cs|Bloxstrap.Extensions.TEnumEx.GetDescription(this TEnum e)": { - "file_path": "Bloxstrap/Extensions/TEnumEx.cs", - "qualified_name": "Bloxstrap.Extensions.TEnumEx.GetDescription(this TEnum e)", - "start_line": 8, - "end_line": 21, - "type": "METHOD", - "content_hash": "694dffd65eb9ca05" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager", - "start_line": 5, - "end_line": 156, - "type": "CLASS", - "content_hash": "8c42059927b342f7" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetValue(string key, object? value)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.SetValue(string key, object? value)", - "start_line": 48, - "end_line": 76, - "type": "METHOD", - "content_hash": "ebad8fcf51cfbf3b" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetValue(string key)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.GetValue(string key)", - "start_line": 78, - "end_line": 86, - "type": "METHOD", - "content_hash": "c45137badaf0cde6" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetPreset(string prefix, object? value)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.SetPreset(string prefix, object? value)", - "start_line": 87, - "end_line": 92, - "type": "METHOD", - "content_hash": "215e141c0d4c4021" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetPresetEnum(string prefix, string target, object? value)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.SetPresetEnum(string prefix, string target, object? value)", - "start_line": 93, - "end_line": 103, - "type": "METHOD", - "content_hash": "d0e45c065addc1ce" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetPreset(string name)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.GetPreset(string name)", - "start_line": 104, - "end_line": 115, - "type": "METHOD", - "content_hash": "d4a5625bc6ca6aa3" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value)", - "start_line": 116, - "end_line": 129, - "type": "METHOD", - "content_hash": "44bb2fe55aadad97" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.Save()", - "start_line": 130, - "end_line": 142, - "type": "METHOD", - "content_hash": "79c7d40803ef4781" - }, - "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Load(bool alertFailure = true)": { - "file_path": "Bloxstrap/FastFlagManager.cs", - "qualified_name": "Bloxstrap.FastFlagManager.Load(bool alertFailure = true)", - "start_line": 143, - "end_line": 155, - "type": "METHOD", - "content_hash": "173c5ee73ac212c3" - }, - "Bloxstrap/GlobalCache.cs|Bloxstrap.GlobalCache": { - "file_path": "Bloxstrap/GlobalCache.cs", - "qualified_name": "Bloxstrap.GlobalCache", - "start_line": 3, - "end_line": 7, - "type": "CLASS", - "content_hash": "028325bc58e4ed3c" - }, - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler": { - "file_path": "Bloxstrap/HttpClientLoggingHandler.cs", - "qualified_name": "Bloxstrap.HttpClientLoggingHandler", - "start_line": 3, - "end_line": 22, - "type": "CLASS", - "content_hash": "b4f1a4473d8771ab" - }, - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler.HttpClientLoggingHandler(HttpMessageHandler innerHandler)": { - "file_path": "Bloxstrap/HttpClientLoggingHandler.cs", - "qualified_name": "Bloxstrap.HttpClientLoggingHandler.HttpClientLoggingHandler(HttpMessageHandler innerHandler)", - "start_line": 5, - "end_line": 9, - "type": "CONSTRUCTOR", - "content_hash": "83d05aacb10ce064" - }, - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler.ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)": { - "file_path": "Bloxstrap/HttpClientLoggingHandler.cs", - "qualified_name": "Bloxstrap.HttpClientLoggingHandler.ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)", - "start_line": 10, - "end_line": 15, - "type": "METHOD", - "content_hash": "45de89fce63916cd" - }, - "Bloxstrap/HttpClientLoggingHandler.cs|Bloxstrap.HttpClientLoggingHandler.ProcessResponse(HttpResponseMessage response, CancellationToken cancellationToken)": { - "file_path": "Bloxstrap/HttpClientLoggingHandler.cs", - "qualified_name": "Bloxstrap.HttpClientLoggingHandler.ProcessResponse(HttpResponseMessage response, CancellationToken cancellationToken)", - "start_line": 16, - "end_line": 21, - "type": "METHOD", - "content_hash": "1d7d34027edbc71b" - }, - "Bloxstrap/Installer.cs|Bloxstrap.Installer": { - "file_path": "Bloxstrap/Installer.cs", - "qualified_name": "Bloxstrap.Installer", - "start_line": 6, - "end_line": 647, - "type": "CLASS", - "content_hash": "0474bc84e8f96164" - }, - "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()": { - "file_path": "Bloxstrap/Installer.cs", - "qualified_name": "Bloxstrap.Installer.DoInstall()", - "start_line": 36, - "end_line": 114, - "type": "METHOD", - "content_hash": "5e7e0aa7aaa7976e" - }, - "Bloxstrap/Installer.cs|Bloxstrap.Installer.ValidateLocation()": { - "file_path": "Bloxstrap/Installer.cs", - "qualified_name": "Bloxstrap.Installer.ValidateLocation()", - "start_line": 115, - "end_line": 143, - "type": "METHOD", - "content_hash": "ae93b7d5c623da6b" - }, - "Bloxstrap/Installer.cs|Bloxstrap.Installer.CheckInstallLocation()": { - "file_path": "Bloxstrap/Installer.cs", - "qualified_name": "Bloxstrap.Installer.CheckInstallLocation()", - "start_line": 144, - "end_line": 197, - "type": "METHOD", - "content_hash": "7ddcb63a26c4b9be" - }, - "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)": { - "file_path": "Bloxstrap/Installer.cs", - "qualified_name": "Bloxstrap.Installer.DoUninstall(bool keepData)", - "start_line": 198, - "end_line": 362, - "type": "METHOD", - "content_hash": "633df427c356d92a" - }, - "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()": { - "file_path": "Bloxstrap/Installer.cs", - "qualified_name": "Bloxstrap.Installer.HandleUpgrade()", - "start_line": 363, - "end_line": 646, - "type": "METHOD", - "content_hash": "322b94f13ab30c7d" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.JsonManager", - "start_line": 3, - "end_line": 173, - "type": "CLASS", - "content_hash": "e3bb06b18817b793" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)", - "start_line": 30, - "end_line": 34, - "type": "CONSTRUCTOR", - "content_hash": "204707c9b8fb40db" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "start_line": 35, - "end_line": 103, - "type": "METHOD", - "content_hash": "e49a5658991e9ac2" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.JsonManager.Save()", - "start_line": 104, - "end_line": 133, - "type": "METHOD", - "content_hash": "9b3fcd03e241bc64" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Delete()": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.JsonManager.Delete()", - "start_line": 134, - "end_line": 160, - "type": "METHOD", - "content_hash": "028ee9def8356c89" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()", - "start_line": 164, - "end_line": 172, - "type": "METHOD", - "content_hash": "d13b9f0119f59e55" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.LazyJsonManager": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.LazyJsonManager", - "start_line": 178, - "end_line": 201, - "type": "CLASS", - "content_hash": "21349bc2ba3f0a8b" - }, - "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.LazyJsonManager.LazyJsonManager(string? className)": { - "file_path": "Bloxstrap/JsonManager.cs", - "qualified_name": "Bloxstrap.JsonManager.LazyJsonManager.LazyJsonManager(string? className)", - "start_line": 196, - "end_line": 200, - "type": "CONSTRUCTOR", - "content_hash": "fbe549c2eff238dd" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler", - "start_line": 11, - "end_line": 357, - "type": "CLASS", - "content_hash": "172198687e22876c" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "start_line": 13, - "end_line": 40, - "type": "METHOD", - "content_hash": "98cc7e1e910c1ae0" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "start_line": 41, - "end_line": 83, - "type": "METHOD", - "content_hash": "82c6d444c47cc10d" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchInstaller()", - "start_line": 84, - "end_line": 132, - "type": "METHOD", - "content_hash": "9d6f289fb64b60d3" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchUninstaller()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchUninstaller()", - "start_line": 133, - "end_line": 172, - "type": "METHOD", - "content_hash": "391f57f9dd5e7aa4" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchSettings()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchSettings()", - "start_line": 173, - "end_line": 200, - "type": "METHOD", - "content_hash": "9ec86d4267a21de0" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchMenu()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchMenu()", - "start_line": 201, - "end_line": 208, - "type": "METHOD", - "content_hash": "fe0dedd62c186b3d" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "start_line": 209, - "end_line": 273, - "type": "METHOD", - "content_hash": "db72fc25eb9ed2e3" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchWatcher()", - "start_line": 274, - "end_line": 304, - "type": "METHOD", - "content_hash": "83e02aa9ee6bce55" - }, - "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()": { - "file_path": "Bloxstrap/LaunchHandler.cs", - "qualified_name": "Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()", - "start_line": 305, - "end_line": 356, - "type": "METHOD", - "content_hash": "39f7dab306b92a13" - }, - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings": { - "file_path": "Bloxstrap/LaunchSettings.cs", - "qualified_name": "Bloxstrap.LaunchSettings", - "start_line": 13, - "end_line": 203, - "type": "CLASS", - "content_hash": "207516adedb3de33" - }, - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.LaunchSettings(string[] args)": { - "file_path": "Bloxstrap/LaunchSettings.cs", - "qualified_name": "Bloxstrap.LaunchSettings.LaunchSettings(string[] args)", - "start_line": 58, - "end_line": 154, - "type": "CONSTRUCTOR", - "content_hash": "22fc713da63b5cc1" - }, - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.ParsePlayer(string? data)": { - "file_path": "Bloxstrap/LaunchSettings.cs", - "qualified_name": "Bloxstrap.LaunchSettings.ParsePlayer(string? data)", - "start_line": 155, - "end_line": 171, - "type": "METHOD", - "content_hash": "1c9de866aba121ab" - }, - "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.ParseStudio(string? data)": { - "file_path": "Bloxstrap/LaunchSettings.cs", - "qualified_name": "Bloxstrap.LaunchSettings.ParseStudio(string? data)", - "start_line": 172, - "end_line": 202, - "type": "METHOD", - "content_hash": "a6c448f21166c4b5" - }, - "Bloxstrap/Logger.cs|Bloxstrap.Logger": { - "file_path": "Bloxstrap/Logger.cs", - "qualified_name": "Bloxstrap.Logger", - "start_line": 5, - "end_line": 148, - "type": "CLASS", - "content_hash": "dfc7f6a6e2cd85f2" - }, - "Bloxstrap/Logger.cs|Bloxstrap.Logger.Initialize(bool useTempDir = false)": { - "file_path": "Bloxstrap/Logger.cs", - "qualified_name": "Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "start_line": 17, - "end_line": 104, - "type": "METHOD", - "content_hash": "7ebd76e947e9f219" - }, - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string message)": { - "file_path": "Bloxstrap/Logger.cs", - "qualified_name": "Bloxstrap.Logger.WriteLine(string message)", - "start_line": 105, - "end_line": 116, - "type": "METHOD", - "content_hash": "f7f7ea5b8149d65e" - }, - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)": { - "file_path": "Bloxstrap/Logger.cs", - "qualified_name": "Bloxstrap.Logger.WriteLine(string identifier, string message)", - "start_line": 117, - "end_line": 118, - "type": "METHOD", - "content_hash": "e20c54a6bd0da279" - }, - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)": { - "file_path": "Bloxstrap/Logger.cs", - "qualified_name": "Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "start_line": 119, - "end_line": 129, - "type": "METHOD", - "content_hash": "64adb74fd8106ea9" - }, - "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteToLog(string message)": { - "file_path": "Bloxstrap/Logger.cs", - "qualified_name": "Bloxstrap.Logger.WriteToLog(string message)", - "start_line": 130, - "end_line": 147, - "type": "METHOD", - "content_hash": "2dd16e7d905a16eb" - }, - "Bloxstrap/Models/APIs/Config/Supporter.cs|Bloxstrap.Models.APIs.Config.Supporter": { - "file_path": "Bloxstrap/Models/APIs/Config/Supporter.cs", - "qualified_name": "Bloxstrap.Models.APIs.Config.Supporter", - "start_line": 3, - "end_line": 13, - "type": "CLASS", - "content_hash": "79b2608e9e6ddcce" - }, - "Bloxstrap/Models/APIs/Config/SupporterData.cs|Bloxstrap.Models.APIs.Config.SupporterData": { - "file_path": "Bloxstrap/Models/APIs/Config/SupporterData.cs", - "qualified_name": "Bloxstrap.Models.APIs.Config.SupporterData", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "a50242200320ba36" - }, - "Bloxstrap/Models/APIs/Config/SupporterGroup.cs|Bloxstrap.Models.APIs.Config.SupporterGroup": { - "file_path": "Bloxstrap/Models/APIs/Config/SupporterGroup.cs", - "qualified_name": "Bloxstrap.Models.APIs.Config.SupporterGroup", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "3aeb807024d15cc3" - }, - "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs|Bloxstrap.Models.APIs.GitHub.GitHubReleaseAsset.GithubReleaseAsset": { - "file_path": "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs", - "qualified_name": "Bloxstrap.Models.APIs.GitHub.GitHubReleaseAsset.GithubReleaseAsset", - "start_line": 1, - "end_line": 8, - "type": "CLASS", - "content_hash": "c23a70bf27c42c32" - }, - "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs|Bloxstrap.Models.APIs.GitHub.GithubRelease": { - "file_path": "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs", - "qualified_name": "Bloxstrap.Models.APIs.GitHub.GithubRelease", - "start_line": 3, - "end_line": 20, - "type": "CLASS", - "content_hash": "1ec5ff49ef549ec6" - }, - "Bloxstrap/Models/APIs/IPInfoResponse.cs|Bloxstrap.Models.APIs.IPInfoResponse": { - "file_path": "Bloxstrap/Models/APIs/IPInfoResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.IPInfoResponse", - "start_line": 3, - "end_line": 14, - "type": "CLASS", - "content_hash": "9a6bfe61a33d0834" - }, - "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs|Bloxstrap.Models.APIs.Roblox.ApiArrayResponse.ApiArrayResponse": { - "file_path": "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.ApiArrayResponse.ApiArrayResponse", - "start_line": 6, - "end_line": 11, - "type": "CLASS", - "content_hash": "716cc1706ac885a6" - }, - "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs|Bloxstrap.Models.APIs.Roblox.ClientFlagSettings": { - "file_path": "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.ClientFlagSettings", - "start_line": 3, - "end_line": 8, - "type": "CLASS", - "content_hash": "bb04020a7e6e5c11" - }, - "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs|Bloxstrap.Models.APIs.Roblox.ClientVersion": { - "file_path": "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.ClientVersion", - "start_line": 3, - "end_line": 16, - "type": "CLASS", - "content_hash": "a1d6f4299780eb31" - }, - "Bloxstrap/Models/APIs/Roblox/GameCreator.cs|Bloxstrap.Models.APIs.Roblox.GameCreator": { - "file_path": "Bloxstrap/Models/APIs/Roblox/GameCreator.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.GameCreator", - "start_line": 7, - "end_line": 39, - "type": "CLASS", - "content_hash": "59c31e1cab7b1856" - }, - "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs|Bloxstrap.Models.APIs.Roblox.GameDetailResponse": { - "file_path": "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.GameDetailResponse", - "start_line": 8, - "end_line": 151, - "type": "CLASS", - "content_hash": "ee2b1c0f89694f3b" - }, - "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs|Bloxstrap.Models.APIs.Roblox.GetUserResponse": { - "file_path": "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.GetUserResponse", - "start_line": 6, - "end_line": 56, - "type": "CLASS", - "content_hash": "c13564f3dc0735ef" - }, - "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs|Bloxstrap.Models.APIs.Roblox.ThumbnailBatchResponse": { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.ThumbnailBatchResponse", - "start_line": 3, - "end_line": 8, - "type": "CLASS", - "content_hash": "83528524e6488d67" - }, - "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs|Bloxstrap.Models.APIs.Roblox.ThumbnailResponse": { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.ThumbnailResponse", - "start_line": 6, - "end_line": 35, - "type": "CLASS", - "content_hash": "f398cb28bb23a30d" - }, - "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs|Bloxstrap.Models.APIs.Roblox.UniverseIdResponse": { - "file_path": "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.UniverseIdResponse", - "start_line": 4, - "end_line": 9, - "type": "CLASS", - "content_hash": "699849049b4142da" - }, - "Bloxstrap/Models/Attributes/EnumNameAttribute.cs|Bloxstrap.Models.Attributes.EnumNameAttribute": { - "file_path": "Bloxstrap/Models/Attributes/EnumNameAttribute.cs", - "qualified_name": "Bloxstrap.Models.Attributes.EnumNameAttribute", - "start_line": 9, - "end_line": 14, - "type": "CLASS", - "content_hash": "dd5ec4e1680bd34a" - }, - "Bloxstrap/Models/Attributes/EnumSortAttribute.cs|Bloxstrap.Models.Attributes.EnumSortAttribute": { - "file_path": "Bloxstrap/Models/Attributes/EnumSortAttribute.cs", - "qualified_name": "Bloxstrap.Models.Attributes.EnumSortAttribute", - "start_line": 9, - "end_line": 13, - "type": "CLASS", - "content_hash": "f9e0c384b0bae216" - }, - "Bloxstrap/Models/BloxstrapRPC/Message.cs|Bloxstrap.Models.BloxstrapRPC.Message": { - "file_path": "Bloxstrap/Models/BloxstrapRPC/Message.cs", - "qualified_name": "Bloxstrap.Models.BloxstrapRPC.Message", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "" - }, - "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs|Bloxstrap.Models.BloxstrapRPC.RichPresence": { - "file_path": "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs", - "qualified_name": "Bloxstrap.Models.BloxstrapRPC.RichPresence", - "start_line": 3, - "end_line": 23, - "type": "CLASS", - "content_hash": "2848673e0cc03fcf" - }, - "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs|Bloxstrap.Models.BloxstrapRPC.RichPresenceImage": { - "file_path": "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs", - "qualified_name": "Bloxstrap.Models.BloxstrapRPC.RichPresenceImage", - "start_line": 3, - "end_line": 17, - "type": "CLASS", - "content_hash": "cf33900876bf2f13" - }, - "Bloxstrap/Models/DeployInfo.cs|Bloxstrap.Models.DeployInfo": { - "file_path": "Bloxstrap/Models/DeployInfo.cs", - "qualified_name": "Bloxstrap.Models.DeployInfo", - "start_line": 3, - "end_line": 9, - "type": "CLASS", - "content_hash": "6c0f9ca68e6d19b1" - }, - "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData": { - "file_path": "Bloxstrap/Models/Entities/ModPresetFileData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ModPresetFileData", - "start_line": 6, - "end_line": 40, - "type": "CLASS", - "content_hash": "a5e8ee76e358dbc5" - }, - "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData.ModPresetFileData(string contentPath, string resource)": { - "file_path": "Bloxstrap/Models/Entities/ModPresetFileData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ModPresetFileData.ModPresetFileData(string contentPath, string resource)", - "start_line": 20, - "end_line": 28, - "type": "CONSTRUCTOR", - "content_hash": "6c65719e40308d9c" - }, - "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData.HashMatches()": { - "file_path": "Bloxstrap/Models/Entities/ModPresetFileData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ModPresetFileData.HashMatches()", - "start_line": 29, - "end_line": 39, - "type": "METHOD", - "content_hash": "c0c94df2b99d8d62" - }, - "Bloxstrap/Models/FastFlag.cs|Bloxstrap.Models.FastFlag": { - "file_path": "Bloxstrap/Models/FastFlag.cs", - "qualified_name": "Bloxstrap.Models.FastFlag", - "start_line": 3, - "end_line": 9, - "type": "CLASS", - "content_hash": "fa0cfb21f9922eaa" - }, - "Bloxstrap/Models/FontFace.cs|Bloxstrap.Models.FontFace": { - "file_path": "Bloxstrap/Models/FontFace.cs", - "qualified_name": "Bloxstrap.Models.FontFace", - "start_line": 3, - "end_line": 17, - "type": "CLASS", - "content_hash": "19a4ed98a42d086d" - }, - "Bloxstrap/Models/FontFamily.cs|Bloxstrap.Models.FontFamily": { - "file_path": "Bloxstrap/Models/FontFamily.cs", - "qualified_name": "Bloxstrap.Models.FontFamily", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "349500019b7b4443" - }, - "Bloxstrap/Models/LaunchFlag.cs|Bloxstrap.Models.LaunchFlag": { - "file_path": "Bloxstrap/Models/LaunchFlag.cs", - "qualified_name": "Bloxstrap.Models.LaunchFlag", - "start_line": 9, - "end_line": 22, - "type": "CLASS", - "content_hash": "f1914d940519c413" - }, - "Bloxstrap/Models/LaunchFlag.cs|Bloxstrap.Models.LaunchFlag.LaunchFlag(string identifiers)": { - "file_path": "Bloxstrap/Models/LaunchFlag.cs", - "qualified_name": "Bloxstrap.Models.LaunchFlag.LaunchFlag(string identifiers)", - "start_line": 17, - "end_line": 21, - "type": "CONSTRUCTOR", - "content_hash": "9144be694d375a38" - }, - "Bloxstrap/Models/Manifest/FileManifest.cs|Bloxstrap.Models.Manifest.FileManifest": { - "file_path": "Bloxstrap/Models/Manifest/FileManifest.cs", - "qualified_name": "Bloxstrap.Models.Manifest.FileManifest", - "start_line": 5, - "end_line": 35, - "type": "CLASS", - "content_hash": "464889c685e58d19" - }, - "Bloxstrap/Models/Manifest/FileManifest.cs|Bloxstrap.Models.Manifest.FileManifest.FileManifest(string data)": { - "file_path": "Bloxstrap/Models/Manifest/FileManifest.cs", - "qualified_name": "Bloxstrap.Models.Manifest.FileManifest.FileManifest(string data)", - "start_line": 7, - "end_line": 26, - "type": "CONSTRUCTOR", - "content_hash": "b108b1ff448c03f4" - }, - "Bloxstrap/Models/Manifest/FileManifest.cs|Bloxstrap.Models.Manifest.FileManifest.Get(string versionGuid)": { - "file_path": "Bloxstrap/Models/Manifest/FileManifest.cs", - "qualified_name": "Bloxstrap.Models.Manifest.FileManifest.Get(string versionGuid)", - "start_line": 27, - "end_line": 34, - "type": "METHOD", - "content_hash": "33725014947b1928" - }, - "Bloxstrap/Models/Manifest/ManifestFile.cs|Bloxstrap.Models.Manifest.ManifestFile": { - "file_path": "Bloxstrap/Models/Manifest/ManifestFile.cs", - "qualified_name": "Bloxstrap.Models.Manifest.ManifestFile", - "start_line": 3, - "end_line": 13, - "type": "CLASS", - "content_hash": "1aaece0b88bdab83" - }, - "Bloxstrap/Models/Manifest/ManifestFile.cs|Bloxstrap.Models.Manifest.ManifestFile.ToString()": { - "file_path": "Bloxstrap/Models/Manifest/ManifestFile.cs", - "qualified_name": "Bloxstrap.Models.Manifest.ManifestFile.ToString()", - "start_line": 8, - "end_line": 12, - "type": "METHOD", - "content_hash": "ff450d774cccb799" - }, - "Bloxstrap/Models/Manifest/Package.cs|Bloxstrap.Models.Manifest.Package": { - "file_path": "Bloxstrap/Models/Manifest/Package.cs", - "qualified_name": "Bloxstrap.Models.Manifest.Package", - "start_line": 9, - "end_line": 26, - "type": "CLASS", - "content_hash": "34658d81413ceb2d" - }, - "Bloxstrap/Models/Manifest/Package.cs|Bloxstrap.Models.Manifest.Package.ToString()": { - "file_path": "Bloxstrap/Models/Manifest/Package.cs", - "qualified_name": "Bloxstrap.Models.Manifest.Package.ToString()", - "start_line": 21, - "end_line": 25, - "type": "METHOD", - "content_hash": "ff450d774cccb799" - }, - "Bloxstrap/Models/Manifest/PackageManifest.cs|Bloxstrap.Models.Manifest.PackageManifest": { - "file_path": "Bloxstrap/Models/Manifest/PackageManifest.cs", - "qualified_name": "Bloxstrap.Models.Manifest.PackageManifest", - "start_line": 9, - "end_line": 50, - "type": "CLASS", - "content_hash": "495b3090b9f3dbb2" - }, - "Bloxstrap/Models/Manifest/PackageManifest.cs|Bloxstrap.Models.Manifest.PackageManifest.PackageManifest(string data)": { - "file_path": "Bloxstrap/Models/Manifest/PackageManifest.cs", - "qualified_name": "Bloxstrap.Models.Manifest.PackageManifest.PackageManifest(string data)", - "start_line": 11, - "end_line": 49, - "type": "CONSTRUCTOR", - "content_hash": "51c89a1c1a7aa9d1" - }, - "Bloxstrap/Models/Persistable/AppState.cs|Bloxstrap.Models.Persistable.AppState": { - "file_path": "Bloxstrap/Models/Persistable/AppState.cs", - "qualified_name": "Bloxstrap.Models.Persistable.AppState", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "fc3841caea8d528e" - }, - "Bloxstrap/Models/Persistable/DistributionState.cs|Bloxstrap.Models.Persistable.DistributionState": { - "file_path": "Bloxstrap/Models/Persistable/DistributionState.cs", - "qualified_name": "Bloxstrap.Models.Persistable.DistributionState", - "start_line": 3, - "end_line": 13, - "type": "CLASS", - "content_hash": "4e79828bad3090fc" - }, - "Bloxstrap/Models/Persistable/RobloxState.cs|Bloxstrap.Models.Persistable.RobloxState": { - "file_path": "Bloxstrap/Models/Persistable/RobloxState.cs", - "qualified_name": "Bloxstrap.Models.Persistable.RobloxState", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "d5533979b241cde9" - }, - "Bloxstrap/Models/Persistable/Settings.cs|Bloxstrap.Models.Persistable.Settings": { - "file_path": "Bloxstrap/Models/Persistable/Settings.cs", - "qualified_name": "Bloxstrap.Models.Persistable.Settings", - "start_line": 5, - "end_line": 37, - "type": "CLASS", - "content_hash": "4a096d90c961f554" - }, - "Bloxstrap/Models/Persistable/State.cs|Bloxstrap.Models.Persistable.State": { - "file_path": "Bloxstrap/Models/Persistable/State.cs", - "qualified_name": "Bloxstrap.Models.Persistable.State", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "5e03bebd2878c132" - }, - "Bloxstrap/Models/Persistable/WindowState.cs|Bloxstrap.Models.Persistable.WindowState": { - "file_path": "Bloxstrap/Models/Persistable/WindowState.cs", - "qualified_name": "Bloxstrap.Models.Persistable.WindowState", - "start_line": 3, - "end_line": 13, - "type": "CLASS", - "content_hash": "0f600f1737222edb" - }, - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BaseTask", - "start_line": 9, - "end_line": 23, - "type": "CLASS", - "content_hash": "bd113ad867174558" - }, - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string prefix, string name)": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string prefix, string name)", - "start_line": 15, - "end_line": 16, - "type": "CONSTRUCTOR", - "content_hash": "90fd5c79022d4ba9" - }, - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string name)": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string name)", - "start_line": 17, - "end_line": 18, - "type": "CONSTRUCTOR", - "content_hash": "2014c6439138efa7" - }, - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.ToString()": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BaseTask.ToString()", - "start_line": 19, - "end_line": 20, - "type": "METHOD", - "content_hash": "6b497be195b67934" - }, - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BaseTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BaseTask.Execute()", - "start_line": 21, - "end_line": 22, - "type": "METHOD", - "content_hash": "78bd6e3e41e17405" - }, - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BoolBaseTask": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask", - "start_line": 9, - "end_line": 47, - "type": "CLASS", - "content_hash": "8b0363bda266524d" - }, - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string prefix, string name)": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string prefix, string name)", - "start_line": 43, - "end_line": 44, - "type": "CONSTRUCTOR", - "content_hash": "4b322cbc5f9ca114" - }, - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string name)": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string name)", - "start_line": 45, - "end_line": 46, - "type": "CONSTRUCTOR", - "content_hash": "37859803800c02de" - }, - "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask", - "start_line": 3, - "end_line": 53, - "type": "CLASS", - "content_hash": "4eed723c6abef3b9" - }, - "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask.EnumBaseTask(string prefix, string name)": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask.EnumBaseTask(string prefix, string name)", - "start_line": 51, - "end_line": 52, - "type": "CONSTRUCTOR", - "content_hash": "ef0dbb0ec696f0fc" - }, - "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.StringBaseTask": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.StringBaseTask", - "start_line": 9, - "end_line": 45, - "type": "CLASS", - "content_hash": "554f84d467757b78" - }, - "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs|Bloxstrap.Models.SettingTasks.Base.StringBaseTask.StringBaseTask(string prefix, string name)": { - "file_path": "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.Base.StringBaseTask.StringBaseTask(string prefix, string name)", - "start_line": 43, - "end_line": 44, - "type": "CONSTRUCTOR", - "content_hash": "9274d8a6b7ec97ce" - }, - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask": { - "file_path": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EmojiModPresetTask", - "start_line": 7, - "end_line": 72, - "type": "CLASS", - "content_hash": "27455aa438d14e89" - }, - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.QueryCurrentValue()": { - "file_path": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.QueryCurrentValue()", - "start_line": 11, - "end_line": 21, - "type": "METHOD", - "content_hash": "744366744da06f24" - }, - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.EmojiModPresetTask()": { - "file_path": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.EmojiModPresetTask()", - "start_line": 22, - "end_line": 29, - "type": "CONSTRUCTOR", - "content_hash": "81063622237a8192" - }, - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()", - "start_line": 30, - "end_line": 71, - "type": "METHOD", - "content_hash": "9bc2a7e505c8d66c" - }, - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs|Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask": { - "file_path": "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask", - "start_line": 6, - "end_line": 69, - "type": "CLASS", - "content_hash": "31b71ecac5ab80b5" - }, - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs|Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.EnumModPresetTask(string name, Dictionary> map)": { - "file_path": "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.EnumModPresetTask(string name, Dictionary> map)", - "start_line": 12, - "end_line": 33, - "type": "CONSTRUCTOR", - "content_hash": "b1a18d7e831dfeb1" - }, - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs|Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.Execute()", - "start_line": 34, - "end_line": 68, - "type": "METHOD", - "content_hash": "ba643c841e4e9699" - }, - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs|Bloxstrap.Models.SettingTasks.ExtractIconsTask": { - "file_path": "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ExtractIconsTask", - "start_line": 5, - "end_line": 43, - "type": "CLASS", - "content_hash": "4d6642f82368855a" - }, - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs|Bloxstrap.Models.SettingTasks.ExtractIconsTask.ExtractIconsTask()": { - "file_path": "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ExtractIconsTask.ExtractIconsTask()", - "start_line": 9, - "end_line": 13, - "type": "CONSTRUCTOR", - "content_hash": "e9d32a3926e1c0f3" - }, - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs|Bloxstrap.Models.SettingTasks.ExtractIconsTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ExtractIconsTask.Execute()", - "start_line": 14, - "end_line": 42, - "type": "METHOD", - "content_hash": "1e70d68611fe1b02" - }, - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask": { - "file_path": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.FontModPresetTask", - "start_line": 5, - "end_line": 43, - "type": "CLASS", - "content_hash": "fed8e7f8cc674880" - }, - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask.GetFileHash()": { - "file_path": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.FontModPresetTask.GetFileHash()", - "start_line": 7, - "end_line": 15, - "type": "METHOD", - "content_hash": "defefc8c32fc1cfa" - }, - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask.FontModPresetTask()": { - "file_path": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.FontModPresetTask.FontModPresetTask()", - "start_line": 16, - "end_line": 21, - "type": "CONSTRUCTOR", - "content_hash": "29662bf3138bca7a" - }, - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs|Bloxstrap.Models.SettingTasks.FontModPresetTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.FontModPresetTask.Execute()", - "start_line": 22, - "end_line": 42, - "type": "METHOD", - "content_hash": "dbd0bddb2753e626" - }, - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask": { - "file_path": "Bloxstrap/Models/SettingTasks/ModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ModPresetTask", - "start_line": 6, - "end_line": 60, - "type": "CLASS", - "content_hash": "3a0360d3e79fd5b8" - }, - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, string path, string resource)": { - "file_path": "Bloxstrap/Models/SettingTasks/ModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, string path, string resource)", - "start_line": 12, - "end_line": 13, - "type": "CONSTRUCTOR", - "content_hash": "6c1b1e399869c9d7" - }, - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, Dictionary pathMap)": { - "file_path": "Bloxstrap/Models/SettingTasks/ModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, Dictionary pathMap)", - "start_line": 14, - "end_line": 28, - "type": "CONSTRUCTOR", - "content_hash": "decddee06ff83799" - }, - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs|Bloxstrap.Models.SettingTasks.ModPresetTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/ModPresetTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ModPresetTask.Execute()", - "start_line": 29, - "end_line": 59, - "type": "METHOD", - "content_hash": "84f010337c6c00e3" - }, - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask": { - "file_path": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ShortcutTask", - "start_line": 3, - "end_line": 27, - "type": "CLASS", - "content_hash": "5506e2beffb3b705" - }, - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask.ShortcutTask(string name, string lnkFolder, string lnkName, string exeFlags = \"\")": { - "file_path": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ShortcutTask.ShortcutTask(string name, string lnkFolder, string lnkName, string exeFlags = \"\")", - "start_line": 9, - "end_line": 16, - "type": "CONSTRUCTOR", - "content_hash": "873374abaf7767bc" - }, - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()": { - "file_path": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs", - "qualified_name": "Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()", - "start_line": 17, - "end_line": 26, - "type": "METHOD", - "content_hash": "6a3f1724c08e57e0" - }, - "Bloxstrap/Paths.cs|Bloxstrap.Paths": { - "file_path": "Bloxstrap/Paths.cs", - "qualified_name": "Bloxstrap.Paths", - "start_line": 3, - "end_line": 46, - "type": "CLASS", - "content_hash": "18d31495ba79e191" - }, - "Bloxstrap/Paths.cs|Bloxstrap.Paths.Initialize(string baseDirectory)": { - "file_path": "Bloxstrap/Paths.cs", - "qualified_name": "Bloxstrap.Paths.Initialize(string baseDirectory)", - "start_line": 33, - "end_line": 45, - "type": "METHOD", - "content_hash": "8806f3888fa33fab" - }, - "Bloxstrap/Properties/Settings.Designer.cs|Bloxstrap.Properties.Settings.Designer.Settings": { - "file_path": "Bloxstrap/Properties/Settings.Designer.cs", - "qualified_name": "Bloxstrap.Properties.Settings.Designer.Settings", - "start_line": 16, - "end_line": 26, - "type": "CLASS", - "content_hash": "b9527ba9de5f079b" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings": { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.ApplicationSettings", - "start_line": 8, - "end_line": 135, - "type": "CLASS", - "content_hash": "c1064fe658fe6522" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.ApplicationSettings(string applicationName, string channelName)": { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.ApplicationSettings.ApplicationSettings(string applicationName, string channelName)", - "start_line": 18, - "end_line": 23, - "type": "CONSTRUCTOR", - "content_hash": "6a2a34e82c2979dc" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.Fetch()": { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.ApplicationSettings.Fetch()", - "start_line": 24, - "end_line": 76, - "type": "METHOD", - "content_hash": "229fb5bccc871dd5" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.GetAsync(string name)": { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.ApplicationSettings.GetAsync(string name)", - "start_line": 77, - "end_line": 99, - "type": "METHOD", - "content_hash": "4c31645947c73821" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.Get(string name)": { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.ApplicationSettings.Get(string name)", - "start_line": 100, - "end_line": 104, - "type": "METHOD", - "content_hash": "a330f978eff1bd1a" - }, - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs|Bloxstrap.RobloxInterfaces.ApplicationSettings.GetSettings(string applicationName, string channelName = null, bool shouldCache = true)": { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.ApplicationSettings.GetSettings(string applicationName, string channelName = null, bool shouldCache = true)", - "start_line": 112, - "end_line": 134, - "type": "METHOD", - "content_hash": "63022adc3fd0e4b1" - }, - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment": { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.Deployment", - "start_line": 3, - "end_line": 184, - "type": "CLASS", - "content_hash": "c595ea9add231100" - }, - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)": { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)", - "start_line": 37, - "end_line": 71, - "type": "METHOD", - "content_hash": "180c7fb9a0e0918b" - }, - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()": { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()", - "start_line": 77, - "end_line": 116, - "type": "METHOD", - "content_hash": "710a39d402a4a334" - }, - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetLocation(string resource)": { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.Deployment.GetLocation(string resource)", - "start_line": 117, - "end_line": 125, - "type": "METHOD", - "content_hash": "13a8f8c648d49e9c" - }, - "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)": { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "qualified_name": "Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)", - "start_line": 126, - "end_line": 183, - "type": "METHOD", - "content_hash": "5b43f48ba96893fa" - }, - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog", - "start_line": 10, - "end_line": 38, - "type": "CLASS", - "content_hash": "ac186f9eb13ff94b" - }, - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.AddFastFlagDialog()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.AddFastFlagDialog()", - "start_line": 14, - "end_line": 18, - "type": "CONSTRUCTOR", - "content_hash": "cadda1cf533fea16" - }, - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.ImportButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.ImportButton_Click(object sender, RoutedEventArgs e)", - "start_line": 19, - "end_line": 31, - "type": "METHOD", - "content_hash": "2e3b1b942bdbb699" - }, - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.OKButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.OKButton_Click(object sender, RoutedEventArgs e)", - "start_line": 32, - "end_line": 37, - "type": "METHOD", - "content_hash": "0245b91f8c0e1205" - }, - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog", - "start_line": 17, - "end_line": 86, - "type": "CLASS", - "content_hash": "a86e1941cea695fd" - }, - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.ConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.ConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "start_line": 19, - "end_line": 72, - "type": "CONSTRUCTOR", - "content_hash": "664d6996d67f62e6" - }, - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.AddException(Exception exception, bool inner = false)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.AddException(Exception exception, bool inner = false)", - "start_line": 73, - "end_line": 85, - "type": "METHOD", - "content_hash": "eed98dde185788d0" - }, - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog", - "start_line": 17, - "end_line": 91, - "type": "CLASS", - "content_hash": "6c48bac90fbf6255" - }, - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.ExceptionDialog(Exception exception)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.ExceptionDialog(Exception exception)", - "start_line": 21, - "end_line": 77, - "type": "CONSTRUCTOR", - "content_hash": "59037d2ea3fe2118" - }, - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.AddException(Exception exception, bool inner = false)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.AddException(Exception exception, bool inner = false)", - "start_line": 78, - "end_line": 90, - "type": "METHOD", - "content_hash": "990490d128833f79" - }, - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox", - "start_line": 19, - "end_line": 152, - "type": "CLASS", - "content_hash": "fdb98c2a703d215d" - }, - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.FluentMessageBox(string message, MessageBoxImage image, MessageBoxButton buttons)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.FluentMessageBox(string message, MessageBoxImage image, MessageBoxButton buttons)", - "start_line": 23, - "end_line": 121, - "type": "CONSTRUCTOR", - "content_hash": "8f22b0efc04ccf43" - }, - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.GetTextForResult(MessageBoxResult result)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.GetTextForResult(MessageBoxResult result)", - "start_line": 123, - "end_line": 140, - "type": "METHOD", - "content_hash": "bd5cda49fe150d58" - }, - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs|Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.SetButton(Button button, MessageBoxResult result)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.SetButton(Button button, MessageBoxResult result)", - "start_line": 141, - "end_line": 151, - "type": "METHOD", - "content_hash": "761a306b0b580a6d" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow", - "start_line": 15, - "end_line": 109, - "type": "CLASS", - "content_hash": "3cf81ffa49a530a1" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.MainWindow(bool showAlreadyRunningWarning)": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.MainWindow(bool showAlreadyRunningWarning)", - "start_line": 19, - "end_line": 37, - "type": "CONSTRUCTOR", - "content_hash": "464e77941b2b58e8" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.LoadState()": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.LoadState()", - "start_line": 38, - "end_line": 59, - "type": "METHOD", - "content_hash": "cefd81b16de46d17" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowAlreadyRunningSnackbar()": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowAlreadyRunningSnackbar()", - "start_line": 60, - "end_line": 65, - "type": "METHOD", - "content_hash": "1cb02a7ffb0558be" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetFrame()": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetFrame()", - "start_line": 68, - "end_line": 69, - "type": "METHOD", - "content_hash": "5d5a1fa66eefda78" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetNavigation()": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetNavigation()", - "start_line": 70, - "end_line": 71, - "type": "METHOD", - "content_hash": "19d27f38aed6a3d1" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.Navigate(Type pageType)": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "start_line": 72, - "end_line": 73, - "type": "METHOD", - "content_hash": "68e4f88e7e84017c" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "start_line": 74, - "end_line": 75, - "type": "METHOD", - "content_hash": "b3bc088e818db1bc" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowWindow()": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowWindow()", - "start_line": 76, - "end_line": 77, - "type": "METHOD", - "content_hash": "d864f225398b7a2c" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.CloseWindow()": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.CloseWindow()", - "start_line": 78, - "end_line": 79, - "type": "METHOD", - "content_hash": "d3a3efbb4aea7cf0" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closing(object sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closing(object sender, CancelEventArgs e)", - "start_line": 82, - "end_line": 100, - "type": "METHOD", - "content_hash": "a0b3d48bd44bb4d2" - }, - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)", - "start_line": 101, - "end_line": 108, - "type": "METHOD", - "content_hash": "3ff5270395de87e4" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage", - "start_line": 17, - "end_line": 407, - "type": "CLASS", - "content_hash": "64899ed18fe17707" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.FastFlagEditorPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.FastFlagEditorPage()", - "start_line": 37, - "end_line": 41, - "type": "CONSTRUCTOR", - "content_hash": "f939df1f77eb13ea" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ReloadList()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ReloadList()", - "start_line": 42, - "end_line": 88, - "type": "METHOD", - "content_hash": "552af0d7fb5819c4" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ClearSearch(bool refresh = true)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ClearSearch(bool refresh = true)", - "start_line": 89, - "end_line": 97, - "type": "METHOD", - "content_hash": "dc471c7ccda5fa36" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ShowAddDialog()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ShowAddDialog()", - "start_line": 98, - "end_line": 111, - "type": "METHOD", - "content_hash": "facf95b188f8564d" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddSingle(string name, string value)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddSingle(string name, string value)", - "start_line": 112, - "end_line": 166, - "type": "METHOD", - "content_hash": "42f16c10d774a640" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ImportJSON(string json)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ImportJSON(string json)", - "start_line": 167, - "end_line": 266, - "type": "METHOD", - "content_hash": "a6fd4cd1ab78229f" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFlagEntry(string name, string value)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFlagEntry(string name, string value)", - "start_line": 267, - "end_line": 292, - "type": "METHOD", - "content_hash": "8157e3bd70a5d128" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFilter(string name, string value)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFilter(string name, string value)", - "start_line": 293, - "end_line": 304, - "type": "METHOD", - "content_hash": "83432b430a4a2a84" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.Page_Loaded(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.Page_Loaded(object sender, RoutedEventArgs e)", - "start_line": 306, - "end_line": 307, - "type": "METHOD", - "content_hash": "40619285fc2efee9" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)", - "start_line": 308, - "end_line": 359, - "type": "METHOD", - "content_hash": "e34b1e9f37348d6c" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.BackButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.BackButton_Click(object sender, RoutedEventArgs e)", - "start_line": 360, - "end_line": 365, - "type": "METHOD", - "content_hash": "abb64f2c4840dfbc" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddButton_Click(object sender, RoutedEventArgs e)", - "start_line": 366, - "end_line": 367, - "type": "METHOD", - "content_hash": "8b4ce609c3a448ff" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DeleteButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DeleteButton_Click(object sender, RoutedEventArgs e)", - "start_line": 368, - "end_line": 381, - "type": "METHOD", - "content_hash": "18479fead4f1fdeb" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ToggleButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ToggleButton_Click(object sender, RoutedEventArgs e)", - "start_line": 382, - "end_line": 390, - "type": "METHOD", - "content_hash": "aad0d48de2002d0b" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ExportJSONButton_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ExportJSONButton_Click(object sender, RoutedEventArgs e)", - "start_line": 391, - "end_line": 397, - "type": "METHOD", - "content_hash": "49f07056c765ba60" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)", - "start_line": 398, - "end_line": 406, - "type": "METHOD", - "content_hash": "74460d1f7b02b105" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage", - "start_line": 12, - "end_line": 57, - "type": "CLASS", - "content_hash": "829e081ccf6e29b2" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.FastFlagsPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.FastFlagsPage()", - "start_line": 18, - "end_line": 23, - "type": "CONSTRUCTOR", - "content_hash": "645b70e4ab6fbab6" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.SetupViewModel()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.SetupViewModel()", - "start_line": 24, - "end_line": 33, - "type": "METHOD", - "content_hash": "7273f6285d450573" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.OpenFlagEditor(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.OpenFlagEditor(object? sender, EventArgs e)", - "start_line": 34, - "end_line": 39, - "type": "METHOD", - "content_hash": "dda391be58e2d1b3" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.Page_Loaded(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.Page_Loaded(object sender, RoutedEventArgs e)", - "start_line": 40, - "end_line": 52, - "type": "METHOD", - "content_hash": "65171fc68e673f40" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateInt32(object sender, TextCompositionEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateInt32(object sender, TextCompositionEventArgs e)", - "start_line": 53, - "end_line": 54, - "type": "METHOD", - "content_hash": "4c21f2f5b7d9e5db" - }, - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateUInt32(object sender, TextCompositionEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateUInt32(object sender, TextCompositionEventArgs e)", - "start_line": 55, - "end_line": 56, - "type": "METHOD", - "content_hash": "ccb9d4f392c32e24" - }, - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage", - "start_line": 8, - "end_line": 16, - "type": "CLASS", - "content_hash": "3e705e588d672bff" - }, - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage.ModsPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage.ModsPage()", - "start_line": 10, - "end_line": 15, - "type": "CONSTRUCTOR", - "content_hash": "49713caa3444dfd0" - }, - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage", - "start_line": 23, - "end_line": 31, - "type": "CLASS", - "content_hash": "b8d6b51bca4fc9d4" - }, - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage.ShortcutsPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage.ShortcutsPage()", - "start_line": 25, - "end_line": 30, - "type": "CONSTRUCTOR", - "content_hash": "2b736ae6e4714f6b" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend", - "start_line": 8, - "end_line": 120, - "type": "CLASS", - "content_hash": "e63677d5365261d3" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "start_line": 10, - "end_line": 19, - "type": "METHOD", - "content_hash": "f1a285730f27ec76" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "start_line": 20, - "end_line": 32, - "type": "METHOD", - "content_hash": "be0109e7daf93631" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)", - "start_line": 33, - "end_line": 43, - "type": "METHOD", - "content_hash": "f409afa67385e5fe" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "start_line": 44, - "end_line": 54, - "type": "METHOD", - "content_hash": "802010ea4c3e6242" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "start_line": 55, - "end_line": 80, - "type": "METHOD", - "content_hash": "ee65d2d60252f85c" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "start_line": 81, - "end_line": 97, - "type": "METHOD", - "content_hash": "de0143b6e5da8181" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)", - "start_line": 98, - "end_line": 107, - "type": "METHOD", - "content_hash": "0661d7c3d823c59e" - }, - "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowBalloonTip(string title, string message, ToolTipIcon icon = null, int timeout = 5)": { - "file_path": "Bloxstrap/UI/Frontend.cs", - "qualified_name": "Bloxstrap.UI.Frontend.ShowBalloonTip(string title, string message, ToolTipIcon icon = null, int timeout = 5)", - "start_line": 108, - "end_line": 119, - "type": "METHOD", - "content_hash": "0b5afcdeb5a5ffe0" - }, - "Bloxstrap/UI/Utility/Rendering.cs|Bloxstrap.UI.Utility.Rendering": { - "file_path": "Bloxstrap/UI/Utility/Rendering.cs", - "qualified_name": "Bloxstrap.UI.Utility.Rendering", - "start_line": 8, - "end_line": 24, - "type": "CLASS", - "content_hash": "7d5f95e00ccd712c" - }, - "Bloxstrap/UI/Utility/Rendering.cs|Bloxstrap.UI.Utility.Rendering.GetTextWidth(TextBlock textBlock)": { - "file_path": "Bloxstrap/UI/Utility/Rendering.cs", - "qualified_name": "Bloxstrap.UI.Utility.Rendering.GetTextWidth(TextBlock textBlock)", - "start_line": 10, - "end_line": 23, - "type": "METHOD", - "content_hash": "58a3d8c510e1a05a" - }, - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel", - "start_line": 13, - "end_line": 84, - "type": "CLASS", - "content_hash": "44c3cfa682da36bd" - }, - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()": { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "start_line": 31, - "end_line": 56, - "type": "METHOD", - "content_hash": "9b44e14f0ed3226c" - }, - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Save()": { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Save()", - "start_line": 57, - "end_line": 78, - "type": "METHOD", - "content_hash": "fc33f46f9427ea8c" - }, - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.OpenThemeFolder()": { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.OpenThemeFolder()", - "start_line": 79, - "end_line": 83, - "type": "METHOD", - "content_hash": "0102df9233b66c63" - }, - "Bloxstrap/UI/ViewModels/GlobalViewModel.cs|Bloxstrap.UI.ViewModels.GlobalViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/GlobalViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.GlobalViewModel", - "start_line": 6, - "end_line": 18, - "type": "CLASS", - "content_hash": "26dfd5a599154ff8" - }, - "Bloxstrap/UI/ViewModels/GlobalViewModel.cs|Bloxstrap.UI.ViewModels.GlobalViewModel.OpenWebpage(string? location)": { - "file_path": "Bloxstrap/UI/ViewModels/GlobalViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.GlobalViewModel.OpenWebpage(string? location)", - "start_line": 10, - "end_line": 17, - "type": "METHOD", - "content_hash": "bbac6293c52693f7" - }, - "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel", - "start_line": 10, - "end_line": 83, - "type": "CLASS", - "content_hash": "f2ec58c6b2d7c33c" - }, - "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel.OpenFastFlagEditor()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel.OpenFastFlagEditor()", - "start_line": 18, - "end_line": 19, - "type": "METHOD", - "content_hash": "8cb02aa1a85c3caa" - }, - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel", - "start_line": 8, - "end_line": 65, - "type": "CLASS", - "content_hash": "93ccfe2179a7e04e" - }, - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.OpenAbout()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.OpenAbout()", - "start_line": 37, - "end_line": 38, - "type": "METHOD", - "content_hash": "47096b592be0c62f" - }, - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.CloseWindow()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.CloseWindow()", - "start_line": 39, - "end_line": 40, - "type": "METHOD", - "content_hash": "41500a89ad419eff" - }, - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()", - "start_line": 41, - "end_line": 64, - "type": "METHOD", - "content_hash": "16348b964968629e" - }, - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.ModsViewModel", - "start_line": 17, - "end_line": 116, - "type": "CLASS", - "content_hash": "465c3f70b0ec332d" - }, - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenModsFolder()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenModsFolder()", - "start_line": 19, - "end_line": 20, - "type": "METHOD", - "content_hash": "ff1370631b04e27e" - }, - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()", - "start_line": 28, - "end_line": 59, - "type": "METHOD", - "content_hash": "a26e51bf8351a21e" - }, - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()", - "start_line": 105, - "end_line": 115, - "type": "METHOD", - "content_hash": "137a6eaae535721f" - }, - "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ShortcutsViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.ShortcutsViewModel", - "start_line": 3, - "end_line": 19, - "type": "CLASS", - "content_hash": "9d7642b68f8baac9" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities", - "start_line": 6, - "end_line": 157, - "type": "CLASS", - "content_hash": "5fea1b1ca0074158" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.ShellExecute(string website)", - "start_line": 8, - "end_line": 32, - "type": "METHOD", - "content_hash": "c4fdfba28870204e" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetVersionFromString(string version)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.GetVersionFromString(string version)", - "start_line": 33, - "end_line": 44, - "type": "METHOD", - "content_hash": "8ba3e8adde6d4c29" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "start_line": 56, - "end_line": 77, - "type": "METHOD", - "content_hash": "b95fc0b96a7a017c" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ParseVersionSafe(string versionStr)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.ParseVersionSafe(string versionStr)", - "start_line": 81, - "end_line": 93, - "type": "METHOD", - "content_hash": "72f77a5d63ff99d2" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersionStr(IAppData data)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.GetRobloxVersionStr(IAppData data)", - "start_line": 94, - "end_line": 108, - "type": "METHOD", - "content_hash": "8a00fc6bc6605578" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersionStr(bool studio)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.GetRobloxVersionStr(bool studio)", - "start_line": 109, - "end_line": 115, - "type": "METHOD", - "content_hash": "9e9c638ed5f8539e" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersion(IAppData data)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.GetRobloxVersion(IAppData data)", - "start_line": 116, - "end_line": 121, - "type": "METHOD", - "content_hash": "03b4a96a1b8ba69b" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetProcessesSafe()": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.GetProcessesSafe()", - "start_line": 122, - "end_line": 137, - "type": "METHOD", - "content_hash": "8cdc6c4317211b81" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.DoesMutexExist(string name)": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.DoesMutexExist(string name)", - "start_line": 138, - "end_line": 150, - "type": "METHOD", - "content_hash": "8162a20611f7c159" - }, - "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.KillBackgroundUpdater()": { - "file_path": "Bloxstrap/Utilities.cs", - "qualified_name": "Bloxstrap.Utilities.KillBackgroundUpdater()", - "start_line": 151, - "end_line": 156, - "type": "METHOD", - "content_hash": "7955d53069284e9e" - }, - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem": { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "qualified_name": "Bloxstrap.Utility.Filesystem", - "start_line": 10, - "end_line": 45, - "type": "CLASS", - "content_hash": "bfb83d27bff7b1e6" - }, - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.GetFreeDiskSpace(string path)": { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "qualified_name": "Bloxstrap.Utility.Filesystem.GetFreeDiskSpace(string path)", - "start_line": 12, - "end_line": 23, - "type": "METHOD", - "content_hash": "a8b1ce40efafad5d" - }, - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)": { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "qualified_name": "Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "start_line": 24, - "end_line": 34, - "type": "METHOD", - "content_hash": "501a040b4b27d0f9" - }, - "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)": { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "qualified_name": "Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)", - "start_line": 35, - "end_line": 44, - "type": "METHOD", - "content_hash": "d7a27a6b6fce386a" - }, - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash": { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "qualified_name": "Bloxstrap.Utility.MD5Hash", - "start_line": 5, - "end_line": 38, - "type": "CLASS", - "content_hash": "a2adbcb6de80ed69" - }, - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromBytes(byte[] data)": { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "qualified_name": "Bloxstrap.Utility.MD5Hash.FromBytes(byte[] data)", - "start_line": 7, - "end_line": 12, - "type": "METHOD", - "content_hash": "9b03a4acb3a1cd9b" - }, - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)": { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "qualified_name": "Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)", - "start_line": 13, - "end_line": 20, - "type": "METHOD", - "content_hash": "f9b384a7dbb6e173" - }, - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)": { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "qualified_name": "Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "start_line": 21, - "end_line": 27, - "type": "METHOD", - "content_hash": "8ce97ccea2474575" - }, - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromString(string str)": { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "qualified_name": "Bloxstrap.Utility.MD5Hash.FromString(string str)", - "start_line": 28, - "end_line": 32, - "type": "METHOD", - "content_hash": "d3d2f659f2b16509" - }, - "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.Stringify(byte[] hash)": { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "qualified_name": "Bloxstrap.Utility.MD5Hash.Stringify(byte[] hash)", - "start_line": 33, - "end_line": 37, - "type": "METHOD", - "content_hash": "be57eef047cff248" - }, - "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut": { - "file_path": "Bloxstrap/Utility/Shortcut.cs", - "qualified_name": "Bloxstrap.Utility.Shortcut", - "start_line": 6, - "end_line": 38, - "type": "CLASS", - "content_hash": "7fec5909d3d289db" - }, - "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)": { - "file_path": "Bloxstrap/Utility/Shortcut.cs", - "qualified_name": "Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "start_line": 10, - "end_line": 37, - "type": "METHOD", - "content_hash": "86b90298e29e271e" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry", - "start_line": 5, - "end_line": 123, - "type": "CLASS", - "content_hash": "f71cbe78d0bfa891" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterProtocol(string key, string name, string handler, string handlerParam = \"%1\")": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterProtocol(string key, string name, string handler, string handlerParam = \"%1\")", - "start_line": 11, - "end_line": 31, - "type": "METHOD", - "content_hash": "52aad007d754ec27" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterPlayer()": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterPlayer()", - "start_line": 35, - "end_line": 36, - "type": "METHOD", - "content_hash": "6c6d1dd2fb020f0a" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterPlayer(string handler, string handlerParam)": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterPlayer(string handler, string handlerParam)", - "start_line": 37, - "end_line": 42, - "type": "METHOD", - "content_hash": "bf06ffdb0bc8fdc7" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudio()": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterStudio()", - "start_line": 46, - "end_line": 52, - "type": "METHOD", - "content_hash": "35cba9d1878e7be9" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioProtocol(string handler, string handlerParam)": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterStudioProtocol(string handler, string handlerParam)", - "start_line": 58, - "end_line": 63, - "type": "METHOD", - "content_hash": "4b3ae90ffe8c608c" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileTypes()": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileTypes()", - "start_line": 67, - "end_line": 72, - "type": "METHOD", - "content_hash": "fbc00273d343217c" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)", - "start_line": 78, - "end_line": 101, - "type": "METHOD", - "content_hash": "96fa6cd2d33c83aa" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)", - "start_line": 102, - "end_line": 110, - "type": "METHOD", - "content_hash": "39401f2f565cb6ff" - }, - "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.Unregister(string key)": { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "qualified_name": "Bloxstrap.Utility.WindowsRegistry.Unregister(string key)", - "start_line": 111, - "end_line": 122, - "type": "METHOD", - "content_hash": "0ed0123be1b99493" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException": { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException", - "start_line": 10, - "end_line": 60, - "type": "CLASS", - "content_hash": "b7cbc7cec516136e" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)": { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "start_line": 17, - "end_line": 22, - "type": "CONSTRUCTOR", - "content_hash": "de8de21e4a2bf587" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)": { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)", - "start_line": 23, - "end_line": 28, - "type": "CONSTRUCTOR", - "content_hash": "6a98046fb8225219" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)": { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)", - "start_line": 29, - "end_line": 34, - "type": "CONSTRUCTOR", - "content_hash": "a7305d70a0f5fd67" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)": { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)", - "start_line": 35, - "end_line": 40, - "type": "CONSTRUCTOR", - "content_hash": "b296e318ac6b5d4a" - }, - "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.ToString()": { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException.ToString()", - "start_line": 41, - "end_line": 59, - "type": "METHOD", - "content_hash": "7f36bca06c4d583b" - }, - "Bloxstrap/Extensions/BootstrapperIconEx.cs|Bloxstrap.Extensions.BootstrapperIconEx": { - "file_path": "Bloxstrap/Extensions/BootstrapperIconEx.cs", - "qualified_name": "Bloxstrap.Extensions.BootstrapperIconEx", - "start_line": 5, - "end_line": 70, - "type": "CLASS", - "content_hash": "e75a0e056a6af7f1" - }, - "Bloxstrap/Extensions/BootstrapperIconEx.cs|Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)": { - "file_path": "Bloxstrap/Extensions/BootstrapperIconEx.cs", - "qualified_name": "Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)", - "start_line": 25, - "end_line": 69, - "type": "METHOD", - "content_hash": "7f9a784e18a20b2a" - }, - "Bloxstrap/Extensions/BootstrapperStyleEx.cs|Bloxstrap.Extensions.BootstrapperStyleEx": { - "file_path": "Bloxstrap/Extensions/BootstrapperStyleEx.cs", - "qualified_name": "Bloxstrap.Extensions.BootstrapperStyleEx", - "start_line": 3, - "end_line": 20, - "type": "CLASS", - "content_hash": "8f44925d6a4fb163" - }, - "Bloxstrap/Extensions/BootstrapperStyleEx.cs|Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)": { - "file_path": "Bloxstrap/Extensions/BootstrapperStyleEx.cs", - "qualified_name": "Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)", - "start_line": 5, - "end_line": 6, - "type": "METHOD", - "content_hash": "23045c5b72e8431f" - }, - "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx": { - "file_path": "Bloxstrap/Extensions/IconEx.cs", - "qualified_name": "Bloxstrap.Extensions.IconEx", - "start_line": 8, - "end_line": 37, - "type": "CLASS", - "content_hash": "5d1029b5d0538c1f" - }, - "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx.GetSized(this Icon icon, int width, int height)": { - "file_path": "Bloxstrap/Extensions/IconEx.cs", - "qualified_name": "Bloxstrap.Extensions.IconEx.GetSized(this Icon icon, int width, int height)", - "start_line": 10, - "end_line": 11, - "type": "METHOD", - "content_hash": "c9715508af2e8061" - }, - "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)": { - "file_path": "Bloxstrap/Extensions/IconEx.cs", - "qualified_name": "Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)", - "start_line": 12, - "end_line": 36, - "type": "METHOD", - "content_hash": "534d9d90aa153568" - }, - "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx": { - "file_path": "Bloxstrap/Extensions/ThemeEx.cs", - "qualified_name": "Bloxstrap.Extensions.ThemeEx", - "start_line": 5, - "end_line": 20, - "type": "CLASS", - "content_hash": "6d9ba5f63c836340" - }, - "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)": { - "file_path": "Bloxstrap/Extensions/ThemeEx.cs", - "qualified_name": "Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)", - "start_line": 7, - "end_line": 19, - "type": "METHOD", - "content_hash": "a1eee72c14164151" - }, - "Bloxstrap/Models/BootstrapperIconEntry.cs|Bloxstrap.Models.BootstrapperIconEntry": { - "file_path": "Bloxstrap/Models/BootstrapperIconEntry.cs", - "qualified_name": "Bloxstrap.Models.BootstrapperIconEntry", - "start_line": 5, - "end_line": 10, - "type": "CLASS", - "content_hash": "c39f086cf910afd5" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions", - "start_line": 5, - "end_line": 17, - "type": "CLASS", - "content_hash": "974a1c7f08f30f65" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)", - "start_line": 7, - "end_line": 16, - "type": "METHOD", - "content_hash": "8599c1ef05a9e30b" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase", - "start_line": 8, - "end_line": 159, - "type": "CLASS", - "content_hash": "6845619742c19d6c" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ScaleWindow()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ScaleWindow()", - "start_line": 106, - "end_line": 117, - "type": "METHOD", - "content_hash": "407f6fbf84004c01" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.SetupDialog()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.SetupDialog()", - "start_line": 118, - "end_line": 129, - "type": "METHOD", - "content_hash": "c763ed1e0061fa3b" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ButtonCancel_Click(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ButtonCancel_Click(object? sender, EventArgs e)", - "start_line": 131, - "end_line": 132, - "type": "METHOD", - "content_hash": "881ec85754e7728a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)", - "start_line": 133, - "end_line": 138, - "type": "METHOD", - "content_hash": "bec4739a48ec5712" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowBootstrapper()", - "start_line": 141, - "end_line": 142, - "type": "METHOD", - "content_hash": "4cec47b83b6d51d4" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.CloseBootstrapper()", - "start_line": 143, - "end_line": 155, - "type": "METHOD", - "content_hash": "56a87f8e17ce0b25" - }, - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowSuccess(string message, Action? callback)", - "start_line": 156, - "end_line": 157, - "type": "METHOD", - "content_hash": "4fa6902f20acac89" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "start_line": 16, - "end_line": 145, - "type": "CLASS", - "content_hash": "a1786ac3fc76e2ce" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()", - "start_line": 105, - "end_line": 126, - "type": "CONSTRUCTOR", - "content_hash": "c1f422bd447fbc84" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.Window_Closing(object sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.Window_Closing(object sender, CancelEventArgs e)", - "start_line": 126, - "end_line": 131, - "type": "METHOD", - "content_hash": "1bda95673de9cb8a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowBootstrapper()", - "start_line": 134, - "end_line": 135, - "type": "METHOD", - "content_hash": "90d5546de3e9bef1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.CloseBootstrapper()", - "start_line": 136, - "end_line": 141, - "type": "METHOD", - "content_hash": "1e3287fa5b3e197e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowSuccess(string message, Action? callback)", - "start_line": 142, - "end_line": 143, - "type": "METHOD", - "content_hash": "408330b815f70ff7" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "start_line": 13, - "end_line": 123, - "type": "CLASS", - "content_hash": "3e8149219be5103e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ClassicFluentDialog()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ClassicFluentDialog()", - "start_line": 95, - "end_line": 104, - "type": "CONSTRUCTOR", - "content_hash": "3626848efa227dd9" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "start_line": 105, - "end_line": 110, - "type": "METHOD", - "content_hash": "07364189393d7354" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowBootstrapper()", - "start_line": 112, - "end_line": 113, - "type": "METHOD", - "content_hash": "90d5546de3e9bef1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.CloseBootstrapper()", - "start_line": 114, - "end_line": 119, - "type": "METHOD", - "content_hash": "1e3287fa5b3e197e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowSuccess(string message, Action? callback)", - "start_line": 120, - "end_line": 121, - "type": "METHOD", - "content_hash": "408330b815f70ff7" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog", - "start_line": 9, - "end_line": 90, - "type": "CLASS", - "content_hash": "05d3b0931657a655" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "start_line": 12, - "end_line": 28, - "type": "METHOD", - "content_hash": "a47661b2e27b8965" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "start_line": 29, - "end_line": 44, - "type": "METHOD", - "content_hash": "a9224c58f0f7d220" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "start_line": 46, - "end_line": 47, - "type": "METHOD", - "content_hash": "6f32960ae9edfb5d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)", - "start_line": 49, - "end_line": 50, - "type": "METHOD", - "content_hash": "e8cf50908ff4065b" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)", - "start_line": 52, - "end_line": 53, - "type": "METHOD", - "content_hash": "377cd012f4d899b1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "start_line": 55, - "end_line": 56, - "type": "METHOD", - "content_hash": "39f6123f04bf75fd" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "start_line": 58, - "end_line": 59, - "type": "METHOD", - "content_hash": "addd1e4947e221fa" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "start_line": 61, - "end_line": 62, - "type": "METHOD", - "content_hash": "2058ec48842ed413" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetBrushFromXElement(XElement element, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetBrushFromXElement(XElement element, string attributeName)", - "start_line": 70, - "end_line": 89, - "type": "METHOD", - "content_hash": "bca4f3fc292778d9" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "start_line": 6, - "end_line": 151, - "type": "CLASS", - "content_hash": "c08f76ab39c79b14" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.DummyFrameworkElement": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.DummyFrameworkElement", - "start_line": 10, - "end_line": 11, - "type": "CLASS", - "content_hash": "07fdeaffdfabfe04" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlElementDelegate": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlElementDelegate", - "start_line": 21, - "end_line": 22, - "type": "CLASS", - "content_hash": "6f3977b8b7181e6d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXml(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXml(CustomDialog dialog, XElement xmlElement)", - "start_line": 59, - "end_line": 70, - "type": "METHOD", - "content_hash": "b0ab6ec0effc0d94" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AddXml(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AddXml(CustomDialog dialog, XElement xmlElement)", - "start_line": 71, - "end_line": 80, - "type": "METHOD", - "content_hash": "a44ba6342a67e33d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AssertThemeVersion(string? versionStr)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AssertThemeVersion(string? versionStr)", - "start_line": 81, - "end_line": 99, - "type": "METHOD", - "content_hash": "0b9355e33fde907a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlBase(XElement xml)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlBase(XElement xml)", - "start_line": 100, - "end_line": 122, - "type": "METHOD", - "content_hash": "6663cb92c91d0a2f" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "start_line": 124, - "end_line": 142, - "type": "METHOD", - "content_hash": "eefa25f2df36daac" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)", - "start_line": 143, - "end_line": 149, - "type": "METHOD", - "content_hash": "efb9043475195e53" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "start_line": 18, - "end_line": 776, - "type": "CLASS", - "content_hash": "878721c198d91e2b" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ScaleTransform(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ScaleTransform(CustomDialog dialog, XElement xmlElement)", - "start_line": 21, - "end_line": 32, - "type": "METHOD", - "content_hash": "99fc944f2f6859fe" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SkewTransform(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SkewTransform(CustomDialog dialog, XElement xmlElement)", - "start_line": 33, - "end_line": 44, - "type": "METHOD", - "content_hash": "bd2426f3c78252a8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RotateTransform(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RotateTransform(CustomDialog dialog, XElement xmlElement)", - "start_line": 45, - "end_line": 55, - "type": "METHOD", - "content_hash": "0b9ce3c0c053cd5a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TranslateTransform(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TranslateTransform(CustomDialog dialog, XElement xmlElement)", - "start_line": 56, - "end_line": 65, - "type": "METHOD", - "content_hash": "4c4b59f1de216744" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BlurEffect(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BlurEffect(CustomDialog dialog, XElement xmlElement)", - "start_line": 68, - "end_line": 78, - "type": "METHOD", - "content_hash": "a37c7c6a71d4d83d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_DropShadowEffect(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_DropShadowEffect(CustomDialog dialog, XElement xmlElement)", - "start_line": 79, - "end_line": 95, - "type": "METHOD", - "content_hash": "45032b3586e34bc9" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXml_Brush(Brush brush, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXml_Brush(Brush brush, XElement xmlElement)", - "start_line": 98, - "end_line": 102, - "type": "METHOD", - "content_hash": "b7113b64bdbf83a0" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SolidColorBrush(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SolidColorBrush(CustomDialog dialog, XElement xmlElement)", - "start_line": 103, - "end_line": 114, - "type": "METHOD", - "content_hash": "cd9221ba70715a01" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)", - "start_line": 115, - "end_line": 162, - "type": "METHOD", - "content_hash": "5845aea0cba89f26" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_GradientStop(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_GradientStop(CustomDialog dialog, XElement xmlElement)", - "start_line": 163, - "end_line": 175, - "type": "METHOD", - "content_hash": "9ebfcad69a459e4c" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)", - "start_line": 176, - "end_line": 198, - "type": "METHOD", - "content_hash": "c84e23b012a4a627" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.ApplyBrush_UIElement(CustomDialog dialog, FrameworkElement uiElement, string name, DependencyProperty dependencyProperty, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.ApplyBrush_UIElement(CustomDialog dialog, FrameworkElement uiElement, string name, DependencyProperty dependencyProperty, XElement xmlElement)", - "start_line": 199, - "end_line": 226, - "type": "METHOD", - "content_hash": "b30c4a0e0fabb457" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Shape(CustomDialog dialog, Shape shape, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Shape(CustomDialog dialog, Shape shape, XElement xmlElement)", - "start_line": 229, - "end_line": 246, - "type": "METHOD", - "content_hash": "fa43cbfb2a716287" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Ellipse(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Ellipse(CustomDialog dialog, XElement xmlElement)", - "start_line": 247, - "end_line": 254, - "type": "METHOD", - "content_hash": "4476148542d25ef5" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Line(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Line(CustomDialog dialog, XElement xmlElement)", - "start_line": 255, - "end_line": 267, - "type": "METHOD", - "content_hash": "c185acef86118545" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Rectangle(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Rectangle(CustomDialog dialog, XElement xmlElement)", - "start_line": 268, - "end_line": 278, - "type": "METHOD", - "content_hash": "d020043d0678a07b" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "start_line": 282, - "end_line": 333, - "type": "METHOD", - "content_hash": "1d15c0fad09eaf57" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)", - "start_line": 334, - "end_line": 363, - "type": "METHOD", - "content_hash": "e375c63bfdd975b0" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)", - "start_line": 364, - "end_line": 416, - "type": "METHOD", - "content_hash": "72e753f00389343c" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper_Fake(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper_Fake(CustomDialog dialog, XElement xmlElement)", - "start_line": 417, - "end_line": 422, - "type": "METHOD", - "content_hash": "5226768f008f425e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TitleBar(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TitleBar(CustomDialog dialog, XElement xmlElement)", - "start_line": 423, - "end_line": 451, - "type": "METHOD", - "content_hash": "fef7eb900baa18a1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Button(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Button(CustomDialog dialog, XElement xmlElement)", - "start_line": 452, - "end_line": 470, - "type": "METHOD", - "content_hash": "0ddda1043472cb9d" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RangeBase(CustomDialog dialog, RangeBase rangeBase, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RangeBase(CustomDialog dialog, RangeBase rangeBase, XElement xmlElement)", - "start_line": 471, - "end_line": 478, - "type": "METHOD", - "content_hash": "9c9066b1ef6d44dc" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)", - "start_line": 479, - "end_line": 508, - "type": "METHOD", - "content_hash": "3ce3c146f2386eb3" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressRing(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressRing(CustomDialog dialog, XElement xmlElement)", - "start_line": 509, - "end_line": 530, - "type": "METHOD", - "content_hash": "b8c9057642232ec5" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)", - "start_line": 531, - "end_line": 565, - "type": "METHOD", - "content_hash": "6a80d33749f11fc6" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock(CustomDialog dialog, XElement xmlElement)", - "start_line": 566, - "end_line": 581, - "type": "METHOD", - "content_hash": "72042a9f7eee53a1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_MarkdownTextBlock(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_MarkdownTextBlock(CustomDialog dialog, XElement xmlElement)", - "start_line": 582, - "end_line": 593, - "type": "METHOD", - "content_hash": "f450966caa648995" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Image(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Image(CustomDialog dialog, XElement xmlElement)", - "start_line": 594, - "end_line": 640, - "type": "METHOD", - "content_hash": "7c20fd64201cf4ef" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)", - "start_line": 641, - "end_line": 654, - "type": "METHOD", - "content_hash": "8da13a93770beed2" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)", - "start_line": 655, - "end_line": 668, - "type": "METHOD", - "content_hash": "d259987fe467c865" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_RowDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_RowDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "start_line": 669, - "end_line": 677, - "type": "METHOD", - "content_hash": "51c524ea048810e8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_ColumnDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_ColumnDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "start_line": 678, - "end_line": 686, - "type": "METHOD", - "content_hash": "5975aefe0d8e23e1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid(CustomDialog dialog, XElement xmlElement)", - "start_line": 687, - "end_line": 726, - "type": "METHOD", - "content_hash": "bb8e195637051353" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_StackPanel(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_StackPanel(CustomDialog dialog, XElement xmlElement)", - "start_line": 727, - "end_line": 742, - "type": "METHOD", - "content_hash": "1cac8d1f5187d6b4" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)", - "start_line": 743, - "end_line": 774, - "type": "METHOD", - "content_hash": "e361134bc2b3b783" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "start_line": 8, - "end_line": 300, - "type": "CLASS", - "content_hash": "ade07f6781f410ba" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult", - "start_line": 10, - "end_line": 19, - "type": "STRUCT", - "content_hash": "1845f612537c7565" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult.GetImageSourceDataResult()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult.GetImageSourceDataResult()", - "start_line": 15, - "end_line": 18, - "type": "CONSTRUCTOR", - "content_hash": "7140947d3f10d526" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetXmlAttribute(XElement element, string attributeName, string? defaultValue = null)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetXmlAttribute(XElement element, string attributeName, string? defaultValue = null)", - "start_line": 20, - "end_line": 34, - "type": "METHOD", - "content_hash": "3af51ac9503081d1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)", - "start_line": 35, - "end_line": 53, - "type": "METHOD", - "content_hash": "f451e98e3ce44664" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)", - "start_line": 57, - "end_line": 70, - "type": "METHOD", - "content_hash": "7a10fdd70c12dd4a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, int value, int? min = null, int? max = null)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, int value, int? min = null, int? max = null)", - "start_line": 71, - "end_line": 78, - "type": "METHOD", - "content_hash": "b89026ad4aa0f992" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, double value, double? min = null, double? max = null)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, double value, double? min = null, double? max = null)", - "start_line": 79, - "end_line": 86, - "type": "METHOD", - "content_hash": "fd67736c9b2a8eb9" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeClamped(XElement element, string attributeName, int? defaultValue = null, int? min = null, int? max = null)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeClamped(XElement element, string attributeName, int? defaultValue = null, int? min = null, int? max = null)", - "start_line": 88, - "end_line": 94, - "type": "METHOD", - "content_hash": "51cc4374ed682066" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontWeightFromXElement(XElement element)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontWeightFromXElement(XElement element)", - "start_line": 95, - "end_line": 142, - "type": "METHOD", - "content_hash": "58a4a9725a297f9f" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontStyleFromXElement(XElement element)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontStyleFromXElement(XElement element)", - "start_line": 143, - "end_line": 164, - "type": "METHOD", - "content_hash": "baf520ce0aa9fa3a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTextDecorationsFromXElement(XElement element)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTextDecorationsFromXElement(XElement element)", - "start_line": 165, - "end_line": 189, - "type": "METHOD", - "content_hash": "99af56598c118ea8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTranslatedText(string? text)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTranslatedText(string? text)", - "start_line": 190, - "end_line": 202, - "type": "METHOD", - "content_hash": "290b3380ad00feed" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFullPath(CustomDialog dialog, string? sourcePath)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFullPath(CustomDialog dialog, string? sourcePath)", - "start_line": 203, - "end_line": 211, - "type": "METHOD", - "content_hash": "43655ebf9e6b57db" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceData(CustomDialog dialog, string name, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceData(CustomDialog dialog, string name, XElement xmlElement)", - "start_line": 212, - "end_line": 232, - "type": "METHOD", - "content_hash": "704b434681ed008f" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetContentFromXElement(CustomDialog dialog, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetContentFromXElement(CustomDialog dialog, XElement xmlElement)", - "start_line": 233, - "end_line": 257, - "type": "METHOD", - "content_hash": "5b45a069b878be76" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyEffects_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyEffects_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)", - "start_line": 258, - "end_line": 275, - "type": "METHOD", - "content_hash": "1dc4b684b95a9b7e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformation_UIElement(CustomDialog dialog, string name, DependencyProperty property, UIElement uiElement, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformation_UIElement(CustomDialog dialog, string name, DependencyProperty property, UIElement uiElement, XElement xmlElement)", - "start_line": 276, - "end_line": 293, - "type": "METHOD", - "content_hash": "c011b26b9e8a345b" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)", - "start_line": 294, - "end_line": 299, - "type": "METHOD", - "content_hash": "168f4ee8a4a89896" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "start_line": 12, - "end_line": 122, - "type": "CLASS", - "content_hash": "03ab81dc0886f87a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()", - "start_line": 94, - "end_line": 103, - "type": "CONSTRUCTOR", - "content_hash": "9ef81dc17bfd0d7a" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.UiWindow_Closing(object sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "start_line": 104, - "end_line": 109, - "type": "METHOD", - "content_hash": "07364189393d7354" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowBootstrapper()", - "start_line": 111, - "end_line": 112, - "type": "METHOD", - "content_hash": "90d5546de3e9bef1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CloseBootstrapper()", - "start_line": 113, - "end_line": 118, - "type": "METHOD", - "content_hash": "1e3287fa5b3e197e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowSuccess(string message, Action? callback)", - "start_line": 119, - "end_line": 120, - "type": "METHOD", - "content_hash": "408330b815f70ff7" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "start_line": 27, - "end_line": 141, - "type": "CLASS", - "content_hash": "b39a0dd40913bdc2" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.FluentDialog(bool aero)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.FluentDialog(bool aero)", - "start_line": 109, - "end_line": 122, - "type": "CONSTRUCTOR", - "content_hash": "495f18afcb4aa961" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "start_line": 123, - "end_line": 128, - "type": "METHOD", - "content_hash": "07364189393d7354" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowBootstrapper()", - "start_line": 130, - "end_line": 131, - "type": "METHOD", - "content_hash": "90d5546de3e9bef1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.CloseBootstrapper()", - "start_line": 132, - "end_line": 137, - "type": "METHOD", - "content_hash": "1e3287fa5b3e197e" - }, - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowSuccess(string message, Action? callback)", - "start_line": 138, - "end_line": 139, - "type": "METHOD", - "content_hash": "408330b815f70ff7" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008", - "start_line": 5, - "end_line": 96, - "type": "CLASS", - "content_hash": "b529eace2e580beb" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.Dispose(bool disposing)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.Dispose(bool disposing)", - "start_line": 16, - "end_line": 24, - "type": "METHOD", - "content_hash": "3f440d06a6ee9df8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.InitializeComponent()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.InitializeComponent()", - "start_line": 31, - "end_line": 89, - "type": "METHOD", - "content_hash": "9e79a380e7ce3b10" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008", - "start_line": 10, - "end_line": 60, - "type": "CLASS", - "content_hash": "dc1f35a9d25e7c6c" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008()", - "start_line": 42, - "end_line": 54, - "type": "CONSTRUCTOR", - "content_hash": "c51214e5e4dfa204" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008_Load(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008_Load(object sender, EventArgs e)", - "start_line": 55, - "end_line": 59, - "type": "METHOD", - "content_hash": "08a56bbd12557e75" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011", - "start_line": 5, - "end_line": 111, - "type": "CLASS", - "content_hash": "f3b08163130ce980" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.Dispose(bool disposing)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.Dispose(bool disposing)", - "start_line": 16, - "end_line": 24, - "type": "METHOD", - "content_hash": "3f440d06a6ee9df8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.InitializeComponent()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.InitializeComponent()", - "start_line": 31, - "end_line": 103, - "type": "METHOD", - "content_hash": "1a1babecaf945c24" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011", - "start_line": 9, - "end_line": 60, - "type": "CLASS", - "content_hash": "24ce01983d1353ca" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011()", - "start_line": 41, - "end_line": 54, - "type": "CONSTRUCTOR", - "content_hash": "955b9b25610412cb" - }, - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs|Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011_Load(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011_Load(object sender, EventArgs e)", - "start_line": 55, - "end_line": 59, - "type": "METHOD", - "content_hash": "90edbb5dbd3c9cb8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog", - "start_line": 5, - "end_line": 129, - "type": "CLASS", - "content_hash": "39a5694d58770854" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.Dispose(bool disposing)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.Dispose(bool disposing)", - "start_line": 16, - "end_line": 24, - "type": "METHOD", - "content_hash": "3f440d06a6ee9df8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.InitializeComponent()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.InitializeComponent()", - "start_line": 31, - "end_line": 120, - "type": "METHOD", - "content_hash": "233de1c0527dc476" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog", - "start_line": 10, - "end_line": 94, - "type": "CLASS", - "content_hash": "9bfb36b54ee55f40" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog()", - "start_line": 42, - "end_line": 64, - "type": "CONSTRUCTOR", - "content_hash": "0267c333ab4fedf5" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseEnter(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseEnter(object sender, EventArgs e)", - "start_line": 65, - "end_line": 76, - "type": "METHOD", - "content_hash": "92ba5398a0ad00bc" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseLeave(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseLeave(object sender, EventArgs e)", - "start_line": 77, - "end_line": 88, - "type": "METHOD", - "content_hash": "f945e83bd645009c" - }, - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog_Load(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog_Load(object sender, EventArgs e)", - "start_line": 89, - "end_line": 93, - "type": "METHOD", - "content_hash": "cb9aed24eeea8711" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog", - "start_line": 3, - "end_line": 52, - "type": "CLASS", - "content_hash": "63a5d41b7c183bcc" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.Dispose(bool disposing)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.Dispose(bool disposing)", - "start_line": 14, - "end_line": 22, - "type": "METHOD", - "content_hash": "3f440d06a6ee9df8" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.InitializeComponent()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.InitializeComponent()", - "start_line": 29, - "end_line": 49, - "type": "METHOD", - "content_hash": "fab0152671ae05e3" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog", - "start_line": 13, - "end_line": 140, - "type": "CLASS", - "content_hash": "003a02a46a452f58" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog()", - "start_line": 70, - "end_line": 94, - "type": "CONSTRUCTOR", - "content_hash": "a95141fda1dc77a6" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.ShowSuccess(string message, Action? callback)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.ShowSuccess(string message, Action? callback)", - "start_line": 95, - "end_line": 123, - "type": "METHOD", - "content_hash": "517ab4dc5509e551" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.CloseBootstrapper()", - "start_line": 124, - "end_line": 136, - "type": "METHOD", - "content_hash": "5a93b47a93fe09d1" - }, - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog_Load(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "qualified_name": "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog_Load(object sender, EventArgs e)", - "start_line": 138, - "end_line": 139, - "type": "METHOD", - "content_hash": "8b2f09d640c6193e" - }, - "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs|Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander": { - "file_path": "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander", - "start_line": 24, - "end_line": 67, - "type": "CLASS", - "content_hash": "6fe351bee7019075" - }, - "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs|Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander.Expander()": { - "file_path": "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander.Expander()", - "start_line": 62, - "end_line": 66, - "type": "CONSTRUCTOR", - "content_hash": "9865c3c65b2059bc" - }, - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock": { - "file_path": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock", - "start_line": 18, - "end_line": 134, - "type": "CLASS", - "content_hash": "9aba169ed9b5d934" - }, - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.GetWpfInlineFromMarkdownInline(Inline? inline)": { - "file_path": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.GetWpfInlineFromMarkdownInline(Inline? inline)", - "start_line": 36, - "end_line": 93, - "type": "METHOD", - "content_hash": "f7787025160941d5" - }, - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.AddMarkdownInline(Inline? inline)": { - "file_path": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.AddMarkdownInline(Inline? inline)", - "start_line": 94, - "end_line": 101, - "type": "METHOD", - "content_hash": "11c54722a1b4e12f" - }, - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs|Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.OnTextMarkdownChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)": { - "file_path": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.OnTextMarkdownChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)", - "start_line": 102, - "end_line": 133, - "type": "METHOD", - "content_hash": "674deeb1e1dba598" - }, - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs|Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl": { - "file_path": "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl", - "start_line": 23, - "end_line": 66, - "type": "CLASS", - "content_hash": "286d7ea2eb0d28d6" - }, - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs|Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl.OptionControl()": { - "file_path": "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl.OptionControl()", - "start_line": 61, - "end_line": 65, - "type": "CONSTRUCTOR", - "content_hash": "00e2fd69b6f5301a" - }, - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog": { - "file_path": "Bloxstrap/UI/IBootstrapperDialog.cs", - "qualified_name": "Bloxstrap.UI.IBootstrapperDialog", - "start_line": 6, - "end_line": 22, - "type": "INTERFACE", - "content_hash": "8456d5e3d7657159" - }, - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog.ShowBootstrapper()": { - "file_path": "Bloxstrap/UI/IBootstrapperDialog.cs", - "qualified_name": "Bloxstrap.UI.IBootstrapperDialog.ShowBootstrapper()", - "start_line": 18, - "end_line": 19, - "type": "METHOD", - "content_hash": "f234e118dfd7c6cc" - }, - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog.CloseBootstrapper()": { - "file_path": "Bloxstrap/UI/IBootstrapperDialog.cs", - "qualified_name": "Bloxstrap.UI.IBootstrapperDialog.CloseBootstrapper()", - "start_line": 19, - "end_line": 20, - "type": "METHOD", - "content_hash": "b13be5a24f4aa1bb" - }, - "Bloxstrap/UI/IBootstrapperDialog.cs|Bloxstrap.UI.IBootstrapperDialog.ShowSuccess(string message, Action? callback = null)": { - "file_path": "Bloxstrap/UI/IBootstrapperDialog.cs", - "qualified_name": "Bloxstrap.UI.IBootstrapperDialog.ShowSuccess(string message, Action? callback = null)", - "start_line": 20, - "end_line": 21, - "type": "METHOD", - "content_hash": "205ca119dabcb7a2" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress", - "start_line": 7, - "end_line": 90, - "type": "CLASS", - "content_hash": "79ee964ff8a55254" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.TaskbarStates": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.TaskbarStates", - "start_line": 9, - "end_line": 17, - "type": "ENUM", - "content_hash": "b606ac08ba6307d6" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3", - "start_line": 21, - "end_line": 52, - "type": "INTERFACE", - "content_hash": "f7920bb494b68b9a" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.HrInit()": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.HrInit()", - "start_line": 25, - "end_line": 26, - "type": "METHOD", - "content_hash": "752c972849637a10" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.AddTab(IntPtr hwnd)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.AddTab(IntPtr hwnd)", - "start_line": 28, - "end_line": 29, - "type": "METHOD", - "content_hash": "c0aff87723333019" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.DeleteTab(IntPtr hwnd)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.DeleteTab(IntPtr hwnd)", - "start_line": 31, - "end_line": 32, - "type": "METHOD", - "content_hash": "dd65548e5c6cdc40" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.ActivateTab(IntPtr hwnd)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.ActivateTab(IntPtr hwnd)", - "start_line": 34, - "end_line": 35, - "type": "METHOD", - "content_hash": "e5c643b2ccc0d060" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetActiveAlt(IntPtr hwnd)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetActiveAlt(IntPtr hwnd)", - "start_line": 37, - "end_line": 38, - "type": "METHOD", - "content_hash": "fe2f1d8158f6056d" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.MarkFullscreenWindow(IntPtr hwnd, bool fFullscreen)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.MarkFullscreenWindow(IntPtr hwnd, bool fFullscreen)", - "start_line": 41, - "end_line": 42, - "type": "METHOD", - "content_hash": "d0d4b455d3e4bf4f" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressValue(IntPtr hwnd, UInt64 ullCompleted, UInt64 ullTotal)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressValue(IntPtr hwnd, UInt64 ullCompleted, UInt64 ullTotal)", - "start_line": 45, - "end_line": 46, - "type": "METHOD", - "content_hash": "9c5be44c1053e675" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressState(IntPtr hwnd, TaskbarStates state)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressState(IntPtr hwnd, TaskbarStates state)", - "start_line": 48, - "end_line": 49, - "type": "METHOD", - "content_hash": "1b37cacb83f197e3" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.TaskbarInstance": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.TaskbarInstance", - "start_line": 56, - "end_line": 59, - "type": "CLASS", - "content_hash": "213ed5b3ab3a4247" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.ConvertEnum(TaskbarItemProgressState state)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.ConvertEnum(TaskbarItemProgressState state)", - "start_line": 62, - "end_line": 74, - "type": "METHOD", - "content_hash": "deb7039dedbff56d" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarStates taskbarState)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarStates taskbarState)", - "start_line": 75, - "end_line": 79, - "type": "METHOD", - "content_hash": "984f2a86758b584b" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarItemProgressState taskbarState)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarItemProgressState taskbarState)", - "start_line": 80, - "end_line": 84, - "type": "METHOD", - "content_hash": "2bdd8f63a2bfb389" - }, - "Bloxstrap/UI/Utility/TaskbarProgress.cs|Bloxstrap.UI.Utility.TaskbarProgress.SetProgressValue(IntPtr windowHandle, int progressValue, int progressMax)": { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressValue(IntPtr windowHandle, int progressValue, int progressMax)", - "start_line": 85, - "end_line": 89, - "type": "METHOD", - "content_hash": "fcd1fa10b7c63acc" - }, - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling": { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "qualified_name": "Bloxstrap.UI.Utility.WindowScaling", - "start_line": 6, - "end_line": 30, - "type": "CLASS", - "content_hash": "0bdbeb2bd1ec5000" - }, - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledNumber(int number)": { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "qualified_name": "Bloxstrap.UI.Utility.WindowScaling.GetScaledNumber(int number)", - "start_line": 10, - "end_line": 14, - "type": "METHOD", - "content_hash": "a554e674ebcaa68a" - }, - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledSize(Size size)": { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "qualified_name": "Bloxstrap.UI.Utility.WindowScaling.GetScaledSize(Size size)", - "start_line": 15, - "end_line": 19, - "type": "METHOD", - "content_hash": "2467bf9bc46c9a8a" - }, - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledPoint(Point point)": { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "qualified_name": "Bloxstrap.UI.Utility.WindowScaling.GetScaledPoint(Point point)", - "start_line": 20, - "end_line": 24, - "type": "METHOD", - "content_hash": "6b7c8a30993187b3" - }, - "Bloxstrap/UI/Utility/WindowScaling.cs|Bloxstrap.UI.Utility.WindowScaling.GetScaledPadding(Padding padding)": { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "qualified_name": "Bloxstrap.UI.Utility.WindowScaling.GetScaledPadding(Padding padding)", - "start_line": 25, - "end_line": 29, - "type": "METHOD", - "content_hash": "589a9856fad4e035" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel", - "start_line": 10, - "end_line": 46, - "type": "CLASS", - "content_hash": "b53a52bdd0f3725c" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel()": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel()", - "start_line": 30, - "end_line": 34, - "type": "CONSTRUCTOR", - "content_hash": "5263ae81f8af2d07" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel(IBootstrapperDialog dialog)": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel(IBootstrapperDialog dialog)", - "start_line": 35, - "end_line": 39, - "type": "CONSTRUCTOR", - "content_hash": "f2379d03ad6fb5a8" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.CancelInstall()": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.CancelInstall()", - "start_line": 40, - "end_line": 45, - "type": "METHOD", - "content_hash": "6cbac1c7fa13fa47" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel", - "start_line": 7, - "end_line": 26, - "type": "CLASS", - "content_hash": "e39350c704fc222f" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel.ByfronDialogViewModel(IBootstrapperDialog dialog, string version)": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel.ByfronDialogViewModel(IBootstrapperDialog dialog, string version)", - "start_line": 21, - "end_line": 25, - "type": "CONSTRUCTOR", - "content_hash": "4691db7dbaa7553f" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel", - "start_line": 7, - "end_line": 15, - "type": "CLASS", - "content_hash": "59466ee44338dcf7" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel.ClassicFluentDialogViewModel(IBootstrapperDialog dialog)": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel.ClassicFluentDialogViewModel(IBootstrapperDialog dialog)", - "start_line": 11, - "end_line": 14, - "type": "CONSTRUCTOR", - "content_hash": "735e392b1ae8e4fc" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel", - "start_line": 11, - "end_line": 35, - "type": "CLASS", - "content_hash": "1fd45e736fb13ac4" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel()": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel()", - "start_line": 18, - "end_line": 20, - "type": "CONSTRUCTOR", - "content_hash": "5df11877749ae46d" - }, - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs|Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel(IBootstrapperDialog dialog, bool aero)": { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel(IBootstrapperDialog dialog, bool aero)", - "start_line": 21, - "end_line": 34, - "type": "CONSTRUCTOR", - "content_hash": "2ff5ad7bb4b31a52" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel", - "start_line": 17, - "end_line": 351, - "type": "CLASS", - "content_hash": "381b30ab47c8b674" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PreviewBootstrapper()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PreviewBootstrapper()", - "start_line": 30, - "end_line": 42, - "type": "METHOD", - "content_hash": "e96171e2237669b3" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.BrowseCustomIconLocation()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.BrowseCustomIconLocation()", - "start_line": 43, - "end_line": 56, - "type": "METHOD", - "content_hash": "8ae7221f1ea8ccab" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AppearanceViewModel(Page page)": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AppearanceViewModel(Page page)", - "start_line": 57, - "end_line": 66, - "type": "CONSTRUCTOR", - "content_hash": "4afcbcaef5444973" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomThemeStructure(string name)": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomThemeStructure(string name)", - "start_line": 137, - "end_line": 142, - "type": "METHOD", - "content_hash": "14e23e594c53afbb" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomThemeStructure(string oldName, string newName)": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomThemeStructure(string oldName, string newName)", - "start_line": 143, - "end_line": 149, - "type": "METHOD", - "content_hash": "bdfa693487049d25" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()", - "start_line": 150, - "end_line": 167, - "type": "METHOD", - "content_hash": "3ee5e431a78d9b1a" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()", - "start_line": 168, - "end_line": 194, - "type": "METHOD", - "content_hash": "a2cf84dcfb1d64a6" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "start_line": 195, - "end_line": 256, - "type": "METHOD", - "content_hash": "ccddf286f054ea67" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.EditCustomTheme()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.EditCustomTheme()", - "start_line": 257, - "end_line": 264, - "type": "METHOD", - "content_hash": "d6464c942056c698" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.ExportCustomTheme()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.ExportCustomTheme()", - "start_line": 265, - "end_line": 306, - "type": "METHOD", - "content_hash": "94e664cb3111d85b" - }, - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PopulateCustomThemes()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PopulateCustomThemes()", - "start_line": 307, - "end_line": 337, - "type": "METHOD", - "content_hash": "422070d943366b6f" - }, - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex": { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "qualified_name": "Bloxstrap.Utility.AsyncMutex", - "start_line": 5, - "end_line": 97, - "type": "CLASS", - "content_hash": "b085f5c232a6888f" - }, - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.AsyncMutex(bool initiallyOwned, string name)": { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "qualified_name": "Bloxstrap.Utility.AsyncMutex.AsyncMutex(bool initiallyOwned, string name)", - "start_line": 13, - "end_line": 18, - "type": "CONSTRUCTOR", - "content_hash": "139ba311f16dcbfc" - }, - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.AcquireAsync(CancellationToken cancellationToken)": { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "qualified_name": "Bloxstrap.Utility.AsyncMutex.AcquireAsync(CancellationToken cancellationToken)", - "start_line": 19, - "end_line": 74, - "type": "METHOD", - "content_hash": "ce339a88e6e4e758" - }, - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.ReleaseAsync()": { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "qualified_name": "Bloxstrap.Utility.AsyncMutex.ReleaseAsync()", - "start_line": 75, - "end_line": 84, - "type": "METHOD", - "content_hash": "d87d80963f0b4a33" - }, - "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.DisposeAsync()": { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "qualified_name": "Bloxstrap.Utility.AsyncMutex.DisposeAsync()", - "start_line": 85, - "end_line": 96, - "type": "METHOD", - "content_hash": "b91e6c5cc81581f0" - }, - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx": { - "file_path": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs", - "qualified_name": "Bloxstrap.Extensions.CustomThemeTemplateEx", - "start_line": 5, - "end_line": 36, - "type": "CLASS", - "content_hash": "c37cb839258a2b63" - }, - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileName(this CustomThemeTemplate template)": { - "file_path": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs", - "qualified_name": "Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileName(this CustomThemeTemplate template)", - "start_line": 9, - "end_line": 13, - "type": "METHOD", - "content_hash": "46d4ed42afcbb961" - }, - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileContents(this CustomThemeTemplate template)": { - "file_path": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs", - "qualified_name": "Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileContents(this CustomThemeTemplate template)", - "start_line": 14, - "end_line": 35, - "type": "METHOD", - "content_hash": "1694e57b8c87c9f9" - }, - "Bloxstrap/Extensions/DateTimeEx.cs|Bloxstrap.Extensions.DateTimeEx": { - "file_path": "Bloxstrap/Extensions/DateTimeEx.cs", - "qualified_name": "Bloxstrap.Extensions.DateTimeEx", - "start_line": 3, - "end_line": 10, - "type": "CLASS", - "content_hash": "74e9e3c7ceb66e0a" - }, - "Bloxstrap/Extensions/DateTimeEx.cs|Bloxstrap.Extensions.DateTimeEx.ToFriendlyString(this DateTime dateTime)": { - "file_path": "Bloxstrap/Extensions/DateTimeEx.cs", - "qualified_name": "Bloxstrap.Extensions.DateTimeEx.ToFriendlyString(this DateTime dateTime)", - "start_line": 5, - "end_line": 9, - "type": "METHOD", - "content_hash": "6d6d9eca04cd371d" - }, - "Bloxstrap/Locale.cs|Bloxstrap.Locale": { - "file_path": "Bloxstrap/Locale.cs", - "qualified_name": "Bloxstrap.Locale", - "start_line": 5, - "end_line": 144, - "type": "CLASS", - "content_hash": "52a83b430ea8d494" - }, - "Bloxstrap/Locale.cs|Bloxstrap.Locale.GetIdentifierFromName(string language)": { - "file_path": "Bloxstrap/Locale.cs", - "qualified_name": "Bloxstrap.Locale.GetIdentifierFromName(string language)", - "start_line": 83, - "end_line": 84, - "type": "METHOD", - "content_hash": "32412149738db3d3" - }, - "Bloxstrap/Locale.cs|Bloxstrap.Locale.GetLanguages()": { - "file_path": "Bloxstrap/Locale.cs", - "qualified_name": "Bloxstrap.Locale.GetLanguages()", - "start_line": 85, - "end_line": 95, - "type": "METHOD", - "content_hash": "4351de47c192e795" - }, - "Bloxstrap/Locale.cs|Bloxstrap.Locale.Set(string identifier)": { - "file_path": "Bloxstrap/Locale.cs", - "qualified_name": "Bloxstrap.Locale.Set(string identifier)", - "start_line": 96, - "end_line": 115, - "type": "METHOD", - "content_hash": "3a14b132f374f250" - }, - "Bloxstrap/Locale.cs|Bloxstrap.Locale.Initialize()": { - "file_path": "Bloxstrap/Locale.cs", - "qualified_name": "Bloxstrap.Locale.Initialize()", - "start_line": 116, - "end_line": 143, - "type": "METHOD", - "content_hash": "dc8bc3d1ab47d267" - }, - "Bloxstrap/Models/CustomIntegration.cs|Bloxstrap.Models.CustomIntegration": { - "file_path": "Bloxstrap/Models/CustomIntegration.cs", - "qualified_name": "Bloxstrap.Models.CustomIntegration", - "start_line": 3, - "end_line": 10, - "type": "CLASS", - "content_hash": "843a7b2a721801d4" - }, - "Bloxstrap/Resource.cs|Bloxstrap.Resource": { - "file_path": "Bloxstrap/Resource.cs", - "qualified_name": "Bloxstrap.Resource", - "start_line": 5, - "end_line": 30, - "type": "CLASS", - "content_hash": "ee7ef1e0b1dd6eb2" - }, - "Bloxstrap/Resource.cs|Bloxstrap.Resource.GetStream(string name)": { - "file_path": "Bloxstrap/Resource.cs", - "qualified_name": "Bloxstrap.Resource.GetStream(string name)", - "start_line": 10, - "end_line": 15, - "type": "METHOD", - "content_hash": "e891249f4f6b1082" - }, - "Bloxstrap/Resource.cs|Bloxstrap.Resource.Get(string name)": { - "file_path": "Bloxstrap/Resource.cs", - "qualified_name": "Bloxstrap.Resource.Get(string name)", - "start_line": 16, - "end_line": 24, - "type": "METHOD", - "content_hash": "e67511b1ac952af1" - }, - "Bloxstrap/Resource.cs|Bloxstrap.Resource.GetString(string name)": { - "file_path": "Bloxstrap/Resource.cs", - "qualified_name": "Bloxstrap.Resource.GetString(string name)", - "start_line": 25, - "end_line": 29, - "type": "METHOD", - "content_hash": "632e2282afe499c3" - }, - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage", - "start_line": 11, - "end_line": 48, - "type": "CLASS", - "content_hash": "74e69516c4eec63c" - }, - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.AboutPage()": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.AboutPage()", - "start_line": 19, - "end_line": 24, - "type": "CONSTRUCTOR", - "content_hash": "acbe2fdec1666a6d" - }, - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.UiPage_KeyDown(object sender, KeyEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.UiPage_KeyDown(object sender, KeyEventArgs e)", - "start_line": 25, - "end_line": 47, - "type": "METHOD", - "content_hash": "a222d19d0562c424" - }, - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage", - "start_line": 6, - "end_line": 13, - "type": "CLASS", - "content_hash": "bcca65d8ad618ab1" - }, - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage.LicensesPage()": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage.LicensesPage()", - "start_line": 8, - "end_line": 12, - "type": "CONSTRUCTOR", - "content_hash": "7b4cf9aa33edb8ed" - }, - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage", - "start_line": 10, - "end_line": 23, - "type": "CLASS", - "content_hash": "5f42e4b72f499d3b" - }, - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.SupportersPage()": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.SupportersPage()", - "start_line": 14, - "end_line": 19, - "type": "CONSTRUCTOR", - "content_hash": "d5c8c3b9f1cb2481" - }, - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.UiPage_SizeChanged(object sender, SizeChangedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.UiPage_SizeChanged(object sender, SizeChangedEventArgs e)", - "start_line": 20, - "end_line": 22, - "type": "METHOD", - "content_hash": "f43dbee6f52ddfa8" - }, - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage", - "start_line": 6, - "end_line": 13, - "type": "CLASS", - "content_hash": "562d70b04cf23344" - }, - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs|Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage.TranslatorsPage()": { - "file_path": "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage.TranslatorsPage()", - "start_line": 8, - "end_line": 12, - "type": "CONSTRUCTOR", - "content_hash": "9b6c7256165f23fd" - }, - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow": { - "file_path": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "qualified_name": "Bloxstrap.UI.Elements.Base.WpfUiWindow", - "start_line": 10, - "end_line": 47, - "type": "CLASS", - "content_hash": "7ce66abda1ea631f" - }, - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.WpfUiWindow()": { - "file_path": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "qualified_name": "Bloxstrap.UI.Elements.Base.WpfUiWindow.WpfUiWindow()", - "start_line": 14, - "end_line": 18, - "type": "CONSTRUCTOR", - "content_hash": "1e2242e9b148a317" - }, - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.ApplyTheme()": { - "file_path": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "qualified_name": "Bloxstrap.UI.Elements.Base.WpfUiWindow.ApplyTheme()", - "start_line": 19, - "end_line": 35, - "type": "METHOD", - "content_hash": "6b948af552e674cf" - }, - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.OnSourceInitialized(EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "qualified_name": "Bloxstrap.UI.Elements.Base.WpfUiWindow.OnSourceInitialized(EventArgs e)", - "start_line": 36, - "end_line": 46, - "type": "METHOD", - "content_hash": "ec5033365938e33e" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog", - "start_line": 12, - "end_line": 231, - "type": "CLASS", - "content_hash": "812d8ec579703e69" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()", - "start_line": 23, - "end_line": 32, - "type": "CONSTRUCTOR", - "content_hash": "c20130be2a153a06" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetThemePath(string name)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetThemePath(string name)", - "start_line": 33, - "end_line": 37, - "type": "METHOD", - "content_hash": "949602f0192c6830" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GenerateRandomName()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GenerateRandomName()", - "start_line": 38, - "end_line": 51, - "type": "METHOD", - "content_hash": "80c8fdaf87bde074" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetUniqueName(string name)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetUniqueName(string name)", - "start_line": 52, - "end_line": 69, - "type": "METHOD", - "content_hash": "4b6afadd1bd50a2c" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateCustomTheme(string name, CustomThemeTemplate template)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateCustomTheme(string name, CustomThemeTemplate template)", - "start_line": 70, - "end_line": 84, - "type": "METHOD", - "content_hash": "e9999297831a2c83" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateCreateNew()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateCreateNew()", - "start_line": 85, - "end_line": 128, - "type": "METHOD", - "content_hash": "999bda8285a30615" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()", - "start_line": 129, - "end_line": 172, - "type": "METHOD", - "content_hash": "e710f4a58cdbf33b" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateNew()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateNew()", - "start_line": 173, - "end_line": 186, - "type": "METHOD", - "content_hash": "f577f9de4cb6e657" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.Import()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.Import()", - "start_line": 187, - "end_line": 209, - "type": "METHOD", - "content_hash": "b4e94df068c3a5d5" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnOkButtonClicked(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnOkButtonClicked(object sender, RoutedEventArgs e)", - "start_line": 210, - "end_line": 217, - "type": "METHOD", - "content_hash": "9e84ab8f6eef116a" - }, - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnImportButtonClicked(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnImportButtonClicked(object sender, RoutedEventArgs e)", - "start_line": 218, - "end_line": 230, - "type": "METHOD", - "content_hash": "eb82815865d34307" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow", - "start_line": 19, - "end_line": 500, - "type": "CLASS", - "content_hash": "e73e031c07371c24" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema", - "start_line": 21, - "end_line": 133, - "type": "CLASS", - "content_hash": "61843ee3fe632c43" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Schema": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Schema", - "start_line": 23, - "end_line": 28, - "type": "CLASS", - "content_hash": "bfeecee3dd4ed005" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Element": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Element", - "start_line": 29, - "end_line": 37, - "type": "CLASS", - "content_hash": "0a6342d1f6dbe846" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Type": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Type", - "start_line": 38, - "end_line": 43, - "type": "CLASS", - "content_hash": "e28f694d4738ff36" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.ParseSchema()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.ParseSchema()", - "start_line": 61, - "end_line": 75, - "type": "METHOD", - "content_hash": "795ba98bbe8b1f0a" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.GetElementAttributes(string name, Element element)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.GetElementAttributes(string name, Element element)", - "start_line": 76, - "end_line": 113, - "type": "METHOD", - "content_hash": "38ac0280dc9c525c" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.PopulateElementInfo()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.PopulateElementInfo()", - "start_line": 114, - "end_line": 132, - "type": "METHOD", - "content_hash": "081d3ea9cd932231" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.BootstrapperEditorWindow(string name)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.BootstrapperEditorWindow(string name)", - "start_line": 137, - "end_line": 162, - "type": "CONSTRUCTOR", - "content_hash": "69f27d6704119775" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.LoadHighlightingTheme()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.LoadHighlightingTheme()", - "start_line": 163, - "end_line": 172, - "type": "METHOD", - "content_hash": "0ccf97db078be7ca" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ThemeSavedCallback(bool success, string message)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ThemeSavedCallback(bool success, string message)", - "start_line": 173, - "end_line": 180, - "type": "METHOD", - "content_hash": "3d77a1a43e0cfe86" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ToCRLF(string text)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ToCRLF(string text)", - "start_line": 181, - "end_line": 185, - "type": "METHOD", - "content_hash": "95344b05d2b4638d" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnCodeChanged(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnCodeChanged(object? sender, EventArgs e)", - "start_line": 186, - "end_line": 191, - "type": "METHOD", - "content_hash": "c8b5564acbe1f202" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnClosing(object sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnClosing(object sender, CancelEventArgs e)", - "start_line": 192, - "end_line": 207, - "type": "METHOD", - "content_hash": "e6419f6ac1d59419" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnTextAreaTextEntered(object sender, TextCompositionEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnTextAreaTextEntered(object sender, TextCompositionEventArgs e)", - "start_line": 208, - "end_line": 232, - "type": "METHOD", - "content_hash": "a15e494660357521" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetLineAndPosAtCaretPosition()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetLineAndPosAtCaretPosition()", - "start_line": 233, - "end_line": 265, - "type": "METHOD", - "content_hash": "2dc3f81eb836b9d4" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursor(string xml, int offset, bool onlyAllowInside = false)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursor(string xml, int offset, bool onlyAllowInside = false)", - "start_line": 272, - "end_line": 316, - "type": "METHOD", - "content_hash": "482c51384b2c242c" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursorNoSpaces(string xml, int offset)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursorNoSpaces(string xml, int offset)", - "start_line": 320, - "end_line": 338, - "type": "METHOD", - "content_hash": "472700569b9edd45" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowAttributesForElementName()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowAttributesForElementName()", - "start_line": 344, - "end_line": 376, - "type": "METHOD", - "content_hash": "d62fd5defaf5da93" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.AddEndTag()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.AddEndTag()", - "start_line": 377, - "end_line": 399, - "type": "METHOD", - "content_hash": "7e4a3ae34ee369db" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenElementAutoComplete()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenElementAutoComplete()", - "start_line": 400, - "end_line": 409, - "type": "METHOD", - "content_hash": "ee7f1b98ad7abfb5" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenAttributeAutoComplete()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenAttributeAutoComplete()", - "start_line": 410, - "end_line": 434, - "type": "METHOD", - "content_hash": "8e30a68e559e6e6a" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenTypeValueAutoComplete(string typeName)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenTypeValueAutoComplete(string typeName)", - "start_line": 435, - "end_line": 448, - "type": "METHOD", - "content_hash": "35f39c07ed0aad28" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenPropertyElementAutoComplete()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenPropertyElementAutoComplete()", - "start_line": 449, - "end_line": 473, - "type": "METHOD", - "content_hash": "014ba7fbbf82f3cb" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CloseCompletionWindow()": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CloseCompletionWindow()", - "start_line": 474, - "end_line": 482, - "type": "METHOD", - "content_hash": "4df67cf529f8ff3e" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowCompletionWindow(List completionData)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowCompletionWindow(List completionData)", - "start_line": 483, - "end_line": 499, - "type": "METHOD", - "content_hash": "04489cf6553bddd5" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData", - "start_line": 501, - "end_line": 525, - "type": "CLASS", - "content_hash": "166dc732819b90c4" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.ElementCompletionData(string text)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.ElementCompletionData(string text)", - "start_line": 503, - "end_line": 507, - "type": "CONSTRUCTOR", - "content_hash": "d37780dc370c6672" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "start_line": 519, - "end_line": 524, - "type": "METHOD", - "content_hash": "baf087d18dde8060" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData", - "start_line": 526, - "end_line": 555, - "type": "CLASS", - "content_hash": "cb032473afa7462e" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.AttributeCompletionData(string text, Action openValueAutoCompleteAction)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.AttributeCompletionData(string text, Action openValueAutoCompleteAction)", - "start_line": 530, - "end_line": 535, - "type": "CONSTRUCTOR", - "content_hash": "73a191bcfb91cc91" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "start_line": 547, - "end_line": 554, - "type": "METHOD", - "content_hash": "8acda803090db938" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData", - "start_line": 556, - "end_line": 580, - "type": "CLASS", - "content_hash": "3a70d287c3375b75" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.TypeValueCompletionData(string text)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.TypeValueCompletionData(string text)", - "start_line": 558, - "end_line": 562, - "type": "CONSTRUCTOR", - "content_hash": "05838c0e600b15a5" - }, - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)": { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "start_line": 574, - "end_line": 579, - "type": "METHOD", - "content_hash": "baf087d18dde8060" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow", - "start_line": 36, - "end_line": 143, - "type": "CLASS", - "content_hash": "dd4dc6c6dfec74f8" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()", - "start_line": 52, - "end_line": 77, - "type": "CONSTRUCTOR", - "content_hash": "c2508b3b028bf972" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.NextPage()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.NextPage()", - "start_line": 78, - "end_line": 93, - "type": "METHOD", - "content_hash": "b8c2b1a250fbc694" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.BackPage()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.BackPage()", - "start_line": 94, - "end_line": 106, - "type": "METHOD", - "content_hash": "5bd21c800aa27ff9" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow_Closing(object? sender, CancelEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow_Closing(object? sender, CancelEventArgs e)", - "start_line": 107, - "end_line": 117, - "type": "METHOD", - "content_hash": "735b2bf9681ca1ff" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetNextButtonText(string text)": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetNextButtonText(string text)", - "start_line": 118, - "end_line": 119, - "type": "METHOD", - "content_hash": "c1cd47b21bb5dd57" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetButtonEnabled(string type, bool state)": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetButtonEnabled(string type, bool state)", - "start_line": 120, - "end_line": 121, - "type": "METHOD", - "content_hash": "3747f587d53cc314" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetFrame()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetFrame()", - "start_line": 124, - "end_line": 125, - "type": "METHOD", - "content_hash": "5d5a1fa66eefda78" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetNavigation()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetNavigation()", - "start_line": 126, - "end_line": 127, - "type": "METHOD", - "content_hash": "19d27f38aed6a3d1" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.Navigate(Type pageType)": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "start_line": 128, - "end_line": 134, - "type": "METHOD", - "content_hash": "7b188813854b5a6a" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "start_line": 135, - "end_line": 136, - "type": "METHOD", - "content_hash": "b3bc088e818db1bc" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.ShowWindow()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.ShowWindow()", - "start_line": 137, - "end_line": 138, - "type": "METHOD", - "content_hash": "d864f225398b7a2c" - }, - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.CloseWindow()": { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.CloseWindow()", - "start_line": 139, - "end_line": 140, - "type": "METHOD", - "content_hash": "d3a3efbb4aea7cf0" - }, - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage", - "start_line": 9, - "end_line": 36, - "type": "CLASS", - "content_hash": "2cd1da8856648b17" - }, - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.CompletionPage()": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.CompletionPage()", - "start_line": 12, - "end_line": 26, - "type": "CONSTRUCTOR", - "content_hash": "779581a867d18e09" - }, - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.UiPage_Loaded(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.UiPage_Loaded(object sender, RoutedEventArgs e)", - "start_line": 27, - "end_line": 35, - "type": "METHOD", - "content_hash": "854238656bb11a64" - }, - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage", - "start_line": 11, - "end_line": 39, - "type": "CLASS", - "content_hash": "740f486c8fe5d353" - }, - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.InstallPage()": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.InstallPage()", - "start_line": 15, - "end_line": 27, - "type": "CONSTRUCTOR", - "content_hash": "5a801efc2754756e" - }, - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.UiPage_Loaded(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.UiPage_Loaded(object sender, RoutedEventArgs e)", - "start_line": 28, - "end_line": 36, - "type": "METHOD", - "content_hash": "c105801559acdaa2" - }, - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()", - "start_line": 37, - "end_line": 38, - "type": "METHOD", - "content_hash": "b2325defabc9f7a8" - }, - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage", - "start_line": 9, - "end_line": 33, - "type": "CLASS", - "content_hash": "70de73a856a3c83c" - }, - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.WelcomePage()": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.WelcomePage()", - "start_line": 13, - "end_line": 24, - "type": "CONSTRUCTOR", - "content_hash": "3087b4e8dbdafe0b" - }, - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.UiPage_Loaded(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.UiPage_Loaded(object sender, RoutedEventArgs e)", - "start_line": 25, - "end_line": 32, - "type": "METHOD", - "content_hash": "5565f8b7f10d8da3" - }, - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage", - "start_line": 10, - "end_line": 29, - "type": "CLASS", - "content_hash": "d75a47a3a04a564a" - }, - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.AppearancePage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.AppearancePage()", - "start_line": 12, - "end_line": 17, - "type": "CONSTRUCTOR", - "content_hash": "7574e40b4b0c4fee" - }, - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.CustomThemeSelection(object sender, SelectionChangedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.CustomThemeSelection(object sender, SelectionChangedEventArgs e)", - "start_line": 18, - "end_line": 28, - "type": "METHOD", - "content_hash": "396a240bd258f666" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage", - "start_line": 13, - "end_line": 21, - "type": "CLASS", - "content_hash": "255d5a514e9d740e" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage.BloxstrapPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage.BloxstrapPage()", - "start_line": 15, - "end_line": 20, - "type": "CONSTRUCTOR", - "content_hash": "3d10ed048e450aea" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage", - "start_line": 23, - "end_line": 36, - "type": "CLASS", - "content_hash": "6247ecd84bbf4949" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.BehaviourPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.BehaviourPage()", - "start_line": 25, - "end_line": 30, - "type": "CONSTRUCTOR", - "content_hash": "9b1799e3418d270d" - }, - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.ToggleSwitch_Checked(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.ToggleSwitch_Checked(object sender, RoutedEventArgs e)", - "start_line": 31, - "end_line": 35, - "type": "METHOD", - "content_hash": "f943eafe948f6135" - }, - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage", - "start_line": 10, - "end_line": 25, - "type": "CLASS", - "content_hash": "042620391eb64ad8" - }, - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.IntegrationsPage()": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.IntegrationsPage()", - "start_line": 12, - "end_line": 17, - "type": "CONSTRUCTOR", - "content_hash": "1d9eef2dc1ae0cd1" - }, - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs|Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.CustomIntegrationSelection(object sender, SelectionChangedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.CustomIntegrationSelection(object sender, SelectionChangedEventArgs e)", - "start_line": 18, - "end_line": 24, - "type": "METHOD", - "content_hash": "3d7bce3fdb3f65e9" - }, - "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs|Bloxstrap.UI.ViewModels.About.AboutViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.About.AboutViewModel", - "start_line": 5, - "end_line": 17, - "type": "CLASS", - "content_hash": "3736cf5aec77d519" - }, - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.About.SupportersViewModel", - "start_line": 5, - "end_line": 68, - "type": "CLASS", - "content_hash": "673c99d857c75dc5" - }, - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.SupportersViewModel()": { - "file_path": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.About.SupportersViewModel.SupportersViewModel()", - "start_line": 17, - "end_line": 24, - "type": "CONSTRUCTOR", - "content_hash": "57d57f46b33b239c" - }, - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.OnWindowResize(object sender, SizeChangedEventArgs e)": { - "file_path": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.About.SupportersViewModel.OnWindowResize(object sender, SizeChangedEventArgs e)", - "start_line": 25, - "end_line": 38, - "type": "METHOD", - "content_hash": "97b4470242f0f82d" - }, - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()": { - "file_path": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()", - "start_line": 39, - "end_line": 67, - "type": "METHOD", - "content_hash": "8e08e50538687b29" - }, - "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel", - "start_line": 10, - "end_line": 68, - "type": "CLASS", - "content_hash": "8381ed8508f066fc" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel", - "start_line": 12, - "end_line": 32, - "type": "CLASS", - "content_hash": "68bb43a3ac1ef4a4" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel.SetLocale()": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel.SetLocale()", - "start_line": 22, - "end_line": 31, - "type": "METHOD", - "content_hash": "770c5e6557291e80" - }, - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs|Bloxstrap.UI.ViewModels.Installer.CompletionViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel", - "start_line": 11, - "end_line": 23, - "type": "CLASS", - "content_hash": "ca9a368196f8e61b" - }, - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs|Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchSettings()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchSettings()", - "start_line": 19, - "end_line": 20, - "type": "METHOD", - "content_hash": "3041fdadd32b47f6" - }, - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs|Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchRoblox()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchRoblox()", - "start_line": 21, - "end_line": 22, - "type": "METHOD", - "content_hash": "2063cea9064bbaab" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.InstallViewModel", - "start_line": 7, - "end_line": 100, - "type": "CLASS", - "content_hash": "126def8bd86bf986" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.InstallViewModel()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.InstallViewModel()", - "start_line": 61, - "end_line": 65, - "type": "CONSTRUCTOR", - "content_hash": "a71387da87f3d431" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "start_line": 66, - "end_line": 80, - "type": "METHOD", - "content_hash": "4c3f37e009ace403" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.BrowseInstallLocation()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.BrowseInstallLocation()", - "start_line": 81, - "end_line": 91, - "type": "METHOD", - "content_hash": "bfeb4480e32866ec" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.ResetInstallLocation()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.ResetInstallLocation()", - "start_line": 92, - "end_line": 97, - "type": "METHOD", - "content_hash": "73d88a5a44edce56" - }, - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.OpenFolder()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.OpenFolder()", - "start_line": 98, - "end_line": 99, - "type": "METHOD", - "content_hash": "87cbf0af46581c8d" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel", - "start_line": 6, - "end_line": 52, - "type": "CLASS", - "content_hash": "150e4e1ce37e1adb" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)", - "start_line": 26, - "end_line": 39, - "type": "METHOD", - "content_hash": "f83f47063edb8c56" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)", - "start_line": 40, - "end_line": 45, - "type": "METHOD", - "content_hash": "5a4dd549f010177e" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.BackPage()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.BackPage()", - "start_line": 46, - "end_line": 47, - "type": "METHOD", - "content_hash": "76fb035922ecb99a" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.NextPage()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.NextPage()", - "start_line": 48, - "end_line": 49, - "type": "METHOD", - "content_hash": "b4681314394620e8" - }, - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.CloseWindow()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.CloseWindow()", - "start_line": 50, - "end_line": 51, - "type": "METHOD", - "content_hash": "da9d9c726d99a9f1" - }, - "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel", - "start_line": 3, - "end_line": 38, - "type": "CLASS", - "content_hash": "67eddaf0a64f570a" - }, - "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()": { - "file_path": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()", - "start_line": 19, - "end_line": 37, - "type": "METHOD", - "content_hash": "830f88a29377c2fa" - }, - "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel", - "start_line": 5, - "end_line": 10, - "type": "CLASS", - "content_hash": "31dfead91b494efd" - }, - "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)": { - "file_path": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "start_line": 8, - "end_line": 9, - "type": "METHOD", - "content_hash": "ed6edc2e0d721b93" - }, - "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BehaviourViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.BehaviourViewModel", - "start_line": 3, - "end_line": 25, - "type": "CLASS", - "content_hash": "c205c93d23475814" - }, - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel", - "start_line": 9, - "end_line": 113, - "type": "CLASS", - "content_hash": "3b86bfadab439eb4" - }, - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.ExportData()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.ExportData()", - "start_line": 39, - "end_line": 84, - "type": "METHOD", - "content_hash": "0e222c9cf358117e" - }, - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)", - "start_line": 85, - "end_line": 112, - "type": "METHOD", - "content_hash": "259a383190b495a8" - }, - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel", - "start_line": 10, - "end_line": 137, - "type": "CLASS", - "content_hash": "3c5b4938fd90d951" - }, - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.AddIntegration()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.AddIntegration()", - "start_line": 18, - "end_line": 30, - "type": "METHOD", - "content_hash": "e6f212a0f723e598" - }, - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.DeleteIntegration()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.DeleteIntegration()", - "start_line": 31, - "end_line": 46, - "type": "METHOD", - "content_hash": "b23a13f61c8767c1" - }, - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.BrowseIntegrationLocation()": { - "file_path": "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.BrowseIntegrationLocation()", - "start_line": 47, - "end_line": 64, - "type": "METHOD", - "content_hash": "61f22b97e2cb115c" - }, - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator": { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "qualified_name": "Bloxstrap.Utility.PathValidator", - "start_line": 9, - "end_line": 104, - "type": "CLASS", - "content_hash": "5f9635b39acb220c" - }, - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.ValidationResult": { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "qualified_name": "Bloxstrap.Utility.PathValidator.ValidationResult", - "start_line": 11, - "end_line": 18, - "type": "ENUM", - "content_hash": "bd594a762f49e91d" - }, - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.GetInvalidPathChars()": { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "qualified_name": "Bloxstrap.Utility.PathValidator.GetInvalidPathChars()", - "start_line": 53, - "end_line": 64, - "type": "METHOD", - "content_hash": "8e23bc3316f0cae4" - }, - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)": { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "qualified_name": "Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)", - "start_line": 65, - "end_line": 76, - "type": "METHOD", - "content_hash": "e8258f420be4a12a" - }, - "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.IsPathValid(string path)": { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "qualified_name": "Bloxstrap.Utility.PathValidator.IsPathValid(string path)", - "start_line": 77, - "end_line": 103, - "type": "METHOD", - "content_hash": "af90a7efe38d39ee" - }, - "Bloxstrap/Exceptions/AssertionException.cs|Bloxstrap.Exceptions.AssertionException": { - "file_path": "Bloxstrap/Exceptions/AssertionException.cs", - "qualified_name": "Bloxstrap.Exceptions.AssertionException", - "start_line": 9, - "end_line": 16, - "type": "CLASS", - "content_hash": "f22f983f49d72aad" - }, - "Bloxstrap/Exceptions/AssertionException.cs|Bloxstrap.Exceptions.AssertionException.AssertionException(string message)": { - "file_path": "Bloxstrap/Exceptions/AssertionException.cs", - "qualified_name": "Bloxstrap.Exceptions.AssertionException.AssertionException(string message)", - "start_line": 11, - "end_line": 15, - "type": "CONSTRUCTOR", - "content_hash": "ceabfd1dbc1a9d51" - }, - "Bloxstrap/Exceptions/InvalidChannelException.cs|Bloxstrap.Exceptions.InvalidChannelException": { - "file_path": "Bloxstrap/Exceptions/InvalidChannelException.cs", - "qualified_name": "Bloxstrap.Exceptions.InvalidChannelException", - "start_line": 3, - "end_line": 10, - "type": "CLASS", - "content_hash": "71facad913b871ac" - }, - "Bloxstrap/Exceptions/InvalidChannelException.cs|Bloxstrap.Exceptions.InvalidChannelException.InvalidChannelException(HttpStatusCode? statusCode)": { - "file_path": "Bloxstrap/Exceptions/InvalidChannelException.cs", - "qualified_name": "Bloxstrap.Exceptions.InvalidChannelException.InvalidChannelException(HttpStatusCode? statusCode)", - "start_line": 7, - "end_line": 9, - "type": "CONSTRUCTOR", - "content_hash": "efd223923bee1d2d" - }, - "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs|Bloxstrap.Exceptions.InvalidHTTPResponseException": { - "file_path": "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs", - "qualified_name": "Bloxstrap.Exceptions.InvalidHTTPResponseException", - "start_line": 9, - "end_line": 13, - "type": "CLASS", - "content_hash": "a65fec36f0dc4109" - }, - "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs|Bloxstrap.Exceptions.InvalidHTTPResponseException.InvalidHTTPResponseException(string message)": { - "file_path": "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs", - "qualified_name": "Bloxstrap.Exceptions.InvalidHTTPResponseException.InvalidHTTPResponseException(string message)", - "start_line": 11, - "end_line": 12, - "type": "CONSTRUCTOR", - "content_hash": "30166fe9824f5692" - }, - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx": { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "qualified_name": "Bloxstrap.Extensions.HttpClientEx", - "start_line": 9, - "end_line": 81, - "type": "CLASS", - "content_hash": "04ea65ca899820c0" - }, - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.GetWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)": { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "qualified_name": "Bloxstrap.Extensions.HttpClientEx.GetWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "start_line": 11, - "end_line": 36, - "type": "METHOD", - "content_hash": "0cf47cc411099997" - }, - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.PostWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)": { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "qualified_name": "Bloxstrap.Extensions.HttpClientEx.PostWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)", - "start_line": 37, - "end_line": 62, - "type": "METHOD", - "content_hash": "0d49c7f78131967b" - }, - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.GetFromJsonWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)": { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "qualified_name": "Bloxstrap.Extensions.HttpClientEx.GetFromJsonWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "start_line": 63, - "end_line": 71, - "type": "METHOD", - "content_hash": "10791236365d4c2c" - }, - "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.PostFromJsonWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)": { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "qualified_name": "Bloxstrap.Extensions.HttpClientEx.PostFromJsonWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)", - "start_line": 72, - "end_line": 80, - "type": "METHOD", - "content_hash": "f3bce0a48737d585" - }, - "Bloxstrap/Extensions/ResourceManagerEx.cs|Bloxstrap.Extensions.ResourceManagerEx": { - "file_path": "Bloxstrap/Extensions/ResourceManagerEx.cs", - "qualified_name": "Bloxstrap.Extensions.ResourceManagerEx", - "start_line": 5, - "end_line": 24, - "type": "CLASS", - "content_hash": "49d3f9bbaecb602a" - }, - "Bloxstrap/Extensions/ResourceManagerEx.cs|Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name)": { - "file_path": "Bloxstrap/Extensions/ResourceManagerEx.cs", - "qualified_name": "Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name)", - "start_line": 11, - "end_line": 12, - "type": "METHOD", - "content_hash": "268cbfdfdc6f3d5f" - }, - "Bloxstrap/Extensions/ResourceManagerEx.cs|Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name, CultureInfo? culture)": { - "file_path": "Bloxstrap/Extensions/ResourceManagerEx.cs", - "qualified_name": "Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name, CultureInfo? culture)", - "start_line": 17, - "end_line": 23, - "type": "METHOD", - "content_hash": "f97cbafafdb4e090" - }, - "Bloxstrap/Extensions/ServerTypeEx.cs|Bloxstrap.Extensions.ServerTypeEx": { - "file_path": "Bloxstrap/Extensions/ServerTypeEx.cs", - "qualified_name": "Bloxstrap.Extensions.ServerTypeEx", - "start_line": 3, - "end_line": 13, - "type": "CLASS", - "content_hash": "984e0476d009cc8e" - }, - "Bloxstrap/Extensions/ServerTypeEx.cs|Bloxstrap.Extensions.ServerTypeEx.ToTranslatedString(this ServerType value)": { - "file_path": "Bloxstrap/Extensions/ServerTypeEx.cs", - "qualified_name": "Bloxstrap.Extensions.ServerTypeEx.ToTranslatedString(this ServerType value)", - "start_line": 5, - "end_line": 12, - "type": "METHOD", - "content_hash": "cd03247b31996611" - }, - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher": { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher", - "start_line": 3, - "end_line": 392, - "type": "CLASS", - "content_hash": "f31504f98450092f" - }, - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ActivityWatcher(string? logFile = null)": { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher.ActivityWatcher(string? logFile = null)", - "start_line": 53, - "end_line": 58, - "type": "CONSTRUCTOR", - "content_hash": "7fb13769d5f76413" - }, - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.Start()": { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher.Start()", - "start_line": 59, - "end_line": 129, - "type": "METHOD", - "content_hash": "37879fb4617b4d83" - }, - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)": { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "start_line": 130, - "end_line": 385, - "type": "METHOD", - "content_hash": "2ac1522fb90c516f" - }, - "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.Dispose()": { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher.Dispose()", - "start_line": 386, - "end_line": 391, - "type": "METHOD", - "content_hash": "1bcfce2df366834c" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence", - "start_line": 7, - "end_line": 489, - "type": "CLASS", - "content_hash": "6a218b464ddd85f5" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "start_line": 24, - "end_line": 55, - "type": "CONSTRUCTOR", - "content_hash": "c1873547f0aaf552" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.ProcessRPCMessage(Message message, bool implicitUpdate = true)": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.ProcessRPCMessage(Message message, bool implicitUpdate = true)", - "start_line": 56, - "end_line": 84, - "type": "METHOD", - "content_hash": "1173ab443c60dcb9" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.AddToThumbnailCache(ulong id, string? url)": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.AddToThumbnailCache(ulong id, string? url)", - "start_line": 85, - "end_line": 90, - "type": "METHOD", - "content_hash": "21539b59e1a3688d" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.UpdatePresenceIconsAsync(ulong? smallImg, ulong? largeImg, bool implicitUpdate, CancellationToken token)": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.UpdatePresenceIconsAsync(ulong? smallImg, ulong? largeImg, bool implicitUpdate, CancellationToken token)", - "start_line": 91, - "end_line": 164, - "type": "METHOD", - "content_hash": "463b5948be502e59" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.ProcessSetRichPresence(Message message, bool implicitUpdate)": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.ProcessSetRichPresence(Message message, bool implicitUpdate)", - "start_line": 165, - "end_line": 311, - "type": "METHOD", - "content_hash": "267aa7e489cd2d8c" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "start_line": 312, - "end_line": 323, - "type": "METHOD", - "content_hash": "19f8132f4d0e20c4" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "start_line": 324, - "end_line": 429, - "type": "METHOD", - "content_hash": "2baf4651c1a50227" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.GetButtons()": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.GetButtons()", - "start_line": 430, - "end_line": 463, - "type": "METHOD", - "content_hash": "caec375c80b13488" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.UpdatePresence()": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.UpdatePresence()", - "start_line": 464, - "end_line": 480, - "type": "METHOD", - "content_hash": "8e5e0a61f66b367e" - }, - "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.Dispose()": { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence.Dispose()", - "start_line": 481, - "end_line": 488, - "type": "METHOD", - "content_hash": "5d2e179ba65cf808" - }, - "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs|Bloxstrap.Models.APIs.Roblox.ThumbnailRequest": { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs", - "qualified_name": "Bloxstrap.Models.APIs.Roblox.ThumbnailRequest", - "start_line": 3, - "end_line": 34, - "type": "CLASS", - "content_hash": "b8dafd5aa1abcd32" - }, - "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs|Bloxstrap.Models.Attributes.BuildMetadataAttribute": { - "file_path": "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs", - "qualified_name": "Bloxstrap.Models.Attributes.BuildMetadataAttribute", - "start_line": 4, - "end_line": 19, - "type": "CLASS", - "content_hash": "e5614692eae21a7e" - }, - "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs|Bloxstrap.Models.Attributes.BuildMetadataAttribute.BuildMetadataAttribute(string timestamp, string machine, string commitHash, string commitRef)": { - "file_path": "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs", - "qualified_name": "Bloxstrap.Models.Attributes.BuildMetadataAttribute.BuildMetadataAttribute(string timestamp, string machine, string commitHash, string commitRef)", - "start_line": 11, - "end_line": 18, - "type": "CONSTRUCTOR", - "content_hash": "d3c268f1aecb0768" - }, - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData": { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ActivityData", - "start_line": 10, - "end_line": 158, - "type": "CLASS", - "content_hash": "d3141fa29a30fbc3" - }, - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.GetInviteDeeplink(bool launchData = true)": { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ActivityData.GetInviteDeeplink(bool launchData = true)", - "start_line": 85, - "end_line": 99, - "type": "METHOD", - "content_hash": "3045688fead76679" - }, - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()": { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "start_line": 100, - "end_line": 148, - "type": "METHOD", - "content_hash": "34097224d4852b5f" - }, - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.ToString()": { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ActivityData.ToString()", - "start_line": 149, - "end_line": 150, - "type": "METHOD", - "content_hash": "b96d92ce611d3704" - }, - "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.RejoinServer()": { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "qualified_name": "Bloxstrap.Models.Entities.ActivityData.RejoinServer()", - "start_line": 151, - "end_line": 157, - "type": "METHOD", - "content_hash": "cb1913110061408d" - }, - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails": { - "file_path": "Bloxstrap/Models/Entities/UniverseDetails.cs", - "qualified_name": "Bloxstrap.Models.Entities.UniverseDetails", - "start_line": 6, - "end_line": 53, - "type": "CLASS", - "content_hash": "cf3140d3f9cdbe96" - }, - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)": { - "file_path": "Bloxstrap/Models/Entities/UniverseDetails.cs", - "qualified_name": "Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)", - "start_line": 17, - "end_line": 26, - "type": "METHOD", - "content_hash": "e0a3facccf794e4f" - }, - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.FetchSingle(long id)": { - "file_path": "Bloxstrap/Models/Entities/UniverseDetails.cs", - "qualified_name": "Bloxstrap.Models.Entities.UniverseDetails.FetchSingle(long id)", - "start_line": 27, - "end_line": 28, - "type": "METHOD", - "content_hash": "3f0c1d92bc45609d" - }, - "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)": { - "file_path": "Bloxstrap/Models/Entities/UniverseDetails.cs", - "qualified_name": "Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)", - "start_line": 29, - "end_line": 52, - "type": "METHOD", - "content_hash": "29962d5dc9ea294d" - }, - "Bloxstrap/Models/Entities/UserDetails.cs|Bloxstrap.Models.Entities.UserDetails": { - "file_path": "Bloxstrap/Models/Entities/UserDetails.cs", - "qualified_name": "Bloxstrap.Models.Entities.UserDetails", - "start_line": 5, - "end_line": 42, - "type": "CLASS", - "content_hash": "20dc55873e1e8c46" - }, - "Bloxstrap/Models/Entities/UserDetails.cs|Bloxstrap.Models.Entities.UserDetails.Fetch(long id)": { - "file_path": "Bloxstrap/Models/Entities/UserDetails.cs", - "qualified_name": "Bloxstrap.Models.Entities.UserDetails.Fetch(long id)", - "start_line": 13, - "end_line": 41, - "type": "METHOD", - "content_hash": "e71bffcfb162439b" - }, - "Bloxstrap/Models/ThumbnailCacheEntry.cs|Bloxstrap.Models.ThumbnailCacheEntry": { - "file_path": "Bloxstrap/Models/ThumbnailCacheEntry.cs", - "qualified_name": "Bloxstrap.Models.ThumbnailCacheEntry", - "start_line": 3, - "end_line": 8, - "type": "CLASS", - "content_hash": "0f1f484560c96280" - }, - "Bloxstrap/Models/WatcherData.cs|Bloxstrap.Models.WatcherData": { - "file_path": "Bloxstrap/Models/WatcherData.cs", - "qualified_name": "Bloxstrap.Models.WatcherData", - "start_line": 3, - "end_line": 11, - "type": "CLASS", - "content_hash": "d9b93fb8d263ec8a" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow", - "start_line": 10, - "end_line": 38, - "type": "CLASS", - "content_hash": "9da065c9b7182987" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.MainWindow()": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.MainWindow()", - "start_line": 12, - "end_line": 21, - "type": "CONSTRUCTOR", - "content_hash": "39441105008815ab" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetFrame()": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetFrame()", - "start_line": 24, - "end_line": 25, - "type": "METHOD", - "content_hash": "5d5a1fa66eefda78" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetNavigation()": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetNavigation()", - "start_line": 26, - "end_line": 27, - "type": "METHOD", - "content_hash": "19d27f38aed6a3d1" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.Navigate(Type pageType)": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "start_line": 28, - "end_line": 29, - "type": "METHOD", - "content_hash": "68e4f88e7e84017c" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "start_line": 30, - "end_line": 31, - "type": "METHOD", - "content_hash": "b3bc088e818db1bc" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.ShowWindow()": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.ShowWindow()", - "start_line": 32, - "end_line": 33, - "type": "METHOD", - "content_hash": "d864f225398b7a2c" - }, - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.CloseWindow()": { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.CloseWindow()", - "start_line": 34, - "end_line": 35, - "type": "METHOD", - "content_hash": "d3a3efbb4aea7cf0" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer", - "start_line": 16, - "end_line": 150, - "type": "CLASS", - "content_hash": "31c4ad6100c84d47" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.MenuContainer(Watcher watcher)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.MenuContainer(Watcher watcher)", - "start_line": 28, - "end_line": 49, - "type": "CONSTRUCTOR", - "content_hash": "a88886ff0ba2e5a5" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()", - "start_line": 50, - "end_line": 63, - "type": "METHOD", - "content_hash": "709fc6d85a7d4d5b" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnLogOpen(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnLogOpen(object? sender, EventArgs e)", - "start_line": 64, - "end_line": 66, - "type": "METHOD", - "content_hash": "b459e695c4dfc117" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameJoin(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameJoin(object? sender, EventArgs e)", - "start_line": 67, - "end_line": 79, - "type": "METHOD", - "content_hash": "52104d668131d0e0" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameLeave(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameLeave(object? sender, EventArgs e)", - "start_line": 80, - "end_line": 89, - "type": "METHOD", - "content_hash": "52b42c9481b3b753" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Loaded(object? sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Loaded(object? sender, RoutedEventArgs e)", - "start_line": 90, - "end_line": 102, - "type": "METHOD", - "content_hash": "7f118b43e1522bd9" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Closed(object sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Closed(object sender, EventArgs e)", - "start_line": 103, - "end_line": 104, - "type": "METHOD", - "content_hash": "8cec1027baecb38d" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)", - "start_line": 105, - "end_line": 106, - "type": "METHOD", - "content_hash": "eaf606b1d36f803d" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.InviteDeeplinkMenuItem_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.InviteDeeplinkMenuItem_Click(object sender, RoutedEventArgs e)", - "start_line": 107, - "end_line": 108, - "type": "METHOD", - "content_hash": "ba48e2be22ecbdd6" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ServerDetailsMenuItem_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ServerDetailsMenuItem_Click(object sender, RoutedEventArgs e)", - "start_line": 109, - "end_line": 110, - "type": "METHOD", - "content_hash": "1cce3ef6ebfb8362" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.LogTracerMenuItem_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.LogTracerMenuItem_Click(object sender, RoutedEventArgs e)", - "start_line": 111, - "end_line": 118, - "type": "METHOD", - "content_hash": "dd5c0936dec74701" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e)", - "start_line": 119, - "end_line": 132, - "type": "METHOD", - "content_hash": "6c6b4a68a04b5be9" - }, - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.JoinLastServerMenuItem_Click(object sender, RoutedEventArgs e)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.JoinLastServerMenuItem_Click(object sender, RoutedEventArgs e)", - "start_line": 133, - "end_line": 149, - "type": "METHOD", - "content_hash": "1d46cdb85004aa06" - }, - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory", - "start_line": 9, - "end_line": 21, - "type": "CLASS", - "content_hash": "2f910a326a9a01a5" - }, - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory.ServerHistory(ActivityWatcher watcher)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory.ServerHistory(ActivityWatcher watcher)", - "start_line": 11, - "end_line": 20, - "type": "CONSTRUCTOR", - "content_hash": "46ad65f5aa16c0ff" - }, - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation", - "start_line": 23, - "end_line": 31, - "type": "CLASS", - "content_hash": "b123a9c1c5407995" - }, - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)": { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)", - "start_line": 25, - "end_line": 30, - "type": "CONSTRUCTOR", - "content_hash": "dc551cce5987d786" - }, - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog", - "start_line": 21, - "end_line": 33, - "type": "CLASS", - "content_hash": "62e0dec266040c11" - }, - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog.LanguageSelectorDialog()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog.LanguageSelectorDialog()", - "start_line": 23, - "end_line": 32, - "type": "CONSTRUCTOR", - "content_hash": "e8a9e1446c4bffd1" - }, - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog", - "start_line": 23, - "end_line": 41, - "type": "CLASS", - "content_hash": "afa319a07213aba0" - }, - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog.LaunchMenuDialog()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog.LaunchMenuDialog()", - "start_line": 27, - "end_line": 40, - "type": "CONSTRUCTOR", - "content_hash": "4826b216633daeaa" - }, - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog", - "start_line": 23, - "end_line": 44, - "type": "CLASS", - "content_hash": "edde4568be5bd18e" - }, - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog.UninstallerDialog()": { - "file_path": "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs", - "qualified_name": "Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog.UninstallerDialog()", - "start_line": 29, - "end_line": 43, - "type": "CONSTRUCTOR", - "content_hash": "d5401eb86e1b435c" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper": { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper", - "start_line": 7, - "end_line": 147, - "type": "CLASS", - "content_hash": "e2742707579c3b4b" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.NotifyIconWrapper(Watcher watcher)": { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper.NotifyIconWrapper(Watcher watcher)", - "start_line": 23, - "end_line": 44, - "type": "CONSTRUCTOR", - "content_hash": "e981497ff1f69c4c" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.MouseClickEventHandler(object? sender, MouseEventArgs e)": { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper.MouseClickEventHandler(object? sender, MouseEventArgs e)", - "start_line": 46, - "end_line": 54, - "type": "METHOD", - "content_hash": "24778a5b00b7041e" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)": { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)", - "start_line": 57, - "end_line": 91, - "type": "METHOD", - "content_hash": "c8462af5371c6202" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.ShowAlert(string caption, string message, int duration, EventHandler? clickHandler)": { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper.ShowAlert(string caption, string message, int duration, EventHandler? clickHandler)", - "start_line": 94, - "end_line": 131, - "type": "METHOD", - "content_hash": "643e2f08fc73bf0f" - }, - "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.Dispose()": { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper.Dispose()", - "start_line": 132, - "end_line": 146, - "type": "METHOD", - "content_hash": "4c092a11d89da19b" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel", - "start_line": 7, - "end_line": 94, - "type": "CLASS", - "content_hash": "5f3562e7287a6791" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.ServerHistoryViewModel(ActivityWatcher activityWatcher)": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.ServerHistoryViewModel(ActivityWatcher activityWatcher)", - "start_line": 21, - "end_line": 29, - "type": "CONSTRUCTOR", - "content_hash": "024cf8d84b3ef8cd" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "start_line": 30, - "end_line": 91, - "type": "METHOD", - "content_hash": "47e0a55490bb21bf" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.RequestClose()": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.RequestClose()", - "start_line": 92, - "end_line": 93, - "type": "METHOD", - "content_hash": "87b75b63ce742fbd" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel", - "start_line": 8, - "end_line": 44, - "type": "CLASS", - "content_hash": "64be4eea4633b7d8" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.ServerInformationViewModel(Watcher watcher)": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.ServerInformationViewModel(Watcher watcher)", - "start_line": 22, - "end_line": 29, - "type": "CONSTRUCTOR", - "content_hash": "03905902da70bc8a" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.QueryServerLocation()": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.QueryServerLocation()", - "start_line": 30, - "end_line": 41, - "type": "METHOD", - "content_hash": "545650fd68bf248e" - }, - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.CopyInstanceId()": { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.CopyInstanceId()", - "start_line": 42, - "end_line": 43, - "type": "METHOD", - "content_hash": "b1af932c08e83559" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel", - "start_line": 9, - "end_line": 31, - "type": "CLASS", - "content_hash": "504002fee78f89ef" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchSettings()": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchSettings()", - "start_line": 23, - "end_line": 24, - "type": "METHOD", - "content_hash": "3041fdadd32b47f6" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRoblox()": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRoblox()", - "start_line": 25, - "end_line": 26, - "type": "METHOD", - "content_hash": "5fa935d9b3e179b1" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRobloxStudio()": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRobloxStudio()", - "start_line": 27, - "end_line": 28, - "type": "METHOD", - "content_hash": "829b9756c658c62b" - }, - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchAbout()": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchAbout()", - "start_line": 29, - "end_line": 30, - "type": "METHOD", - "content_hash": "44d534c2f62c80ca" - }, - "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel", - "start_line": 8, - "end_line": 24, - "type": "CLASS", - "content_hash": "3462d2f256ca6d93" - }, - "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel.ConfirmUninstall()": { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs", - "qualified_name": "Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel.ConfirmUninstall()", - "start_line": 22, - "end_line": 23, - "type": "METHOD", - "content_hash": "207262dfb31999a8" - }, - "Bloxstrap/Utility/FixedCapacityList.cs|Bloxstrap.Utility.FixedCapacityList.FixedSizeList": { - "file_path": "Bloxstrap/Utility/FixedCapacityList.cs", - "qualified_name": "Bloxstrap.Utility.FixedCapacityList.FixedSizeList", - "start_line": 9, - "end_line": 25, - "type": "CLASS", - "content_hash": "e0b1525b5ca7067e" - }, - "Bloxstrap/Utility/FixedCapacityList.cs|Bloxstrap.Utility.FixedCapacityList.FixedSizeList.FixedSizeList(int size)": { - "file_path": "Bloxstrap/Utility/FixedCapacityList.cs", - "qualified_name": "Bloxstrap.Utility.FixedCapacityList.FixedSizeList.FixedSizeList(int size)", - "start_line": 13, - "end_line": 17, - "type": "CONSTRUCTOR", - "content_hash": "6a30f07d051aca17" - }, - "Bloxstrap/Utility/FixedCapacityList.cs|Bloxstrap.Utility.FixedCapacityList.FixedSizeList.Add(T item)": { - "file_path": "Bloxstrap/Utility/FixedCapacityList.cs", - "qualified_name": "Bloxstrap.Utility.FixedCapacityList.FixedSizeList.Add(T item)", - "start_line": 18, - "end_line": 24, - "type": "METHOD", - "content_hash": "6d20f7161c8b9a3a" - }, - "Bloxstrap/Utility/Http.cs|Bloxstrap.Utility.Http": { - "file_path": "Bloxstrap/Utility/Http.cs", - "qualified_name": "Bloxstrap.Utility.Http", - "start_line": 3, - "end_line": 23, - "type": "CLASS", - "content_hash": "fcade10c9c994bea" - }, - "Bloxstrap/Utility/Http.cs|Bloxstrap.Utility.Http.GetJson(string url)": { - "file_path": "Bloxstrap/Utility/Http.cs", - "qualified_name": "Bloxstrap.Utility.Http.GetJson(string url)", - "start_line": 12, - "end_line": 22, - "type": "METHOD", - "content_hash": "90e24ef88b7b71a0" - }, - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock": { - "file_path": "Bloxstrap/Utility/InterProcessLock.cs", - "qualified_name": "Bloxstrap.Utility.InterProcessLock", - "start_line": 9, - "end_line": 42, - "type": "CLASS", - "content_hash": "c734d8b2cacf69f8" - }, - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)": { - "file_path": "Bloxstrap/Utility/InterProcessLock.cs", - "qualified_name": "Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "start_line": 15, - "end_line": 16, - "type": "CONSTRUCTOR", - "content_hash": "d2b34467575b4015" - }, - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name, TimeSpan timeout)": { - "file_path": "Bloxstrap/Utility/InterProcessLock.cs", - "qualified_name": "Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name, TimeSpan timeout)", - "start_line": 17, - "end_line": 30, - "type": "CONSTRUCTOR", - "content_hash": "dcf13858a6dce68b" - }, - "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.Dispose()": { - "file_path": "Bloxstrap/Utility/InterProcessLock.cs", - "qualified_name": "Bloxstrap.Utility.InterProcessLock.Dispose()", - "start_line": 31, - "end_line": 41, - "type": "METHOD", - "content_hash": "55d7fcfff1d2f1c5" - }, - "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails": { - "file_path": "Bloxstrap/Utility/Thumbnails.cs", - "qualified_name": "Bloxstrap.Utility.Thumbnails", - "start_line": 9, - "end_line": 103, - "type": "CLASS", - "content_hash": "a71b9a0b4048aa99" - }, - "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails.GetThumbnailUrlsAsync(List requests, CancellationToken token)": { - "file_path": "Bloxstrap/Utility/Thumbnails.cs", - "qualified_name": "Bloxstrap.Utility.Thumbnails.GetThumbnailUrlsAsync(List requests, CancellationToken token)", - "start_line": 15, - "end_line": 63, - "type": "METHOD", - "content_hash": "64867e1c6c2d8965" - }, - "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails.GetThumbnailUrlAsync(ThumbnailRequest request, CancellationToken token)": { - "file_path": "Bloxstrap/Utility/Thumbnails.cs", - "qualified_name": "Bloxstrap.Utility.Thumbnails.GetThumbnailUrlAsync(ThumbnailRequest request, CancellationToken token)", - "start_line": 64, - "end_line": 102, - "type": "METHOD", - "content_hash": "587dbb5c3864e8a9" - }, - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher": { - "file_path": "Bloxstrap/Watcher.cs", - "qualified_name": "Bloxstrap.Watcher", - "start_line": 7, - "end_line": 134, - "type": "CLASS", - "content_hash": "804e91483a7d9cd2" - }, - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Watcher()": { - "file_path": "Bloxstrap/Watcher.cs", - "qualified_name": "Bloxstrap.Watcher.Watcher()", - "start_line": 19, - "end_line": 73, - "type": "CONSTRUCTOR", - "content_hash": "03f08ca6f0694e3a" - }, - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.KillRobloxProcess()": { - "file_path": "Bloxstrap/Watcher.cs", - "qualified_name": "Bloxstrap.Watcher.KillRobloxProcess()", - "start_line": 74, - "end_line": 75, - "type": "METHOD", - "content_hash": "d0f1b1a8244ef1bd" - }, - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)": { - "file_path": "Bloxstrap/Watcher.cs", - "qualified_name": "Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)", - "start_line": 76, - "end_line": 103, - "type": "METHOD", - "content_hash": "401cd7be702e6061" - }, - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Run()": { - "file_path": "Bloxstrap/Watcher.cs", - "qualified_name": "Bloxstrap.Watcher.Run()", - "start_line": 104, - "end_line": 123, - "type": "METHOD", - "content_hash": "e53c562aa8a3a801" - }, - "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Dispose()": { - "file_path": "Bloxstrap/Watcher.cs", - "qualified_name": "Bloxstrap.Watcher.Dispose()", - "start_line": 124, - "end_line": 133, - "type": "METHOD", - "content_hash": "1be78aab574d17ea" - }, - "Bloxstrap/Properties/Resources.Designer.cs|Bloxstrap.Properties.Resources.Designer.Resources": { - "file_path": "Bloxstrap/Properties/Resources.Designer.cs", - "qualified_name": "Bloxstrap.Properties.Resources.Designer.Resources", - "start_line": 25, - "end_line": 211, - "type": "CLASS", - "content_hash": "dafd7867822f9ed4" - }, - "Bloxstrap/Properties/Resources.Designer.cs|Bloxstrap.Properties.Resources.Designer.Resources.Resources()": { - "file_path": "Bloxstrap/Properties/Resources.Designer.cs", - "qualified_name": "Bloxstrap.Properties.Resources.Designer.Resources.Resources()", - "start_line": 32, - "end_line": 34, - "type": "CONSTRUCTOR", - "content_hash": "52004c19c93d8fba" - }, - "Bloxstrap/Resources/Strings.Designer.cs|Bloxstrap.Resources.Strings.Designer.Strings": { - "file_path": "Bloxstrap/Resources/Strings.Designer.cs", - "qualified_name": "Bloxstrap.Resources.Strings.Designer.Strings", - "start_line": 25, - "end_line": 3614, - "type": "CLASS", - "content_hash": "7fc6c7c16a358c96" - }, - "Bloxstrap/Resources/Strings.Designer.cs|Bloxstrap.Resources.Strings.Designer.Strings.Strings()": { - "file_path": "Bloxstrap/Resources/Strings.Designer.cs", - "qualified_name": "Bloxstrap.Resources.Strings.Designer.Strings.Strings()", - "start_line": 32, - "end_line": 34, - "type": "CONSTRUCTOR", - "content_hash": "a1668c029164fadf" - }, - "Bloxstrap/UI/Converters/EnumNameConverter.cs|Bloxstrap.UI.Converters.EnumNameConverter": { - "file_path": "Bloxstrap/UI/Converters/EnumNameConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.EnumNameConverter", - "start_line": 12, - "end_line": 51, - "type": "CLASS", - "content_hash": "04afb22b57b03bea" - }, - "Bloxstrap/UI/Converters/EnumNameConverter.cs|Bloxstrap.UI.Converters.EnumNameConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)": { - "file_path": "Bloxstrap/UI/Converters/EnumNameConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.EnumNameConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "start_line": 14, - "end_line": 45, - "type": "METHOD", - "content_hash": "3ab8a150362bc0a4" - }, - "Bloxstrap/UI/Converters/EnumNameConverter.cs|Bloxstrap.UI.Converters.EnumNameConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)": { - "file_path": "Bloxstrap/UI/Converters/EnumNameConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.EnumNameConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)", - "start_line": 46, - "end_line": 50, - "type": "METHOD", - "content_hash": "c0ac07e84391e3ce" - }, - "Bloxstrap/UI/Converters/RangeConverter.cs|Bloxstrap.UI.Converters.RangeConverter": { - "file_path": "Bloxstrap/UI/Converters/RangeConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.RangeConverter", - "start_line": 5, - "end_line": 29, - "type": "CLASS", - "content_hash": "2eb419eabbd43062" - }, - "Bloxstrap/UI/Converters/RangeConverter.cs|Bloxstrap.UI.Converters.RangeConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)": { - "file_path": "Bloxstrap/UI/Converters/RangeConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.RangeConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "start_line": 11, - "end_line": 23, - "type": "METHOD", - "content_hash": "c028929243c99093" - }, - "Bloxstrap/UI/Converters/RangeConverter.cs|Bloxstrap.UI.Converters.RangeConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)": { - "file_path": "Bloxstrap/UI/Converters/RangeConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.RangeConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)", - "start_line": 24, - "end_line": 28, - "type": "METHOD", - "content_hash": "9ef990dd021f0544" - }, - "Bloxstrap/UI/Converters/StringFormatConverter.cs|Bloxstrap.UI.Converters.StringFormatConverter": { - "file_path": "Bloxstrap/UI/Converters/StringFormatConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.StringFormatConverter", - "start_line": 10, - "end_line": 33, - "type": "CLASS", - "content_hash": "cf905b8f428ab5a6" - }, - "Bloxstrap/UI/Converters/StringFormatConverter.cs|Bloxstrap.UI.Converters.StringFormatConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)": { - "file_path": "Bloxstrap/UI/Converters/StringFormatConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.StringFormatConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "start_line": 12, - "end_line": 27, - "type": "METHOD", - "content_hash": "4d2cfe056023f3c1" - }, - "Bloxstrap/UI/Converters/StringFormatConverter.cs|Bloxstrap.UI.Converters.StringFormatConverter.ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)": { - "file_path": "Bloxstrap/UI/Converters/StringFormatConverter.cs", - "qualified_name": "Bloxstrap.UI.Converters.StringFormatConverter.ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)", - "start_line": 28, - "end_line": 32, - "type": "METHOD", - "content_hash": "6c0e8d7e65c5efcd" - } - }, - "components": [ - { - "name": "Core Management & Configuration", - "description": "Acts as the central authority for application state, managing file system paths, FastFlag configurations, and the primary installation logic for the bootstrapper.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Bootstrapper", - "reference_file": "Bloxstrap/Bootstrapper.cs", - "reference_start_line": 30, - "reference_end_line": 1631 - }, - { - "qualified_name": "Bloxstrap.FastFlagManager", - "reference_file": "Bloxstrap/FastFlagManager.cs", - "reference_start_line": 5, - "reference_end_line": 156 - }, - { - "qualified_name": "Bloxstrap.Paths", - "reference_file": "Bloxstrap/Paths.cs", - "reference_start_line": 3, - "reference_end_line": 46 - }, - { - "qualified_name": "Bloxstrap.AppData.RobloxPlayerData", - "reference_file": "Bloxstrap/AppData/RobloxPlayerData.cs", - "reference_start_line": 3, - "reference_end_line": 22 - }, - { - "qualified_name": "Bloxstrap.Logger", - "reference_file": "Bloxstrap/Logger.cs", - "reference_start_line": 5, - "reference_end_line": 148 - } - ], - "source_cluster_ids": [ - "1", - "6", - "9", - "13", - "15", - "16", - "17" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/App.xaml.cs", - "methods": [ - "Bloxstrap.App.xaml.App", - "Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))", - "Bloxstrap.App.xaml.App.GlobalExceptionHandler(object sender, DispatcherUnhandledExceptionEventArgs e)", - "Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)", - "Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "Bloxstrap.App.xaml.App.ConstructBloxstrapWebUrl()", - "Bloxstrap.App.xaml.App.CanSendLogs()", - "Bloxstrap.App.xaml.App.GetLatestRelease()", - "Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "Bloxstrap.App.xaml.App.SendLog()", - "Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/AppData/CommonAppData.cs", - "methods": [ - "Bloxstrap.AppData.CommonAppData", - "Bloxstrap.AppData.CommonAppData.CommonAppData()" - ] - }, - { - "file_path": "Bloxstrap/AppData/IAppData.cs", - "methods": [ - "Bloxstrap.AppData.IAppData" - ] - }, - { - "file_path": "Bloxstrap/AppData/RobloxPlayerData.cs", - "methods": [ - "Bloxstrap.AppData.RobloxPlayerData" - ] - }, - { - "file_path": "Bloxstrap/AppData/RobloxStudioData.cs", - "methods": [ - "Bloxstrap.AppData.RobloxStudioData" - ] - }, - { - "file_path": "Bloxstrap/Bootstrapper.cs", - "methods": [ - "Bloxstrap.Bootstrapper", - "Bloxstrap.Bootstrapper.Bootstrapper(LaunchMode launchMode)", - "Bloxstrap.Bootstrapper.SetupAppData()", - "Bloxstrap.Bootstrapper.SetStatus(string message)", - "Bloxstrap.Bootstrapper.UpdateProgressBar()", - "Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "Bloxstrap.Bootstrapper.GetChannelRegistryKey()", - "Bloxstrap.Bootstrapper.GetCurrentChannelFromArgs()", - "Bloxstrap.Bootstrapper.FetchCurrentChannel()", - "Bloxstrap.Bootstrapper.UpdateChannelRegistry()", - "Bloxstrap.Bootstrapper.GetLatestVersionInfo()", - "Bloxstrap.Bootstrapper.SafeGetLatestVersionInfo()", - "Bloxstrap.Bootstrapper.IsEligibleForBackgroundUpdate()", - "Bloxstrap.Bootstrapper.CheckForUpdates()", - "Bloxstrap.Bootstrapper.TryDeleteRobloxInDirectory(string dir)", - "Bloxstrap.Bootstrapper.CleanupVersionsFolder()", - "Bloxstrap.Bootstrapper.MigrateCompatibilityFlags()", - "Bloxstrap.Bootstrapper.KillRobloxInstances()", - "Bloxstrap.Bootstrapper.GracefullyCloseRobloxInstances()", - "Bloxstrap.Bootstrapper.UpgradeRoblox()", - "Bloxstrap.Bootstrapper.ApplyModifications()", - "Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "Bloxstrap.Bootstrapper.ExtractPackage(Package package, List? files = null)" - ] - }, - { - "file_path": "Bloxstrap/Enums/BootstrapperIcon.cs", - "methods": [ - "Bloxstrap.Enums.BootstrapperIcon" - ] - }, - { - "file_path": "Bloxstrap/Enums/BootstrapperStyle.cs", - "methods": [ - "Bloxstrap.Enums.BootstrapperStyle" - ] - }, - { - "file_path": "Bloxstrap/Enums/CursorType.cs", - "methods": [ - "Bloxstrap.Enums.CursorType" - ] - }, - { - "file_path": "Bloxstrap/Enums/CustomThemeTemplate.cs", - "methods": [ - "Bloxstrap.Enums.CustomThemeTemplate" - ] - }, - { - "file_path": "Bloxstrap/Enums/EmojiType.cs", - "methods": [ - "Bloxstrap.Enums.EmojiType" - ] - }, - { - "file_path": "Bloxstrap/Enums/ErrorCode.cs", - "methods": [ - "Bloxstrap.Enums.ErrorCode" - ] - }, - { - "file_path": "Bloxstrap/Enums/FlagPresets/MSAAMode.cs", - "methods": [ - "Bloxstrap.Enums.FlagPresets.MSAAMode" - ] - }, - { - "file_path": "Bloxstrap/Enums/FlagPresets/TextureQuality.cs", - "methods": [ - "Bloxstrap.Enums.FlagPresets.TextureQuality" - ] - }, - { - "file_path": "Bloxstrap/Enums/GenericTriState.cs", - "methods": [ - "Bloxstrap.Enums.GenericTriState" - ] - }, - { - "file_path": "Bloxstrap/Enums/LaunchMode.cs", - "methods": [ - "Bloxstrap.Enums.LaunchMode" - ] - }, - { - "file_path": "Bloxstrap/Enums/NextAction.cs", - "methods": [ - "Bloxstrap.Enums.NextAction" - ] - }, - { - "file_path": "Bloxstrap/Enums/ServerSessionJoinType.cs", - "methods": [ - "Bloxstrap.Enums.ServerSessionJoinType" - ] - }, - { - "file_path": "Bloxstrap/Enums/ServerType.cs", - "methods": [ - "Bloxstrap.Enums.ServerType" - ] - }, - { - "file_path": "Bloxstrap/Enums/Theme.cs", - "methods": [ - "Bloxstrap.Enums.Theme" - ] - }, - { - "file_path": "Bloxstrap/Enums/VersionComparison.cs", - "methods": [ - "Bloxstrap.Enums.VersionComparison" - ] - }, - { - "file_path": "Bloxstrap/Enums/WebEnvironment.cs", - "methods": [ - "Bloxstrap.Enums.WebEnvironment" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/ChecksumFailedException.cs", - "methods": [ - "Bloxstrap.Exceptions.ChecksumFailedException", - "Bloxstrap.Exceptions.ChecksumFailedException.ChecksumFailedException(string message)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/EmojiTypeEx.cs", - "methods": [ - "Bloxstrap.Extensions.EmojiTypeEx", - "Bloxstrap.Extensions.EmojiTypeEx.GetHash(this EmojiType emojiType)", - "Bloxstrap.Extensions.EmojiTypeEx.GetUrl(this EmojiType emojiType)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/RegistryKeyEx.cs", - "methods": [ - "Bloxstrap.Extensions.RegistryKeyEx", - "Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/TEnumEx.cs", - "methods": [ - "Bloxstrap.Extensions.TEnumEx", - "Bloxstrap.Extensions.TEnumEx.GetDescription(this TEnum e)" - ] - }, - { - "file_path": "Bloxstrap/FastFlagManager.cs", - "methods": [ - "Bloxstrap.FastFlagManager", - "Bloxstrap.FastFlagManager.SetValue(string key, object? value)", - "Bloxstrap.FastFlagManager.GetValue(string key)", - "Bloxstrap.FastFlagManager.SetPreset(string prefix, object? value)", - "Bloxstrap.FastFlagManager.SetPresetEnum(string prefix, string target, object? value)", - "Bloxstrap.FastFlagManager.GetPreset(string name)", - "Bloxstrap.FastFlagManager.GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value)", - "Bloxstrap.FastFlagManager.Save()", - "Bloxstrap.FastFlagManager.Load(bool alertFailure = true)" - ] - }, - { - "file_path": "Bloxstrap/GlobalCache.cs", - "methods": [ - "Bloxstrap.GlobalCache" - ] - }, - { - "file_path": "Bloxstrap/HttpClientLoggingHandler.cs", - "methods": [ - "Bloxstrap.HttpClientLoggingHandler", - "Bloxstrap.HttpClientLoggingHandler.HttpClientLoggingHandler(HttpMessageHandler innerHandler)", - "Bloxstrap.HttpClientLoggingHandler.ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)", - "Bloxstrap.HttpClientLoggingHandler.ProcessResponse(HttpResponseMessage response, CancellationToken cancellationToken)" - ] - }, - { - "file_path": "Bloxstrap/Installer.cs", - "methods": [ - "Bloxstrap.Installer", - "Bloxstrap.Installer.DoInstall()", - "Bloxstrap.Installer.ValidateLocation()", - "Bloxstrap.Installer.CheckInstallLocation()", - "Bloxstrap.Installer.DoUninstall(bool keepData)", - "Bloxstrap.Installer.HandleUpgrade()" - ] - }, - { - "file_path": "Bloxstrap/JsonManager.cs", - "methods": [ - "Bloxstrap.JsonManager.JsonManager", - "Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)", - "Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "Bloxstrap.JsonManager.JsonManager.Save()", - "Bloxstrap.JsonManager.JsonManager.Delete()", - "Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()", - "Bloxstrap.JsonManager.LazyJsonManager", - "Bloxstrap.JsonManager.LazyJsonManager.LazyJsonManager(string? className)" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()" - ] - }, - { - "file_path": "Bloxstrap/LaunchSettings.cs", - "methods": [ - "Bloxstrap.LaunchSettings", - "Bloxstrap.LaunchSettings.LaunchSettings(string[] args)", - "Bloxstrap.LaunchSettings.ParsePlayer(string? data)", - "Bloxstrap.LaunchSettings.ParseStudio(string? data)" - ] - }, - { - "file_path": "Bloxstrap/Logger.cs", - "methods": [ - "Bloxstrap.Logger", - "Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "Bloxstrap.Logger.WriteLine(string message)", - "Bloxstrap.Logger.WriteLine(string identifier, string message)", - "Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "Bloxstrap.Logger.WriteToLog(string message)" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Config/Supporter.cs", - "methods": [ - "Bloxstrap.Models.APIs.Config.Supporter" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Config/SupporterData.cs", - "methods": [ - "Bloxstrap.Models.APIs.Config.SupporterData" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Config/SupporterGroup.cs", - "methods": [ - "Bloxstrap.Models.APIs.Config.SupporterGroup" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs", - "methods": [ - "Bloxstrap.Models.APIs.GitHub.GitHubReleaseAsset.GithubReleaseAsset" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs", - "methods": [ - "Bloxstrap.Models.APIs.GitHub.GithubRelease" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/IPInfoResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.IPInfoResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ApiArrayResponse.ApiArrayResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ClientFlagSettings" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ClientVersion" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/GameCreator.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.GameCreator" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.GameDetailResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.GetUserResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ThumbnailBatchResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ThumbnailResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.UniverseIdResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/Attributes/EnumNameAttribute.cs", - "methods": [ - "Bloxstrap.Models.Attributes.EnumNameAttribute" - ] - }, - { - "file_path": "Bloxstrap/Models/Attributes/EnumSortAttribute.cs", - "methods": [ - "Bloxstrap.Models.Attributes.EnumSortAttribute" - ] - }, - { - "file_path": "Bloxstrap/Models/BloxstrapRPC/Message.cs", - "methods": [ - "Bloxstrap.Models.BloxstrapRPC.Message" - ] - }, - { - "file_path": "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs", - "methods": [ - "Bloxstrap.Models.BloxstrapRPC.RichPresence" - ] - }, - { - "file_path": "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs", - "methods": [ - "Bloxstrap.Models.BloxstrapRPC.RichPresenceImage" - ] - }, - { - "file_path": "Bloxstrap/Models/DeployInfo.cs", - "methods": [ - "Bloxstrap.Models.DeployInfo" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/ModPresetFileData.cs", - "methods": [ - "Bloxstrap.Models.Entities.ModPresetFileData", - "Bloxstrap.Models.Entities.ModPresetFileData.ModPresetFileData(string contentPath, string resource)", - "Bloxstrap.Models.Entities.ModPresetFileData.HashMatches()" - ] - }, - { - "file_path": "Bloxstrap/Models/FastFlag.cs", - "methods": [ - "Bloxstrap.Models.FastFlag" - ] - }, - { - "file_path": "Bloxstrap/Models/FontFace.cs", - "methods": [ - "Bloxstrap.Models.FontFace" - ] - }, - { - "file_path": "Bloxstrap/Models/FontFamily.cs", - "methods": [ - "Bloxstrap.Models.FontFamily" - ] - }, - { - "file_path": "Bloxstrap/Models/LaunchFlag.cs", - "methods": [ - "Bloxstrap.Models.LaunchFlag", - "Bloxstrap.Models.LaunchFlag.LaunchFlag(string identifiers)" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/FileManifest.cs", - "methods": [ - "Bloxstrap.Models.Manifest.FileManifest", - "Bloxstrap.Models.Manifest.FileManifest.FileManifest(string data)", - "Bloxstrap.Models.Manifest.FileManifest.Get(string versionGuid)" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/ManifestFile.cs", - "methods": [ - "Bloxstrap.Models.Manifest.ManifestFile", - "Bloxstrap.Models.Manifest.ManifestFile.ToString()" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/Package.cs", - "methods": [ - "Bloxstrap.Models.Manifest.Package", - "Bloxstrap.Models.Manifest.Package.ToString()" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/PackageManifest.cs", - "methods": [ - "Bloxstrap.Models.Manifest.PackageManifest", - "Bloxstrap.Models.Manifest.PackageManifest.PackageManifest(string data)" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/AppState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.AppState" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/DistributionState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.DistributionState" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/RobloxState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.RobloxState" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/Settings.cs", - "methods": [ - "Bloxstrap.Models.Persistable.Settings" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/State.cs", - "methods": [ - "Bloxstrap.Models.Persistable.State" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/WindowState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.WindowState" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.BaseTask", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string prefix, string name)", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string name)", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.ToString()", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask", - "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string prefix, string name)", - "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string name)" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask", - "Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask.EnumBaseTask(string prefix, string name)" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.StringBaseTask", - "Bloxstrap.Models.SettingTasks.Base.StringBaseTask.StringBaseTask(string prefix, string name)" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask", - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.QueryCurrentValue()", - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.EmojiModPresetTask()", - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask", - "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.EnumModPresetTask(string name, Dictionary> map)", - "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.ExtractIconsTask", - "Bloxstrap.Models.SettingTasks.ExtractIconsTask.ExtractIconsTask()", - "Bloxstrap.Models.SettingTasks.ExtractIconsTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.FontModPresetTask", - "Bloxstrap.Models.SettingTasks.FontModPresetTask.GetFileHash()", - "Bloxstrap.Models.SettingTasks.FontModPresetTask.FontModPresetTask()", - "Bloxstrap.Models.SettingTasks.FontModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/ModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.ModPresetTask", - "Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, string path, string resource)", - "Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, Dictionary pathMap)", - "Bloxstrap.Models.SettingTasks.ModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.ShortcutTask", - "Bloxstrap.Models.SettingTasks.ShortcutTask.ShortcutTask(string name, string lnkFolder, string lnkName, string exeFlags = \"\")", - "Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Paths.cs", - "methods": [ - "Bloxstrap.Paths", - "Bloxstrap.Paths.Initialize(string baseDirectory)" - ] - }, - { - "file_path": "Bloxstrap/Properties/Settings.Designer.cs", - "methods": [ - "Bloxstrap.Properties.Settings.Designer.Settings" - ] - }, - { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "methods": [ - "Bloxstrap.RobloxInterfaces.ApplicationSettings", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.ApplicationSettings(string applicationName, string channelName)", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.Fetch()", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.GetAsync(string name)", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.Get(string name)", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.GetSettings(string applicationName, string channelName = null, bool shouldCache = true)" - ] - }, - { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "methods": [ - "Bloxstrap.RobloxInterfaces.Deployment.GetLocation(string resource)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog", - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.AddFastFlagDialog()", - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.ImportButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.OKButton_Click(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog", - "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.ConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.AddException(Exception exception, bool inner = false)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog", - "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.ExceptionDialog(Exception exception)", - "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.AddException(Exception exception, bool inner = false)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox", - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.FluentMessageBox(string message, MessageBoxImage image, MessageBoxButton buttons)", - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.GetTextForResult(MessageBoxResult result)", - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.SetButton(Button button, MessageBoxResult result)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closing(object sender, CancelEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.FastFlagEditorPage()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ReloadList()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ClearSearch(bool refresh = true)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ShowAddDialog()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddSingle(string name, string value)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ImportJSON(string json)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFlagEntry(string name, string value)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFilter(string name, string value)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.Page_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.BackButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DeleteButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ToggleButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ExportJSONButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.FastFlagsPage()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.SetupViewModel()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.OpenFlagEditor(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.Page_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateInt32(object sender, TextCompositionEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateUInt32(object sender, TextCompositionEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage", - "Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage.ModsPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage", - "Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage.ShortcutsPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Frontend.cs", - "methods": [ - "Bloxstrap.UI.Frontend", - "Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)", - "Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)", - "Bloxstrap.UI.Frontend.ShowBalloonTip(string title, string message, ToolTipIcon icon = null, int timeout = 5)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/Rendering.cs", - "methods": [ - "Bloxstrap.UI.Utility.Rendering", - "Bloxstrap.UI.Utility.Rendering.GetTextWidth(TextBlock textBlock)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Save()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/GlobalViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.GlobalViewModel", - "Bloxstrap.UI.ViewModels.GlobalViewModel.OpenWebpage(string? location)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel", - "Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel.OpenFastFlagEditor()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel", - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenModsFolder()", - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()", - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.ShortcutsViewModel" - ] - }, - { - "file_path": "Bloxstrap/Utilities.cs", - "methods": [ - "Bloxstrap.Utilities", - "Bloxstrap.Utilities.ShellExecute(string website)", - "Bloxstrap.Utilities.GetVersionFromString(string version)", - "Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "Bloxstrap.Utilities.ParseVersionSafe(string versionStr)", - "Bloxstrap.Utilities.GetRobloxVersionStr(IAppData data)", - "Bloxstrap.Utilities.GetRobloxVersionStr(bool studio)", - "Bloxstrap.Utilities.GetRobloxVersion(IAppData data)", - "Bloxstrap.Utilities.GetProcessesSafe()" - ] - }, - { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "methods": [ - "Bloxstrap.Utility.Filesystem", - "Bloxstrap.Utility.Filesystem.GetFreeDiskSpace(string path)", - "Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)" - ] - }, - { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "methods": [ - "Bloxstrap.Utility.MD5Hash", - "Bloxstrap.Utility.MD5Hash.FromBytes(byte[] data)", - "Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)", - "Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "Bloxstrap.Utility.MD5Hash.FromString(string str)", - "Bloxstrap.Utility.MD5Hash.Stringify(byte[] hash)" - ] - }, - { - "file_path": "Bloxstrap/Utility/Shortcut.cs", - "methods": [ - "Bloxstrap.Utility.Shortcut", - "Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)" - ] - }, - { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "methods": [ - "Bloxstrap.Utility.WindowsRegistry", - "Bloxstrap.Utility.WindowsRegistry.RegisterProtocol(string key, string name, string handler, string handlerParam = \"%1\")", - "Bloxstrap.Utility.WindowsRegistry.RegisterPlayer()", - "Bloxstrap.Utility.WindowsRegistry.RegisterPlayer(string handler, string handlerParam)", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudio()", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioProtocol(string handler, string handlerParam)", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileTypes()", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)", - "Bloxstrap.Utility.WindowsRegistry.Unregister(string key)" - ] - } - ], - "component_id": "1", - "can_expand": true, - "components": [ - { - "name": "Bootstrapper Engine & Environment Manager", - "description": "The primary execution engine responsible for the application's lifecycle. It handles the logic for checking updates, managing the installation state of Roblox (Player and Studio), and coordinating the sequence of events required to launch the game client securely.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Bootstrapper", - "reference_file": "Bloxstrap/Bootstrapper.cs", - "reference_start_line": 30, - "reference_end_line": 1631 - }, - { - "qualified_name": "Bloxstrap.AppData.RobloxPlayerData", - "reference_file": "Bloxstrap/AppData/RobloxPlayerData.cs", - "reference_start_line": 3, - "reference_end_line": 22 - }, - { - "qualified_name": "Bloxstrap.AppData.CommonAppData", - "reference_file": "Bloxstrap/AppData/CommonAppData.cs", - "reference_start_line": 9, - "reference_end_line": 78 - } - ], - "source_cluster_ids": [ - "1.2", - "1.6", - "1.7", - "1.11", - "1.12", - "1.13", - "1.14" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/App.xaml.cs", - "methods": [ - "Bloxstrap.App.xaml.App", - "Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))", - "Bloxstrap.App.xaml.App.GlobalExceptionHandler(object sender, DispatcherUnhandledExceptionEventArgs e)", - "Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)", - "Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "Bloxstrap.App.xaml.App.ConstructBloxstrapWebUrl()", - "Bloxstrap.App.xaml.App.CanSendLogs()", - "Bloxstrap.App.xaml.App.GetLatestRelease()", - "Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "Bloxstrap.App.xaml.App.SendLog()" - ] - }, - { - "file_path": "Bloxstrap/AppData/CommonAppData.cs", - "methods": [ - "Bloxstrap.AppData.CommonAppData", - "Bloxstrap.AppData.CommonAppData.CommonAppData()" - ] - }, - { - "file_path": "Bloxstrap/AppData/IAppData.cs", - "methods": [ - "Bloxstrap.AppData.IAppData" - ] - }, - { - "file_path": "Bloxstrap/AppData/RobloxPlayerData.cs", - "methods": [ - "Bloxstrap.AppData.RobloxPlayerData" - ] - }, - { - "file_path": "Bloxstrap/AppData/RobloxStudioData.cs", - "methods": [ - "Bloxstrap.AppData.RobloxStudioData" - ] - }, - { - "file_path": "Bloxstrap/Bootstrapper.cs", - "methods": [ - "Bloxstrap.Bootstrapper", - "Bloxstrap.Bootstrapper.Bootstrapper(LaunchMode launchMode)", - "Bloxstrap.Bootstrapper.SetupAppData()", - "Bloxstrap.Bootstrapper.SetStatus(string message)", - "Bloxstrap.Bootstrapper.UpdateProgressBar()", - "Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "Bloxstrap.Bootstrapper.GetChannelRegistryKey()", - "Bloxstrap.Bootstrapper.GetCurrentChannelFromArgs()", - "Bloxstrap.Bootstrapper.FetchCurrentChannel()", - "Bloxstrap.Bootstrapper.UpdateChannelRegistry()", - "Bloxstrap.Bootstrapper.GetLatestVersionInfo()", - "Bloxstrap.Bootstrapper.SafeGetLatestVersionInfo()", - "Bloxstrap.Bootstrapper.IsEligibleForBackgroundUpdate()", - "Bloxstrap.Bootstrapper.CheckForUpdates()", - "Bloxstrap.Bootstrapper.TryDeleteRobloxInDirectory(string dir)", - "Bloxstrap.Bootstrapper.CleanupVersionsFolder()", - "Bloxstrap.Bootstrapper.MigrateCompatibilityFlags()", - "Bloxstrap.Bootstrapper.KillRobloxInstances()", - "Bloxstrap.Bootstrapper.GracefullyCloseRobloxInstances()", - "Bloxstrap.Bootstrapper.UpgradeRoblox()", - "Bloxstrap.Bootstrapper.ApplyModifications()", - "Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "Bloxstrap.Bootstrapper.ExtractPackage(Package package, List? files = null)" - ] - }, - { - "file_path": "Bloxstrap/Enums/BootstrapperIcon.cs", - "methods": [ - "Bloxstrap.Enums.BootstrapperIcon" - ] - }, - { - "file_path": "Bloxstrap/Enums/BootstrapperStyle.cs", - "methods": [ - "Bloxstrap.Enums.BootstrapperStyle" - ] - }, - { - "file_path": "Bloxstrap/Enums/CursorType.cs", - "methods": [ - "Bloxstrap.Enums.CursorType" - ] - }, - { - "file_path": "Bloxstrap/Enums/CustomThemeTemplate.cs", - "methods": [ - "Bloxstrap.Enums.CustomThemeTemplate" - ] - }, - { - "file_path": "Bloxstrap/Enums/EmojiType.cs", - "methods": [ - "Bloxstrap.Enums.EmojiType" - ] - }, - { - "file_path": "Bloxstrap/Enums/ErrorCode.cs", - "methods": [ - "Bloxstrap.Enums.ErrorCode" - ] - }, - { - "file_path": "Bloxstrap/Enums/FlagPresets/MSAAMode.cs", - "methods": [ - "Bloxstrap.Enums.FlagPresets.MSAAMode" - ] - }, - { - "file_path": "Bloxstrap/Enums/FlagPresets/TextureQuality.cs", - "methods": [ - "Bloxstrap.Enums.FlagPresets.TextureQuality" - ] - }, - { - "file_path": "Bloxstrap/Enums/GenericTriState.cs", - "methods": [ - "Bloxstrap.Enums.GenericTriState" - ] - }, - { - "file_path": "Bloxstrap/Enums/LaunchMode.cs", - "methods": [ - "Bloxstrap.Enums.LaunchMode" - ] - }, - { - "file_path": "Bloxstrap/Enums/NextAction.cs", - "methods": [ - "Bloxstrap.Enums.NextAction" - ] - }, - { - "file_path": "Bloxstrap/Enums/ServerSessionJoinType.cs", - "methods": [ - "Bloxstrap.Enums.ServerSessionJoinType" - ] - }, - { - "file_path": "Bloxstrap/Enums/ServerType.cs", - "methods": [ - "Bloxstrap.Enums.ServerType" - ] - }, - { - "file_path": "Bloxstrap/Enums/Theme.cs", - "methods": [ - "Bloxstrap.Enums.Theme" - ] - }, - { - "file_path": "Bloxstrap/Enums/VersionComparison.cs", - "methods": [ - "Bloxstrap.Enums.VersionComparison" - ] - }, - { - "file_path": "Bloxstrap/Enums/WebEnvironment.cs", - "methods": [ - "Bloxstrap.Enums.WebEnvironment" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/ChecksumFailedException.cs", - "methods": [ - "Bloxstrap.Exceptions.ChecksumFailedException", - "Bloxstrap.Exceptions.ChecksumFailedException.ChecksumFailedException(string message)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/RegistryKeyEx.cs", - "methods": [ - "Bloxstrap.Extensions.RegistryKeyEx", - "Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/TEnumEx.cs", - "methods": [ - "Bloxstrap.Extensions.TEnumEx", - "Bloxstrap.Extensions.TEnumEx.GetDescription(this TEnum e)" - ] - }, - { - "file_path": "Bloxstrap/GlobalCache.cs", - "methods": [ - "Bloxstrap.GlobalCache" - ] - }, - { - "file_path": "Bloxstrap/HttpClientLoggingHandler.cs", - "methods": [ - "Bloxstrap.HttpClientLoggingHandler", - "Bloxstrap.HttpClientLoggingHandler.HttpClientLoggingHandler(HttpMessageHandler innerHandler)", - "Bloxstrap.HttpClientLoggingHandler.ProcessRequest(HttpRequestMessage request, CancellationToken cancellationToken)", - "Bloxstrap.HttpClientLoggingHandler.ProcessResponse(HttpResponseMessage response, CancellationToken cancellationToken)" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()" - ] - }, - { - "file_path": "Bloxstrap/LaunchSettings.cs", - "methods": [ - "Bloxstrap.LaunchSettings", - "Bloxstrap.LaunchSettings.LaunchSettings(string[] args)", - "Bloxstrap.LaunchSettings.ParsePlayer(string? data)", - "Bloxstrap.LaunchSettings.ParseStudio(string? data)" - ] - }, - { - "file_path": "Bloxstrap/Logger.cs", - "methods": [ - "Bloxstrap.Logger", - "Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "Bloxstrap.Logger.WriteLine(string message)", - "Bloxstrap.Logger.WriteLine(string identifier, string message)", - "Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "Bloxstrap.Logger.WriteToLog(string message)" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Config/Supporter.cs", - "methods": [ - "Bloxstrap.Models.APIs.Config.Supporter" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Config/SupporterData.cs", - "methods": [ - "Bloxstrap.Models.APIs.Config.SupporterData" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Config/SupporterGroup.cs", - "methods": [ - "Bloxstrap.Models.APIs.Config.SupporterGroup" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs", - "methods": [ - "Bloxstrap.Models.APIs.GitHub.GitHubReleaseAsset.GithubReleaseAsset" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs", - "methods": [ - "Bloxstrap.Models.APIs.GitHub.GithubRelease" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/IPInfoResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.IPInfoResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ApiArrayResponse.ApiArrayResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ClientFlagSettings" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ClientVersion" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/GameCreator.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.GameCreator" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.GameDetailResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.GetUserResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ThumbnailBatchResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ThumbnailResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.UniverseIdResponse" - ] - }, - { - "file_path": "Bloxstrap/Models/Attributes/EnumNameAttribute.cs", - "methods": [ - "Bloxstrap.Models.Attributes.EnumNameAttribute" - ] - }, - { - "file_path": "Bloxstrap/Models/Attributes/EnumSortAttribute.cs", - "methods": [ - "Bloxstrap.Models.Attributes.EnumSortAttribute" - ] - }, - { - "file_path": "Bloxstrap/Models/BloxstrapRPC/Message.cs", - "methods": [ - "Bloxstrap.Models.BloxstrapRPC.Message" - ] - }, - { - "file_path": "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs", - "methods": [ - "Bloxstrap.Models.BloxstrapRPC.RichPresence" - ] - }, - { - "file_path": "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs", - "methods": [ - "Bloxstrap.Models.BloxstrapRPC.RichPresenceImage" - ] - }, - { - "file_path": "Bloxstrap/Models/DeployInfo.cs", - "methods": [ - "Bloxstrap.Models.DeployInfo" - ] - }, - { - "file_path": "Bloxstrap/Models/FontFace.cs", - "methods": [ - "Bloxstrap.Models.FontFace" - ] - }, - { - "file_path": "Bloxstrap/Models/FontFamily.cs", - "methods": [ - "Bloxstrap.Models.FontFamily" - ] - }, - { - "file_path": "Bloxstrap/Models/LaunchFlag.cs", - "methods": [ - "Bloxstrap.Models.LaunchFlag", - "Bloxstrap.Models.LaunchFlag.LaunchFlag(string identifiers)" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/FileManifest.cs", - "methods": [ - "Bloxstrap.Models.Manifest.FileManifest", - "Bloxstrap.Models.Manifest.FileManifest.FileManifest(string data)", - "Bloxstrap.Models.Manifest.FileManifest.Get(string versionGuid)" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/ManifestFile.cs", - "methods": [ - "Bloxstrap.Models.Manifest.ManifestFile", - "Bloxstrap.Models.Manifest.ManifestFile.ToString()" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/Package.cs", - "methods": [ - "Bloxstrap.Models.Manifest.Package", - "Bloxstrap.Models.Manifest.Package.ToString()" - ] - }, - { - "file_path": "Bloxstrap/Models/Manifest/PackageManifest.cs", - "methods": [ - "Bloxstrap.Models.Manifest.PackageManifest", - "Bloxstrap.Models.Manifest.PackageManifest.PackageManifest(string data)" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/AppState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.AppState" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/DistributionState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.DistributionState" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/RobloxState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.RobloxState" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/Settings.cs", - "methods": [ - "Bloxstrap.Models.Persistable.Settings" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/State.cs", - "methods": [ - "Bloxstrap.Models.Persistable.State" - ] - }, - { - "file_path": "Bloxstrap/Models/Persistable/WindowState.cs", - "methods": [ - "Bloxstrap.Models.Persistable.WindowState" - ] - }, - { - "file_path": "Bloxstrap/Properties/Settings.Designer.cs", - "methods": [ - "Bloxstrap.Properties.Settings.Designer.Settings" - ] - }, - { - "file_path": "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs", - "methods": [ - "Bloxstrap.RobloxInterfaces.ApplicationSettings", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.ApplicationSettings(string applicationName, string channelName)", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.Fetch()", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.GetAsync(string name)", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.Get(string name)", - "Bloxstrap.RobloxInterfaces.ApplicationSettings.GetSettings(string applicationName, string channelName = null, bool shouldCache = true)" - ] - }, - { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "methods": [ - "Bloxstrap.RobloxInterfaces.Deployment.GetLocation(string resource)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Save()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()" - ] - }, - { - "file_path": "Bloxstrap/Utilities.cs", - "methods": [ - "Bloxstrap.Utilities", - "Bloxstrap.Utilities.GetVersionFromString(string version)", - "Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "Bloxstrap.Utilities.ParseVersionSafe(string versionStr)", - "Bloxstrap.Utilities.GetRobloxVersionStr(IAppData data)", - "Bloxstrap.Utilities.GetRobloxVersionStr(bool studio)", - "Bloxstrap.Utilities.GetRobloxVersion(IAppData data)", - "Bloxstrap.Utilities.GetProcessesSafe()" - ] - }, - { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "methods": [ - "Bloxstrap.Utility.Filesystem.GetFreeDiskSpace(string path)" - ] - } - ], - "component_id": "1.1", - "can_expand": true, - "components": [], - "components_relations": [] - }, - { - "name": "Configuration & Installation Authority", - "description": "Manages the persistence and integrity of the application's settings. It acts as the central authority for file system path resolution, installation directory validation, and the complex serialization/deserialization of FastFlag configurations used to tune game engine performance.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.FastFlagManager", - "reference_file": "Bloxstrap/FastFlagManager.cs", - "reference_start_line": 5, - "reference_end_line": 156 - }, - { - "qualified_name": "Bloxstrap.Paths", - "reference_file": "Bloxstrap/Paths.cs", - "reference_start_line": 3, - "reference_end_line": 46 - }, - { - "qualified_name": "Bloxstrap.Installer", - "reference_file": "Bloxstrap/Installer.cs", - "reference_start_line": 6, - "reference_end_line": 647 - } - ], - "source_cluster_ids": [ - "1.3", - "1.4", - "1.8", - "1.10" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/App.xaml.cs", - "methods": [ - "Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/FastFlagManager.cs", - "methods": [ - "Bloxstrap.FastFlagManager", - "Bloxstrap.FastFlagManager.SetValue(string key, object? value)", - "Bloxstrap.FastFlagManager.GetValue(string key)", - "Bloxstrap.FastFlagManager.SetPreset(string prefix, object? value)", - "Bloxstrap.FastFlagManager.SetPresetEnum(string prefix, string target, object? value)", - "Bloxstrap.FastFlagManager.GetPreset(string name)", - "Bloxstrap.FastFlagManager.GetPresetEnum(IReadOnlyDictionary mapping, string prefix, string value)", - "Bloxstrap.FastFlagManager.Save()", - "Bloxstrap.FastFlagManager.Load(bool alertFailure = true)" - ] - }, - { - "file_path": "Bloxstrap/Installer.cs", - "methods": [ - "Bloxstrap.Installer", - "Bloxstrap.Installer.DoInstall()", - "Bloxstrap.Installer.ValidateLocation()", - "Bloxstrap.Installer.CheckInstallLocation()", - "Bloxstrap.Installer.DoUninstall(bool keepData)", - "Bloxstrap.Installer.HandleUpgrade()" - ] - }, - { - "file_path": "Bloxstrap/JsonManager.cs", - "methods": [ - "Bloxstrap.JsonManager.JsonManager", - "Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)", - "Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "Bloxstrap.JsonManager.JsonManager.Save()", - "Bloxstrap.JsonManager.JsonManager.Delete()", - "Bloxstrap.JsonManager.LazyJsonManager", - "Bloxstrap.JsonManager.LazyJsonManager.LazyJsonManager(string? className)" - ] - }, - { - "file_path": "Bloxstrap/Models/FastFlag.cs", - "methods": [ - "Bloxstrap.Models.FastFlag" - ] - }, - { - "file_path": "Bloxstrap/Paths.cs", - "methods": [ - "Bloxstrap.Paths", - "Bloxstrap.Paths.Initialize(string baseDirectory)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog", - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.AddFastFlagDialog()", - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.ImportButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Dialogs.AddFastFlagDialog.xaml.AddFastFlagDialog.OKButton_Click(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closing(object sender, CancelEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.FastFlagEditorPage()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ReloadList()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ClearSearch(bool refresh = true)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ShowAddDialog()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddSingle(string name, string value)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ImportJSON(string json)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFlagEntry(string name, string value)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ValidateFilter(string name, string value)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.Page_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.BackButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.AddButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.DeleteButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ToggleButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.ExportJSONButton_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagEditorPage.xaml.FastFlagEditorPage.SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.FastFlagsPage()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.SetupViewModel()", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.OpenFlagEditor(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.Page_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateInt32(object sender, TextCompositionEventArgs e)", - "Bloxstrap.UI.Elements.Settings.Pages.FastFlagsPage.xaml.FastFlagsPage.ValidateUInt32(object sender, TextCompositionEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Frontend.cs", - "methods": [ - "Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel", - "Bloxstrap.UI.ViewModels.Settings.FastFlagsViewModel.OpenFastFlagEditor()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()" - ] - }, - { - "file_path": "Bloxstrap/Utility/Shortcut.cs", - "methods": [ - "Bloxstrap.Utility.Shortcut", - "Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)" - ] - }, - { - "file_path": "Bloxstrap/Utility/WindowsRegistry.cs", - "methods": [ - "Bloxstrap.Utility.WindowsRegistry", - "Bloxstrap.Utility.WindowsRegistry.RegisterProtocol(string key, string name, string handler, string handlerParam = \"%1\")", - "Bloxstrap.Utility.WindowsRegistry.RegisterPlayer()", - "Bloxstrap.Utility.WindowsRegistry.RegisterPlayer(string handler, string handlerParam)", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudio()", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioProtocol(string handler, string handlerParam)", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileTypes()", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)", - "Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)", - "Bloxstrap.Utility.WindowsRegistry.Unregister(string key)" - ] - } - ], - "component_id": "1.2", - "can_expand": true, - "components": [], - "components_relations": [] - }, - { - "name": "Modding Task & Asset Processor", - "description": "A specialized task-based component that handles the transformation and deployment of game assets. It manages specific modding routines such as font replacement, icon extraction, and emoji set selection, utilizing MD5 hashing and filesystem utilities to ensure asset consistency.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Models.SettingTasks.EmojiModPresetTask", - "reference_file": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "reference_start_line": 7, - "reference_end_line": 72 - }, - { - "qualified_name": "Bloxstrap.Models.SettingTasks.FontModPresetTask", - "reference_file": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "reference_start_line": 5, - "reference_end_line": 43 - }, - { - "qualified_name": "Bloxstrap.Utility.MD5Hash", - "reference_file": "Bloxstrap/Utility/MD5Hash.cs", - "reference_start_line": 5, - "reference_end_line": 38 - } - ], - "source_cluster_ids": [ - "1.1", - "1.5", - "1.9" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Extensions/EmojiTypeEx.cs", - "methods": [ - "Bloxstrap.Extensions.EmojiTypeEx", - "Bloxstrap.Extensions.EmojiTypeEx.GetHash(this EmojiType emojiType)", - "Bloxstrap.Extensions.EmojiTypeEx.GetUrl(this EmojiType emojiType)" - ] - }, - { - "file_path": "Bloxstrap/JsonManager.cs", - "methods": [ - "Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/ModPresetFileData.cs", - "methods": [ - "Bloxstrap.Models.Entities.ModPresetFileData", - "Bloxstrap.Models.Entities.ModPresetFileData.ModPresetFileData(string contentPath, string resource)", - "Bloxstrap.Models.Entities.ModPresetFileData.HashMatches()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.BaseTask", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string prefix, string name)", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.BaseTask(string name)", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.ToString()", - "Bloxstrap.Models.SettingTasks.Base.BaseTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask", - "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string prefix, string name)", - "Bloxstrap.Models.SettingTasks.Base.BoolBaseTask.BoolBaseTask(string name)" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask", - "Bloxstrap.Models.SettingTasks.Base.EnumBaseTask.EnumBaseTask.EnumBaseTask(string prefix, string name)" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.Base.StringBaseTask", - "Bloxstrap.Models.SettingTasks.Base.StringBaseTask.StringBaseTask(string prefix, string name)" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask", - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.QueryCurrentValue()", - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.EmojiModPresetTask()", - "Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask", - "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.EnumModPresetTask(string name, Dictionary> map)", - "Bloxstrap.Models.SettingTasks.EnumModPresetTask.EnumModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.ExtractIconsTask", - "Bloxstrap.Models.SettingTasks.ExtractIconsTask.ExtractIconsTask()", - "Bloxstrap.Models.SettingTasks.ExtractIconsTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.FontModPresetTask", - "Bloxstrap.Models.SettingTasks.FontModPresetTask.GetFileHash()", - "Bloxstrap.Models.SettingTasks.FontModPresetTask.FontModPresetTask()", - "Bloxstrap.Models.SettingTasks.FontModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/ModPresetTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.ModPresetTask", - "Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, string path, string resource)", - "Bloxstrap.Models.SettingTasks.ModPresetTask.ModPresetTask(string name, Dictionary pathMap)", - "Bloxstrap.Models.SettingTasks.ModPresetTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs", - "methods": [ - "Bloxstrap.Models.SettingTasks.ShortcutTask", - "Bloxstrap.Models.SettingTasks.ShortcutTask.ShortcutTask(string name, string lnkFolder, string lnkName, string exeFlags = \"\")", - "Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog", - "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.ConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "Bloxstrap.UI.Elements.Dialogs.ConnectivityDialog.xaml.ConnectivityDialog.AddException(Exception exception, bool inner = false)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog", - "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.ExceptionDialog(Exception exception)", - "Bloxstrap.UI.Elements.Dialogs.ExceptionDialog.xaml.ExceptionDialog.AddException(Exception exception, bool inner = false)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox", - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.FluentMessageBox(string message, MessageBoxImage image, MessageBoxButton buttons)", - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.GetTextForResult(MessageBoxResult result)", - "Bloxstrap.UI.Elements.Dialogs.FluentMessageBox.xaml.FluentMessageBox.SetButton(Button button, MessageBoxResult result)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage", - "Bloxstrap.UI.Elements.Settings.Pages.ModsPage.xaml.ModsPage.ModsPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage", - "Bloxstrap.UI.Elements.Settings.Pages.ShortcutsPage.xaml.ShortcutsPage.ShortcutsPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Frontend.cs", - "methods": [ - "Bloxstrap.UI.Frontend", - "Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)", - "Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)", - "Bloxstrap.UI.Frontend.ShowBalloonTip(string title, string message, ToolTipIcon icon = null, int timeout = 5)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/Rendering.cs", - "methods": [ - "Bloxstrap.UI.Utility.Rendering", - "Bloxstrap.UI.Utility.Rendering.GetTextWidth(TextBlock textBlock)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/GlobalViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.GlobalViewModel", - "Bloxstrap.UI.ViewModels.GlobalViewModel.OpenWebpage(string? location)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel", - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenModsFolder()", - "Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.ShortcutsViewModel" - ] - }, - { - "file_path": "Bloxstrap/Utilities.cs", - "methods": [ - "Bloxstrap.Utilities.ShellExecute(string website)" - ] - }, - { - "file_path": "Bloxstrap/Utility/Filesystem.cs", - "methods": [ - "Bloxstrap.Utility.Filesystem", - "Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)" - ] - }, - { - "file_path": "Bloxstrap/Utility/MD5Hash.cs", - "methods": [ - "Bloxstrap.Utility.MD5Hash", - "Bloxstrap.Utility.MD5Hash.FromBytes(byte[] data)", - "Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)", - "Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "Bloxstrap.Utility.MD5Hash.FromString(string str)", - "Bloxstrap.Utility.MD5Hash.Stringify(byte[] hash)" - ] - } - ], - "component_id": "1.3", - "can_expand": true, - "components": [], - "components_relations": [] - } - ], - "components_relations": [ - { - "relation": "Orchestrates state persistence and installation lifecycle", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Configuration & Installation Authority", - "evidence": "The Bootstrapper acts as the primary controller, invoking the Installer for deployment and the FastFlagManager to commit engine configuration changes (Save) during the launch sequence. It relies on the Authority for path resolution and global application state.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)", - "call_sites": [ - { - "line": 55, - "column": 65 - }, - { - "line": 57, - "column": 59 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "call_sites": [ - { - "line": 1440, - "column": 50 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "call_sites": [ - { - "line": 1440, - "column": 50 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "call_sites": [ - { - "line": 847, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "call_sites": [ - { - "line": 847, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 860, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "call_sites": [ - { - "line": 1236, - "column": 23 - }, - { - "line": 1237, - "column": 46 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "call_sites": [ - { - "line": 1236, - "column": 23 - }, - { - "line": 1237, - "column": 46 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 1068, - "column": 26 - }, - { - "line": 1140, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 30, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 16, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Logger.cs|Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 58, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 112, - "column": 26 - } - ], - "description": "" - } - ] - }, - { - "relation": "Triggers lifecycle transitions and provides environment context", - "src_name": "Configuration & Installation Authority", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The Authority manages the entry point (App.OnStartup) and terminates the process via the Bootstrapper if environment constraints (like OS version) are not met. It provides the underlying data structures (RobloxPlayerData) that the engine uses to determine launch parameters.", - "key_edges": [], - "src_id": "1.2", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 235, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 230, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 373, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings", - "call_sites": [ - { - "line": 284, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.LaunchSettings(string[] args)", - "call_sites": [ - { - "line": 284, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "call_sites": [ - { - "line": 350, - "column": 24 - }, - { - "line": 368, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 247, - "column": 20 - }, - { - "line": 253, - "column": 24 - }, - { - "line": 262, - "column": 24 - }, - { - "line": 271, - "column": 20 - }, - { - "line": 273, - "column": 20 - }, - { - "line": 274, - "column": 20 - }, - { - "line": 275, - "column": 20 - }, - { - "line": 338, - "column": 28 - }, - { - "line": 351, - "column": 24 - }, - { - "line": 359, - "column": 24 - }, - { - "line": 364, - "column": 28 - }, - { - "line": 372, - "column": 28 - }, - { - "line": 386, - "column": 24 - }, - { - "line": 387, - "column": 24 - }, - { - "line": 398, - "column": 20 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetPreset(string name)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 108, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetValue(string key, object? value)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 55, - "column": 32 - }, - { - "line": 66, - "column": 32 - }, - { - "line": 70, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "call_sites": [ - { - "line": 112, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 61, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 58, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 40, - "column": 24 - }, - { - "line": 57, - "column": 32 - }, - { - "line": 109, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "call_sites": [ - { - "line": 360, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 222, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 336, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 236, - "column": 32 - }, - { - "line": 335, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "call_sites": [ - { - "line": 608, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 438, - "column": 36 - }, - { - "line": 471, - "column": 36 - }, - { - "line": 497, - "column": 40 - }, - { - "line": 537, - "column": 40 - }, - { - "line": 561, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 407, - "column": 24 - }, - { - "line": 415, - "column": 32 - }, - { - "line": 433, - "column": 36 - }, - { - "line": 437, - "column": 36 - }, - { - "line": 560, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "call_sites": [ - { - "line": 382, - "column": 80 - }, - { - "line": 460, - "column": 31 - }, - { - "line": 475, - "column": 31 - }, - { - "line": 487, - "column": 31 - }, - { - "line": 507, - "column": 31 - }, - { - "line": 548, - "column": 31 - }, - { - "line": 566, - "column": 31 - }, - { - "line": 588, - "column": 31 - }, - { - "line": 621, - "column": 73 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Delete()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 155, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Delete()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 145, - "column": 32 - }, - { - "line": 149, - "column": 32 - }, - { - "line": 154, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 71, - "column": 28 - }, - { - "line": 93, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 39, - "column": 24 - }, - { - "line": 56, - "column": 32 - }, - { - "line": 62, - "column": 32 - }, - { - "line": 70, - "column": 28 - }, - { - "line": 92, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 123, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 108, - "column": 24 - }, - { - "line": 122, - "column": 28 - }, - { - "line": 131, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 12, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 55, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 27, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 26, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)", - "target": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "call_sites": [ - { - "line": 90, - "column": 24 - }, - { - "line": 93, - "column": 31 - }, - { - "line": 96, - "column": 28 - }, - { - "line": 99, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)", - "target": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "call_sites": [ - { - "line": 108, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.Unregister(string key)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 119, - "column": 28 - } - ], - "description": "" - } - ] - }, - { - "relation": "Dispatches atomic asset transformation tasks", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Modding Task & Asset Processor", - "evidence": "During the 'ApplyModifications' phase of the bootstrapper sequence, the engine iterates through configured modding tasks (Fonts, Emojis) and executes them to modify the game client's local assets before launch.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)", - "call_sites": [ - { - "line": 142, - "column": 22 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()", - "call_sites": [ - { - "line": 1437, - "column": 102 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "call_sites": [ - { - "line": 1369, - "column": 28 - }, - { - "line": 1373, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "call_sites": [ - { - "line": 1361, - "column": 63 - }, - { - "line": 1361, - "column": 98 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "call_sites": [ - { - "line": 865, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "call_sites": [ - { - "line": 1563, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "call_sites": [ - { - "line": 1471, - "column": 48 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)", - "call_sites": [ - { - "line": 1546, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "call_sites": [ - { - "line": 165, - "column": 22 - } - ], - "description": "" - } - ] - }, - { - "relation": "Resolves target paths and reports deployment status", - "src_name": "Modding Task & Asset Processor", - "dst_name": "Configuration & Installation Authority", - "evidence": "Modding tasks consume the 'Paths' utility to locate the Roblox installation directory and use the Authority's UI services to notify users of asset conflicts or errors during the modification process.", - "key_edges": [], - "src_id": "1.3", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()", - "target": "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "call_sites": [ - { - "line": 20, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 30, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 49, - "column": 30 - } - ], - "description": "" - } - ] - }, - { - "relation": "Reports execution telemetry and diagnostic logs", - "src_name": "Modding Task & Asset Processor", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The Processor utilizes the Bootstrapper's centralized logging and exception handling infrastructure to record the success or failure of asset transformations.", - "key_edges": [], - "src_id": "1.3", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 53, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 32, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 42, - "column": 24 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Configuration & Installation Authority", - "dst_name": "Modding Task & Asset Processor", - "evidence": "", - "key_edges": [], - "src_id": "1.2", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "call_sites": [ - { - "line": 49, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "call_sites": [ - { - "line": 633, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "call_sites": [ - { - "line": 409, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "call_sites": [ - { - "line": 379, - "column": 25 - }, - { - "line": 379, - "column": 60 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromString(string str)", - "call_sites": [ - { - "line": 54, - "column": 44 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromString(string str)", - "call_sites": [ - { - "line": 118, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)", - "call_sites": [ - { - "line": 17, - "column": 20 - } - ], - "description": "" - } - ] - } - ] - }, - { - "name": "Execution & Lifecycle Control", - "description": "Manages the operational lifecycle of the bootstrapper, including process mutex handling, background updates, and the orchestration of the Roblox launch sequence.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.UI.IBootstrapperDialog", - "reference_file": "Bloxstrap/UI/IBootstrapperDialog.cs", - "reference_start_line": 6, - "reference_end_line": 22 - }, - { - "qualified_name": "Bloxstrap.Extensions.BootstrapperStyleEx", - "reference_file": "Bloxstrap/Extensions/BootstrapperStyleEx.cs", - "reference_start_line": 3, - "reference_end_line": 20 - } - ], - "source_cluster_ids": [ - "3", - "5", - "7", - "18", - "30", - "31" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Bootstrapper.cs", - "methods": [ - "Bloxstrap.Bootstrapper.Run()", - "Bloxstrap.Bootstrapper.Cancel()", - "Bloxstrap.Bootstrapper.StartBackgroundUpdater()" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "methods": [ - "Bloxstrap.Exceptions.CustomThemeException", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)", - "Bloxstrap.Exceptions.CustomThemeException.ToString()" - ] - }, - { - "file_path": "Bloxstrap/Extensions/BootstrapperIconEx.cs", - "methods": [ - "Bloxstrap.Extensions.BootstrapperIconEx", - "Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/BootstrapperStyleEx.cs", - "methods": [ - "Bloxstrap.Extensions.BootstrapperStyleEx", - "Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/IconEx.cs", - "methods": [ - "Bloxstrap.Extensions.IconEx", - "Bloxstrap.Extensions.IconEx.GetSized(this Icon icon, int width, int height)", - "Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/ThemeEx.cs", - "methods": [ - "Bloxstrap.Extensions.ThemeEx", - "Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)" - ] - }, - { - "file_path": "Bloxstrap/Models/BootstrapperIconEntry.cs", - "methods": [ - "Bloxstrap.Models.BootstrapperIconEntry" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions", - "Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ScaleWindow()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.SetupDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ButtonCancel_Click(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.Window_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ClassicFluentDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetBrushFromXElement(XElement element, string attributeName)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.DummyFrameworkElement", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlElementDelegate", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXml(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AddXml(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AssertThemeVersion(string? versionStr)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlBase(XElement xml)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ScaleTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SkewTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RotateTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TranslateTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BlurEffect(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_DropShadowEffect(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXml_Brush(Brush brush, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SolidColorBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_GradientStop(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.ApplyBrush_UIElement(CustomDialog dialog, FrameworkElement uiElement, string name, DependencyProperty dependencyProperty, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Shape(CustomDialog dialog, Shape shape, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Ellipse(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Line(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Rectangle(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper_Fake(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TitleBar(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Button(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RangeBase(CustomDialog dialog, RangeBase rangeBase, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressRing(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_MarkdownTextBlock(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Image(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_RowDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_ColumnDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_StackPanel(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult.GetImageSourceDataResult()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetXmlAttribute(XElement element, string attributeName, string? defaultValue = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, int value, int? min = null, int? max = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, double value, double? min = null, double? max = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeClamped(XElement element, string attributeName, int? defaultValue = null, int? min = null, int? max = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontWeightFromXElement(XElement element)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontStyleFromXElement(XElement element)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTextDecorationsFromXElement(XElement element)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTranslatedText(string? text)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFullPath(CustomDialog dialog, string? sourcePath)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceData(CustomDialog dialog, string name, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetContentFromXElement(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyEffects_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformation_UIElement(CustomDialog dialog, string name, DependencyProperty property, UIElement uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.FluentDialog(bool aero)", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008()", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011()", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseEnter(object sender, EventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseLeave(object sender, EventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.ShowSuccess(string message, Action? callback)", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander", - "Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander.Expander()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "methods": [ - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock", - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.GetWpfInlineFromMarkdownInline(Inline? inline)", - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.AddMarkdownInline(Inline? inline)", - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.OnTextMarkdownChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl", - "Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl.OptionControl()" - ] - }, - { - "file_path": "Bloxstrap/UI/Frontend.cs", - "methods": [ - "Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)" - ] - }, - { - "file_path": "Bloxstrap/UI/IBootstrapperDialog.cs", - "methods": [ - "Bloxstrap.UI.IBootstrapperDialog", - "Bloxstrap.UI.IBootstrapperDialog.ShowBootstrapper()", - "Bloxstrap.UI.IBootstrapperDialog.CloseBootstrapper()", - "Bloxstrap.UI.IBootstrapperDialog.ShowSuccess(string message, Action? callback = null)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "methods": [ - "Bloxstrap.UI.Utility.TaskbarProgress", - "Bloxstrap.UI.Utility.TaskbarProgress.TaskbarStates", - "Bloxstrap.UI.Utility.TaskbarProgress.TaskbarInstance", - "Bloxstrap.UI.Utility.TaskbarProgress.ConvertEnum(TaskbarItemProgressState state)", - "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarStates taskbarState)", - "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarItemProgressState taskbarState)", - "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressValue(IntPtr windowHandle, int progressValue, int progressMax)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "methods": [ - "Bloxstrap.UI.Utility.WindowScaling", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledNumber(int number)", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledSize(Size size)", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledPoint(Point point)", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledPadding(Padding padding)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel()", - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel(IBootstrapperDialog dialog)", - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.CancelInstall()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel.ByfronDialogViewModel(IBootstrapperDialog dialog, string version)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel.ClassicFluentDialogViewModel(IBootstrapperDialog dialog)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel()", - "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel(IBootstrapperDialog dialog, bool aero)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PreviewBootstrapper()" - ] - }, - { - "file_path": "Bloxstrap/Utilities.cs", - "methods": [ - "Bloxstrap.Utilities.DoesMutexExist(string name)", - "Bloxstrap.Utilities.KillBackgroundUpdater()" - ] - }, - { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "methods": [ - "Bloxstrap.Utility.AsyncMutex", - "Bloxstrap.Utility.AsyncMutex.AsyncMutex(bool initiallyOwned, string name)", - "Bloxstrap.Utility.AsyncMutex.AcquireAsync(CancellationToken cancellationToken)", - "Bloxstrap.Utility.AsyncMutex.ReleaseAsync()", - "Bloxstrap.Utility.AsyncMutex.DisposeAsync()" - ] - } - ], - "component_id": "2", - "can_expand": true, - "components": [ - { - "name": "Custom UI Engine & Markdown Renderer", - "description": "Provides the specialized rendering logic for user-defined bootstrapper themes. It handles the parsing of Markdown for release notes or instructions and manages the complex object creation for dynamic WPF-based custom dialogs.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock", - "reference_file": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "reference_start_line": 18, - "reference_end_line": 134 - }, - { - "qualified_name": "Bloxstrap.Exceptions.CustomThemeException", - "reference_file": "Bloxstrap/Exceptions/CustomThemeException.cs", - "reference_start_line": 10, - "reference_end_line": 60 - } - ], - "source_cluster_ids": [ - "2.1", - "2.4", - "2.10" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Exceptions/CustomThemeException.cs", - "methods": [ - "Bloxstrap.Exceptions.CustomThemeException", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)", - "Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)", - "Bloxstrap.Exceptions.CustomThemeException.ToString()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetBrushFromXElement(XElement element, string attributeName)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.DummyFrameworkElement", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlElementDelegate", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXml(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AddXml(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.AssertThemeVersion(string? versionStr)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.HandleXmlBase(XElement xml)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ScaleTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SkewTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RotateTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TranslateTransform(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BlurEffect(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_DropShadowEffect(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXml_Brush(Brush brush, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_SolidColorBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_GradientStop(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.ApplyBrush_UIElement(CustomDialog dialog, FrameworkElement uiElement, string name, DependencyProperty dependencyProperty, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Shape(CustomDialog dialog, Shape shape, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Ellipse(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Line(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Rectangle(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper_Fake(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TitleBar(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Button(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RangeBase(CustomDialog dialog, RangeBase rangeBase, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressRing(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_MarkdownTextBlock(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Image(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_RowDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid_ColumnDefinitions(Grid grid, CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Grid(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_StackPanel(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceDataResult.GetImageSourceDataResult()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetXmlAttribute(XElement element, string attributeName, string? defaultValue = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, int value, int? min = null, int? max = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ValidateXmlElement(string elementName, string attributeName, double value, double? min = null, double? max = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeClamped(XElement element, string attributeName, int? defaultValue = null, int? min = null, int? max = null)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontWeightFromXElement(XElement element)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFontStyleFromXElement(XElement element)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTextDecorationsFromXElement(XElement element)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetTranslatedText(string? text)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetFullPath(CustomDialog dialog, string? sourcePath)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetImageSourceData(CustomDialog dialog, string name, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.GetContentFromXElement(CustomDialog dialog, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyEffects_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformation_UIElement(CustomDialog dialog, string name, DependencyProperty property, UIElement uiElement, XElement xmlElement)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ApplyTransformations_UIElement(CustomDialog dialog, UIElement uiElement, XElement xmlElement)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs", - "methods": [ - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock", - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.GetWpfInlineFromMarkdownInline(Inline? inline)", - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.AddMarkdownInline(Inline? inline)", - "Bloxstrap.UI.Elements.Controls.MarkdownTextBlock.OnTextMarkdownChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)" - ] - } - ], - "component_id": "2.1", - "can_expand": false, - "components": [], - "components_relations": [] - }, - { - "name": "Visual Asset & Dialog Provider", - "description": "Acts as a factory and resource manager for the bootstrapper's visual layer. It resolves icons, themes, and window scaling factors, and provides the logic to instantiate the correct dialog implementation based on the user's selected style (e.g., Fluent, Classic, or Byfron).", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Extensions.BootstrapperIconEx", - "reference_file": "Bloxstrap/Extensions/BootstrapperIconEx.cs", - "reference_start_line": 5, - "reference_end_line": 70 - }, - { - "qualified_name": "Bloxstrap.UI.Utility.TaskbarProgress", - "reference_file": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "reference_start_line": 7, - "reference_end_line": 90 - }, - { - "qualified_name": "Bloxstrap.Extensions.ThemeEx", - "reference_file": "Bloxstrap/Extensions/ThemeEx.cs", - "reference_start_line": 5, - "reference_end_line": 20 - } - ], - "source_cluster_ids": [ - "2.3", - "2.5", - "2.8", - "2.9" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Extensions/BootstrapperIconEx.cs", - "methods": [ - "Bloxstrap.Extensions.BootstrapperIconEx", - "Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/IconEx.cs", - "methods": [ - "Bloxstrap.Extensions.IconEx", - "Bloxstrap.Extensions.IconEx.GetSized(this Icon icon, int width, int height)", - "Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/ThemeEx.cs", - "methods": [ - "Bloxstrap.Extensions.ThemeEx", - "Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)" - ] - }, - { - "file_path": "Bloxstrap/Models/BootstrapperIconEntry.cs", - "methods": [ - "Bloxstrap.Models.BootstrapperIconEntry" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ScaleWindow()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.SetupDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ButtonCancel_Click(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ClassicFluentDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.FluentDialog(bool aero)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.Designer.LegacyDialog2008.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008()", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2008.LegacyDialog2008_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.Designer.LegacyDialog2011.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011()", - "Bloxstrap.UI.Elements.Bootstrapper.LegacyDialog2011.LegacyDialog2011_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.Designer.ProgressDialog.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseEnter(object sender, EventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ButtonCancel_MouseLeave(object sender, EventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ProgressDialog.ProgressDialog_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.Dispose(bool disposing)", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.Designer.VistaDialog.InitializeComponent()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog()", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.VistaDialog_Load(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Frontend.cs", - "methods": [ - "Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "methods": [ - "Bloxstrap.UI.Utility.TaskbarProgress", - "Bloxstrap.UI.Utility.TaskbarProgress.TaskbarStates", - "Bloxstrap.UI.Utility.TaskbarProgress.TaskbarInstance", - "Bloxstrap.UI.Utility.TaskbarProgress.ConvertEnum(TaskbarItemProgressState state)", - "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarStates taskbarState)", - "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressState(IntPtr windowHandle, TaskbarItemProgressState taskbarState)", - "Bloxstrap.UI.Utility.TaskbarProgress.SetProgressValue(IntPtr windowHandle, int progressValue, int progressMax)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/WindowScaling.cs", - "methods": [ - "Bloxstrap.UI.Utility.WindowScaling", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledNumber(int number)", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledSize(Size size)", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledPoint(Point point)", - "Bloxstrap.UI.Utility.WindowScaling.GetScaledPadding(Padding padding)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel()", - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.BootstrapperDialogViewModel(IBootstrapperDialog dialog)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.ByfronDialogViewModel.ByfronDialogViewModel(IBootstrapperDialog dialog, string version)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.ClassicFluentDialogViewModel.ClassicFluentDialogViewModel(IBootstrapperDialog dialog)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel", - "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel()", - "Bloxstrap.UI.ViewModels.Bootstrapper.FluentDialogViewModel.FluentDialogViewModel(IBootstrapperDialog dialog, bool aero)" - ] - } - ], - "component_id": "2.2", - "can_expand": true, - "components": [], - "components_relations": [] - }, - { - "name": "Lifecycle Orchestrator & Process Manager", - "description": "The core engine of the subsystem that manages the execution flow. It handles process synchronization via mutexes, manages background updater lifecycles, and executes the primary Run loop that coordinates between the bootstrapper logic and the UI interface.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.UI.IBootstrapperDialog", - "reference_file": "Bloxstrap/UI/IBootstrapperDialog.cs", - "reference_start_line": 6, - "reference_end_line": 22 - }, - { - "qualified_name": "Bloxstrap.Utility.AsyncMutex", - "reference_file": "Bloxstrap/Utility/AsyncMutex.cs", - "reference_start_line": 5, - "reference_end_line": 97 - }, - { - "qualified_name": "Bloxstrap.Extensions.BootstrapperStyleEx", - "reference_file": "Bloxstrap/Extensions/BootstrapperStyleEx.cs", - "reference_start_line": 3, - "reference_end_line": 20 - } - ], - "source_cluster_ids": [ - "2.2", - "2.6", - "2.7", - "2.11", - "2.12" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Bootstrapper.cs", - "methods": [ - "Bloxstrap.Bootstrapper.Run()", - "Bloxstrap.Bootstrapper.Cancel()", - "Bloxstrap.Bootstrapper.StartBackgroundUpdater()" - ] - }, - { - "file_path": "Bloxstrap/Extensions/BootstrapperStyleEx.cs", - "methods": [ - "Bloxstrap.Extensions.BootstrapperStyleEx", - "Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions", - "Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.Window_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.UiWindow_Closing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.CloseBootstrapper()", - "Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog.ShowSuccess(string message, Action? callback)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs", - "methods": [ - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.ShowSuccess(string message, Action? callback)", - "Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.CloseBootstrapper()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander", - "Bloxstrap.UI.Elements.Controls.Expander.xaml.Expander.Expander()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl", - "Bloxstrap.UI.Elements.Controls.OptionControl.xaml.OptionControl.OptionControl()" - ] - }, - { - "file_path": "Bloxstrap/UI/IBootstrapperDialog.cs", - "methods": [ - "Bloxstrap.UI.IBootstrapperDialog", - "Bloxstrap.UI.IBootstrapperDialog.ShowBootstrapper()", - "Bloxstrap.UI.IBootstrapperDialog.CloseBootstrapper()", - "Bloxstrap.UI.IBootstrapperDialog.ShowSuccess(string message, Action? callback = null)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Bootstrapper.BootstrapperDialogViewModel.CancelInstall()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PreviewBootstrapper()" - ] - }, - { - "file_path": "Bloxstrap/Utilities.cs", - "methods": [ - "Bloxstrap.Utilities.DoesMutexExist(string name)", - "Bloxstrap.Utilities.KillBackgroundUpdater()" - ] - }, - { - "file_path": "Bloxstrap/Utility/AsyncMutex.cs", - "methods": [ - "Bloxstrap.Utility.AsyncMutex", - "Bloxstrap.Utility.AsyncMutex.AsyncMutex(bool initiallyOwned, string name)", - "Bloxstrap.Utility.AsyncMutex.AcquireAsync(CancellationToken cancellationToken)", - "Bloxstrap.Utility.AsyncMutex.ReleaseAsync()", - "Bloxstrap.Utility.AsyncMutex.DisposeAsync()" - ] - } - ], - "component_id": "2.3", - "can_expand": true, - "components": [], - "components_relations": [] - } - ], - "components_relations": [ - { - "relation": "Orchestrates UI instantiation and lifecycle", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "The Orchestrator acts as the primary consumer of the Dialog Provider's factory methods. It requests specific IBootstrapperDialog implementations based on configuration (Fluent, Classic, etc.) and manages their visibility during the bootstrapper's execution loop.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Extensions/BootstrapperStyleEx.cs|Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "call_sites": [ - { - "line": 5, - "column": 104 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Signals user intent and state changes", - "src_name": "Visual Asset & Dialog Provider", - "dst_name": "Lifecycle Orchestrator & Process Manager", - "evidence": "The UI layer communicates back to the core engine via event callbacks and interface methods. Specifically, when a user closes a dialog or clicks cancel, the Provider triggers the Orchestrator's cancellation logic to halt process execution.", - "key_edges": [], - "src_id": "2.2", - "dst_id": "2.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "call_sites": [ - { - "line": 136, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "call_sites": [ - { - "line": 90, - "column": 55 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "call_sites": [ - { - "line": 89, - "column": 62 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "call_sites": [ - { - "line": 91, - "column": 55 - }, - { - "line": 92, - "column": 59 - }, - { - "line": 94, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Delegates dynamic UI construction", - "src_name": "Visual Asset & Dialog Provider", - "dst_name": "Custom UI Engine & Markdown Renderer", - "evidence": "The Dialog Provider uses the Custom UI Engine as a specialized factory branch. When the user selects a 'Custom' style, the Provider hands off the XML/XAML parsing and object instantiation to the Engine to generate the WPF window.", - "key_edges": [], - "src_id": "2.2", - "dst_id": "2.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "call_sites": [ - { - "line": 147, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException", - "call_sites": [ - { - "line": 64, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "call_sites": [ - { - "line": 64, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "call_sites": [ - { - "line": 67, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Utilizes data transformation and error utilities", - "src_name": "Custom UI Engine & Markdown Renderer", - "dst_name": "Lifecycle Orchestrator & Process Manager", - "evidence": "The Custom UI Engine relies on the Orchestrator's utility layer for converting raw XML attributes (strings) into WPF-compatible types (Thickness, CornerRadius, etc.) and throws subsystem-specific exceptions managed by the Orchestrator.", - "key_edges": [], - "src_id": "2.1", - "dst_id": "2.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 52, - "column": 99 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 759, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 751, - "column": 39 - }, - { - "line": 755, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 659, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 338, - "column": 31 - }, - { - "line": 342, - "column": 39 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 313, - "column": 45 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 299, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 129, - "column": 27 - }, - { - "line": 133, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 181, - "column": 34 - }, - { - "line": 185, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 486, - "column": 36 - }, - { - "line": 490, - "column": 45 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 645, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 561, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "call_sites": [ - { - "line": 47, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "call_sites": [ - { - "line": 64, - "column": 25 - } - ], - "description": "" - } - ] - }, - { - "relation": "Resolves visual resources and themes", - "src_name": "Custom UI Engine & Markdown Renderer", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "During the dynamic rendering process, the Custom UI Engine queries the Visual Asset Provider to resolve final theme colors and icons to ensure the custom UI remains consistent with the global application state.", - "key_edges": [], - "src_id": "2.1", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)", - "call_sites": [ - { - "line": 385, - "column": 36 - } - ], - "description": "" - } - ] - }, - { - "relation": "Triggers UI preview and validation", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Custom UI Engine & Markdown Renderer", - "evidence": "The Orchestrator directly invokes the Custom UI Engine during configuration phases (e.g., from the Menu/Settings) to provide a live preview of custom themes, bypassing the standard bootstrapper flow.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "2.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "call_sites": [ - { - "line": 39, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - } - ] - } - ] - }, - { - "name": "Localization & Resource Services", - "description": "Provides globalized string resources, custom integration definitions, and localized UI content for the application's informational pages.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Locale", - "reference_file": "Bloxstrap/Locale.cs", - "reference_start_line": 5, - "reference_end_line": 144 - }, - { - "qualified_name": "Bloxstrap.Resource", - "reference_file": "Bloxstrap/Resource.cs", - "reference_start_line": 5, - "reference_end_line": 30 - }, - { - "qualified_name": "Bloxstrap.Models.CustomIntegration", - "reference_file": "Bloxstrap/Models/CustomIntegration.cs", - "reference_start_line": 3, - "reference_end_line": 10 - }, - { - "qualified_name": "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage", - "reference_file": "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs", - "reference_start_line": 11, - "reference_end_line": 48 - } - ], - "source_cluster_ids": [ - "2", - "8", - "12", - "23", - "28", - "29" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs", - "methods": [ - "Bloxstrap.Extensions.CustomThemeTemplateEx", - "Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileName(this CustomThemeTemplate template)", - "Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileContents(this CustomThemeTemplate template)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/DateTimeEx.cs", - "methods": [ - "Bloxstrap.Extensions.DateTimeEx", - "Bloxstrap.Extensions.DateTimeEx.ToFriendlyString(this DateTime dateTime)" - ] - }, - { - "file_path": "Bloxstrap/Locale.cs", - "methods": [ - "Bloxstrap.Locale", - "Bloxstrap.Locale.GetIdentifierFromName(string language)", - "Bloxstrap.Locale.GetLanguages()", - "Bloxstrap.Locale.Set(string identifier)", - "Bloxstrap.Locale.Initialize()" - ] - }, - { - "file_path": "Bloxstrap/Models/CustomIntegration.cs", - "methods": [ - "Bloxstrap.Models.CustomIntegration" - ] - }, - { - "file_path": "Bloxstrap/Resource.cs", - "methods": [ - "Bloxstrap.Resource", - "Bloxstrap.Resource.GetStream(string name)", - "Bloxstrap.Resource.Get(string name)", - "Bloxstrap.Resource.GetString(string name)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage", - "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.AboutPage()", - "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.UiPage_KeyDown(object sender, KeyEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage", - "Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage.LicensesPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage", - "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.SupportersPage()", - "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.UiPage_SizeChanged(object sender, SizeChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage", - "Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage.TranslatorsPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "methods": [ - "Bloxstrap.UI.Elements.Base.WpfUiWindow", - "Bloxstrap.UI.Elements.Base.WpfUiWindow.WpfUiWindow()", - "Bloxstrap.UI.Elements.Base.WpfUiWindow.ApplyTheme()", - "Bloxstrap.UI.Elements.Base.WpfUiWindow.OnSourceInitialized(EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetThemePath(string name)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GenerateRandomName()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetUniqueName(string name)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateCustomTheme(string name, CustomThemeTemplate template)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateCreateNew()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateNew()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.Import()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnOkButtonClicked(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnImportButtonClicked(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Schema", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Element", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Type", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.ParseSchema()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.GetElementAttributes(string name, Element element)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.PopulateElementInfo()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.BootstrapperEditorWindow(string name)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.LoadHighlightingTheme()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ThemeSavedCallback(bool success, string message)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ToCRLF(string text)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnCodeChanged(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnClosing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnTextAreaTextEntered(object sender, TextCompositionEventArgs e)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetLineAndPosAtCaretPosition()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursor(string xml, int offset, bool onlyAllowInside = false)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursorNoSpaces(string xml, int offset)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowAttributesForElementName()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.AddEndTag()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenElementAutoComplete()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenAttributeAutoComplete()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenTypeValueAutoComplete(string typeName)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenPropertyElementAutoComplete()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CloseCompletionWindow()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowCompletionWindow(List completionData)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.ElementCompletionData(string text)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.AttributeCompletionData(string text, Action openValueAutoCompleteAction)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.TypeValueCompletionData(string text)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.NextPage()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.BackPage()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow_Closing(object? sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetNextButtonText(string text)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetButtonEnabled(string type, bool state)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage", - "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.CompletionPage()", - "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.UiPage_Loaded(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage", - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.InstallPage()", - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.UiPage_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage", - "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.WelcomePage()", - "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.UiPage_Loaded(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage", - "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.AppearancePage()", - "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.CustomThemeSelection(object sender, SelectionChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage", - "Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage.BloxstrapPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage", - "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.BehaviourPage()", - "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.ToggleSwitch_Checked(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage", - "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.IntegrationsPage()", - "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.CustomIntegrationSelection(object sender, SelectionChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.About.AboutViewModel" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.About.SupportersViewModel", - "Bloxstrap.UI.ViewModels.About.SupportersViewModel.SupportersViewModel()", - "Bloxstrap.UI.ViewModels.About.SupportersViewModel.OnWindowResize(object sender, SizeChangedEventArgs e)", - "Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel", - "Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel.SetLocale()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel", - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.OpenThemeFolder()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel", - "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchSettings()", - "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchRoblox()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.InstallViewModel()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.BrowseInstallLocation()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.ResetInstallLocation()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.OpenFolder()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.BackPage()", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.NextPage()", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel", - "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel", - "Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.BrowseCustomIconLocation()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AppearanceViewModel(Page page)", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomThemeStructure(string name)", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomThemeStructure(string oldName, string newName)", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.EditCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.ExportCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PopulateCustomThemes()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.BehaviourViewModel" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel", - "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.ExportData()", - "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel", - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.AddIntegration()", - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.DeleteIntegration()", - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.BrowseIntegrationLocation()" - ] - }, - { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "methods": [ - "Bloxstrap.Utility.PathValidator", - "Bloxstrap.Utility.PathValidator.ValidationResult", - "Bloxstrap.Utility.PathValidator.GetInvalidPathChars()", - "Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)", - "Bloxstrap.Utility.PathValidator.IsPathValid(string path)" - ] - } - ], - "component_id": "3", - "can_expand": true, - "components": [ - { - "name": "Static Resource & Theme Provider", - "description": "Manages embedded application resources, including binary streams, string tables, and custom theme templates. It provides the underlying data access layer for UI customization and file-based assets.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Resource", - "reference_file": "Bloxstrap/Resource.cs", - "reference_start_line": 5, - "reference_end_line": 30 - }, - { - "qualified_name": "Bloxstrap.Extensions.CustomThemeTemplateEx", - "reference_file": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs", - "reference_start_line": 5, - "reference_end_line": 36 - }, - { - "qualified_name": "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel", - "reference_file": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "reference_start_line": 13, - "reference_end_line": 84 - }, - { - "qualified_name": "Bloxstrap.Utility.PathValidator", - "reference_file": "Bloxstrap/Utility/PathValidator.cs", - "reference_start_line": 9, - "reference_end_line": 104 - } - ], - "source_cluster_ids": [ - "3.1", - "3.5", - "3.7" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs", - "methods": [ - "Bloxstrap.Extensions.CustomThemeTemplateEx", - "Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileName(this CustomThemeTemplate template)", - "Bloxstrap.Extensions.CustomThemeTemplateEx.GetFileContents(this CustomThemeTemplate template)" - ] - }, - { - "file_path": "Bloxstrap/Resource.cs", - "methods": [ - "Bloxstrap.Resource", - "Bloxstrap.Resource.GetStream(string name)", - "Bloxstrap.Resource.Get(string name)", - "Bloxstrap.Resource.GetString(string name)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetThemePath(string name)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GenerateRandomName()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.GetUniqueName(string name)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateCustomTheme(string name, CustomThemeTemplate template)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateCreateNew()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.CreateNew()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.Import()", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnOkButtonClicked(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.OnImportButtonClicked(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Schema", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Element", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.Type", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.ParseSchema()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.GetElementAttributes(string name, Element element)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CustomBootstrapperSchema.PopulateElementInfo()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.BootstrapperEditorWindow(string name)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.LoadHighlightingTheme()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ThemeSavedCallback(bool success, string message)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ToCRLF(string text)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnCodeChanged(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnClosing(object sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnTextAreaTextEntered(object sender, TextCompositionEventArgs e)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetLineAndPosAtCaretPosition()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursor(string xml, int offset, bool onlyAllowInside = false)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.GetElementAtCursorNoSpaces(string xml, int offset)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowAttributesForElementName()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.AddEndTag()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenElementAutoComplete()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenAttributeAutoComplete()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenTypeValueAutoComplete(string typeName)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OpenPropertyElementAutoComplete()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.CloseCompletionWindow()", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.ShowCompletionWindow(List completionData)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.ElementCompletionData(string text)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.ElementCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.AttributeCompletionData(string text, Action openValueAutoCompleteAction)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.AttributeCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.TypeValueCompletionData(string text)", - "Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.TypeValueCompletionData.Complete(TextArea textArea, ISegment completionSegment, EventArgs insertionRequestEventArgs)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel", - "Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.OpenThemeFolder()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.EditCustomTheme()" - ] - }, - { - "file_path": "Bloxstrap/Utility/PathValidator.cs", - "methods": [ - "Bloxstrap.Utility.PathValidator", - "Bloxstrap.Utility.PathValidator.ValidationResult", - "Bloxstrap.Utility.PathValidator.GetInvalidPathChars()", - "Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)", - "Bloxstrap.Utility.PathValidator.IsPathValid(string path)" - ] - } - ], - "component_id": "3.1", - "can_expand": false, - "components": [], - "components_relations": [] - }, - { - "name": "Localization & Information Services", - "description": "Handles the globalization logic of the application, including language switching and the population of informational pages (About, Licenses, Supporters). It maps culture identifiers to UI content and manages custom integration models.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Locale", - "reference_file": "Bloxstrap/Locale.cs", - "reference_start_line": 5, - "reference_end_line": 144 - }, - { - "qualified_name": "Bloxstrap.Models.CustomIntegration", - "reference_file": "Bloxstrap/Models/CustomIntegration.cs", - "reference_start_line": 3, - "reference_end_line": 10 - }, - { - "qualified_name": "Bloxstrap.UI.ViewModels.About.AboutViewModel", - "reference_file": "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs", - "reference_start_line": 5, - "reference_end_line": 17 - }, - { - "qualified_name": "Bloxstrap.Extensions.DateTimeEx", - "reference_file": "Bloxstrap/Extensions/DateTimeEx.cs", - "reference_start_line": 3, - "reference_end_line": 10 - } - ], - "source_cluster_ids": [ - "3.2", - "3.4", - "3.8", - "3.9", - "3.10", - "3.12", - "3.13" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Extensions/DateTimeEx.cs", - "methods": [ - "Bloxstrap.Extensions.DateTimeEx", - "Bloxstrap.Extensions.DateTimeEx.ToFriendlyString(this DateTime dateTime)" - ] - }, - { - "file_path": "Bloxstrap/Locale.cs", - "methods": [ - "Bloxstrap.Locale", - "Bloxstrap.Locale.GetIdentifierFromName(string language)", - "Bloxstrap.Locale.GetLanguages()", - "Bloxstrap.Locale.Set(string identifier)", - "Bloxstrap.Locale.Initialize()" - ] - }, - { - "file_path": "Bloxstrap/Models/CustomIntegration.cs", - "methods": [ - "Bloxstrap.Models.CustomIntegration" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage", - "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.AboutPage()", - "Bloxstrap.UI.Elements.About.Pages.AboutPage.xaml.AboutPage.UiPage_KeyDown(object sender, KeyEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage", - "Bloxstrap.UI.Elements.About.Pages.LicensesPage.xaml.LicensesPage.LicensesPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage", - "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.SupportersPage()", - "Bloxstrap.UI.Elements.About.Pages.SupportersPage.xaml.SupportersPage.UiPage_SizeChanged(object sender, SizeChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage", - "Bloxstrap.UI.Elements.About.Pages.TranslatorsPage.xaml.TranslatorsPage.TranslatorsPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage", - "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.AppearancePage()", - "Bloxstrap.UI.Elements.Settings.Pages.AppearancePage.xaml.AppearancePage.CustomThemeSelection(object sender, SelectionChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage", - "Bloxstrap.UI.Elements.Settings.Pages.BloxstrapPage.xaml.BloxstrapPage.BloxstrapPage()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage", - "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.BehaviourPage()", - "Bloxstrap.UI.Elements.Settings.Pages.BootstrapperPage.xaml.BehaviourPage.ToggleSwitch_Checked(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage", - "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.IntegrationsPage()", - "Bloxstrap.UI.Elements.Settings.Pages.IntegrationsPage.xaml.IntegrationsPage.CustomIntegrationSelection(object sender, SelectionChangedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.About.AboutViewModel" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.About.SupportersViewModel", - "Bloxstrap.UI.ViewModels.About.SupportersViewModel.SupportersViewModel()", - "Bloxstrap.UI.ViewModels.About.SupportersViewModel.OnWindowResize(object sender, SizeChangedEventArgs e)", - "Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel", - "Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel.SetLocale()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.BrowseInstallLocation()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.ResetInstallLocation()", - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.OpenFolder()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel", - "Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.BrowseCustomIconLocation()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AppearanceViewModel(Page page)", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomThemeStructure(string name)", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomThemeStructure(string oldName, string newName)", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.ExportCustomTheme()", - "Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.PopulateCustomThemes()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.BehaviourViewModel" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel", - "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.ExportData()", - "Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel", - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.AddIntegration()", - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.DeleteIntegration()", - "Bloxstrap.UI.ViewModels.Settings.IntegrationsViewModel.BrowseIntegrationLocation()" - ] - } - ], - "component_id": "3.2", - "can_expand": true, - "components": [], - "components_relations": [] - }, - { - "name": "Interactive UI Flow Controller", - "description": "Manages the state and navigation of the primary windowed interfaces, specifically the installation wizard and main application shell. It applies themes to windows and coordinates the transition between different functional pages.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.UI.Elements.Base.WpfUiWindow", - "reference_file": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "reference_start_line": 10, - "reference_end_line": 47 - }, - { - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel", - "reference_file": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "reference_start_line": 6, - "reference_end_line": 52 - }, - { - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel", - "reference_file": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs", - "reference_start_line": 3, - "reference_end_line": 38 - }, - { - "qualified_name": "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel", - "reference_file": "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs", - "reference_start_line": 11, - "reference_end_line": 23 - } - ], - "source_cluster_ids": [ - "3.3", - "3.6", - "3.11" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs", - "methods": [ - "Bloxstrap.UI.Elements.Base.WpfUiWindow", - "Bloxstrap.UI.Elements.Base.WpfUiWindow.WpfUiWindow()", - "Bloxstrap.UI.Elements.Base.WpfUiWindow.ApplyTheme()", - "Bloxstrap.UI.Elements.Base.WpfUiWindow.OnSourceInitialized(EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.NextPage()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.BackPage()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow_Closing(object? sender, CancelEventArgs e)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetNextButtonText(string text)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetButtonEnabled(string type, bool state)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage", - "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.CompletionPage()", - "Bloxstrap.UI.Elements.Installer.Pages.CompletionPage.xaml.CompletionPage.UiPage_Loaded(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage", - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.InstallPage()", - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.UiPage_Loaded(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage", - "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.WelcomePage()", - "Bloxstrap.UI.Elements.Installer.Pages.WelcomePage.xaml.WelcomePage.UiPage_Loaded(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel", - "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchSettings()", - "Bloxstrap.UI.ViewModels.Installer.CompletionViewModel.LaunchRoblox()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.InstallViewModel.InstallViewModel()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.BackPage()", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.NextPage()", - "Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel", - "Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()" - ] - } - ], - "component_id": "3.3", - "can_expand": true, - "components": [], - "components_relations": [] - } - ], - "components_relations": [ - { - "relation": "Delegates installation logic and localized content retrieval", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Localization & Information Services", - "evidence": "The UI Flow Controller acts as a thin orchestration layer that triggers business logic (DoInstall, DoChecks) within the Localization & Information Services. It also consumes localized strings and state updates via data binding to properties like NextButtonText.", - "key_edges": [], - "src_id": "3.3", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()", - "target": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "call_sites": [ - { - "line": 37, - "column": 54 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 31, - "column": 17 - }, - { - "line": 36, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 43, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 28, - "column": 21 - }, - { - "line": 33, - "column": 13 - } - ], - "description": "" - } - ] - }, - { - "relation": "Drives UI state transitions and button availability", - "src_name": "Localization & Information Services", - "dst_name": "Interactive UI Flow Controller", - "evidence": "The logic layer controls the wizard's flow by invoking navigation callbacks and enabling/disabling UI controls (SetButtonEnabled) based on the progress of background tasks or validation results.", - "key_edges": [], - "src_id": "3.2", - "dst_id": "3.3", - "is_static": false, - "all_edges": [] - }, - { - "relation": "Validates file-system metadata and retrieves embedded assets", - "src_name": "Localization & Information Services", - "dst_name": "Static Resource & Theme Provider", - "evidence": "Information services rely on the Resource provider to validate user-provided names (via PathValidator) and to access embedded binary resources or string tables required for the 'About' and 'Supporters' views.", - "key_edges": [], - "src_id": "3.2", - "dst_id": "3.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "target": "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)", - "call_sites": [ - { - "line": 208, - "column": 50 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies visual styles and theme templates", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Static Resource & Theme Provider", - "evidence": "The UI shell consumes theme templates and resource dictionaries managed by the Resource Provider to dynamically skin the WPF windows during the installation or configuration flow.", - "key_edges": [ - { - "source": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow", - "target": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx", - "call_sites": [], - "description": "UI window applies custom theme templates." - } - ], - "src_id": "3.3", - "dst_id": "3.1", - "is_static": false, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow", - "target": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx", - "call_sites": [], - "description": "UI window applies custom theme templates." - } - ] - }, - { - "relation": "Notifies logic layer of resource state changes", - "src_name": "Static Resource & Theme Provider", - "dst_name": "Localization & Information Services", - "evidence": "When custom themes are added or modified within the Resource Provider, it triggers property change notifications that the Information Services observe to update the UI model.", - "key_edges": [], - "src_id": "3.1", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()", - "target": "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel", - "call_sites": [ - { - "line": 25, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 160, - "column": 17 - }, - { - "line": 161, - "column": 17 - } - ], - "description": "" - } - ] - } - ] - }, - { - "name": "Integration & Activity Monitoring", - "description": "Monitors active game sessions to provide rich presence data (Discord RPC) and handles specialized network exceptions and server-type identification.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher", - "reference_file": "Bloxstrap/Integrations/ActivityWatcher.cs", - "reference_start_line": 3, - "reference_end_line": 392 - }, - { - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence", - "reference_file": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "reference_start_line": 7, - "reference_end_line": 489 - }, - { - "qualified_name": "Bloxstrap.Watcher", - "reference_file": "Bloxstrap/Watcher.cs", - "reference_start_line": 7, - "reference_end_line": 134 - }, - { - "qualified_name": "Bloxstrap.Exceptions.InvalidChannelException", - "reference_file": "Bloxstrap/Exceptions/InvalidChannelException.cs", - "reference_start_line": 3, - "reference_end_line": 10 - }, - { - "qualified_name": "Bloxstrap.Extensions.ServerTypeEx", - "reference_file": "Bloxstrap/Extensions/ServerTypeEx.cs", - "reference_start_line": 3, - "reference_end_line": 13 - } - ], - "source_cluster_ids": [ - "4", - "10", - "11", - "19", - "24", - "25" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Bootstrapper.cs", - "methods": [ - "Bloxstrap.Bootstrapper.StartRoblox()", - "Bloxstrap.Bootstrapper.ShouldRunAsAdmin()" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/AssertionException.cs", - "methods": [ - "Bloxstrap.Exceptions.AssertionException", - "Bloxstrap.Exceptions.AssertionException.AssertionException(string message)" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/InvalidChannelException.cs", - "methods": [ - "Bloxstrap.Exceptions.InvalidChannelException", - "Bloxstrap.Exceptions.InvalidChannelException.InvalidChannelException(HttpStatusCode? statusCode)" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs", - "methods": [ - "Bloxstrap.Exceptions.InvalidHTTPResponseException", - "Bloxstrap.Exceptions.InvalidHTTPResponseException.InvalidHTTPResponseException(string message)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "methods": [ - "Bloxstrap.Extensions.HttpClientEx", - "Bloxstrap.Extensions.HttpClientEx.GetWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "Bloxstrap.Extensions.HttpClientEx.PostWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)", - "Bloxstrap.Extensions.HttpClientEx.GetFromJsonWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "Bloxstrap.Extensions.HttpClientEx.PostFromJsonWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/ResourceManagerEx.cs", - "methods": [ - "Bloxstrap.Extensions.ResourceManagerEx", - "Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name)", - "Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name, CultureInfo? culture)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/ServerTypeEx.cs", - "methods": [ - "Bloxstrap.Extensions.ServerTypeEx", - "Bloxstrap.Extensions.ServerTypeEx.ToTranslatedString(this ServerType value)" - ] - }, - { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "methods": [ - "Bloxstrap.Integrations.ActivityWatcher", - "Bloxstrap.Integrations.ActivityWatcher.ActivityWatcher(string? logFile = null)", - "Bloxstrap.Integrations.ActivityWatcher.Start()", - "Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "Bloxstrap.Integrations.ActivityWatcher.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "methods": [ - "Bloxstrap.Integrations.DiscordRichPresence", - "Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "Bloxstrap.Integrations.DiscordRichPresence.ProcessRPCMessage(Message message, bool implicitUpdate = true)", - "Bloxstrap.Integrations.DiscordRichPresence.AddToThumbnailCache(ulong id, string? url)", - "Bloxstrap.Integrations.DiscordRichPresence.UpdatePresenceIconsAsync(ulong? smallImg, ulong? largeImg, bool implicitUpdate, CancellationToken token)", - "Bloxstrap.Integrations.DiscordRichPresence.ProcessSetRichPresence(Message message, bool implicitUpdate)", - "Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "Bloxstrap.Integrations.DiscordRichPresence.GetButtons()", - "Bloxstrap.Integrations.DiscordRichPresence.UpdatePresence()", - "Bloxstrap.Integrations.DiscordRichPresence.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler", - "Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "Bloxstrap.LaunchHandler.LaunchInstaller()", - "Bloxstrap.LaunchHandler.LaunchUninstaller()", - "Bloxstrap.LaunchHandler.LaunchSettings()", - "Bloxstrap.LaunchHandler.LaunchMenu()", - "Bloxstrap.LaunchHandler.LaunchWatcher()" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ThumbnailRequest" - ] - }, - { - "file_path": "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs", - "methods": [ - "Bloxstrap.Models.Attributes.BuildMetadataAttribute", - "Bloxstrap.Models.Attributes.BuildMetadataAttribute.BuildMetadataAttribute(string timestamp, string machine, string commitHash, string commitRef)" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "methods": [ - "Bloxstrap.Models.Entities.ActivityData", - "Bloxstrap.Models.Entities.ActivityData.GetInviteDeeplink(bool launchData = true)", - "Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "Bloxstrap.Models.Entities.ActivityData.ToString()", - "Bloxstrap.Models.Entities.ActivityData.RejoinServer()" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/UniverseDetails.cs", - "methods": [ - "Bloxstrap.Models.Entities.UniverseDetails", - "Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)", - "Bloxstrap.Models.Entities.UniverseDetails.FetchSingle(long id)", - "Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/UserDetails.cs", - "methods": [ - "Bloxstrap.Models.Entities.UserDetails", - "Bloxstrap.Models.Entities.UserDetails.Fetch(long id)" - ] - }, - { - "file_path": "Bloxstrap/Models/ThumbnailCacheEntry.cs", - "methods": [ - "Bloxstrap.Models.ThumbnailCacheEntry" - ] - }, - { - "file_path": "Bloxstrap/Models/WatcherData.cs", - "methods": [ - "Bloxstrap.Models.WatcherData" - ] - }, - { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "methods": [ - "Bloxstrap.RobloxInterfaces.Deployment", - "Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)", - "Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()", - "Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.MainWindow()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.MenuContainer(Watcher watcher)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnLogOpen(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameJoin(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameLeave(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Loaded(object? sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Closed(object sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.InviteDeeplinkMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ServerDetailsMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.LogTracerMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.JoinLastServerMenuItem_Click(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory", - "Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory.ServerHistory(ActivityWatcher watcher)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation", - "Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog", - "Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog.LanguageSelectorDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog", - "Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog.LaunchMenuDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog", - "Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog.UninstallerDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.MainWindow(bool showAlreadyRunningWarning)", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.LoadState()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowAlreadyRunningSnackbar()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.CloseWindow()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "methods": [ - "Bloxstrap.UI.NotifyIconWrapper", - "Bloxstrap.UI.NotifyIconWrapper.NotifyIconWrapper(Watcher watcher)", - "Bloxstrap.UI.NotifyIconWrapper.MouseClickEventHandler(object? sender, MouseEventArgs e)", - "Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)", - "Bloxstrap.UI.NotifyIconWrapper.ShowAlert(string caption, string message, int duration, EventHandler? clickHandler)", - "Bloxstrap.UI.NotifyIconWrapper.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.ServerHistoryViewModel(ActivityWatcher activityWatcher)", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.RequestClose()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.ServerInformationViewModel(Watcher watcher)", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.QueryServerLocation()", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.CopyInstanceId()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchSettings()", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRoblox()", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRobloxStudio()", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchAbout()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel", - "Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel.ConfirmUninstall()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel", - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.OpenAbout()", - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/Utility/FixedCapacityList.cs", - "methods": [ - "Bloxstrap.Utility.FixedCapacityList.FixedSizeList", - "Bloxstrap.Utility.FixedCapacityList.FixedSizeList.FixedSizeList(int size)", - "Bloxstrap.Utility.FixedCapacityList.FixedSizeList.Add(T item)" - ] - }, - { - "file_path": "Bloxstrap/Utility/Http.cs", - "methods": [ - "Bloxstrap.Utility.Http", - "Bloxstrap.Utility.Http.GetJson(string url)" - ] - }, - { - "file_path": "Bloxstrap/Utility/InterProcessLock.cs", - "methods": [ - "Bloxstrap.Utility.InterProcessLock", - "Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name, TimeSpan timeout)", - "Bloxstrap.Utility.InterProcessLock.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/Utility/Thumbnails.cs", - "methods": [ - "Bloxstrap.Utility.Thumbnails", - "Bloxstrap.Utility.Thumbnails.GetThumbnailUrlsAsync(List requests, CancellationToken token)", - "Bloxstrap.Utility.Thumbnails.GetThumbnailUrlAsync(ThumbnailRequest request, CancellationToken token)" - ] - }, - { - "file_path": "Bloxstrap/Watcher.cs", - "methods": [ - "Bloxstrap.Watcher", - "Bloxstrap.Watcher.Watcher()", - "Bloxstrap.Watcher.KillRobloxProcess()", - "Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)", - "Bloxstrap.Watcher.Run()", - "Bloxstrap.Watcher.Dispose()" - ] - } - ], - "component_id": "4", - "can_expand": true, - "components": [ - { - "name": "Presence & Metadata Services", - "description": "Provides the foundational data models, specialized exception handling, and external API clients required to enrich game session data. It handles the translation of raw server information into human-readable formats and manages the assets required for Discord Rich Presence.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Integrations.DiscordRichPresence", - "reference_file": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "reference_start_line": 7, - "reference_end_line": 489 - }, - { - "qualified_name": "Bloxstrap.Extensions.ServerTypeEx", - "reference_file": "Bloxstrap/Extensions/ServerTypeEx.cs", - "reference_start_line": 3, - "reference_end_line": 13 - }, - { - "qualified_name": "Bloxstrap.Utility.Thumbnails", - "reference_file": "Bloxstrap/Utility/Thumbnails.cs", - "reference_start_line": 9, - "reference_end_line": 103 - }, - { - "qualified_name": "Bloxstrap.Exceptions.InvalidChannelException", - "reference_file": "Bloxstrap/Exceptions/InvalidChannelException.cs", - "reference_start_line": 3, - "reference_end_line": 10 - } - ], - "source_cluster_ids": [ - "4.2", - "4.4", - "4.6", - "4.10", - "4.11" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Exceptions/AssertionException.cs", - "methods": [ - "Bloxstrap.Exceptions.AssertionException", - "Bloxstrap.Exceptions.AssertionException.AssertionException(string message)" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/InvalidChannelException.cs", - "methods": [ - "Bloxstrap.Exceptions.InvalidChannelException", - "Bloxstrap.Exceptions.InvalidChannelException.InvalidChannelException(HttpStatusCode? statusCode)" - ] - }, - { - "file_path": "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs", - "methods": [ - "Bloxstrap.Exceptions.InvalidHTTPResponseException", - "Bloxstrap.Exceptions.InvalidHTTPResponseException.InvalidHTTPResponseException(string message)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/HttpClientEx.cs", - "methods": [ - "Bloxstrap.Extensions.HttpClientEx", - "Bloxstrap.Extensions.HttpClientEx.GetWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "Bloxstrap.Extensions.HttpClientEx.PostWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)", - "Bloxstrap.Extensions.HttpClientEx.GetFromJsonWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "Bloxstrap.Extensions.HttpClientEx.PostFromJsonWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/ResourceManagerEx.cs", - "methods": [ - "Bloxstrap.Extensions.ResourceManagerEx", - "Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name)", - "Bloxstrap.Extensions.ResourceManagerEx.GetStringSafe(this ResourceManager manager, string name, CultureInfo? culture)" - ] - }, - { - "file_path": "Bloxstrap/Extensions/ServerTypeEx.cs", - "methods": [ - "Bloxstrap.Extensions.ServerTypeEx", - "Bloxstrap.Extensions.ServerTypeEx.ToTranslatedString(this ServerType value)" - ] - }, - { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "methods": [ - "Bloxstrap.Integrations.DiscordRichPresence", - "Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "Bloxstrap.Integrations.DiscordRichPresence.ProcessRPCMessage(Message message, bool implicitUpdate = true)", - "Bloxstrap.Integrations.DiscordRichPresence.AddToThumbnailCache(ulong id, string? url)", - "Bloxstrap.Integrations.DiscordRichPresence.UpdatePresenceIconsAsync(ulong? smallImg, ulong? largeImg, bool implicitUpdate, CancellationToken token)", - "Bloxstrap.Integrations.DiscordRichPresence.ProcessSetRichPresence(Message message, bool implicitUpdate)", - "Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "Bloxstrap.Integrations.DiscordRichPresence.GetButtons()", - "Bloxstrap.Integrations.DiscordRichPresence.UpdatePresence()" - ] - }, - { - "file_path": "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs", - "methods": [ - "Bloxstrap.Models.APIs.Roblox.ThumbnailRequest" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/ActivityData.cs", - "methods": [ - "Bloxstrap.Models.Entities.ActivityData", - "Bloxstrap.Models.Entities.ActivityData.GetInviteDeeplink(bool launchData = true)", - "Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "Bloxstrap.Models.Entities.ActivityData.ToString()", - "Bloxstrap.Models.Entities.ActivityData.RejoinServer()" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/UniverseDetails.cs", - "methods": [ - "Bloxstrap.Models.Entities.UniverseDetails", - "Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)", - "Bloxstrap.Models.Entities.UniverseDetails.FetchSingle(long id)", - "Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)" - ] - }, - { - "file_path": "Bloxstrap/Models/Entities/UserDetails.cs", - "methods": [ - "Bloxstrap.Models.Entities.UserDetails", - "Bloxstrap.Models.Entities.UserDetails.Fetch(long id)" - ] - }, - { - "file_path": "Bloxstrap/Models/ThumbnailCacheEntry.cs", - "methods": [ - "Bloxstrap.Models.ThumbnailCacheEntry" - ] - }, - { - "file_path": "Bloxstrap/RobloxInterfaces/Deployment.cs", - "methods": [ - "Bloxstrap.RobloxInterfaces.Deployment", - "Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)", - "Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()", - "Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.InviteDeeplinkMenuItem_Click(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation", - "Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.ServerInformationViewModel(Watcher watcher)", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.QueryServerLocation()", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.CopyInstanceId()" - ] - }, - { - "file_path": "Bloxstrap/Utility/FixedCapacityList.cs", - "methods": [ - "Bloxstrap.Utility.FixedCapacityList.FixedSizeList", - "Bloxstrap.Utility.FixedCapacityList.FixedSizeList.FixedSizeList(int size)", - "Bloxstrap.Utility.FixedCapacityList.FixedSizeList.Add(T item)" - ] - }, - { - "file_path": "Bloxstrap/Utility/Http.cs", - "methods": [ - "Bloxstrap.Utility.Http", - "Bloxstrap.Utility.Http.GetJson(string url)" - ] - }, - { - "file_path": "Bloxstrap/Utility/Thumbnails.cs", - "methods": [ - "Bloxstrap.Utility.Thumbnails", - "Bloxstrap.Utility.Thumbnails.GetThumbnailUrlsAsync(List requests, CancellationToken token)", - "Bloxstrap.Utility.Thumbnails.GetThumbnailUrlAsync(ThumbnailRequest request, CancellationToken token)" - ] - } - ], - "component_id": "4.1", - "can_expand": true, - "components": [], - "components_relations": [] - }, - { - "name": "Launch Orchestration & Lifecycle Management", - "description": "Manages the entry points for the application, determining the execution mode (installer, settings, or game launch). It handles inter-process locking to prevent duplicate instances and prepares the environment for the game client to start.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.LaunchHandler", - "reference_file": "Bloxstrap/LaunchHandler.cs", - "reference_start_line": 11, - "reference_end_line": 357 - }, - { - "qualified_name": "Bloxstrap.Models.WatcherData", - "reference_file": "Bloxstrap/Models/WatcherData.cs", - "reference_start_line": 3, - "reference_end_line": 11 - }, - { - "qualified_name": "Bloxstrap.Utility.InterProcessLock", - "reference_file": "Bloxstrap/Utility/InterProcessLock.cs", - "reference_start_line": 9, - "reference_end_line": 42 - } - ], - "source_cluster_ids": [ - "4.1", - "4.5", - "4.8", - "4.12" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Bootstrapper.cs", - "methods": [ - "Bloxstrap.Bootstrapper.StartRoblox()", - "Bloxstrap.Bootstrapper.ShouldRunAsAdmin()" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler", - "Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "Bloxstrap.LaunchHandler.LaunchInstaller()", - "Bloxstrap.LaunchHandler.LaunchUninstaller()", - "Bloxstrap.LaunchHandler.LaunchSettings()", - "Bloxstrap.LaunchHandler.LaunchMenu()" - ] - }, - { - "file_path": "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs", - "methods": [ - "Bloxstrap.Models.Attributes.BuildMetadataAttribute", - "Bloxstrap.Models.Attributes.BuildMetadataAttribute.BuildMetadataAttribute(string timestamp, string machine, string commitHash, string commitRef)" - ] - }, - { - "file_path": "Bloxstrap/Models/WatcherData.cs", - "methods": [ - "Bloxstrap.Models.WatcherData" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.MainWindow()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog", - "Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog.LanguageSelectorDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog", - "Bloxstrap.UI.Elements.Dialogs.LaunchMenuDialog.xaml.LaunchMenuDialog.LaunchMenuDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog", - "Bloxstrap.UI.Elements.Dialogs.UninstallerDialog.xaml.UninstallerDialog.UninstallerDialog()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.MainWindow(bool showAlreadyRunningWarning)", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.LoadState()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowAlreadyRunningSnackbar()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetFrame()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.GetNavigation()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.Navigate(Type pageType)", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.SetPageService(IPageService pageService)", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.ShowWindow()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.CloseWindow()", - "Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchSettings()", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRoblox()", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchRobloxStudio()", - "Bloxstrap.UI.ViewModels.Dialogs.LaunchMenuViewModel.LaunchAbout()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel", - "Bloxstrap.UI.ViewModels.Dialogs.UninstallerViewModel.ConfirmUninstall()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel", - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.OpenAbout()", - "Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.CloseWindow()" - ] - }, - { - "file_path": "Bloxstrap/Utility/InterProcessLock.cs", - "methods": [ - "Bloxstrap.Utility.InterProcessLock", - "Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name, TimeSpan timeout)", - "Bloxstrap.Utility.InterProcessLock.Dispose()" - ] - } - ], - "component_id": "4.2", - "can_expand": true, - "components": [], - "components_relations": [] - }, - { - "name": "Activity Monitoring & Session Watcher", - "description": "The active runtime component that monitors the game process and its logs. It parses log entries in real-time to detect session changes and manages the system tray integration, providing the user with feedback and control over the active game session.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.Watcher", - "reference_file": "Bloxstrap/Watcher.cs", - "reference_start_line": 7, - "reference_end_line": 134 - }, - { - "qualified_name": "Bloxstrap.Integrations.ActivityWatcher", - "reference_file": "Bloxstrap/Integrations/ActivityWatcher.cs", - "reference_start_line": 3, - "reference_end_line": 392 - }, - { - "qualified_name": "Bloxstrap.UI.NotifyIconWrapper", - "reference_file": "Bloxstrap/UI/NotifyIconWrapper.cs", - "reference_start_line": 7, - "reference_end_line": 147 - } - ], - "source_cluster_ids": [ - "4.3", - "4.7", - "4.9" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Integrations/ActivityWatcher.cs", - "methods": [ - "Bloxstrap.Integrations.ActivityWatcher", - "Bloxstrap.Integrations.ActivityWatcher.ActivityWatcher(string? logFile = null)", - "Bloxstrap.Integrations.ActivityWatcher.Start()", - "Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "Bloxstrap.Integrations.ActivityWatcher.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/Integrations/DiscordRichPresence.cs", - "methods": [ - "Bloxstrap.Integrations.DiscordRichPresence.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/LaunchHandler.cs", - "methods": [ - "Bloxstrap.LaunchHandler.LaunchWatcher()" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.MenuContainer(Watcher watcher)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnLogOpen(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameJoin(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ActivityWatcher_OnGameLeave(object? sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Loaded(object? sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Closed(object sender, EventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ServerDetailsMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.LogTracerMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e)", - "Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.JoinLastServerMenuItem_Click(object sender, RoutedEventArgs e)" - ] - }, - { - "file_path": "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs", - "methods": [ - "Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory", - "Bloxstrap.UI.Elements.ContextMenu.ServerHistory.xaml.ServerHistory.ServerHistory(ActivityWatcher watcher)" - ] - }, - { - "file_path": "Bloxstrap/UI/NotifyIconWrapper.cs", - "methods": [ - "Bloxstrap.UI.NotifyIconWrapper", - "Bloxstrap.UI.NotifyIconWrapper.NotifyIconWrapper(Watcher watcher)", - "Bloxstrap.UI.NotifyIconWrapper.MouseClickEventHandler(object? sender, MouseEventArgs e)", - "Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)", - "Bloxstrap.UI.NotifyIconWrapper.ShowAlert(string caption, string message, int duration, EventHandler? clickHandler)", - "Bloxstrap.UI.NotifyIconWrapper.Dispose()" - ] - }, - { - "file_path": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs", - "methods": [ - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.ServerHistoryViewModel(ActivityWatcher activityWatcher)", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.RequestClose()" - ] - }, - { - "file_path": "Bloxstrap/Watcher.cs", - "methods": [ - "Bloxstrap.Watcher", - "Bloxstrap.Watcher.Watcher()", - "Bloxstrap.Watcher.KillRobloxProcess()", - "Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)", - "Bloxstrap.Watcher.Run()", - "Bloxstrap.Watcher.Dispose()" - ] - } - ], - "component_id": "4.3", - "can_expand": true, - "components": [], - "components_relations": [] - } - ], - "components_relations": [ - { - "relation": "Delegates runtime session supervision", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Activity Monitoring & Session Watcher", - "evidence": "The launch handler determines the execution mode and hands off control to the watcher to monitor the game process lifecycle and manage the system tray.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "4.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "call_sites": [ - { - "line": 60, - "column": 17 - } - ], - "description": "" - } - ] - }, - { - "relation": "Pushes parsed session telemetry for enrichment", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Presence & Metadata Services", - "evidence": "The activity watcher parses Roblox log files in real-time and invokes metadata services to fetch server locations and update Discord Rich Presence state.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "4.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "target": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "call_sites": [ - { - "line": 191, - "column": 34 - }, - { - "line": 258, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)", - "target": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "call_sites": [ - { - "line": 105, - "column": 109 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()", - "target": "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)", - "call_sites": [ - { - "line": 54, - "column": 44 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)", - "target": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "call_sites": [ - { - "line": 62, - "column": 66 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "target": "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)", - "call_sites": [ - { - "line": 43, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "target": "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)", - "call_sites": [ - { - "line": 59, - "column": 61 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Watcher()", - "target": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "call_sites": [ - { - "line": 68, - "column": 36 - } - ], - "description": "" - } - ] - }, - { - "relation": "Synchronizes instance state via mutex", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Launch Orchestration & Lifecycle Management", - "evidence": "The watcher utilizes the inter-process locking mechanism defined in the lifecycle management layer to ensure singleton execution and manage session ownership.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "4.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "call_sites": [ - { - "line": 9, - "column": 51 - } - ], - "description": "" - } - ] - } - ] - }, - { - "name": "UI Presentation Utilities", - "description": "Contains low-level WPF value converters and Windows taskbar integration logic used to format data for the user interface.", - "key_entities": [ - { - "qualified_name": "Bloxstrap.UI.Converters.EnumNameConverter", - "reference_file": "Bloxstrap/UI/Converters/EnumNameConverter.cs", - "reference_start_line": 12, - "reference_end_line": 51 - }, - { - "qualified_name": "Bloxstrap.UI.Converters.RangeConverter", - "reference_file": "Bloxstrap/UI/Converters/RangeConverter.cs", - "reference_start_line": 5, - "reference_end_line": 29 - }, - { - "qualified_name": "Bloxstrap.Resources.Strings.Designer.Strings", - "reference_file": "Bloxstrap/Resources/Strings.Designer.cs", - "reference_start_line": 25, - "reference_end_line": 3614 - } - ], - "source_cluster_ids": [ - "14", - "20", - "21", - "22", - "26", - "27" - ], - "file_methods": [ - { - "file_path": "Bloxstrap/Properties/Resources.Designer.cs", - "methods": [ - "Bloxstrap.Properties.Resources.Designer.Resources", - "Bloxstrap.Properties.Resources.Designer.Resources.Resources()" - ] - }, - { - "file_path": "Bloxstrap/Resources/Strings.Designer.cs", - "methods": [ - "Bloxstrap.Resources.Strings.Designer.Strings", - "Bloxstrap.Resources.Strings.Designer.Strings.Strings()" - ] - }, - { - "file_path": "Bloxstrap/UI/Converters/EnumNameConverter.cs", - "methods": [ - "Bloxstrap.UI.Converters.EnumNameConverter", - "Bloxstrap.UI.Converters.EnumNameConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "Bloxstrap.UI.Converters.EnumNameConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)" - ] - }, - { - "file_path": "Bloxstrap/UI/Converters/RangeConverter.cs", - "methods": [ - "Bloxstrap.UI.Converters.RangeConverter", - "Bloxstrap.UI.Converters.RangeConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "Bloxstrap.UI.Converters.RangeConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)" - ] - }, - { - "file_path": "Bloxstrap/UI/Converters/StringFormatConverter.cs", - "methods": [ - "Bloxstrap.UI.Converters.StringFormatConverter", - "Bloxstrap.UI.Converters.StringFormatConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture)", - "Bloxstrap.UI.Converters.StringFormatConverter.ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)" - ] - }, - { - "file_path": "Bloxstrap/UI/Utility/TaskbarProgress.cs", - "methods": [ - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.HrInit()", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.AddTab(IntPtr hwnd)", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.DeleteTab(IntPtr hwnd)", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.ActivateTab(IntPtr hwnd)", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetActiveAlt(IntPtr hwnd)", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.MarkFullscreenWindow(IntPtr hwnd, bool fFullscreen)", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressValue(IntPtr hwnd, UInt64 ullCompleted, UInt64 ullTotal)", - "Bloxstrap.UI.Utility.TaskbarProgress.ITaskbarList3.SetProgressState(IntPtr hwnd, TaskbarStates state)" - ] - } - ], - "component_id": "5", - "can_expand": false, - "components": [], - "components_relations": [] - } - ], - "components_relations": [ - { - "relation": "Orchestrates state persistence and installation lifecycle", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Configuration & Installation Authority", - "evidence": "The Bootstrapper acts as the primary controller, invoking the Installer for deployment and the FastFlagManager to commit engine configuration changes (Save) during the launch sequence. It relies on the Authority for path resolution and global application state.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.JsonManager(string? className = null)", - "call_sites": [ - { - "line": 55, - "column": 65 - }, - { - "line": 57, - "column": 59 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "call_sites": [ - { - "line": 1440, - "column": 50 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "call_sites": [ - { - "line": 1440, - "column": 50 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "call_sites": [ - { - "line": 847, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "call_sites": [ - { - "line": 847, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 860, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Save()", - "call_sites": [ - { - "line": 1236, - "column": 23 - }, - { - "line": 1237, - "column": 46 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "call_sites": [ - { - "line": 1236, - "column": 23 - }, - { - "line": 1237, - "column": 46 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 1068, - "column": 26 - }, - { - "line": 1140, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.DeleteValueSafe(this RegistryKey registryKey, string name)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 30, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 16, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Logger.cs|Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 58, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.OpenCompatSettings()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 112, - "column": 26 - } - ], - "description": "" - } - ] - }, - { - "relation": "Dispatches atomic asset transformation tasks", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Modding Task & Asset Processor", - "evidence": "During the 'ApplyModifications' phase of the bootstrapper sequence, the engine iterates through configured modding tasks (Fonts, Emojis) and executes them to modify the game client's local assets before launch.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowExceptionDialog(Exception exception)", - "call_sites": [ - { - "line": 142, - "column": 22 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.HasFileOnDiskChanged()", - "call_sites": [ - { - "line": 1437, - "column": 102 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "call_sites": [ - { - "line": 1369, - "column": 28 - }, - { - "line": 1373, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "call_sites": [ - { - "line": 1361, - "column": 63 - }, - { - "line": 1361, - "column": 98 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "call_sites": [ - { - "line": 865, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "call_sites": [ - { - "line": 1563, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "call_sites": [ - { - "line": 1471, - "column": 48 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.DownloadPackage(Package package)", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromStream(Stream stream)", - "call_sites": [ - { - "line": 1546, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowConnectivityDialog(string title, string description, MessageBoxImage image, Exception exception)", - "call_sites": [ - { - "line": 165, - "column": 22 - } - ], - "description": "" - } - ] - }, - { - "relation": "Orchestrates bootstrapper lifecycle", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Lifecycle Orchestrator & Process Manager", - "evidence": "The Core component acts as the entry point (OnStartup) and determines whether to trigger background updates or full execution loops based on system state and configuration.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "2.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "call_sites": [ - { - "line": 335, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "call_sites": [ - { - "line": 338, - "column": 39 - } - ], - "description": "" - } - ] - }, - { - "relation": "Fetches remote update metadata", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Presence & Metadata Services", - "evidence": "Core management uses the network utilities in the Integration component to check for updates via GitHub APIs and manage inter-process locks.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "4.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.GetLatestRelease()", - "target": "Bloxstrap/Utility/Http.cs|Bloxstrap.Utility.Http.GetJson(string url)", - "call_sites": [ - { - "line": 172, - "column": 46 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.GetLatestVersionInfo()", - "target": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)", - "call_sites": [ - { - "line": 416, - "column": 54 - }, - { - "line": 423, - "column": 54 - } - ], - "description": "" - } - ] - }, - { - "relation": "Fetches remote update metadata", - "src_name": "Bootstrapper Engine & Environment Manager", - "dst_name": "Launch Orchestration & Lifecycle Management", - "evidence": "Core management uses the network utilities in the Integration component to check for updates via GitHub APIs and manage inter-process locks.", - "key_edges": [], - "src_id": "1.1", - "dst_id": "4.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock", - "call_sites": [ - { - "line": 849, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CheckForUpdates()", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "call_sites": [ - { - "line": 849, - "column": 21 - } - ], - "description": "" - } - ] - }, - { - "relation": "Triggers lifecycle transitions and provides environment context", - "src_name": "Configuration & Installation Authority", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The Authority manages the entry point (App.OnStartup) and terminates the process via the Bootstrapper if environment constraints (like OS version) are not met. It provides the underlying data structures (RobloxPlayerData) that the engine uses to determine launch parameters.", - "key_edges": [], - "src_id": "1.2", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 235, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 230, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 373, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings", - "call_sites": [ - { - "line": 284, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/LaunchSettings.cs|Bloxstrap.LaunchSettings.LaunchSettings(string[] args)", - "call_sites": [ - { - "line": 284, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.Initialize(bool useTempDir = false)", - "call_sites": [ - { - "line": 350, - "column": 24 - }, - { - "line": 368, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 247, - "column": 20 - }, - { - "line": 253, - "column": 24 - }, - { - "line": 262, - "column": 24 - }, - { - "line": 271, - "column": 20 - }, - { - "line": 273, - "column": 20 - }, - { - "line": 274, - "column": 20 - }, - { - "line": 275, - "column": 20 - }, - { - "line": 338, - "column": 28 - }, - { - "line": 351, - "column": 24 - }, - { - "line": 359, - "column": 24 - }, - { - "line": 364, - "column": 28 - }, - { - "line": 372, - "column": 28 - }, - { - "line": 386, - "column": 24 - }, - { - "line": 387, - "column": 24 - }, - { - "line": 398, - "column": 20 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.GetPreset(string name)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 108, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.SetValue(string key, object? value)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 55, - "column": 32 - }, - { - "line": 66, - "column": 32 - }, - { - "line": 70, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "call_sites": [ - { - "line": 112, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 61, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 58, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 40, - "column": 24 - }, - { - "line": 57, - "column": 32 - }, - { - "line": 109, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "call_sites": [ - { - "line": 360, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 222, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 336, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 236, - "column": 32 - }, - { - "line": 335, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SendStat(string key, string value)", - "call_sites": [ - { - "line": 608, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 438, - "column": 36 - }, - { - "line": 471, - "column": 36 - }, - { - "line": 497, - "column": 40 - }, - { - "line": 537, - "column": 40 - }, - { - "line": 561, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 407, - "column": 24 - }, - { - "line": 415, - "column": 32 - }, - { - "line": 433, - "column": 36 - }, - { - "line": 437, - "column": 36 - }, - { - "line": 560, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "call_sites": [ - { - "line": 382, - "column": 80 - }, - { - "line": 460, - "column": 31 - }, - { - "line": 475, - "column": 31 - }, - { - "line": 487, - "column": 31 - }, - { - "line": 507, - "column": 31 - }, - { - "line": 548, - "column": 31 - }, - { - "line": 566, - "column": 31 - }, - { - "line": 588, - "column": 31 - }, - { - "line": 621, - "column": 73 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Delete()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 155, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Delete()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 145, - "column": 32 - }, - { - "line": 149, - "column": 32 - }, - { - "line": 154, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 71, - "column": 28 - }, - { - "line": 93, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 39, - "column": 24 - }, - { - "line": 56, - "column": 32 - }, - { - "line": 62, - "column": 32 - }, - { - "line": 70, - "column": 28 - }, - { - "line": 92, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 123, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 108, - "column": 24 - }, - { - "line": 122, - "column": 28 - }, - { - "line": 131, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 12, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel.SaveSettings()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 55, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 27, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 26, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileClass(string handler, string handlerParam)", - "target": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "call_sites": [ - { - "line": 90, - "column": 24 - }, - { - "line": 93, - "column": 31 - }, - { - "line": 96, - "column": 28 - }, - { - "line": 99, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudioFileType(string key)", - "target": "Bloxstrap/Extensions/RegistryKeyEx.cs|Bloxstrap.Extensions.RegistryKeyEx.SetValueSafe(this RegistryKey registryKey, string? name, object value)", - "call_sites": [ - { - "line": 108, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.Unregister(string key)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 119, - "column": 28 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Configuration & Installation Authority", - "dst_name": "Modding Task & Asset Processor", - "evidence": "", - "key_edges": [], - "src_id": "1.2", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "target": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "call_sites": [ - { - "line": 49, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "call_sites": [ - { - "line": 633, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "call_sites": [ - { - "line": 409, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromFile(string filename)", - "call_sites": [ - { - "line": 379, - "column": 25 - }, - { - "line": 379, - "column": 60 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromString(string str)", - "call_sites": [ - { - "line": 54, - "column": 44 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Save()", - "target": "Bloxstrap/Utility/MD5Hash.cs|Bloxstrap.Utility.MD5Hash.FromString(string str)", - "call_sites": [ - { - "line": 118, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowFluentMessageBox(string message, MessageBoxImage icon, MessageBoxButton buttons)", - "call_sites": [ - { - "line": 17, - "column": 20 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Configuration & Installation Authority", - "dst_name": "Localization & Information Services", - "evidence": "", - "key_edges": [], - "src_id": "1.2", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Extensions/DateTimeEx.cs|Bloxstrap.Extensions.DateTimeEx.ToFriendlyString(this DateTime dateTime)", - "call_sites": [ - { - "line": 253, - "column": 81 - }, - { - "line": 262, - "column": 81 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Locale.cs|Bloxstrap.Locale.Initialize()", - "call_sites": [ - { - "line": 243, - "column": 20 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/Locale.cs|Bloxstrap.Locale.Set(string identifier)", - "call_sites": [ - { - "line": 389, - "column": 24 - } - ], - "description": "" - } - ] - }, - { - "relation": "Fetches remote update metadata", - "src_name": "Configuration & Installation Authority", - "dst_name": "Launch Orchestration & Lifecycle Management", - "evidence": "Core management uses the network utilities in the Integration component to check for updates via GitHub APIs and manage inter-process locks.", - "key_edges": [], - "src_id": "1.2", - "dst_id": "4.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "call_sites": [ - { - "line": 353, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.OnStartup(StartupEventArgs e)", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "call_sites": [ - { - "line": 394, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock", - "call_sites": [ - { - "line": 411, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "call_sites": [ - { - "line": 411, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Installer.cs|Bloxstrap.Installer.HandleUpgrade()", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name, TimeSpan timeout)", - "call_sites": [ - { - "line": 411, - "column": 34 - } - ], - "description": "" - } - ] - }, - { - "relation": "Reports execution telemetry and diagnostic logs", - "src_name": "Modding Task & Asset Processor", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The Processor utilizes the Bootstrapper's centralized logging and exception handling infrastructure to record the success or failure of asset transformations.", - "key_edges": [], - "src_id": "1.3", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs|Bloxstrap.Models.SettingTasks.EmojiModPresetTask.Execute()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 53, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnly(string filePath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 32, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Filesystem.cs|Bloxstrap.Utility.Filesystem.AssertReadOnlyDirectory(string directoryPath)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 42, - "column": 24 - } - ], - "description": "" - } - ] - }, - { - "relation": "Resolves target paths and reports deployment status", - "src_name": "Modding Task & Asset Processor", - "dst_name": "Configuration & Installation Authority", - "evidence": "Modding tasks consume the 'Paths' utility to locate the Roblox installation directory and use the Authority's UI services to notify users of asset conflicts or errors during the modification process.", - "key_edges": [], - "src_id": "1.3", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Models/SettingTasks/ShortcutTask.cs|Bloxstrap.Models.SettingTasks.ShortcutTask.Execute()", - "target": "Bloxstrap/Utility/Shortcut.cs|Bloxstrap.Utility.Shortcut.Create(string exePath, string exeArgs, string lnkPath)", - "call_sites": [ - { - "line": 20, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 30, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 49, - "column": 30 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Modding Task & Asset Processor", - "dst_name": "Static Resource & Theme Provider", - "evidence": "", - "key_edges": [], - "src_id": "1.3", - "dst_id": "3.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Models/Entities/ModPresetFileData.cs|Bloxstrap.Models.Entities.ModPresetFileData", - "target": "Bloxstrap/Resource.cs|Bloxstrap.Resource.GetStream(string name)", - "call_sites": [ - { - "line": 16, - "column": 50 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Modding Task & Asset Processor", - "dst_name": "Localization & Information Services", - "evidence": "", - "key_edges": [], - "src_id": "1.3", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs|Bloxstrap.UI.ViewModels.Settings.ModsViewModel.ManageCustomFont()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 56, - "column": 13 - }, - { - "line": 57, - "column": 13 - } - ], - "description": "" - } - ] - }, - { - "relation": "Updates shell progress state", - "src_name": "Execution & Lifecycle Control", - "dst_name": "UI Presentation Utilities", - "evidence": "The execution engine provides real-time feedback to the Windows Taskbar during long-running operations like downloads or installations.", - "key_edges": [], - "src_id": "2", - "dst_id": "5", - "is_static": false, - "all_edges": [] - }, - { - "relation": "Resolves visual resources and themes", - "src_name": "Custom UI Engine & Markdown Renderer", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "During the dynamic rendering process, the Custom UI Engine queries the Visual Asset Provider to resolve final theme colors and icons to ensure the custom UI remains consistent with the global application state.", - "key_edges": [], - "src_id": "2.1", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_BloxstrapCustomBootstrapper(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)", - "call_sites": [ - { - "line": 385, - "column": 36 - } - ], - "description": "" - } - ] - }, - { - "relation": "Utilizes data transformation and error utilities", - "src_name": "Custom UI Engine & Markdown Renderer", - "dst_name": "Lifecycle Orchestrator & Process Manager", - "evidence": "The Custom UI Engine relies on the Orchestrator's utility layer for converting raw XML attributes (strings) into WPF-compatible types (Thickness, CornerRadius, etc.) and throws subsystem-specific exceptions managed by the Orchestrator.", - "key_edges": [], - "src_id": "2.1", - "dst_id": "2.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetColorFromXElement(XElement xmlElement, string attributeName)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 52, - "column": 99 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 759, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Border(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 751, - "column": 39 - }, - { - "line": 755, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ColumnDefinition(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 659, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_Control(CustomDialog dialog, Control uiElement, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 338, - "column": 31 - }, - { - "line": 342, - "column": 39 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 313, - "column": 45 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_FrameworkElement(CustomDialog dialog, FrameworkElement uiElement, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 299, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ImageBrush(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetRectFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 129, - "column": 27 - }, - { - "line": 133, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_LinearGradientBrush(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetPointFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 181, - "column": 34 - }, - { - "line": 185, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_ProgressBar(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetCornerRadiusFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 486, - "column": 36 - }, - { - "line": 490, - "column": 45 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_RowDefinition(CustomDialog dialog, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetGridLengthFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 645, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog.HandleXmlElement_TextBlock_Base(CustomDialog dialog, TextBlock textBlock, XElement xmlElement)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetThicknessFromXElement(XElement xmlElement, string attributeName)", - "call_sites": [ - { - "line": 561, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttribute(XElement element, string attributeName, T? defaultValue = null)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "call_sites": [ - { - "line": 47, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog.ParseXmlAttributeNullable(XElement element, string attributeName)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.ConvertValue(string input)", - "call_sites": [ - { - "line": 64, - "column": 25 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies system-level modifications", - "src_name": "Visual Asset & Dialog Provider", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "During the launch sequence, the execution engine calls back into Core to apply FastFlags, manage file system paths, and clean up version directories.", - "key_edges": [], - "src_id": "2.2", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Extensions/BootstrapperIconEx.cs|Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 48, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/BootstrapperIconEx.cs|Bloxstrap.Extensions.BootstrapperIconEx.GetIcon(this BootstrapperIcon icon)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 37, - "column": 32 - }, - { - "line": 47, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 26, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersionStr(IAppData data)", - "call_sites": [ - { - "line": 107, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog.ByfronDialog()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetRobloxVersionStr(bool studio)", - "call_sites": [ - { - "line": 107, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 72, - "column": 28 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies system-level modifications", - "src_name": "Visual Asset & Dialog Provider", - "dst_name": "Configuration & Installation Authority", - "evidence": "During the launch sequence, the execution engine calls back into Core to apply FastFlags, manage file system paths, and clean up version directories.", - "key_edges": [], - "src_id": "2.2", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Extensions/IconEx.cs|Bloxstrap.Extensions.IconEx.GetImageSource(this Icon icon, bool handleException = true)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 27, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 75, - "column": 21 - } - ], - "description": "" - } - ] - }, - { - "relation": "Delegates dynamic UI construction", - "src_name": "Visual Asset & Dialog Provider", - "dst_name": "Custom UI Engine & Markdown Renderer", - "evidence": "The Dialog Provider uses the Custom UI Engine as a specialized factory branch. When the user selects a 'Custom' style, the Provider hands off the XML/XAML parsing and object instantiation to the Engine to generate the WPF window.", - "key_edges": [], - "src_id": "2.2", - "dst_id": "2.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "call_sites": [ - { - "line": 147, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException", - "call_sites": [ - { - "line": 64, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "call_sites": [ - { - "line": 64, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "call_sites": [ - { - "line": 67, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Signals user intent and state changes", - "src_name": "Visual Asset & Dialog Provider", - "dst_name": "Lifecycle Orchestrator & Process Manager", - "evidence": "The UI layer communicates back to the core engine via event callbacks and interface methods. Specifically, when a user closes a dialog or clicks cancel, the Provider triggers the Orchestrator's cancellation logic to halt process execution.", - "key_edges": [], - "src_id": "2.2", - "dst_id": "2.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.WinFormsDialogBase.Dialog_FormClosing(object sender, FormClosingEventArgs e)", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "call_sites": [ - { - "line": 136, - "column": 31 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "call_sites": [ - { - "line": 90, - "column": 55 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "call_sites": [ - { - "line": 89, - "column": 62 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "target": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "call_sites": [ - { - "line": 91, - "column": 55 - }, - { - "line": 92, - "column": 59 - }, - { - "line": 94, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetCustomBootstrapper()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "call_sites": [ - { - "line": 66, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies system-level modifications", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "During the launch sequence, the execution engine calls back into Core to apply FastFlags, manage file system paths, and clean up version directories.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 760, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 745, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Cancel()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 727, - "column": 24 - }, - { - "line": 744, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.ApplyModifications()", - "call_sites": [ - { - "line": 283, - "column": 49 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.CleanupVersionsFolder()", - "call_sites": [ - { - "line": 250, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.HandleConnectionError(Exception exception)", - "call_sites": [ - { - "line": 192, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.IsEligibleForBackgroundUpdate()", - "call_sites": [ - { - "line": 271, - "column": 29 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SafeGetLatestVersionInfo()", - "call_sites": [ - { - "line": 209, - "column": 23 - }, - { - "line": 248, - "column": 19 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SetStatus(string message)", - "call_sites": [ - { - "line": 185, - "column": 13 - }, - { - "line": 225, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.UpgradeRoblox()", - "call_sites": [ - { - "line": 274, - "column": 35 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 179, - "column": 24 - }, - { - "line": 189, - "column": 24 - }, - { - "line": 224, - "column": 32 - }, - { - "line": 229, - "column": 32 - }, - { - "line": 260, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartBackgroundUpdater()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 1248, - "column": 28 - }, - { - "line": 1252, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)", - "call_sites": [ - { - "line": 263, - "column": 29 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "call_sites": [ - { - "line": 263, - "column": 29 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 223, - "column": 21 - }, - { - "line": 236, - "column": 25 - }, - { - "line": 266, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper", - "call_sites": [ - { - "line": 243, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Bootstrapper(LaunchMode launchMode)", - "call_sites": [ - { - "line": 243, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 242, - "column": 24 - }, - { - "line": 248, - "column": 28 - }, - { - "line": 256, - "column": 28 - }, - { - "line": 260, - "column": 32 - }, - { - "line": 271, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 14, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs|Bloxstrap.UI.Elements.Bootstrapper.VistaDialog.ShowSuccess(string message, Action? callback)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 116, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 51, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 50, - "column": 28 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies system-level modifications", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Configuration & Installation Authority", - "evidence": "During the launch sequence, the execution engine calls back into Core to apply FastFlags, manage file system paths, and clean up version directories.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.AssertWindowsOSVersion()", - "call_sites": [ - { - "line": 204, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/FastFlagManager.cs|Bloxstrap.FastFlagManager.Load(bool alertFailure = true)", - "call_sites": [ - { - "line": 243, - "column": 30 - }, - { - "line": 244, - "column": 27 - }, - { - "line": 245, - "column": 50 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/JsonManager.cs|Bloxstrap.JsonManager.JsonManager.Load(bool alertFailure = true)", - "call_sites": [ - { - "line": 243, - "column": 30 - }, - { - "line": 244, - "column": 27 - }, - { - "line": 245, - "column": 50 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterPlayer()", - "call_sites": [ - { - "line": 291, - "column": 33 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Utility/WindowsRegistry.cs|Bloxstrap.Utility.WindowsRegistry.RegisterStudio()", - "call_sites": [ - { - "line": 289, - "column": 33 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 218, - "column": 26 - }, - { - "line": 232, - "column": 39 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs|Bloxstrap.UI.Elements.Bootstrapper.Base.BaseFunctions.ShowSuccess(string message, Action? callback)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 9, - "column": 22 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 53, - "column": 26 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies system-level modifications", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Modding Task & Asset Processor", - "evidence": "During the launch sequence, the execution engine calls back into Core to apply FastFlags, manage file system paths, and clean up version directories.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowBalloonTip(string title, string message, ToolTipIcon icon = null, int timeout = 5)", - "call_sites": [ - { - "line": 302, - "column": 34 - }, - { - "line": 304, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "call_sites": [ - { - "line": 221, - "column": 31 - } - ], - "description": "" - } - ] - }, - { - "relation": "Triggers UI preview and validation", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Custom UI Engine & Markdown Renderer", - "evidence": "The Orchestrator directly invokes the Custom UI Engine during configuration phases (e.g., from the Menu/Settings) to provide a live preview of custom themes, bypassing the standard bootstrapper flow.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "2.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(Exception innerException, string translationString, params object?[] args)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Converters.CustomDialog.GetTypeFromXElement(TypeConverter converter, XElement xmlElement, string attributeName)", - "target": "Bloxstrap/Exceptions/CustomThemeException.cs|Bloxstrap.Exceptions.CustomThemeException.CustomThemeException(string translationString, params object?[] args)", - "call_sites": [ - { - "line": 41, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Creator.CustomDialog.ApplyCustomTheme(string name, string contents)", - "call_sites": [ - { - "line": 39, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Elements.CustomDialog", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.Utilities.CustomDialog", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Orchestrates UI instantiation and lifecycle", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "The Orchestrator acts as the primary consumer of the Dialog Provider's factory methods. It requests specific IBootstrapperDialog implementations based on configuration (Fluent, Classic, etc.) and manages their visibility during the bootstrapper's execution loop.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Extensions/BootstrapperStyleEx.cs|Bloxstrap.Extensions.BootstrapperStyleEx.GetNew(this BootstrapperStyle bootstrapperStyle)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.GetBootstrapperDialog(BootstrapperStyle style)", - "call_sites": [ - { - "line": 5, - "column": 104 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs|Bloxstrap.UI.ViewModels.Editor.BootstrapperEditorWindowViewModel.Preview()", - "target": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog.CustomDialog()", - "call_sites": [ - { - "line": 37, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Localization & Information Services", - "evidence": "", - "key_edges": [], - "src_id": "2.3", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ByfronDialog.xaml.ByfronDialog", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 35, - "column": 28 - }, - { - "line": 45, - "column": 28 - }, - { - "line": 55, - "column": 28 - }, - { - "line": 65, - "column": 28 - }, - { - "line": 75, - "column": 28 - }, - { - "line": 85, - "column": 28 - }, - { - "line": 96, - "column": 28 - }, - { - "line": 97, - "column": 28 - }, - { - "line": 99, - "column": 28 - }, - { - "line": 100, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.ClassicFluentDialog.xaml.ClassicFluentDialog", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 28, - "column": 28 - }, - { - "line": 38, - "column": 28 - }, - { - "line": 48, - "column": 28 - }, - { - "line": 58, - "column": 28 - }, - { - "line": 68, - "column": 28 - }, - { - "line": 78, - "column": 28 - }, - { - "line": 89, - "column": 28 - }, - { - "line": 90, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.CustomDialog.xaml.CustomDialog", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 27, - "column": 28 - }, - { - "line": 37, - "column": 28 - }, - { - "line": 47, - "column": 28 - }, - { - "line": 57, - "column": 28 - }, - { - "line": 67, - "column": 28 - }, - { - "line": 77, - "column": 28 - }, - { - "line": 88, - "column": 28 - }, - { - "line": 89, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs|Bloxstrap.UI.Elements.Bootstrapper.FluentDialog.xaml.FluentDialog", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 42, - "column": 28 - }, - { - "line": 52, - "column": 28 - }, - { - "line": 62, - "column": 28 - }, - { - "line": 72, - "column": 28 - }, - { - "line": 82, - "column": 28 - }, - { - "line": 92, - "column": 28 - }, - { - "line": 103, - "column": 28 - }, - { - "line": 104, - "column": 28 - } - ], - "description": "" - } - ] - }, - { - "relation": "Initiates game connectivity", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Presence & Metadata Services", - "evidence": "The bootstrapper's main run loop triggers the initialization of network connectivity and the actual process launch of the Roblox client.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "4.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()", - "call_sites": [ - { - "line": 187, - "column": 53 - } - ], - "description": "" - } - ] - }, - { - "relation": "Initiates game connectivity", - "src_name": "Lifecycle Orchestrator & Process Manager", - "dst_name": "Launch Orchestration & Lifecycle Management", - "evidence": "The bootstrapper's main run loop triggers the initialization of network connectivity and the actual process launch of the Roblox client.", - "key_edges": [], - "src_id": "2.3", - "dst_id": "4.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.Run()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()", - "call_sites": [ - { - "line": 307, - "column": 17 - } - ], - "description": "" - } - ] - }, - { - "relation": "Persists user configuration", - "src_name": "Static Resource & Theme Provider", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The UI layer directly invokes installation logic and configuration persistence in the Core component when users interact with the settings or installer.", - "key_edges": [], - "src_id": "3.1", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateCreateNew()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 108, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 166, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.ValidateImport()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 165, - "column": 28 - } - ], - "description": "" - } - ] - }, - { - "relation": "Persists user configuration", - "src_name": "Static Resource & Theme Provider", - "dst_name": "Configuration & Installation Authority", - "evidence": "The UI layer directly invokes installation logic and configuration persistence in the Core component when users interact with the settings or installer.", - "key_edges": [], - "src_id": "3.1", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.OnClosing(object sender, CancelEventArgs e)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 197, - "column": 35 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Static Resource & Theme Provider", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "", - "key_edges": [], - "src_id": "3.1", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs|Bloxstrap.UI.Elements.Editor.BootstrapperEditorWindow.xaml.BootstrapperEditorWindow.LoadHighlightingTheme()", - "target": "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)", - "call_sites": [ - { - "line": 165, - "column": 67 - } - ], - "description": "" - } - ] - }, - { - "relation": "Notifies logic layer of resource state changes", - "src_name": "Static Resource & Theme Provider", - "dst_name": "Localization & Information Services", - "evidence": "When custom themes are added or modified within the Resource Provider, it triggers property change notifications that the Information Services observe to update the UI model.", - "key_edges": [], - "src_id": "3.1", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.AddCustomThemeDialog.xaml.AddCustomThemeDialog.AddCustomThemeDialog()", - "target": "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.AddCustomThemeViewModel", - "call_sites": [ - { - "line": 25, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AddCustomTheme()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 160, - "column": 17 - }, - { - "line": 161, - "column": 17 - } - ], - "description": "" - } - ] - }, - { - "relation": "Persists user configuration", - "src_name": "Localization & Information Services", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The UI layer directly invokes installation logic and configuration persistence in the Core component when users interact with the settings or installer.", - "key_edges": [], - "src_id": "3.2", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 50, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 49, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 179, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 245, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 221, - "column": 36 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 108, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs|Bloxstrap.UI.ViewModels.Settings.BloxstrapViewModel.AddFilesToZipStream(ZipOutputStream zipStream, IEnumerable files, string directory)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 107, - "column": 32 - } - ], - "description": "" - } - ] - }, - { - "relation": "Persists user configuration", - "src_name": "Localization & Information Services", - "dst_name": "Configuration & Installation Authority", - "evidence": "The UI layer directly invokes installation logic and configuration persistence in the Core component when users interact with the settings or installer.", - "key_edges": [], - "src_id": "3.2", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "target": "Bloxstrap/Installer.cs|Bloxstrap.Installer.CheckInstallLocation()", - "call_sites": [ - { - "line": 68, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "target": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "call_sites": [ - { - "line": 76, - "column": 23 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.DeleteCustomTheme()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 180, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 204, - "column": 26 - }, - { - "line": 215, - "column": 34 - }, - { - "line": 218, - "column": 34 - }, - { - "line": 224, - "column": 34 - }, - { - "line": 235, - "column": 26 - }, - { - "line": 246, - "column": 26 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Localization & Information Services", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "", - "key_edges": [], - "src_id": "3.2", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.AppearanceViewModel(Page page)", - "target": "Bloxstrap/Models/BootstrapperIconEntry.cs|Bloxstrap.Models.BootstrapperIconEntry", - "call_sites": [ - { - "line": 62, - "column": 31 - } - ], - "description": "" - } - ] - }, - { - "relation": "Validates file-system metadata and retrieves embedded assets", - "src_name": "Localization & Information Services", - "dst_name": "Static Resource & Theme Provider", - "evidence": "Information services rely on the Resource provider to validate user-provided names (via PathValidator) and to access embedded binary resources or string tables required for the 'About' and 'Supporters' views.", - "key_edges": [], - "src_id": "3.2", - "dst_id": "3.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs|Bloxstrap.UI.ViewModels.Settings.AppearanceViewModel.RenameCustomTheme()", - "target": "Bloxstrap/Utility/PathValidator.cs|Bloxstrap.Utility.PathValidator.IsFileNameValid(string fileName)", - "call_sites": [ - { - "line": 208, - "column": 50 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Localization & Information Services", - "dst_name": "Presence & Metadata Services", - "evidence": "", - "key_edges": [], - "src_id": "3.2", - "dst_id": "4.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs|Bloxstrap.UI.ViewModels.About.SupportersViewModel.LoadSupporterData()", - "target": "Bloxstrap/Utility/Http.cs|Bloxstrap.Utility.Http.GetJson(string url)", - "call_sites": [ - { - "line": 45, - "column": 44 - } - ], - "description": "" - } - ] - }, - { - "relation": "Persists user configuration", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The UI layer directly invokes installation logic and configuration persistence in the Core component when users interact with the settings or installer.", - "key_edges": [], - "src_id": "3.3", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 73, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.GetLatestRelease()", - "call_sites": [ - { - "line": 21, - "column": 41 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.CompareVersions(string versionStr1, string versionStr2)", - "call_sites": [ - { - "line": 25, - "column": 31 - } - ], - "description": "" - } - ] - }, - { - "relation": "Persists user configuration", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Configuration & Installation Authority", - "evidence": "The UI layer directly invokes installation logic and configuration persistence in the Core component when users interact with the settings or installer.", - "key_edges": [], - "src_id": "3.3", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow_Closing(object? sender, CancelEventArgs e)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 112, - "column": 35 - } - ], - "description": "" - } - ] - }, - { - "relation": "calls", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Visual Asset & Dialog Provider", - "evidence": "", - "key_edges": [], - "src_id": "3.3", - "dst_id": "2.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow.ApplyTheme()", - "target": "Bloxstrap/Extensions/ThemeEx.cs|Bloxstrap.Extensions.ThemeEx.GetFinal(this Theme dialogTheme)", - "call_sites": [ - { - "line": 23, - "column": 60 - }, - { - "line": 27, - "column": 138 - } - ], - "description": "" - } - ] - }, - { - "relation": "Applies visual styles and theme templates", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Static Resource & Theme Provider", - "evidence": "The UI shell consumes theme templates and resource dictionaries managed by the Resource Provider to dynamically skin the WPF windows during the installation or configuration flow.", - "key_edges": [ - { - "source": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow", - "target": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx", - "call_sites": [], - "description": "UI window applies custom theme templates." - } - ], - "src_id": "3.3", - "dst_id": "3.1", - "is_static": false, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs|Bloxstrap.UI.Elements.Base.WpfUiWindow", - "target": "Bloxstrap/Extensions/CustomThemeTemplateEx.cs|Bloxstrap.Extensions.CustomThemeTemplateEx", - "call_sites": [], - "description": "UI window applies custom theme templates." - } - ] - }, - { - "relation": "Delegates installation logic and localized content retrieval", - "src_name": "Interactive UI Flow Controller", - "dst_name": "Localization & Information Services", - "evidence": "The UI Flow Controller acts as a thin orchestration layer that triggers business logic (DoInstall, DoChecks) within the Localization & Information Services. It also consumes localized strings and state updates via data binding to properties like NextButtonText.", - "key_edges": [], - "src_id": "3.3", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs|Bloxstrap.UI.Elements.Installer.Pages.InstallPage.xaml.InstallPage.NextPageCallback()", - "target": "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs|Bloxstrap.UI.ViewModels.Installer.InstallViewModel.DoInstall()", - "call_sites": [ - { - "line": 37, - "column": 54 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetButtonEnabled(string type, bool state)", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 31, - "column": 17 - }, - { - "line": 36, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Installer.MainWindowViewModel.SetNextButtonText(string text)", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 43, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs|Bloxstrap.UI.ViewModels.Installer.WelcomeViewModel.DoChecks()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 28, - "column": 21 - }, - { - "line": 33, - "column": 13 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Presence & Metadata Services", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.1", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.GetWithRetriesAsync(this HttpClient client, string url, int retries, CancellationToken token)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 27, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Extensions/HttpClientEx.cs|Bloxstrap.Extensions.HttpClientEx.PostWithRetriesAsync(this HttpClient client, string url, HttpContent? content, int retries, CancellationToken token)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 53, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 35, - "column": 28 - }, - { - "line": 38, - "column": 28 - }, - { - "line": 41, - "column": 28 - }, - { - "line": 44, - "column": 28 - }, - { - "line": 51, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.ProcessRPCMessage(Message message, bool implicitUpdate = true)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 65, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.ProcessSetRichPresence(Message message, bool implicitUpdate)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 185, - "column": 28 - }, - { - "line": 191, - "column": 28 - }, - { - "line": 198, - "column": 32 - }, - { - "line": 208, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 363, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 330, - "column": 28 - }, - { - "line": 347, - "column": 24 - }, - { - "line": 385, - "column": 28 - }, - { - "line": 421, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 314, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.UpdatePresence()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 470, - "column": 28 - }, - { - "line": 475, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 133, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 132, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.RejoinServer()", - "target": "Bloxstrap/AppData/RobloxPlayerData.cs|Bloxstrap.AppData.RobloxPlayerData", - "call_sites": [ - { - "line": 153, - "column": 37 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 165, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.GetInfo(string? channel = null)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 135, - "column": 24 - }, - { - "line": 143, - "column": 28 - }, - { - "line": 164, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.InitializeConnectivity()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 86, - "column": 24 - }, - { - "line": 112, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 65, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/RobloxInterfaces/Deployment.cs|Bloxstrap.RobloxInterfaces.Deployment.TestConnection(string url, int priority, CancellationToken token)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 43, - "column": 24 - }, - { - "line": 60, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails.GetThumbnailUrlAsync(ThumbnailRequest request, CancellationToken token)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 88, - "column": 32 - }, - { - "line": 94, - "column": 28 - }, - { - "line": 96, - "column": 28 - }, - { - "line": 98, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Utility/Thumbnails.cs|Bloxstrap.Utility.Thumbnails.GetThumbnailUrlsAsync(List requests, CancellationToken token)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 44, - "column": 32 - }, - { - "line": 52, - "column": 32 - }, - { - "line": 54, - "column": 32 - }, - { - "line": 56, - "column": 32 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Presence & Metadata Services", - "dst_name": "Configuration & Installation Authority", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.1", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetCurrentGame()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 364, - "column": 30 - } - ], - "description": "" - } - ] - }, - { - "relation": "Launches configuration and installer UI", - "src_name": "Presence & Metadata Services", - "dst_name": "Localization & Information Services", - "evidence": "When the bootstrapper is run in installer mode or requires user configuration, the Integration component instantiates the main WPF windows.", - "key_edges": [], - "src_id": "4.1", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerInformationViewModel.QueryServerLocation()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 39, - "column": 13 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()", - "target": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.SetStatus(string message)", - "call_sites": [ - { - "line": 561, - "column": 13 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 625, - "column": 24 - }, - { - "line": 631, - "column": 28 - }, - { - "line": 637, - "column": 28 - }, - { - "line": 650, - "column": 28 - }, - { - "line": 668, - "column": 32 - }, - { - "line": 669, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 91, - "column": 21 - }, - { - "line": 98, - "column": 21 - }, - { - "line": 107, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchSettings()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 197, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchSettings()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 190, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchSettings()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetProcessesSafe()", - "call_sites": [ - { - "line": 192, - "column": 41 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchUninstaller()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 140, - "column": 21 - }, - { - "line": 162, - "column": 21 - }, - { - "line": 170, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 80, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchBackgroundUpdater()", - "call_sites": [ - { - "line": 65, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 49, - "column": 28 - }, - { - "line": 54, - "column": 28 - }, - { - "line": 59, - "column": 28 - }, - { - "line": 64, - "column": 28 - }, - { - "line": 69, - "column": 28 - }, - { - "line": 74, - "column": 28 - }, - { - "line": 79, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 36, - "column": 25 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 20, - "column": 32 - }, - { - "line": 25, - "column": 32 - }, - { - "line": 30, - "column": 32 - }, - { - "line": 35, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs|Bloxstrap.UI.Elements.About.MainWindow.xaml.MainWindow.MainWindow()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 16, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.MainWindow(bool showAlreadyRunningWarning)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 30, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.SoftTerminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 106, - "column": 21 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Configuration & Installation Authority", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/Installer.cs|Bloxstrap.Installer", - "call_sites": [ - { - "line": 104, - "column": 37 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/Installer.cs|Bloxstrap.Installer.CheckInstallLocation()", - "call_sites": [ - { - "line": 106, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoInstall()", - "call_sites": [ - { - "line": 109, - "column": 27 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 90, - "column": 26 - }, - { - "line": 97, - "column": 26 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchUninstaller()", - "target": "Bloxstrap/Installer.cs|Bloxstrap.Installer.DoUninstall(bool keepData)", - "call_sites": [ - { - "line": 166, - "column": 23 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchUninstaller()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 139, - "column": 26 - }, - { - "line": 168, - "column": 22 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs|Bloxstrap.UI.ViewModels.Settings.MainWindowViewModel", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 27, - "column": 43 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Modding Task & Asset Processor", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowPlayerErrorDialog(bool crash = false)", - "call_sites": [ - { - "line": 632, - "column": 26 - } - ], - "description": "" - } - ] - }, - { - "relation": "Triggers launch based on arguments", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Lifecycle Orchestrator & Process Manager", - "evidence": "The monitoring component parses command-line arguments and determines the specific launch mode (e.g., installer vs. game launch) for the execution engine.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "2.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Bootstrapper.cs|Bloxstrap.Bootstrapper.StartRoblox()", - "target": "Bloxstrap/Utility/AsyncMutex.cs|Bloxstrap.Utility.AsyncMutex.ReleaseAsync()", - "call_sites": [ - { - "line": 640, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "call_sites": [ - { - "line": 70, - "column": 17 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessNextAction(NextAction action, bool isUnfinishedInstall = false)", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "call_sites": [ - { - "line": 26, - "column": 21 - }, - { - "line": 31, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Settings.MainWindow.xaml.MainWindow.WpfUiWindow_Closed(object sender, EventArgs e)", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchRoblox(LaunchMode launchMode)", - "call_sites": [ - { - "line": 104, - "column": 31 - } - ], - "description": "" - } - ] - }, - { - "relation": "Launches configuration and installer UI", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Localization & Information Services", - "evidence": "When the bootstrapper is run in installer mode or requires user configuration, the Integration component instantiates the main WPF windows.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs|Bloxstrap.UI.Elements.Dialogs.LanguageSelectorDialog.xaml.LanguageSelectorDialog.LanguageSelectorDialog()", - "target": "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs|Bloxstrap.UI.ViewModels.Dialogs.LanguageSelectorViewModel", - "call_sites": [ - { - "line": 25, - "column": 33 - } - ], - "description": "" - } - ] - }, - { - "relation": "Launches configuration and installer UI", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Interactive UI Flow Controller", - "evidence": "When the bootstrapper is run in installer mode or requires user configuration, the Integration component instantiates the main WPF windows.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "3.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow", - "call_sites": [ - { - "line": 123, - "column": 59 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchInstaller()", - "target": "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs|Bloxstrap.UI.Elements.Installer.MainWindow.xaml.MainWindow.MainWindow()", - "call_sites": [ - { - "line": 123, - "column": 59 - } - ], - "description": "" - } - ] - }, - { - "relation": "Delegates runtime session supervision", - "src_name": "Launch Orchestration & Lifecycle Management", - "dst_name": "Activity Monitoring & Session Watcher", - "evidence": "The launch handler determines the execution mode and hands off control to the watcher to monitor the game process lifecycle and manage the system tray.", - "key_edges": [], - "src_id": "4.2", - "dst_id": "4.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.ProcessLaunchArgs()", - "target": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "call_sites": [ - { - "line": 60, - "column": 17 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Bootstrapper Engine & Environment Manager", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "1.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 141, - "column": 28 - }, - { - "line": 143, - "column": 28 - }, - { - "line": 157, - "column": 28 - }, - { - "line": 163, - "column": 32 - }, - { - "line": 180, - "column": 36 - }, - { - "line": 181, - "column": 36 - }, - { - "line": 205, - "column": 32 - }, - { - "line": 218, - "column": 36 - }, - { - "line": 219, - "column": 36 - }, - { - "line": 250, - "column": 36 - }, - { - "line": 251, - "column": 36 - }, - { - "line": 260, - "column": 32 - }, - { - "line": 264, - "column": 32 - }, - { - "line": 278, - "column": 32 - }, - { - "line": 290, - "column": 32 - }, - { - "line": 297, - "column": 36 - }, - { - "line": 302, - "column": 40 - }, - { - "line": 312, - "column": 36 - }, - { - "line": 313, - "column": 36 - }, - { - "line": 320, - "column": 32 - }, - { - "line": 324, - "column": 36 - }, - { - "line": 334, - "column": 36 - }, - { - "line": 340, - "column": 36 - }, - { - "line": 346, - "column": 36 - }, - { - "line": 360, - "column": 40 - }, - { - "line": 366, - "column": 40 - }, - { - "line": 372, - "column": 40 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.Start()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 87, - "column": 28 - }, - { - "line": 100, - "column": 32 - }, - { - "line": 115, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.Dispose()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 483, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(AggregateException ex)", - "call_sites": [ - { - "line": 298, - "column": 29 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.FinalizeExceptionHandling(Exception ex, bool log = true)", - "call_sites": [ - { - "line": 298, - "column": 29 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "target": "Bloxstrap/App.xaml.cs|Bloxstrap.App.xaml.App.Terminate(ErrorCode exitCode = default(ErrorCode))", - "call_sites": [ - { - "line": 301, - "column": 21 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/LaunchHandler.cs|Bloxstrap.LaunchHandler.LaunchWatcher()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 289, - "column": 28 - }, - { - "line": 295, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.Window_Closed(object sender, EventArgs e)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 103, - "column": 78 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.Dispose()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 139, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.NotifyIconWrapper(Watcher watcher)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 25, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.ShowAlert(string caption, string message, int duration, EventHandler? clickHandler)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 100, - "column": 24 - }, - { - "line": 101, - "column": 24 - }, - { - "line": 108, - "column": 28 - }, - { - "line": 123, - "column": 28 - }, - { - "line": 128, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 47, - "column": 32 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteException(string identifier, Exception ex)", - "call_sites": [ - { - "line": 100, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.CloseProcess(int pid, bool force = false)", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 84, - "column": 28 - }, - { - "line": 88, - "column": 32 - }, - { - "line": 99, - "column": 28 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Dispose()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 126, - "column": 24 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Run()", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.GetProcessesSafe()", - "call_sites": [ - { - "line": 111, - "column": 30 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Watcher()", - "target": "Bloxstrap/AppData/RobloxPlayerData.cs|Bloxstrap.AppData.RobloxPlayerData", - "call_sites": [ - { - "line": 34, - "column": 35 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Watcher()", - "target": "Bloxstrap/Logger.cs|Bloxstrap.Logger.WriteLine(string identifier, string message)", - "call_sites": [ - { - "line": 25, - "column": 28 - }, - { - "line": 61, - "column": 36 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Configuration & Installation Authority", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "1.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.CloseRobloxMenuItem_Click(object sender, RoutedEventArgs e)", - "target": "Bloxstrap/UI/Frontend.cs|Bloxstrap.UI.Frontend.ShowMessageBox(string message, MessageBoxImage icon = null, MessageBoxButton buttons = null, MessageBoxResult defaultResult = null)", - "call_sites": [ - { - "line": 121, - "column": 48 - } - ], - "description": "" - } - ] - }, - { - "relation": "Logs telemetry and session events", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Modding Task & Asset Processor", - "evidence": "The activity watcher and Discord RPC services continuously stream status updates and error reports to the central Logger.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "1.3", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.LogTracerMenuItem_Click(object sender, RoutedEventArgs e)", - "target": "Bloxstrap/Utilities.cs|Bloxstrap.Utilities.ShellExecute(string website)", - "call_sites": [ - { - "line": 116, - "column": 27 - } - ], - "description": "" - } - ] - }, - { - "relation": "Launches configuration and installer UI", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Localization & Information Services", - "evidence": "When the bootstrapper is run in installer mode or requires user configuration, the Integration component instantiates the main WPF windows.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "3.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "target": "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs|Bloxstrap.UI.ViewModels.NotifyPropertyChangedViewModel.OnPropertyChanged(string propertyName)", - "call_sites": [ - { - "line": 33, - "column": 13 - }, - { - "line": 50, - "column": 21 - }, - { - "line": 53, - "column": 21 - }, - { - "line": 86, - "column": 13 - }, - { - "line": 89, - "column": 13 - } - ], - "description": "" - } - ] - }, - { - "relation": "Pushes parsed session telemetry for enrichment", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Presence & Metadata Services", - "evidence": "The activity watcher parses Roblox log files in real-time and invokes metadata services to fetch server locations and update Discord Rich Presence state.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "4.1", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Integrations/ActivityWatcher.cs|Bloxstrap.Integrations.ActivityWatcher.ReadLogEntry(string entry)", - "target": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "call_sites": [ - { - "line": 191, - "column": 34 - }, - { - "line": 258, - "column": 34 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.RichPresenceMenuItem_Click(object sender, RoutedEventArgs e)", - "target": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.SetVisibility(bool visible)", - "call_sites": [ - { - "line": 105, - "column": 109 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.MenuContainer.xaml.MenuContainer.ShowServerInformationWindow()", - "target": "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs|Bloxstrap.UI.Elements.ContextMenu.ServerInformation.xaml.ServerInformation.ServerInformation(Watcher watcher)", - "call_sites": [ - { - "line": 54, - "column": 44 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/NotifyIconWrapper.cs|Bloxstrap.UI.NotifyIconWrapper.OnGameJoin(object? sender, EventArgs e)", - "target": "Bloxstrap/Models/Entities/ActivityData.cs|Bloxstrap.Models.Entities.ActivityData.QueryServerLocation()", - "call_sites": [ - { - "line": 62, - "column": 66 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "target": "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.FetchBulk(string ids)", - "call_sites": [ - { - "line": 43, - "column": 43 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs|Bloxstrap.UI.ViewModels.ContextMenu.ServerHistoryViewModel.LoadData()", - "target": "Bloxstrap/Models/Entities/UniverseDetails.cs|Bloxstrap.Models.Entities.UniverseDetails.LoadFromCache(long id)", - "call_sites": [ - { - "line": 59, - "column": 61 - } - ], - "description": "" - }, - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher.Watcher()", - "target": "Bloxstrap/Integrations/DiscordRichPresence.cs|Bloxstrap.Integrations.DiscordRichPresence.DiscordRichPresence(ActivityWatcher activityWatcher)", - "call_sites": [ - { - "line": 68, - "column": 36 - } - ], - "description": "" - } - ] - }, - { - "relation": "Synchronizes instance state via mutex", - "src_name": "Activity Monitoring & Session Watcher", - "dst_name": "Launch Orchestration & Lifecycle Management", - "evidence": "The watcher utilizes the inter-process locking mechanism defined in the lifecycle management layer to ensure singleton execution and manage session ownership.", - "key_edges": [], - "src_id": "4.3", - "dst_id": "4.2", - "is_static": true, - "all_edges": [ - { - "source": "Bloxstrap/Watcher.cs|Bloxstrap.Watcher", - "target": "Bloxstrap/Utility/InterProcessLock.cs|Bloxstrap.Utility.InterProcessLock.InterProcessLock(string name)", - "call_sites": [ - { - "line": 9, - "column": 51 - } - ], - "description": "" - } - ] - } - ] -} \ No newline at end of file diff --git a/.codeboarding/fingerprint.json b/.codeboarding/fingerprint.json deleted file mode 100644 index db9ea8442..000000000 --- a/.codeboarding/fingerprint.json +++ /dev/null @@ -1,355 +0,0 @@ -{ - "files": { - "LICENSE": "2cea8610b9389f38", - "global.json": "9cfab77119092bf7", - "README.md": "31d1c4dd1be937cb", - "Bloxstrap.sln": "f122798b411ca631", - "Bloxstrap/App.xaml.cs": "bd1a652536c64e5b", - "Bloxstrap/Installer.cs": "b49482bb87631247", - "Bloxstrap/GlobalUsings.cs": "dcb566147e70b212", - "Bloxstrap/JsonManager.cs": "d9cb3a6e10a1c99a", - "Bloxstrap/Paths.cs": "0ae2c5a296a12c78", - "Bloxstrap/Watcher.cs": "2ba36f8cfdd3663e", - "Bloxstrap/LaunchSettings.cs": "a11ce4d898ea4bd1", - "Bloxstrap/Locale.cs": "f261694a5dff7efa", - "Bloxstrap/app.manifest": "227a7f6f364b37af", - "Bloxstrap/Utilities.cs": "5d78477575c4bf46", - "Bloxstrap/AssemblyInfo.cs": "37d4c8bae5da31f2", - "Bloxstrap/FastFlagManager.cs": "3cb942ea5565b409", - "Bloxstrap/Bloxstrap.csproj": "356de8d30097f77b", - "Bloxstrap/LaunchHandler.cs": "2506bfded6ae0aff", - "Bloxstrap/NativeMethods.txt": "09aeaa3ef9894e8f", - "Bloxstrap/Logger.cs": "0ea680f4f6531270", - "Bloxstrap/HttpClientLoggingHandler.cs": "80df7527819c2178", - "Bloxstrap/GlobalCache.cs": "8bb6b3adcf404c42", - "Bloxstrap/Bootstrapper.cs": "8eea6ceebb819780", - "Bloxstrap/Resource.cs": "42885b8b2d2d40b7", - "Bloxstrap/Bloxstrap.ico": "41b7c05913d660a9", - "Bloxstrap/App.xaml": "cada48ff94fb45ed", - "Bloxstrap/Properties/Settings.settings": "726ca68161277439", - "Bloxstrap/Properties/Settings.Designer.cs": "202c007810762cf8", - "Bloxstrap/Properties/launchSettings.json": "516c1b1095402a12", - "Bloxstrap/Properties/Resources.resx": "36702050e1417e3e", - "Bloxstrap/Properties/Resources.Designer.cs": "672f47980986d616", - "Bloxstrap/Properties/PublishProfiles/Publish-x64.pubxml": "afae4df6a901c00d", - "Bloxstrap/AppData/IAppData.cs": "00b97a27946db7ae", - "Bloxstrap/AppData/CommonAppData.cs": "e86c3c291419c6c3", - "Bloxstrap/AppData/RobloxPlayerData.cs": "6c313f8b36ee28a0", - "Bloxstrap/AppData/RobloxStudioData.cs": "d651f8db0201f08a", - "Bloxstrap/Extensions/TEnumEx.cs": "e50fcfacfb02e324", - "Bloxstrap/Extensions/RegistryKeyEx.cs": "d27ad1f42ec0eb8a", - "Bloxstrap/Extensions/BootstrapperStyleEx.cs": "08a2470084600d49", - "Bloxstrap/Extensions/EmojiTypeEx.cs": "22b45566e0e5247a", - "Bloxstrap/Extensions/IconEx.cs": "3701516ac72e2e86", - "Bloxstrap/Extensions/ServerTypeEx.cs": "52d3c0d58b66511b", - "Bloxstrap/Extensions/ResourceManagerEx.cs": "06914f5ab63988c0", - "Bloxstrap/Extensions/HttpClientEx.cs": "0a7355406c659ee8", - "Bloxstrap/Extensions/DateTimeEx.cs": "33fc4152f0d8fb2d", - "Bloxstrap/Extensions/BootstrapperIconEx.cs": "b3ee3e5e62540d68", - "Bloxstrap/Extensions/CustomThemeTemplateEx.cs": "195124ddddc23d9d", - "Bloxstrap/Extensions/ThemeEx.cs": "5faecf25bb535bbe", - "Bloxstrap/UI/Frontend.cs": "f19a4072946865a4", - "Bloxstrap/UI/NotifyIconWrapper.cs": "a7724ba6343bb3ea", - "Bloxstrap/UI/IBootstrapperDialog.cs": "da1ff52a6e2cceec", - "Bloxstrap/UI/Utility/Rendering.cs": "a64d84df099c4248", - "Bloxstrap/UI/Utility/WindowScaling.cs": "94bf1866a6eeb4a3", - "Bloxstrap/UI/Utility/TaskbarProgress.cs": "adea1d62fbaac316", - "Bloxstrap/UI/Converters/EnumNameConverter.cs": "83331c4c01a7445b", - "Bloxstrap/UI/Converters/RangeConverter.cs": "632ca7dec7570980", - "Bloxstrap/UI/Converters/StringFormatConverter.cs": "fd2867726261e260", - "Bloxstrap/UI/ViewModels/NotifyPropertyChangedViewModel.cs": "4c83e8fabd6cbd00", - "Bloxstrap/UI/ViewModels/GlobalViewModel.cs": "a9019ece9b2e9577", - "Bloxstrap/UI/ViewModels/Settings/ShortcutsViewModel.cs": "9991a2853185cc72", - "Bloxstrap/UI/ViewModels/Settings/MainWindowViewModel.cs": "fa1151332186024a", - "Bloxstrap/UI/ViewModels/Settings/ModsViewModel.cs": "d509df30c7a6c73c", - "Bloxstrap/UI/ViewModels/Settings/BloxstrapViewModel.cs": "9fb1fe6120ba89a7", - "Bloxstrap/UI/ViewModels/Settings/BehaviourViewModel.cs": "4803f01547ea6340", - "Bloxstrap/UI/ViewModels/Settings/FastFlagsViewModel.cs": "373fd02c6405b3cf", - "Bloxstrap/UI/ViewModels/Settings/IntegrationsViewModel.cs": "dbe562eee4ce640a", - "Bloxstrap/UI/ViewModels/Settings/AppearanceViewModel.cs": "9f549771b74e4902", - "Bloxstrap/UI/ViewModels/Editor/BootstrapperEditorWindowViewModel.cs": "d4530699bc38ebbb", - "Bloxstrap/UI/ViewModels/Bootstrapper/FluentDialogViewModel.cs": "04827993d85df102", - "Bloxstrap/UI/ViewModels/Bootstrapper/BootstrapperDialogViewModel.cs": "31e4f77f1cdda786", - "Bloxstrap/UI/ViewModels/Bootstrapper/ByfronDialogViewModel.cs": "34241bdcba999a70", - "Bloxstrap/UI/ViewModels/Bootstrapper/ClassicFluentDialogViewModel.cs": "9e1cce51b848e648", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerHistoryViewModel.cs": "008dd8105a78fd6d", - "Bloxstrap/UI/ViewModels/ContextMenu/ServerInformationViewModel.cs": "7ed4c22d52f64f30", - "Bloxstrap/UI/ViewModels/About/AboutViewModel.cs": "e6f7c33228d4717a", - "Bloxstrap/UI/ViewModels/About/SupportersViewModel.cs": "93a0978bf0ab2cae", - "Bloxstrap/UI/ViewModels/Installer/MainWindowViewModel.cs": "7486b5f507046402", - "Bloxstrap/UI/ViewModels/Installer/CompletionViewModel.cs": "355e4ce2fcb1f433", - "Bloxstrap/UI/ViewModels/Installer/WelcomeViewModel.cs": "cf2578495dc56cb3", - "Bloxstrap/UI/ViewModels/Installer/InstallViewModel.cs": "699a5c0bb37a6663", - "Bloxstrap/UI/ViewModels/Dialogs/AddCustomThemeViewModel.cs": "22ee098be09c48e6", - "Bloxstrap/UI/ViewModels/Dialogs/UninstallerViewModel.cs": "85e57473a6846a80", - "Bloxstrap/UI/ViewModels/Dialogs/LaunchMenuViewModel.cs": "2e7b5989a5d34391", - "Bloxstrap/UI/ViewModels/Dialogs/LanguageSelectorViewModel.cs": "bef58b5e138cc0ac", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml.cs": "76868d4995e00f6e", - "Bloxstrap/UI/Elements/Settings/MainWindow.xaml": "763c4017368231d3", - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml": "d56cca6be3f7a9d4", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml.cs": "3c62e8eda940fbf1", - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml.cs": "ba476d17e6c687ab", - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml.cs": "546b5b797a04feed", - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml.cs": "a0bec51d6ee68bcc", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagEditorPage.xaml": "c557c7d0cf7481db", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml.cs": "d3350b835b02c460", - "Bloxstrap/UI/Elements/Settings/Pages/IntegrationsPage.xaml": "1ceea8d3572e52b6", - "Bloxstrap/UI/Elements/Settings/Pages/ShortcutsPage.xaml": "b30d3650c22109f8", - "Bloxstrap/UI/Elements/Settings/Pages/BootstrapperPage.xaml": "892c2f7bb89ecd8f", - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml": "8a00b4cab69d993a", - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml.cs": "cf5204123917a316", - "Bloxstrap/UI/Elements/Settings/Pages/ModsPage.xaml": "ee5be17a50d37177", - "Bloxstrap/UI/Elements/Settings/Pages/BloxstrapPage.xaml.cs": "3afe654c9e03fa81", - "Bloxstrap/UI/Elements/Settings/Pages/FastFlagsPage.xaml": "e0eb42c55dcc2a69", - "Bloxstrap/UI/Elements/Settings/Pages/AppearancePage.xaml.cs": "5222cf438235b26c", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml.cs": "5e75a66744da02e7", - "Bloxstrap/UI/Elements/Editor/BootstrapperEditorWindow.xaml": "2a1ada7612f3a8cf", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.resx": "cedbe2ca6be094d0", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.resx": "dff08b1e2c7f6fac", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.cs": "390000a0e4c3376c", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml": "1c5e2df7832e0218", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.resx": "cedbe2ca6be094d0", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Converters.cs": "21b792575dc42a91", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.cs": "cad5c1510448ecc5", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml": "619d9afd49b455f4", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml.cs": "29d1f4f0268bc40f", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.xaml.cs": "12e95d916bdb57bd", - "Bloxstrap/UI/Elements/Bootstrapper/ClassicFluentDialog.xaml": "7c5f729272678fcb", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml.cs": "c5cc83c76cf5cdbc", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Utilities.cs": "c214819cc12817ed", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.Designer.cs": "db073e9641aa8c72", - "Bloxstrap/UI/Elements/Bootstrapper/VistaDialog.Designer.cs": "27bce2451d684beb", - "Bloxstrap/UI/Elements/Bootstrapper/FluentDialog.xaml": "423afdbdffaeafb1", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.resx": "cedbe2ca6be094d0", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.cs": "a2da1ab646eb8a26", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2011.Designer.cs": "8822f0c2c06795ba", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Elements.cs": "d8bece075da84974", - "Bloxstrap/UI/Elements/Bootstrapper/CustomDialog.Creator.cs": "9fbfeb941fdc8c9d", - "Bloxstrap/UI/Elements/Bootstrapper/LegacyDialog2008.cs": "f248b1964f1584a0", - "Bloxstrap/UI/Elements/Bootstrapper/ProgressDialog.Designer.cs": "aced243a2b735a38", - "Bloxstrap/UI/Elements/Bootstrapper/ByfronDialog.xaml.cs": "3fdc15e4caa1c633", - "Bloxstrap/UI/Elements/Bootstrapper/Base/WinFormsDialogBase.cs": "2cda60c70a5bf434", - "Bloxstrap/UI/Elements/Bootstrapper/Base/BaseFunctions.cs": "10c6c0639f21f9f5", - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml.cs": "1234932ac3544a4c", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml.cs": "f79351f6a8d7ad51", - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml": "af1cf61a90843cc9", - "Bloxstrap/UI/Elements/ContextMenu/ServerInformation.xaml": "498d02c5bf95dd80", - "Bloxstrap/UI/Elements/ContextMenu/MenuContainer.xaml": "f839d73d22d89fa0", - "Bloxstrap/UI/Elements/ContextMenu/ServerHistory.xaml.cs": "06e6f3328806c8d9", - "Bloxstrap/UI/Elements/About/MainWindow.xaml.cs": "99df4ecadfdff188", - "Bloxstrap/UI/Elements/About/MainWindow.xaml": "b772d3d8cc57b9c4", - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml": "f600b21db8d47c81", - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml.cs": "35a8b0e88f9b77bb", - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml": "6d3047348a3fb121", - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml.cs": "dec3f314f3d5ba26", - "Bloxstrap/UI/Elements/About/Pages/LicensesPage.xaml.cs": "a6ac2388165d9751", - "Bloxstrap/UI/Elements/About/Pages/AboutPage.xaml": "aae7ea3a529d2b16", - "Bloxstrap/UI/Elements/About/Pages/SupportersPage.xaml": "65d0bb4269a66803", - "Bloxstrap/UI/Elements/About/Pages/TranslatorsPage.xaml.cs": "a53c361c1f781919", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml.cs": "2453b72329ea40ce", - "Bloxstrap/UI/Elements/Installer/MainWindow.xaml": "14c56f3a9abf7911", - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml.cs": "da44f8f627a115fe", - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml": "d6d2b5442c10f13e", - "Bloxstrap/UI/Elements/Installer/Pages/CompletionPage.xaml.cs": "1889c49f39782828", - "Bloxstrap/UI/Elements/Installer/Pages/WelcomePage.xaml": "4eb1f63086542c70", - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml.cs": "e00f6513729229ec", - "Bloxstrap/UI/Elements/Installer/Pages/InstallPage.xaml": "c53fec92cade78bb", - "Bloxstrap/UI/Elements/Controls/Expander.xaml": "c3389ed818b1dc6f", - "Bloxstrap/UI/Elements/Controls/MarkdownTextBlock.cs": "3af2d8045ea52a2d", - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml.cs": "47050bd4f87a638e", - "Bloxstrap/UI/Elements/Controls/OptionControl.xaml": "1ad464604e4e7488", - "Bloxstrap/UI/Elements/Controls/Expander.xaml.cs": "1e4517b05f4e2c21", - "Bloxstrap/UI/Elements/Base/WpfUiWindow.cs": "6f831532d8367572", - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml.cs": "073767451a15a6d2", - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml.cs": "992850d1496a2bd2", - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml.cs": "022edab23aa95f77", - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml": "5f1c386e2f491923", - "Bloxstrap/UI/Elements/Dialogs/LaunchMenuDialog.xaml": "ef9b6b772e90aa3a", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml": "62f81080555de2cd", - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml.cs": "f1f341562240adbb", - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml": "471c494ef6103e3b", - "Bloxstrap/UI/Elements/Dialogs/AddFastFlagDialog.xaml.cs": "ac9153c3206ad7a0", - "Bloxstrap/UI/Elements/Dialogs/UninstallerDialog.xaml": "cde975f9e35e81d6", - "Bloxstrap/UI/Elements/Dialogs/ExceptionDialog.xaml.cs": "472afda7f387fe33", - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml": "f38510714939f38a", - "Bloxstrap/UI/Elements/Dialogs/FluentMessageBox.xaml": "4800535f7045663f", - "Bloxstrap/UI/Elements/Dialogs/AddCustomThemeDialog.xaml.cs": "5b5455f56f2a401a", - "Bloxstrap/UI/Elements/Dialogs/ConnectivityDialog.xaml.cs": "4e9efecd5d72f3b6", - "Bloxstrap/UI/Elements/Dialogs/LanguageSelectorDialog.xaml": "9aee85ed59129aa8", - "Bloxstrap/UI/Style/Editor-Theme-Light.xshd": "ee8428888ce49e4c", - "Bloxstrap/UI/Style/Editor-Theme-Dark.xshd": "2fdd729e921e95c4", - "Bloxstrap/UI/Style/Default.xaml": "ae343fe13184789f", - "Bloxstrap/UI/Style/Dark.xaml": "ead3eba32e127d3a", - "Bloxstrap/UI/Style/Light.xaml": "18acfbb818ef6b70", - "Bloxstrap/Exceptions/CustomThemeException.cs": "8c17dc0b063cfc15", - "Bloxstrap/Exceptions/AssertionException.cs": "86232819ebc2d8f6", - "Bloxstrap/Exceptions/InvalidHTTPResponseException.cs": "8eaf5207ada52bdc", - "Bloxstrap/Exceptions/InvalidChannelException.cs": "b39133add2bd21d9", - "Bloxstrap/Exceptions/ChecksumFailedException.cs": "4300de92a2bc697a", - "Bloxstrap/Utility/PathValidator.cs": "50b7bb2f63ee83f9", - "Bloxstrap/Utility/FixedCapacityList.cs": "8347acbc5d82d903", - "Bloxstrap/Utility/Thumbnails.cs": "8caf4b0152122d4c", - "Bloxstrap/Utility/WindowsRegistry.cs": "b355230504a917c8", - "Bloxstrap/Utility/InterProcessLock.cs": "8c21b6409f2b5164", - "Bloxstrap/Utility/Shortcut.cs": "72d8e4a8ca7896b3", - "Bloxstrap/Utility/Filesystem.cs": "f5000a8a34e2f945", - "Bloxstrap/Utility/AsyncMutex.cs": "10bb0742b522c169", - "Bloxstrap/Utility/Http.cs": "bf0e5905c8feb535", - "Bloxstrap/Utility/MD5Hash.cs": "9b519bf181225f18", - "Bloxstrap/Integrations/ActivityWatcher.cs": "18cffd8cee6d33dd", - "Bloxstrap/Integrations/DiscordRichPresence.cs": "ffb3c5119774b5f7", - "Bloxstrap/Enums/Theme.cs": "36c6d6cd3f2eed81", - "Bloxstrap/Enums/BootstrapperIcon.cs": "b6126ea0dd2a9125", - "Bloxstrap/Enums/CustomThemeTemplate.cs": "71cbccc09c349523", - "Bloxstrap/Enums/BootstrapperStyle.cs": "ffc929eab8b5fb42", - "Bloxstrap/Enums/GenericTriState.cs": "3330139aface0f2b", - "Bloxstrap/Enums/ErrorCode.cs": "b5bc9b0833a77909", - "Bloxstrap/Enums/ServerType.cs": "dbb67ac174b83fcf", - "Bloxstrap/Enums/LaunchMode.cs": "6e41329512337597", - "Bloxstrap/Enums/EmojiType.cs": "ed347f3685572341", - "Bloxstrap/Enums/WebEnvironment.cs": "9135e3e6e6f71052", - "Bloxstrap/Enums/ServerSessionJoinType.cs": "47be5e11f7c876cd", - "Bloxstrap/Enums/VersionComparison.cs": "953f8991d515495d", - "Bloxstrap/Enums/NextAction.cs": "f51f21fcfaf01360", - "Bloxstrap/Enums/CursorType.cs": "feecc9bf01c15586", - "Bloxstrap/Enums/FlagPresets/MSAAMode.cs": "9e845cfc170aa7cd", - "Bloxstrap/Enums/FlagPresets/TextureQuality.cs": "8508162531f60464", - "Bloxstrap/RobloxInterfaces/ApplicationSettings.cs": "7e3fe87e01bd0f58", - "Bloxstrap/RobloxInterfaces/Deployment.cs": "eff288a1f288ab0f", - "Bloxstrap/Resources/Strings.cs.resx": "35edabc15091a837", - "Bloxstrap/Resources/Strings.fil.resx": "be356aa8ae443aa6", - "Bloxstrap/Resources/Strings.th.resx": "92c1460e492deeb9", - "Bloxstrap/Resources/Strings.uk.resx": "c8204fbea71b23b4", - "Bloxstrap/Resources/CustomBootstrapperTemplate_Simple.xml": "ac905c350d29b4ae", - "Bloxstrap/Resources/Strings.de.resx": "98475f12b63b6b52", - "Bloxstrap/Resources/IconEarly2015.ico": "8863ed1e41ecd8a4", - "Bloxstrap/Resources/Strings.da.resx": "ae5c5af8af41f538", - "Bloxstrap/Resources/Strings.hr.resx": "5d323149ef816e8c", - "Bloxstrap/Resources/Strings.fr.resx": "2c8c190406c1c1b7", - "Bloxstrap/Resources/Icon2017.ico": "90815e2ede2d70ed", - "Bloxstrap/Resources/Strings.zh-Hant-HK.resx": "5b4a871cf6dcdb14", - "Bloxstrap/Resources/Strings.resx": "f130fd027fc5caf0", - "Bloxstrap/Resources/Strings.sv-SE.resx": "7e1a85f41b7ee05f", - "Bloxstrap/Resources/DarkCancelButtonHover.png": "299effe5b4d8a6d4", - "Bloxstrap/Resources/CustomBootstrapperSchema.json": "e02fb3b9405dcd1d", - "Bloxstrap/Resources/Strings.ko.resx": "7e27d81dd0c44a2c", - "Bloxstrap/Resources/Strings.zh-Hans-CN.resx": "b5d5bc214a3cdae2", - "Bloxstrap/Resources/Strings.ru.resx": "5eb12ea25a323fb5", - "Bloxstrap/Resources/CustomBootstrapperTemplate_Blank.xml": "9069d7e435ec0e25", - "Bloxstrap/Resources/Strings.en-US.resx": "31637c3e133156f3", - "Bloxstrap/Resources/Strings.pt-BR.resx": "43ada7ae3ef4f626", - "Bloxstrap/Resources/Strings.zh-Hant-TW.resx": "5b35c66bfad7d347", - "Bloxstrap/Resources/IconLate2015.ico": "1d7b5e3f259d7eaa", - "Bloxstrap/Resources/DarkCancelButton.png": "6233b9216847f465", - "Bloxstrap/Resources/Strings.Designer.cs": "b9f77f186ecfd030", - "Bloxstrap/Resources/CancelButtonHover.png": "50cf0b0471f5926f", - "Bloxstrap/Resources/Strings.id.resx": "cb255aa719381191", - "Bloxstrap/Resources/Icon2019.ico": "2c3da3fbe1433ad4", - "Bloxstrap/Resources/Strings.fi.resx": "08a4b5f70a346840", - "Bloxstrap/Resources/Strings.lt.resx": "fae0b08bc0d35764", - "Bloxstrap/Resources/Strings.ar.resx": "657be3a87f1ceb09", - "Bloxstrap/Resources/Strings.ja.resx": "854057ec70d9c77a", - "Bloxstrap/Resources/CancelButton.png": "8b5816ad03b502ba", - "Bloxstrap/Resources/Strings.ro.resx": "29a47dbdc48cc773", - "Bloxstrap/Resources/IconBloxstrapClassic.ico": "ee4e935a3a995e37", - "Bloxstrap/Resources/Strings.bs.resx": "868768b349876593", - "Bloxstrap/Resources/Icon2022.ico": "c074c355c95718f6", - "Bloxstrap/Resources/Strings.bg.resx": "056a3240df89c86a", - "Bloxstrap/Resources/Strings.nl.resx": "bb8512f857523c89", - "Bloxstrap/Resources/Icon2011.ico": "74aec0dbcfa862bb", - "Bloxstrap/Resources/Strings.es-ES.resx": "3faaaee5007dce1e", - "Bloxstrap/Resources/Strings.it.resx": "fc6a5b414f6c00fa", - "Bloxstrap/Resources/Strings.hi.resx": "f62db1228cd93059", - "Bloxstrap/Resources/IconBloxstrap.ico": "41b7c05913d660a9", - "Bloxstrap/Resources/Strings.tr.resx": "04611a3e7dd9b3d9", - "Bloxstrap/Resources/Strings.lv.resx": "3f8fce3e340e5014", - "Bloxstrap/Resources/Icon2008.ico": "ee597db01d556549", - "Bloxstrap/Resources/Strings.ms.resx": "7c1b2519aa7cdbd0", - "Bloxstrap/Resources/Strings.hu.resx": "50a35af6fdf2e311", - "Bloxstrap/Resources/Strings.vi.resx": "4771bf5a8bf10ca4", - "Bloxstrap/Resources/Strings.pl.resx": "ee136f63b99de5f3", - "Bloxstrap/Resources/Strings.fa.resx": "d39ccf607e72ac57", - "Bloxstrap/Resources/MessageBox/Question.png": "49cf0059a44f268c", - "Bloxstrap/Resources/MessageBox/Information.png": "cb0b5a868cda97ab", - "Bloxstrap/Resources/MessageBox/Error.png": "889a13eee7f76aa2", - "Bloxstrap/Resources/MessageBox/Warning.png": "8f28f7d136f70d5e", - "Bloxstrap/Resources/MessageBox/FullQuality/Question.png": "55f0916ba67f8979", - "Bloxstrap/Resources/MessageBox/FullQuality/Information.png": "f7d06e79f817eab2", - "Bloxstrap/Resources/MessageBox/FullQuality/Error.png": "072a359f24d0926b", - "Bloxstrap/Resources/MessageBox/FullQuality/Warning.png": "4ebd5b850ab75f78", - "Bloxstrap/Resources/Mods/OldAvatarBackground.rbxl": "f2ee2fa4d7362a48", - "Bloxstrap/Resources/Mods/Cursor/From2013/ArrowFarCursor.png": "fe9acc5ec245ce38", - "Bloxstrap/Resources/Mods/Cursor/From2013/ArrowCursor.png": "f140fb47ba82c278", - "Bloxstrap/Resources/Mods/Cursor/From2006/ArrowFarCursor.png": "e6e0c13cb2163857", - "Bloxstrap/Resources/Mods/Cursor/From2006/ArrowCursor.png": "c22575e08ea9d4d1", - "Bloxstrap/Resources/Mods/Sounds/OldGetUp.mp3": "12bf5c615f79bbf4", - "Bloxstrap/Resources/Mods/Sounds/Empty.mp3": "c7de88506c0ddce2", - "Bloxstrap/Resources/Mods/Sounds/OldWalk.mp3": "56ce8152e61c56f7", - "Bloxstrap/Resources/Mods/Sounds/OldJump.mp3": "fc9db8a86caf11cf", - "Bloxstrap/Resources/Fonts/NotoSansThai-VariableFont_wdth,wght.ttf": "b3ab0c62c3e9dfab", - "Bloxstrap/Resources/Fonts/Rubik-VariableFont_wght.ttf": "0ac7ff4714ed96f7", - "Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoLight.jpg": "24962b4aed383d8b", - "Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/Matt.png": "018a223af5ef8877", - "Bloxstrap/Resources/BootstrapperStyles/ByfronDialog/ByfronLogoDark.jpg": "45aa62b769681f69", - "Bloxstrap/Models/CustomIntegration.cs": "b37b2a2f6e6ca59d", - "Bloxstrap/Models/FastFlag.cs": "cf0fd7b37f44b38b", - "Bloxstrap/Models/FontFamily.cs": "e01bfa9c10b26bd8", - "Bloxstrap/Models/DeployInfo.cs": "6f5b36772cdc21fa", - "Bloxstrap/Models/FontFace.cs": "f8fa053f750a8032", - "Bloxstrap/Models/ThumbnailCacheEntry.cs": "e672ccbe512c342b", - "Bloxstrap/Models/LaunchFlag.cs": "3146ebc376568a39", - "Bloxstrap/Models/BootstrapperIconEntry.cs": "365a1cab90c438a9", - "Bloxstrap/Models/WatcherData.cs": "9904ff86d4f56b5b", - "Bloxstrap/Models/Manifest/PackageManifest.cs": "33dedeea0cfda8b6", - "Bloxstrap/Models/Manifest/FileManifest.cs": "a9d6ea4ec1907e1b", - "Bloxstrap/Models/Manifest/Package.cs": "1f817221f6c4a38b", - "Bloxstrap/Models/Manifest/ManifestFile.cs": "97c0398d88e1e3fb", - "Bloxstrap/Models/Entities/UniverseDetails.cs": "4a91cd2d725f8002", - "Bloxstrap/Models/Entities/ModPresetFileData.cs": "a9216356c79e3c70", - "Bloxstrap/Models/Entities/UserDetails.cs": "ca48eb9708f2148e", - "Bloxstrap/Models/Entities/ActivityData.cs": "7d7287ad474fd9e7", - "Bloxstrap/Models/Persistable/WindowState.cs": "793f93e405012f72", - "Bloxstrap/Models/Persistable/AppState.cs": "6a2a59b965abc62a", - "Bloxstrap/Models/Persistable/DistributionState.cs": "582e6c99f30d7c4f", - "Bloxstrap/Models/Persistable/Settings.cs": "36d7adc260370ac3", - "Bloxstrap/Models/Persistable/State.cs": "34ff83e0728fe701", - "Bloxstrap/Models/Persistable/RobloxState.cs": "03572ae7d911dc20", - "Bloxstrap/Models/Attributes/EnumNameAttribute.cs": "71c0d2a83ee7b1ce", - "Bloxstrap/Models/Attributes/BuildMetadataAttribute.cs": "b82e0110bd667885", - "Bloxstrap/Models/Attributes/EnumSortAttribute.cs": "aa150fa6e24e00a6", - "Bloxstrap/Models/BloxstrapRPC/Message.cs": "645fdba1655f208c", - "Bloxstrap/Models/BloxstrapRPC/RichPresenceImage.cs": "28feedb67a951b69", - "Bloxstrap/Models/BloxstrapRPC/RichPresence.cs": "98f3f9850c4a0b03", - "Bloxstrap/Models/APIs/IPInfoResponse.cs": "efb9c3453b58bcb7", - "Bloxstrap/Models/APIs/Roblox/ThumbnailBatchResponse.cs": "bd72783925abb622", - "Bloxstrap/Models/APIs/Roblox/UniverseIdResponse.cs": "2c8eb60d74ec73eb", - "Bloxstrap/Models/APIs/Roblox/ApiArrayResponse.cs": "3beddf2a1eb15f55", - "Bloxstrap/Models/APIs/Roblox/ThumbnailResponse.cs": "53df9dab1b69513d", - "Bloxstrap/Models/APIs/Roblox/ThumbnailRequest.cs": "b871e1da17389243", - "Bloxstrap/Models/APIs/Roblox/ClientFlagSettings.cs": "8c80e44d0e564f03", - "Bloxstrap/Models/APIs/Roblox/ClientVersion.cs": "6a64f2b5f5d1d07e", - "Bloxstrap/Models/APIs/Roblox/GetUserResponse.cs": "c30efa4b0c0e1499", - "Bloxstrap/Models/APIs/Roblox/GameCreator.cs": "c7c19c650888a99c", - "Bloxstrap/Models/APIs/Roblox/GameDetailResponse.cs": "7d5036660c904c60", - "Bloxstrap/Models/APIs/Config/Supporter.cs": "00e60a42489cbd69", - "Bloxstrap/Models/APIs/Config/SupporterData.cs": "5aae02d7170e6bb6", - "Bloxstrap/Models/APIs/Config/SupporterGroup.cs": "0c7d7d2677c2c592", - "Bloxstrap/Models/APIs/GitHub/GitHubReleaseAsset.cs": "c23a70bf27c42c32", - "Bloxstrap/Models/APIs/GitHub/GithubRelease.cs": "ac0b2f654198018f", - "Bloxstrap/Models/SettingTasks/ShortcutTask.cs": "fb01a8e0a93c91c7", - "Bloxstrap/Models/SettingTasks/ModPresetTask.cs": "9d4b056029d177d6", - "Bloxstrap/Models/SettingTasks/EnumModPresetTask.cs": "b1d06a8143e4f9e1", - "Bloxstrap/Models/SettingTasks/EmojiModPresetTask.cs": "5a194c9f224078e8", - "Bloxstrap/Models/SettingTasks/FontModPresetTask.cs": "181f7eea8b641d08", - "Bloxstrap/Models/SettingTasks/ExtractIconsTask.cs": "e28e4e909e5a3e2f", - "Bloxstrap/Models/SettingTasks/Base/EnumBaseTask.cs": "4a0f295e784f4195", - "Bloxstrap/Models/SettingTasks/Base/BoolBaseTask.cs": "5590a5364f8563fe", - "Bloxstrap/Models/SettingTasks/Base/BaseTask.cs": "8f56fd32ed3bda75", - "Bloxstrap/Models/SettingTasks/Base/StringBaseTask.cs": "1b3a818fb092b208", - "Images/Bloxstrap-full-dark.png": "4d5362902d3ec48f", - "Images/Bloxstrap-full-light.png": "18e4b723e52ff62c", - "Images/Bloxstrap.png": "5cfcaa96456cf512", - "Scripts/Translations/find-unused.py": "e8fa35d2490726c5", - "Scripts/Translations/prep.py": "f4254a29a7a3545c" - } -} \ No newline at end of file diff --git a/.codeboarding/static_analysis.pkl b/.codeboarding/static_analysis.pkl deleted file mode 100644 index b52f7925a46d66a23cac95ec6bcf9a14d882a134..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4649541 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

*6)w#pk@(3wB}k#=?#ZNA(;;WxKaR1 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�$7MqkhuyR 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 z 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 z
(`4KH$)OKHyJ!b*{Zy>^aL7>Fg@c6vhUsbV?9( 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�@f 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
E;4yAZmjrb- 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 z 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 z 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 Xa9b*5g; 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%0D5FK1M!AQcp&BJ0HZx%A z4;nP%cvsR>MwT054=A=P3JZ@+C;DMgm-6ENu$9G$qJ~;bF$F>*uLwH=5 zAH;LnHyK=($L)j@I?^*a(Pequ&Sit^=FJA(@c49^s(*aUUbH=rr`dS=?PK!dUKEep zxomLZywe~Y9>3m7IDu<@?;3NbL+ka`10JU{uhq|RE$t=Hq(;6Rx#9v&3*Wr*RBz9dxA)lPpWL>qXP zc-hW(j$ecr_j#QB+amgi*^Z~BA(In3NAY-?S8Bf7V0j*=hfC1%Oipa;$>X#Mlpy){ zk1a2r4drp&XAP9Y?vUDg?#+8E-=%5%{0h?(S64iKz{>VvtKN-L51#8-vUj|T;i;JO zfwAbtN)(UZXr&r4(0d~Py@puH<1erxAEObk(-ZR>9=DsP!Umg0 zsRvIGn7x>pJte~jXa9qSaKq!e^L{EV7G2g;to)HNdCCClVNndkvO< zmlgTI$xWl&BT2p)!v~+FeqtPL#Qg>yPjrir+0g;w`f$VJc5A6rZEwduwCsOsESwih zrswgOTg4lZyr*EvPFKC&W+r; zZ&<&119t%Z+_Y*3w`vQwUG&SW+izv9l{QP=lDdzz=BU-u^zC`MYq;ERPq(OfT&rKS zvUa=bPIkPPxAIeE-me;!QTNcQQ`y&`3AR*r`}6egoa+vTWh)!ZkE$zbtzxdV@>P?s zq0%l!^qGa@IsI2h^dDNA4f57Lw_bNveWBRQFEdEwIyZfL3N62Fm=SpVX*eS^@Z|Akgby2L1Rl4W5kkjQCMTZG z<8iw-7b1C24)fo~mZ#0R`U!!@?RKn#&&AA6oQrwf@uZTc)cccT(~ApE9=9`n;JLU_ z?x8jRyJN$Pcb#}#7j4wC;nC`dnDlY7v2ylMQn7ORY&^I3i!$c??*8XQapm(2VjtRP zKW~_0dAwyM9Fe@IX^P3wnTh&H&*LYp$Orb=M!AcI_f%+M@^>2y|DeY3F(Z8g^i`yf zWcy}BA3W6m={Vkqbs`>jOp86q{)-0kJg!?u#?uXx6I-+Jc$!_?n4Bnj9;eE0^)u|U zhW1z{cb60`d0cl+T1Cs-)Gf|g+Oo^$^WDX%1B>+cRXcx;f5@$YM~J8VKO4KPm|pVu zl}U<+$x-HBpX2bjZc$}nc~1%2UyUs<))9C-%{l^;6YB^(p5|8A-;6CU77}>e?kZU5 zfXU>0ry1tIGA1u>PVsn}g)=56E~j|>M^e;$ zqufJ>`9{eHci69vH7^!#cs$Jw*?%6B7f&$oxLxn`z^P56+(pg%nP6wnJ5O)& x;pRl%qU!1? z=EL?<&&xBo^O}N_$p`yKSFngpVI><^~AD&L*frj{}NN^0U*uL z19qbI0kCV!A2{@YTtn<*X=jTRdhmQZG@&P+=YrjYTK`g$=K_$X=YpMReE_JNPW7uz z_LX=7doIW|#6Gm=g8o*?a{;);%J{M9PpI`@VDel5()3)g6Ri)xeOBTL?71M<5c|;5 z2Yso>*en2cJ<4OzpHS;x!Jd1O6gL6T^}14vtyN#w*tN9O>$bD1-3r~7p6kw!1}lH? zSv3J!m#0~E75cMJ^(yqS?qXhys48dEP)30#>>Bj!i&!+`b_xL3SjEfGE(>p;;D_DNAmgZupBJ=jGZ9o#NNXAo}~X$HolnN0AP2< zG{Uz{X2H<-2()t~>PNkS(1*WfTc%e40G;PdnZMML{PXyJGE1v@AD5o5nKf5+JANjjb(lD zEIgji?qHQj-&6JvcH;aCK&F|0mGz_fu2DU`wD}ujj~#zeKAtj%TTGb)0BL3pU?*k{ z0O;r|^#?v%bsHO>PQTO#egN#)2lrjj6H9IY*zp&&?#(zHM5i8C(%cKk*6^)&My zFa>`A?Buic@E~9L1YO?YkHj5a9+vsyx_gRlXS&rL(kJN3@ki=GVh$t zH{WK#O`N#^up=K_`v=+h;<;J?uD8;DXzkp^^r@m*A9?`TXhlD``9V(%{Q&4zyef2t zHvg;H{L&YEX93V1Yqp^8DenQh^^$r3Xj`c#aMBEN4Y7} ze=%tQ;F-ZcwEFL7^NVNu0iXk{)vxY=_No(B!Q}&bYoyQ#043EH{6m}n4JPvgkY=YU zu%o1`KJ5YESd!L%z!ZA`NK-ryn&<|uuft{E$17Npg3GKQall1|(JW1_? z-4&AS0^k^VJc(z{6gUBJr0*%?2Rkuv0+42@q|4S9mx}--`FV+1u%jw?{j>#u-Ira1 zCq1BNG(TOtOEBpH{hLkZryXFCzS>^jq)sU9@AiCt5$23=oS4U(abbAcKGEy`pvLfu ze!9AUofZGk8N)*yHN`3w0BKgKz)mcb0B|Tt>-S7^765eWw))ksbfZKa5EH{a06ON% zZ9~f*?8H1D0LRZcdCD}wj#eS{K@$MG(tc>`7p6oRfJ6&C51ZT;fSnq*jVJ!0Ddq!^ zX3PgWG3EoX5;BFL8PEEqNjw0gSs{6Z>C-BzKJ);PCjC=PUo0^IVE2XY(2;YQ=}TWB zoCSa;HZfs{r~OBnK9!&9#RCAPqZagoC;Ol$W<3BnrkkEBJdd&Y#bdMpP-wLd1%O@93~l>&u-}RYVE~|XI>Cei z?8F%t0J~&Ac)Iy*Y<@A_1ilfop|&efbBB!8{IDg?|1ikbKT>oA3MEv;gi*$Kc)VB zIlST6AnOl%E1lAZH_UbWomY+e tqha1zx3qlv{?o(J6EEua+k<>D@0VHcf#caQe_)UgsipDoG}XP<{eLH(8Xy1w diff --git a/.codeboarding/static_analysis.sha b/.codeboarding/static_analysis.sha deleted file mode 100644 index f757d0e02..000000000 --- a/.codeboarding/static_analysis.sha +++ /dev/null @@ -1,2 +0,0 @@ -v2 -f5577773ec11ea732e6dbde95f19619c51e90b5f diff --git a/.github/workflows/codeboarding-sync.yml b/.github/workflows/codeboarding-sync.yml deleted file mode 100644 index 741aea122..000000000 --- a/.github/workflows/codeboarding-sync.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: CodeBoarding sync - -on: - push: - branches: [main] - paths-ignore: - - '.codeboarding/analysis.json' - - '.codeboarding/fingerprint.json' - - '.codeboarding/static_analysis.pkl' - - '.codeboarding/static_analysis.sha' - - '.codeboarding/codeboarding_version.json' - workflow_dispatch: - inputs: - force_full: - description: Rebuild without the committed baseline - type: boolean - default: false - -permissions: - contents: write - id-token: write - -concurrency: - group: codeboarding-sync-main - cancel-in-progress: false - -jobs: - sync: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: CodeBoarding/CodeBoarding-action@action-v2-contract-only-simplification - with: - mode: sync - target_branch: main - force_full: ${{ inputs.force_full || false }} diff --git a/.github/workflows/codeboarding.yaml b/.github/workflows/codeboarding.yaml deleted file mode 100644 index 717f635bc..000000000 --- a/.github/workflows/codeboarding.yaml +++ /dev/null @@ -1,30 +0,0 @@ -name: CodeBoarding review - -on: - pull_request: - types: [opened, reopened, ready_for_review] - issue_comment: - types: [created] - -permissions: - contents: read - pull-requests: write - issues: write - id-token: write - -concurrency: - group: codeboarding-review-${{ github.event.pull_request.number || github.event.issue.number }} - cancel-in-progress: false - -jobs: - review: - if: > - (github.event_name == 'pull_request' && github.event.pull_request.draft == false && - github.event.pull_request.head.repo.full_name == github.repository) || - (github.event_name == 'issue_comment' && github.event.issue.pull_request != null && - startsWith(github.event.comment.body, '/codeboarding') && - contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)) - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: CodeBoarding/CodeBoarding-action@action-v2-contract-only-simplification diff --git a/.github/workflows/codeboarding.yml b/.github/workflows/codeboarding.yml new file mode 100644 index 000000000..ea198f4e7 --- /dev/null +++ b/.github/workflows/codeboarding.yml @@ -0,0 +1,65 @@ +name: CodeBoarding + +on: + pull_request: + types: [opened, reopened, closed, synchronize] + issue_comment: + types: [created] + push: + branches: ['main'] + workflow_dispatch: + inputs: + force_full: + description: 'Ignore the saved analysis and rebuild it from scratch (full analysis).' + type: boolean + required: false + default: false + +# No workflow-level permissions: each job requests only what it needs (least +# privilege), so the default token starts with none. +permissions: {} + +# Reviews queue per pull request, syncs per branch. Closing a pull request cancels its review. +concurrency: + group: codeboarding-${{ github.event.pull_request.number || github.event.issue.number || github.ref_name }} + cancel-in-progress: ${{ github.event_name == 'pull_request' && github.event.action == 'closed' }} + +jobs: + review: + if: > + (github.event_name == 'pull_request' && github.event.action != 'closed' && + github.event.pull_request.head.repo.full_name == github.repository) || + (github.event_name == 'issue_comment' && github.event.issue.pull_request != null && + startsWith(github.event.comment.body, '/codeboarding') && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association)) + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: read # check out the repo + read the saved analysis (no writes in review mode) + pull-requests: write # post the architecture-diff PR comment + issues: write # the /codeboarding issue_comment trigger + comment API + id-token: write # mint a GitHub OIDC token for the free hosted tier (write is the only level for id-token) + actions: read # let a repeat review download the analysis an earlier run published, instead of re-deriving the whole PR + steps: + - uses: CodeBoarding/CodeBoarding-action@refactor/review-baseline-pipeline + with: + # CodeBoarding's free hosted tier. No secret to add: the run authenticates + # with the GitHub OIDC token that `id-token: write` above grants. + llm: hosted + + sync: + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' + runs-on: ubuntu-latest + timeout-minutes: 60 + permissions: + contents: write # push the generated analysis to codeboarding/baseline + actions: read # continue from an analysis an earlier run published + id-token: write # identifies this repo to CodeBoarding's hosted tier + steps: + - uses: CodeBoarding/CodeBoarding-action@refactor/review-baseline-pipeline + with: + mode: sync + force_full: ${{ inputs.force_full || false }} + # CodeBoarding's free hosted tier. No secret to add: the run authenticates + # with the GitHub OIDC token that `id-token: write` above grants. + llm: hosted