From f3e8d259d0257044fe96666041b152f5fbe56568 Mon Sep 17 00:00:00 2001 From: CheapNud Date: Thu, 26 Feb 2026 22:54:12 +0100 Subject: [PATCH 1/6] =?UTF-8?q?=20=20-=20Disambiguate=20SettingsService=20?= =?UTF-8?q?inject=20in=20Settings.razor,=20AddRenderJobDialog.razor=20=20?= =?UTF-8?q?=20-=20Migrate=20SharpCompress:=20Open=E2=86=92OpenArchive,=20E?= =?UTF-8?q?xtractionOptions=E2=86=92ReaderOptions=20=20=20-=20Fix=20nullab?= =?UTF-8?q?le=20IProgress=20warnings=20in=20FFmpegRenderService,=20Melt?= =?UTF-8?q?RenderService=20=20=20-=20Bump=20EF=20Core,=20System.Management?= =?UTF-8?q?=2010.0.2=E2=86=9210.0.3=20(Core=20project)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CheapShotcutRandomizer.Core.csproj | 6 +++--- CheapShotcutRandomizer.csproj | 12 ++++++------ Components/Pages/Settings.razor | 18 ++++++++---------- Components/Shared/AddRenderJobDialog.razor | 2 +- Services/FFmpegRenderService.cs | 4 ++-- Services/MeltRenderService.cs | 2 +- 6 files changed, 21 insertions(+), 23 deletions(-) diff --git a/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj b/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj index 9a41a85..8267d2d 100644 --- a/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj +++ b/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj @@ -12,13 +12,13 @@ - + - - + + diff --git a/CheapShotcutRandomizer.csproj b/CheapShotcutRandomizer.csproj index b1ead21..1bd24d9 100644 --- a/CheapShotcutRandomizer.csproj +++ b/CheapShotcutRandomizer.csproj @@ -40,10 +40,10 @@ - + - + @@ -52,12 +52,12 @@ - + - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/Components/Pages/Settings.razor b/Components/Pages/Settings.razor index 84af8d0..097d613 100644 --- a/Components/Pages/Settings.razor +++ b/Components/Pages/Settings.razor @@ -4,8 +4,8 @@ @using CheapAvaloniaBlazor.Services @using CheapHelpers.MediaProcessing.Services @using SharpCompress.Archives -@using SharpCompress.Common -@inject SettingsService SettingsService +@using SharpCompress.Readers +@inject CheapShotcutRandomizer.Services.SettingsService SettingsService @inject SvpDetectionService SvpDetection @inject IDesktopInteropService DesktopInterop @inject ISnackbar Snackbar @@ -1681,18 +1681,15 @@ except Exception as e: { System.Diagnostics.Debug.WriteLine($"Starting extraction of {downloadPath}..."); - using (var archive = ArchiveFactory.Open(downloadPath)) + var extractionReaderOptions = new ReaderOptions { ExtractFullPath = true, Overwrite = true }; + using (var archive = ArchiveFactory.OpenArchive(downloadPath, extractionReaderOptions)) { System.Diagnostics.Debug.WriteLine($"Archive opened, extracting {archive.Entries.Count()} entries..."); int extractedCount = 0; foreach (var entry in archive.Entries.Where(e => !e.IsDirectory)) { - entry.WriteToDirectory(extractPath, new ExtractionOptions() - { - ExtractFullPath = true, - Overwrite = true - }); + entry.WriteToDirectory(extractPath); extractedCount++; // Log progress every 10 files @@ -2211,10 +2208,11 @@ except Exception as e: { try { - using var archive = SharpCompress.Archives.SevenZip.SevenZipArchive.Open(modelDownloadPath); + var modelReaderOptions = new ReaderOptions { ExtractFullPath = true, Overwrite = true }; + using var archive = SharpCompress.Archives.SevenZip.SevenZipArchive.OpenArchive(modelDownloadPath, modelReaderOptions); foreach (var entry in archive.Entries.Where(e => !e.IsDirectory)) { - entry.WriteToDirectory(modelExtractPath, new SharpCompress.Common.ExtractionOptions { ExtractFullPath = true, Overwrite = true }); + entry.WriteToDirectory(modelExtractPath); } modelExtracted = true; } diff --git a/Components/Shared/AddRenderJobDialog.razor b/Components/Shared/AddRenderJobDialog.razor index fcfb890..26d3da0 100644 --- a/Components/Shared/AddRenderJobDialog.razor +++ b/Components/Shared/AddRenderJobDialog.razor @@ -5,7 +5,7 @@ @inject IDesktopInteropService DesktopInterop @inject HardwareDetectionService HardwareService @inject ShotcutService ShotcutService -@inject SettingsService SettingsService +@inject CheapShotcutRandomizer.Services.SettingsService SettingsService ReassembleVideoWithAudioAsync( string audioPath, string outputPath, FFmpegRenderSettings settings, - IProgress progress = null, + IProgress? progress = null, CancellationToken cancellationToken = default) { if (!settings.UseHardwareAcceleration) @@ -286,7 +286,7 @@ public async Task ExtractFramesAsync( string outputFolder, int fps, bool useHardwareDecode = true, - IProgress progress = null, + IProgress? progress = null, CancellationToken cancellationToken = default) { Directory.CreateDirectory(outputFolder); diff --git a/Services/MeltRenderService.cs b/Services/MeltRenderService.cs index 7f24e47..e2b9662 100644 --- a/Services/MeltRenderService.cs +++ b/Services/MeltRenderService.cs @@ -42,7 +42,7 @@ public async Task RenderAsync( string mltFilePath, string outputPath, MeltRenderSettings settings, - IProgress progress = null, + IProgress? progress = null, CancellationToken cancellationToken = default, int? inPoint = null, int? outPoint = null, From 60b22447f33e59103674e7ea89a8c8845e65bd15 Mon Sep 17 00:00:00 2001 From: CheapNud Date: Thu, 26 Feb 2026 23:06:00 +0100 Subject: [PATCH 2/6] =?UTF-8?q?=20=20-=20MudBlazor=208.15=E2=86=929.0.0=20?= =?UTF-8?q?across=20all=20projects=20=20=20-=20CheapHelpers=202.0=E2=86=92?= =?UTF-8?q?2.1.0,=20MediaProcessing=202.0.1=E2=86=922.1.0=20=20=20-=20Chea?= =?UTF-8?q?pHelpers.Blazor/EF/Models/Services=202.0=E2=86=922.0.1=20=20=20?= =?UTF-8?q?-=20SharpCompress=200.46.0=E2=86=920.46.3=20=20=20-=20coverlet?= =?UTF-8?q?=206.0.4=E2=86=928.0.0,=20Test.Sdk=2018.0.1=E2=86=9218.3.0=20?= =?UTF-8?q?=20=20-=20ShowMessageBox=E2=86=92ShowMessageBoxAsync=20in=20Ren?= =?UTF-8?q?derQueue.razor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CheapShotcutRandomizer.Core.csproj | 6 +++--- .../CheapShotcutRandomizer.Tests.csproj | 11 +++++++---- CheapShotcutRandomizer.csproj | 16 ++++++++-------- Components/Pages/RenderQueue.razor | 2 +- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj b/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj index 8267d2d..4aa4f78 100644 --- a/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj +++ b/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj @@ -13,9 +13,9 @@ - - - + + + diff --git a/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj b/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj index 6db2f25..e97da1c 100644 --- a/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj +++ b/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj @@ -9,17 +9,20 @@ - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/CheapShotcutRandomizer.csproj b/CheapShotcutRandomizer.csproj index 1bd24d9..a8ac4d1 100644 --- a/CheapShotcutRandomizer.csproj +++ b/CheapShotcutRandomizer.csproj @@ -35,18 +35,18 @@ - - - - - - + + + + + + - + @@ -72,7 +72,7 @@ - + diff --git a/Components/Pages/RenderQueue.razor b/Components/Pages/RenderQueue.razor index cf6e21b..66e50ac 100644 --- a/Components/Pages/RenderQueue.razor +++ b/Components/Pages/RenderQueue.razor @@ -655,7 +655,7 @@ private async Task HandleClearAllJobs() { // Show confirmation dialog - bool? dialogResult = await DialogService.ShowMessageBox( + bool? dialogResult = await DialogService.ShowMessageBoxAsync( "Clear All Jobs", "Are you sure you want to clear all jobs from the queue? This will cancel any running jobs and delete all completed and failed jobs. This action cannot be undone.", yesText: "Clear All", From f5f054cc9802c33a05dc06bc2a415768e3d546c1 Mon Sep 17 00:00:00 2001 From: CheapNud Date: Mon, 2 Mar 2026 20:40:12 +0100 Subject: [PATCH 3/6] update workflow --- .github/workflows/pr-review.yml | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/.github/workflows/pr-review.yml b/.github/workflows/pr-review.yml index 52d9a9d..bec55cd 100644 --- a/.github/workflows/pr-review.yml +++ b/.github/workflows/pr-review.yml @@ -12,7 +12,7 @@ permissions: contents: read env: - CLAUDE_MODEL: "claude-sonnet-4-5-20250929" + CLAUDE_MODEL: "claude-sonnet-4-6" MAX_TOKENS: 4096 MAX_DIFF_SIZE_BYTES: 100000 @@ -87,15 +87,24 @@ jobs: CHANGED_FILES=$(jq -r '.changedFiles' pr-details.json) # Build the review prompt - PROMPT="You are an expert code reviewer for C#, .NET, Blazor, and Avalonia projects. Review this pull request and provide: + PROMPT="You are an expert code reviewer for C#, .NET, Blazor, and Avalonia projects. - 1. **Summary**: Brief overview of changes - 2. **Code Quality**: Assessment of code organization, patterns, and best practices - 3. **Potential Issues**: Security concerns, bugs, performance issues, or breaking changes - 4. **Recommendations**: Suggestions for improvements - 5. **Verdict**: APPROVE, REQUEST CHANGES, or COMMENT + Review this pull request. Be extremely concise - only flag things that actually matter. - Be constructive, concise, and focus on important issues. Use markdown formatting. + Format your review as: + 1. **Summary** (1-2 sentences max) + 2. **Code Quality** followed by a 1-5 star rating using filled ⭐ and empty ☆ (e.g. ⭐⭐⭐⭐☆). Below the rating, add one short sentence highlighting a strength or positive aspect of the PR. + 3. **Issues** (only bugs, security problems, deadlocks, resource leaks, or breaking changes - skip this section entirely if none found). Prefix each issue with a severity orb: 🔴 Critical, 🟡 Warning, 🟢 Minor. Place the orb directly before the issue title, e.g. 🔴 DependencyChecker.cs — process not disposed. Do NOT put orbs on section headers. + 4. **Verdict**: One of these three: + - **APPROVE** — code is good to merge + - **REQUEST CHANGES** — there are issues that should be fixed before merging. List the specific changes needed as a short bullet list directly under the verdict + - **REJECT** — code has fundamental or critical problems that require a rethink + + Rules: + - Do NOT comment on style, naming, or minor preferences + - Do NOT suggest nice-to-have improvements or refactors + - Only raise issues you are confident are real problems + - If everything looks fine, just say so in 1-2 lines and approve --- @@ -159,7 +168,7 @@ jobs: INPUT_TOKENS=$(echo "$RESPONSE" | jq -r '.usage.input_tokens // 0') OUTPUT_TOKENS=$(echo "$RESPONSE" | jq -r '.usage.output_tokens // 0') - # Calculate estimated cost (Sonnet 4.5: $3/MTok input, $15/MTok output) + # Calculate estimated cost (Sonnet 4.6: $3/MTok input, $15/MTok output) COST=$(echo "scale=4; ($INPUT_TOKENS * 3 + $OUTPUT_TOKENS * 15) / 1000000" | bc) echo "📊 Token usage: ${INPUT_TOKENS} input + ${OUTPUT_TOKENS} output" @@ -222,7 +231,7 @@ jobs: echo "" >> comment.md echo "---" >> comment.md echo "📊 **Tokens**: ${INPUT_TOKENS} input + ${OUTPUT_TOKENS} output | 💰 **Cost**: ~\$${COST}" >> comment.md - echo "*Generated by Claude Sonnet 4.5 via GitHub Actions*" >> comment.md + echo "*Generated by Claude Sonnet 4.6 via GitHub Actions*" >> comment.md # Post or update comment if [ "$UPDATE_MODE" = "edit" ]; then From 0704659ae8285a5c0b903ee0df186533445a481f Mon Sep 17 00:00:00 2001 From: CheapNud Date: Mon, 2 Mar 2026 20:41:27 +0100 Subject: [PATCH 4/6] package udpates --- .../CheapShotcutRandomizer.Core.csproj | 2 +- .../CheapShotcutRandomizer.Tests.csproj | 2 +- CheapShotcutRandomizer.csproj | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj b/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj index 4aa4f78..8acef40 100644 --- a/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj +++ b/CheapShotcutRandomizer.Core/CheapShotcutRandomizer.Core.csproj @@ -14,7 +14,7 @@ - + diff --git a/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj b/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj index e97da1c..130d00f 100644 --- a/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj +++ b/CheapShotcutRandomizer.Tests/CheapShotcutRandomizer.Tests.csproj @@ -8,7 +8,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CheapShotcutRandomizer.csproj b/CheapShotcutRandomizer.csproj index a8ac4d1..b238763 100644 --- a/CheapShotcutRandomizer.csproj +++ b/CheapShotcutRandomizer.csproj @@ -35,15 +35,15 @@ - - + + - + - + From 8fd8c127dd97d7a8cc25db7a3499bb2f3541e0f6 Mon Sep 17 00:00:00 2001 From: CheapNud Date: Mon, 2 Mar 2026 22:19:50 +0100 Subject: [PATCH 5/6] upgrade to slnx --- .github/labeler.yml | 2 +- .github/workflows/benchmark.yml | 4 ++-- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/codeql.yml | 4 ++-- .github/workflows/coverage.yml | 4 ++-- .github/workflows/release.yml | 2 +- CheapShotcutRandomizer.slnx | 10 ++++++++++ 7 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 CheapShotcutRandomizer.slnx diff --git a/.github/labeler.yml b/.github/labeler.yml index 987b551..720c70c 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -65,7 +65,7 @@ type/build: - changed-files: - any-glob-to-any-file: - '**/*.csproj' - - '**/*.sln' + - '**/*.slnx' - '.github/**/*' # Changes diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index d369df2..711df76 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -38,11 +38,11 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Build Release working-directory: repo - run: dotnet build CheapShotcutRandomizer.sln --configuration Release --no-restore + run: dotnet build CheapShotcutRandomizer.slnx --configuration Release --no-restore - name: Check for benchmark project id: check diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index acbf7e4..a235955 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,11 +57,11 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Build solution working-directory: repo - run: dotnet build CheapShotcutRandomizer.sln --configuration ${{ matrix.configuration }} --no-restore + run: dotnet build CheapShotcutRandomizer.slnx --configuration ${{ matrix.configuration }} --no-restore - name: Run tests working-directory: repo @@ -120,16 +120,16 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Check code formatting working-directory: repo - run: dotnet format CheapShotcutRandomizer.sln --verify-no-changes --verbosity diagnostic + run: dotnet format CheapShotcutRandomizer.slnx --verify-no-changes --verbosity diagnostic continue-on-error: true - name: Run code analysis working-directory: repo - run: dotnet build CheapShotcutRandomizer.sln --configuration Release /p:TreatWarningsAsErrors=false /p:WarningLevel=4 + run: dotnet build CheapShotcutRandomizer.slnx --configuration Release /p:TreatWarningsAsErrors=false /p:WarningLevel=4 dependency-check: name: Dependency Vulnerability Scan @@ -156,7 +156,7 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Check for vulnerable packages working-directory: repo diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index cc04703..9c24f82 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -51,11 +51,11 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Build for CodeQL working-directory: repo - run: dotnet build CheapShotcutRandomizer.sln --configuration Release --no-restore + run: dotnet build CheapShotcutRandomizer.slnx --configuration Release --no-restore - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index bc832bd..a679c67 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -37,11 +37,11 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Build solution working-directory: repo - run: dotnet build CheapShotcutRandomizer.sln --configuration Debug --no-restore + run: dotnet build CheapShotcutRandomizer.slnx --configuration Debug --no-restore - name: Run tests with coverage working-directory: repo diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a0621bd..0c1e02b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -57,7 +57,7 @@ jobs: - name: Restore dependencies working-directory: repo - run: dotnet restore CheapShotcutRandomizer.sln + run: dotnet restore CheapShotcutRandomizer.slnx - name: Build Release (Self-Contained) working-directory: repo diff --git a/CheapShotcutRandomizer.slnx b/CheapShotcutRandomizer.slnx new file mode 100644 index 0000000..5ce4d1a --- /dev/null +++ b/CheapShotcutRandomizer.slnx @@ -0,0 +1,10 @@ + + + + + + + + + + From 9a267880fc13b51550b4f5a0ecec32fc30a69b99 Mon Sep 17 00:00:00 2001 From: CheapNud Date: Mon, 2 Mar 2026 22:20:40 +0100 Subject: [PATCH 6/6] remove old project --- CheapShotcutRandomizer.sln | 65 -------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 CheapShotcutRandomizer.sln diff --git a/CheapShotcutRandomizer.sln b/CheapShotcutRandomizer.sln deleted file mode 100644 index e2bdc43..0000000 --- a/CheapShotcutRandomizer.sln +++ /dev/null @@ -1,65 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 18 -VisualStudioVersion = 18.0.11123.170 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheapShotcutRandomizer", "CheapShotcutRandomizer.csproj", "{04F8EA5B-08BB-4856-AD67-D44069080E62}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheapShotcutRandomizer.Tests", "CheapShotcutRandomizer.Tests\CheapShotcutRandomizer.Tests.csproj", "{99847745-2A37-451B-BE5F-726B8DC0308F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CheapShotcutRandomizer.Core", "CheapShotcutRandomizer.Core\CheapShotcutRandomizer.Core.csproj", "{CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Debug|x64.ActiveCfg = Debug|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Debug|x64.Build.0 = Debug|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Debug|x86.ActiveCfg = Debug|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Debug|x86.Build.0 = Debug|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Release|Any CPU.Build.0 = Release|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Release|x64.ActiveCfg = Release|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Release|x64.Build.0 = Release|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Release|x86.ActiveCfg = Release|Any CPU - {04F8EA5B-08BB-4856-AD67-D44069080E62}.Release|x86.Build.0 = Release|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Debug|x64.ActiveCfg = Debug|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Debug|x64.Build.0 = Debug|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Debug|x86.ActiveCfg = Debug|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Debug|x86.Build.0 = Debug|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Release|Any CPU.Build.0 = Release|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Release|x64.ActiveCfg = Release|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Release|x64.Build.0 = Release|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Release|x86.ActiveCfg = Release|Any CPU - {99847745-2A37-451B-BE5F-726B8DC0308F}.Release|x86.Build.0 = Release|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Debug|x64.ActiveCfg = Debug|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Debug|x64.Build.0 = Debug|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Debug|x86.ActiveCfg = Debug|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Debug|x86.Build.0 = Debug|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Release|Any CPU.Build.0 = Release|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Release|x64.ActiveCfg = Release|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Release|x64.Build.0 = Release|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Release|x86.ActiveCfg = Release|Any CPU - {CC8ACBC6-028B-47FE-A12C-9A70D7EA549F}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {80AC644A-DC8C-4997-9A4F-32610A60940E} - EndGlobalSection -EndGlobal