diff --git a/.vscode/mklink.md b/.vscode/mklink.md
index d4f23be..15be66d 100644
--- a/.vscode/mklink.md
+++ b/.vscode/mklink.md
@@ -14,18 +14,19 @@ mklink /J "L:\DevOps\Mesa_FI\File-Folder-Helper\.kanbn" "D:\5-Other-Small\Kanban
 mklink /J "L:\DevOps\Mesa_FI\File-Folder-Helper\.kanbn" "D:\5-Other-Small\Kanban\File-Folder-Helper"
 ```
 
-```bash
-del "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode"
-del "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode-oss"
-del "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode-insiders"
-mkdir "C:\Users\phares\.vscode\extensions\ifx.type-script-helper-1.111.0\net8.0\win-x64\publish"
-mkdir "C:\Users\phares\.vscode-oss\extensions\ifx.type-script-helper-1.111.0\net8.0\win-x64\publish"
-mkdir "C:\Users\phares\.vscode-insiders\extensions\ifx.type-script-helper-1.111.0\net8.0\win-x64\publish"
-mklink /J "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode" "C:\Users\phares\.vscode\extensions\ifx.type-script-helper-1.111.0"
-mklink /J "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode-oss" "C:\Users\phares\.vscode-oss\extensions\ifx.type-script-helper-1.111.0"
-mklink /J "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode-insiders" "C:\Users\phares\.vscode-insiders\extensions\ifx.type-script-helper-1.111.0"
-```
-
 ```bash Thu Jul 18 2024 13:47:40 GMT-0700 (Mountain Standard Time)
 mklink /J "L:\DevOps\Mesa_FI\File-Folder-Helper\.vscode\.UserSecrets" "C:\Users\phares\AppData\Roaming\Microsoft\UserSecrets\8da397d4-13ec-4576-9722-3c79cad25563"
 ```
+
+```bash 1749414316830 = 638850111168300000 = 2025-2.Spring = Sun Jun 08 2025 13:25:16 GMT-0700 (Mountain Standard Time)
+C:\Users\PHARES\.vscode\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0
+del "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode"
+del "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode-oss"
+del "L:\DevOps\Mesa_FI\File-Folder-Helper\.extensions-vscode-insiders"
+mkdir "C:\Users\phares\.vscode\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0\net8.0\win-x64"
+mkdir "C:\Users\phares\.vscode-oss\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0\net8.0\win-x64"
+mkdir "C:\Users\phares\.vscode-insiders\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0\net8.0\win-x64"
+mklink /J "C:\Users\phares\.vscode\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0\net8.0\win-x64\publish" "L:\DevOps\Mesa_FI\File-Folder-Helper\bin\Release\net8.0\win-x64\publish"
+mklink /J "C:\Users\phares\.vscode-oss\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0\net8.0\win-x64\publish" "L:\DevOps\Mesa_FI\File-Folder-Helper\bin\Release\net8.0\win-x64\publish"
+mklink /J "C:\Users\phares\.vscode-insiders\extensions\infineon-technologies-ag-mesa-fi.infineon-technologies-ag-mesa-fi-cost-of-delay-helper-1.124.0\net8.0\win-x64\publish" "L:\DevOps\Mesa_FI\File-Folder-Helper\bin\Release\net8.0\win-x64\publish"
+```
diff --git a/ADO2024/PI4/Helper-2024-12-17.cs b/ADO2024/PI4/Helper-2024-12-17.cs
index 6bcf1ff..df0af8f 100644
--- a/ADO2024/PI4/Helper-2024-12-17.cs
+++ b/ADO2024/PI4/Helper-2024-12-17.cs
@@ -57,6 +57,7 @@ internal static partial class Helper20241217
         string asidePath;
         bool areTheyTheSame;
         string directoryName;
+        IEnumerable<Record> records;
         logger.LogInformation(args[0]);
         logger.LogInformation(args[1]);
         logger.LogInformation(args[2]);
@@ -64,6 +65,7 @@ internal static partial class Helper20241217
         logger.LogInformation(args[4]);
         ReadOnlyCollection<File> files;
         string searchPattern = args[2];
+        IEnumerable<string> searchPatternFiles;
         string[] ignoreFileNames = args[3].Split('~');
         string destination = Path.GetFullPath(args[4]);
         string sourceDirectory = Path.GetFullPath(args[0]);
@@ -71,37 +73,44 @@ internal static partial class Helper20241217
         logger.LogInformation("Searching <{sourceDirectory}> with search pattern {searchPattern}", args[0], searchPattern);
         if (Debugger.IsAttached)
             Verify(searchPattern, ignoreFileNames);
-        IEnumerable<Record> records = GetRecords(sourceDirectory, searchPattern);
-        foreach (Record record in records)
+        for (int i = 1; i < 3; i++)
         {
-            if (record.Job is null || string.IsNullOrEmpty(record.Job.Extension))
-                continue;
-            logger.LogInformation("Searching <{directory}>", record.Directory);
-            files = GetFiles(searchPattern, ignoreFileNames, record);
-            jobNew = GetJob(searchPattern, ignoreFileNames, record, files);
-            json = JsonSerializer.Serialize(jobNew, JobSourceGenerationContext.Default.Job);
-            areTheyTheSame = GetAreTheyTheSame(logger, searchPattern, ignoreFileNames, record, jobNew);
-            if (areTheyTheSame)
+            if (i == 1)
             {
-                WriteAllText(record.Path, json);
-                continue;
+                searchPatternFiles = Directory.EnumerateFiles(sourceDirectory, searchPattern, new EnumerationOptions { IgnoreInaccessible = true, RecurseSubdirectories = true });
+            }
+            else if (i == 2)
+            {
+                searchPatternFiles = Directory.GetFiles(sourceDirectory, searchPattern, SearchOption.AllDirectories);
+            }
+            else
+                throw new NotImplementedException();
+            records = GetRecords(sourceDirectory, searchPatternFiles);
+            foreach (Record record in records)
+            {
+                if (record.Job is null || string.IsNullOrEmpty(record.Job.Extension))
+                    continue;
+                logger.LogInformation("Searching <{directory}>", record.Directory);
+                files = GetFiles(searchPattern, ignoreFileNames, record);
+                jobNew = GetJob(searchPattern, ignoreFileNames, record, files);
+                json = JsonSerializer.Serialize(jobNew, JobSourceGenerationContext.Default.Job);
+                areTheyTheSame = GetAreTheyTheSame(logger, searchPattern, ignoreFileNames, record, jobNew);
+                if (areTheyTheSame)
+                {
+                    WriteAllText(record.Path, json);
+                    continue;
+                }
+                directoryName = Path.GetFileName(record.Directory);
+                asidePath = Path.Combine(record.Directory, $"{directoryName}-{DateTime.Now:yyyy-MM-dd-HH-mm-ss-fff}{record.Job.Extension}");
+                path = $"{destinationDriveLetter}{asidePath[1..]}";
+                logger.LogInformation("Writing <{path}> extension", path);
+                WritePassedExtension(record, files, directoryName, path);
+                logger.LogInformation("Wrote <{path}> extension", path);
+                MovePassedExtension(destination, path);
+                logger.LogInformation("Moved <{path}> extension", path);
+                WriteAllText(record.Path, json);
+                Helpers.HelperDeleteEmptyDirectories.DeleteEmptyDirectories(logger, $"{destinationDriveLetter}{record.Directory[1..]}");
             }
-            directoryName = Path.GetFileName(record.Directory);
-            asidePath = Path.Combine(record.Directory, $"{directoryName}-{DateTime.Now:yyyy-MM-dd-HH-mm-ss-fff}{record.Job.Extension}");
-            path = $"{destinationDriveLetter}{asidePath[1..]}";
-            logger.LogInformation("Writing <{path}> extension", path);
-            WritePassedExtension(record, files, directoryName, path);
-            logger.LogInformation("Wrote <{path}> extension", path);
-            MovePassedExtension(destination, path);
-            logger.LogInformation("Moved <{path}> extension", path);
-            WriteAllText(record.Path, json);
-            Helpers.HelperDeleteEmptyDirectories.DeleteEmptyDirectories(logger, $"{destinationDriveLetter}{record.Directory[1..]}");
-        }
-        if (Debugger.IsAttached && records.Count() == 0)
-        {
-            files = GetFiles(sourceDirectory, searchPattern, ignoreFileNames);
-            json = JsonSerializer.Serialize(files.ToArray(), FilesSourceGenerationContext.Default.FileArray);
-            WriteAllText(Path.Combine(Environment.CurrentDirectory, ".vscode", "helper", ".json"), json);
         }
     }
 
@@ -150,14 +159,13 @@ internal static partial class Helper20241217
         return results.AsReadOnly();
     }
 
-    private static IEnumerable<Record> GetRecords(string directory, string searchPattern)
+    private static IEnumerable<Record> GetRecords(string directory, IEnumerable<string> files)
     {
         Job? job;
         string json;
         Record record;
         string fileName;
         string directoryName;
-        IEnumerable<string> files = Directory.EnumerateFiles(directory, searchPattern, new EnumerationOptions { IgnoreInaccessible = true, RecurseSubdirectories = true });
         foreach (string file in files)
         {
             fileName = Path.GetFileName(file);