diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4d4c1b67f..97f342326 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,15 +1,15 @@
name: Build MelonLoader
-run-name: 0.7.0${{ github.event_name != 'workflow_dispatch' && format('-ci.{0}', github.run_number) || '' }} | ${{ github.event_name != 'workflow_dispatch' && (github.event.head_commit.message || format('`[PR]` {0}', github.event.pull_request.title)) || 'Manual Build' }}
+run-name: 1.0.0${{ github.event_name != 'workflow_dispatch' && format('-ci.{0}', github.run_number) || '' }} | ${{ github.event_name != 'workflow_dispatch' && (github.event.head_commit.message || format('`[PR]` {0}', github.event.pull_request.title)) || 'Manual Build' }}
env:
- DEVVERSION: "0.7.0"
+ DEVVERSION: "1.0.0"
on:
push:
- branches: [ master, alpha-development, v0.6.0-rewrite ]
+ branches: [ master, alpha-development, universality ]
pull_request:
- branches: [ master, alpha-development, v0.6.0-rewrite ]
+ branches: [ master, alpha-development, universality ]
workflow_dispatch:
jobs:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 39a24557a..374c2ebd4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
| Versions: |
| - |
+| [v0.7.0](#v070) |
| [v0.6.6](#v066) |
| [v0.6.5](#v065) |
| [v0.6.4](#v064) |
@@ -38,6 +39,35 @@
---
+### v0.7.0
+
+1. Updated Unity Dependencies Source to use the [New Automated Repository](https://github.com/LavaGang/MelonLoader.UnityDependencies) (Credits to [slxdy](https://github.com/slxdy) :D)
+2. Fixed an issue with MelonProxy not using Executable Path for Base Directory
+3. Reworked Bootstrap and Proxy to use NAOT Compilation (Credits to [slxdy](https://github.com/slxdy) :D)
+4. Fixed an issue with the Il2CppAssemblyGenerator ignoring the --melonloader.agfregenerate launch option
+5. Fixed an issue with Loading Plugins from MelonFolders that exist in the Mods folder too Early
+6. Fixed an issue with Il2CppAssemblyGenerator using Incorrect Module Pathing to Load
+7. Fixed an issue with Extended Folder Scanning not running without strict definition of Folder Names
+8. Updated Cpp2IL to 2022.1.0-pre-release.19
+9. Reimplemented Cpp2IL StrippedCodeRegSupport Module
+10. Fixed an issue with .NET Bundle Extraction attempting to extract to a folder of the same name as the executable
+11. Fixed an issue with Compatibility Layers not loading from Base Directory
+12. Updated Il2CppInterop to 1.4.6-ci.585
+13. Updated System.Configuration.ConfigurationManager, System.Drawing.Common, and System.Security.Permissions to 9.0.0
+14. Revert de-duplication to fix decoding by type hint broken in TinyJSON (Credits to [No3371](https://github.com/No3371) :D)
+15. Implemented Loader Config system (Credits to [slxdy](https://github.com/slxdy) :D)
+16. Changed Console Encoding to UTF8 (Credits to [slxdy](https://github.com/slxdy) :D)
+17. Fixed an issue with AsmResolver not being able to read files correctly (Credits to [Atmudia](https://github.com/Atmudia) :D)
+18. Made all Obsolete Members into Errors (Credits to [slxdy](https://github.com/slxdy) :D)
+19. Moved SharpZipLib to BackwardsCompatibility (Credits to [slxdy](https://github.com/slxdy) :D)
+20. Moved TinyJSON to BackwardsCompatibility (Credits to [slxdy](https://github.com/slxdy) :D)
+21. Improved Mono Library Initialization
+22. Reworked Bootstrap Proxy Exports to allow Loading Original from Local Copy
+23. Implemented Pre-Scan of Melon Folders to fix Load Order
+24. Updated missing deps for NetStandardPatches (Credits to [slxdy](https://github.com/slxdy) :D)
+
+---
+
### v0.6.6
1. Updated Il2CppInterop to 1.4.6-ci.579
diff --git a/Dependencies/CompatibilityLayers/Demeo/Demeo.csproj b/Dependencies/CompatibilityLayers/Demeo/Demeo.csproj
deleted file mode 100644
index d00ce207b..000000000
--- a/Dependencies/CompatibilityLayers/Demeo/Demeo.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- MelonLoader.CompatibilityLayers
- net472
- true
- $(MLOutDir)/MelonLoader/Dependencies/CompatibilityLayers
- true
- embedded
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Demeo/Demeo_LobbyRequirement.cs b/Dependencies/CompatibilityLayers/Demeo/Demeo_LobbyRequirement.cs
deleted file mode 100644
index ccdc98c80..000000000
--- a/Dependencies/CompatibilityLayers/Demeo/Demeo_LobbyRequirement.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System;
-
-namespace MelonLoader
-{
- [AttributeUsage(AttributeTargets.Assembly)]
- public class Demeo_LobbyRequirement : Attribute
- {
- public Demeo_LobbyRequirement() { }
- }
-}
diff --git a/Dependencies/CompatibilityLayers/Demeo/Module.cs b/Dependencies/CompatibilityLayers/Demeo/Module.cs
deleted file mode 100644
index 8bd856fde..000000000
--- a/Dependencies/CompatibilityLayers/Demeo/Module.cs
+++ /dev/null
@@ -1,131 +0,0 @@
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using MelonLoader.Modules;
-
-[assembly: MelonLoader.PatchShield]
-
-namespace MelonLoader.CompatibilityLayers
-{
- internal class Demeo_Module : MelonModule
- {
- private Dictionary ModInformation = new Dictionary();
- private IList ModInfoList;
-
- private Type modInfoType;
- private FieldInfo name_field;
- private FieldInfo version_field;
- private FieldInfo author_field;
- private FieldInfo description_field;
- private FieldInfo isNetworkCompatible_field;
-
- public override void OnInitialize()
- {
- MelonEvents.OnApplicationStart.Subscribe(OnPreAppStart, int.MaxValue);
- MelonBase.OnMelonRegistered.Subscribe(ParseMelon, int.MaxValue);
- MelonBase.OnMelonUnregistered.Subscribe(OnUnregister, int.MaxValue);
- }
-
- private void OnPreAppStart()
- {
- try
- {
- Assembly assembly = Assembly.Load("Assembly-CSharp");
- Type moddingApi = assembly.GetType("Boardgame.Modding.ModdingAPI");
-
- modInfoType = moddingApi.GetNestedType("ModInformation");
- name_field = modInfoType.GetField("name", BindingFlags.Public | BindingFlags.Instance);
- version_field = modInfoType.GetField("version", BindingFlags.Public | BindingFlags.Instance);
- author_field = modInfoType.GetField("author", BindingFlags.Public | BindingFlags.Instance);
- description_field = modInfoType.GetField("description", BindingFlags.Public | BindingFlags.Instance);
- isNetworkCompatible_field = modInfoType.GetField("isNetworkCompatible", BindingFlags.Public | BindingFlags.Instance);
-
- FieldInfo externalModsField = moddingApi.GetField("ExternallyInstalledMods", BindingFlags.Public | BindingFlags.Static);
- if (externalModsField.GetValue(null) == null)
- {
- var listType = typeof(List<>);
- var constructedListType = listType.MakeGenericType(modInfoType);
- ModInfoList = (IList)Activator.CreateInstance(constructedListType);
- externalModsField.SetValue(null, ModInfoList);
- }
-
- foreach (var m in MelonPlugin.RegisteredMelons)
- {
- try
- {
- ParseMelon(m);
- }
- catch (Exception ex)
- {
- MelonLogger.Error($"Demeo Integration has thrown an exception: {ex}");
- }
- }
-
- foreach (var m in MelonMod.RegisteredMelons)
- {
- try
- {
- ParseMelon(m);
- }
- catch (Exception ex)
- {
- MelonLogger.Error($"Demeo Integration has thrown an exception: {ex}");
- }
- }
- }
- catch (Exception ex)
- {
- MelonLogger.Error($"Demeo Integration has thrown an exception: {ex}");
- }
- }
-
- private void OnUnregister(MelonBase melon)
- {
- if (melon == null)
- return;
-
- if (!ModInformation.ContainsKey(melon))
- return;
-
- try
- {
- object info = ModInformation[melon];
- ModInformation.Remove(melon);
- ModInfoList.Remove(info);
- }
- catch (Exception ex)
- {
- MelonLogger.Error($"Demeo Integration has thrown an exception: {ex}");
- }
- }
-
- private void ParseMelon(T melon) where T : MelonBase
- {
-
- if (melon == null)
- return;
-
- if (ModInformation.ContainsKey(melon))
- return;
-
- try
- {
- object info = Activator.CreateInstance(modInfoType);
-
- name_field.SetValue(info, melon.Info.Name);
- version_field.SetValue(info, melon.Info.Version);
- author_field.SetValue(info, melon.Info.Author);
- description_field.SetValue(info, melon.Info.DownloadLink);
- isNetworkCompatible_field.SetValue(info, MelonUtils.PullAttributeFromAssembly(melon.MelonAssembly.Assembly) == null);
-
- ModInformation.Add(melon, info);
- ModInfoList.Add(info);
- }
- catch (Exception ex)
- {
- MelonLogger.Error($"Demeo Integration has thrown an exception: {ex}");
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/IPA/IPA.csproj b/Dependencies/CompatibilityLayers/IPA/IPA.csproj
deleted file mode 100644
index 79f99e91c..000000000
--- a/Dependencies/CompatibilityLayers/IPA/IPA.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- MelonLoader.CompatibilityLayers
- net35
- true
- $(MLOutDir)/MelonLoader/Dependencies/CompatibilityLayers
- true
- embedded
-
-
-
-
-
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/IPA/IPA/IEnhancedPlugin.cs b/Dependencies/CompatibilityLayers/IPA/IPA/IEnhancedPlugin.cs
deleted file mode 100644
index 2bb73efc2..000000000
--- a/Dependencies/CompatibilityLayers/IPA/IPA/IEnhancedPlugin.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace IllusionPlugin
-{
- public interface IEnhancedPlugin : IPlugin
- {
- string[] Filter { get; }
- void OnLateUpdate();
- }
-}
diff --git a/Dependencies/CompatibilityLayers/IPA/IPA/IPlugin.cs b/Dependencies/CompatibilityLayers/IPA/IPA/IPlugin.cs
deleted file mode 100644
index df0b97c48..000000000
--- a/Dependencies/CompatibilityLayers/IPA/IPA/IPlugin.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-namespace IllusionPlugin
-{
- public interface IPlugin
- {
- string Name { get; }
- string Version { get; }
- void OnApplicationStart();
- void OnApplicationQuit();
- void OnLevelWasLoaded(int level);
- void OnLevelWasInitialized(int level);
- void OnUpdate();
- void OnFixedUpdate();
- }
-}
diff --git a/Dependencies/CompatibilityLayers/IPA/IPA/ModPrefs.cs b/Dependencies/CompatibilityLayers/IPA/IPA/ModPrefs.cs
deleted file mode 100644
index 0f79ba121..000000000
--- a/Dependencies/CompatibilityLayers/IPA/IPA/ModPrefs.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using System;
-using MelonLoader;
-
-namespace IllusionPlugin
-{
- public static class ModPrefs
- {
- public static string GetString(string section, string name, string defaultValue = "", bool autoSave = false)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, defaultValue);
- return entry.Value;
- }
-
- public static int GetInt(string section, string name, int defaultValue = 0, bool autoSave = false)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, defaultValue);
- return entry.Value;
- }
-
- public static float GetFloat(string section, string name, float defaultValue = 0f, bool autoSave = false)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, defaultValue);
- return entry.Value;
- }
-
- public static bool GetBool(string section, string name, bool defaultValue = false, bool autoSave = false)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, defaultValue);
- return entry.Value;
- }
-
- public static bool HasKey(string section, string name) => MelonPreferences.HasEntry(section, name);
-
- public static void SetFloat(string section, string name, float value)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, value);
- entry.Value = value;
- }
-
- public static void SetInt(string section, string name, int value)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, value);
- entry.Value = value;
- }
-
- public static void SetString(string section, string name, string value)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, value);
- entry.Value = value;
- }
-
- public static void SetBool(string section, string name, bool value)
- {
- MelonPreferences_Category category = MelonPreferences.GetCategory(section);
- if (category == null)
- category = MelonPreferences.CreateCategory(section);
- MelonPreferences_Entry entry = category.GetEntry(name);
- if (entry == null)
- entry = category.CreateEntry(name, value);
- entry.Value = value;
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/IPA/IPA/PluginManager.cs b/Dependencies/CompatibilityLayers/IPA/IPA/PluginManager.cs
deleted file mode 100644
index ab0f3fc42..000000000
--- a/Dependencies/CompatibilityLayers/IPA/IPA/PluginManager.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System.Collections.Generic;
-using IllusionPlugin;
-using MelonLoader.Utils;
-
-namespace IllusionInjector
-{
- public static class PluginManager
- {
- internal static List _Plugins = new List();
- public static IEnumerable Plugins { get => _Plugins; }
- public class AppInfo
- {
- public static string StartupPath { get => MelonEnvironment.GameRootDirectory; }
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/IPA/IPAPluginWrapper.cs b/Dependencies/CompatibilityLayers/IPA/IPAPluginWrapper.cs
deleted file mode 100644
index b98612372..000000000
--- a/Dependencies/CompatibilityLayers/IPA/IPAPluginWrapper.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using IllusionPlugin;
-using IllusionInjector;
-
-namespace MelonLoader.CompatibilityLayers
-{
- internal class IPAPluginWrapper : MelonMod
- {
- internal IPlugin pluginInstance;
- public override void OnInitializeMelon() => pluginInstance.OnApplicationStart();
- public override void OnDeinitializeMelon() => pluginInstance.OnApplicationQuit();
- public override void OnSceneWasLoaded(int buildIndex, string sceneName) => pluginInstance.OnLevelWasLoaded(buildIndex);
- public override void OnSceneWasInitialized(int buildIndex, string sceneName) => pluginInstance.OnLevelWasInitialized(buildIndex);
- public override void OnUpdate() => pluginInstance.OnUpdate();
- public override void OnFixedUpdate() => pluginInstance.OnFixedUpdate();
- public override void OnLateUpdate() { if (pluginInstance is IEnhancedPlugin plugin) plugin.OnLateUpdate(); }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/IPA/Module.cs b/Dependencies/CompatibilityLayers/IPA/Module.cs
deleted file mode 100644
index 87cb99a13..000000000
--- a/Dependencies/CompatibilityLayers/IPA/Module.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using IllusionPlugin;
-using IllusionInjector;
-using MelonLoader.Modules;
-using MelonLoader.Resolver;
-
-[assembly: MelonLoader.PatchShield]
-
-namespace MelonLoader.CompatibilityLayers
-{
- internal class IPA_Module : MelonModule
- {
- public override void OnInitialize()
- {
- // To-Do:
- // Detect if IPA is already Installed
- // Point AssemblyResolveInfo to already installed IPA Assembly
- // Point GetResolverFromAssembly to Dummy MelonCompatibilityLayer.Resolver
-
- string[] assembly_list =
- {
- "IllusionPlugin",
- "IllusionInjector",
- };
- Assembly base_assembly = typeof(IPA_Module).Assembly;
- foreach (string assemblyName in assembly_list)
- MelonAssemblyResolver.GetAssemblyResolveInfo(assemblyName).Override = base_assembly;
-
- MelonAssembly.CustomMelonResolvers += Resolve;
- }
-
- private ResolvedMelons Resolve(Assembly asm)
- {
- IEnumerable pluginTypes = asm.GetValidTypes(x =>
- {
- Type[] interfaces = x.GetInterfaces();
- return (interfaces != null) && interfaces.Any() && interfaces.Contains(typeof(IPlugin)); // To-Do: Change to Type Reflection based on Setup
- });
- if ((pluginTypes == null) || !pluginTypes.Any())
- return new ResolvedMelons(null, null);
-
- var melons = new List();
- var rotten = new List();
- foreach (var t in pluginTypes)
- {
- var mel = LoadPlugin(asm, t, out RottenMelon rm);
- if (mel != null)
- melons.Add(mel);
- else
- rotten.Add(rm);
- }
- return new ResolvedMelons(melons.ToArray(), rotten.ToArray());
- }
-
- private MelonBase LoadPlugin(Assembly asm, Type pluginType, out RottenMelon rottenMelon)
- {
- rottenMelon = null;
- IPlugin pluginInstance;
- try
- { pluginInstance = Activator.CreateInstance(pluginType) as IPlugin; }
- catch (Exception ex)
- {
- rottenMelon = new RottenMelon(pluginType, "Failed to create a new instance of the IPA Plugin.", ex);
- return null;
- }
-
- MelonProcessAttribute[] processAttrs = null;
- if (pluginInstance is IEnhancedPlugin enPl)
- processAttrs = enPl.Filter?.Select(x => new MelonProcessAttribute(x)).ToArray();
-
- string pluginName = pluginInstance.Name;
- if (string.IsNullOrEmpty(pluginName))
- pluginName = pluginType.FullName;
-
- string plugin_version = pluginInstance.Version;
- if (string.IsNullOrEmpty(plugin_version))
- plugin_version = asm.GetName().Version.ToString();
- if (string.IsNullOrEmpty(plugin_version) || plugin_version.Equals("0.0.0.0"))
- plugin_version = "1.0.0.0";
-
- var melon = MelonBase.CreateWrapper(pluginName, null, plugin_version, processes: processAttrs);
-
- melon.pluginInstance = pluginInstance;
- PluginManager._Plugins.Add(pluginInstance);
- return melon;
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/Module.cs b/Dependencies/CompatibilityLayers/Muse_Dash_Mono/Module.cs
deleted file mode 100644
index 80c8d1ce0..000000000
--- a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/Module.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using MelonLoader.Modules;
-using ModHelper;
-using MelonLoader.Resolver;
-
-[assembly: MelonLoader.PatchShield]
-
-namespace MelonLoader.CompatibilityLayers
-{
- internal class Muse_Dash_Mono_Module : MelonModule
- {
- public override void OnInitialize()
- {
- // To-Do:
- // Detect if MuseDashModLoader is already Installed
- // Point AssemblyResolveInfo to already installed MuseDashModLoader Assembly
- // Inject Custom Resolver
-
- string[] assembly_list =
- {
- "ModHelper",
- "ModLoader",
- };
- Assembly base_assembly = typeof(Muse_Dash_Mono_Module).Assembly;
- foreach (string assemblyName in assembly_list)
- MelonAssemblyResolver.GetAssemblyResolveInfo(assemblyName).Override = base_assembly;
-
- MelonAssembly.CustomMelonResolvers += Resolve;
- }
-
- private ResolvedMelons Resolve(Assembly asm)
- {
- IEnumerable modTypes = asm.GetValidTypes(x =>
- {
- Type[] interfaces = x.GetInterfaces();
- return (interfaces != null) && interfaces.Any() && interfaces.Contains(typeof(IMod)); // To-Do: Change to Type Reflection based on Setup
- });
- if ((modTypes == null) || !modTypes.Any())
- return new ResolvedMelons(null, null);
-
- var melons = new List();
- var rotten = new List();
- foreach (var t in modTypes)
- {
- var mel = LoadMod(asm, t, out RottenMelon rm);
- if (mel != null)
- melons.Add(mel);
- else
- rotten.Add(rm);
- }
- return new ResolvedMelons(melons.ToArray(), rotten.ToArray());
- }
-
- private MelonBase LoadMod(Assembly asm, Type modType, out RottenMelon rottenMelon)
- {
- rottenMelon = null;
-
- IMod modInstance;
- try { modInstance = Activator.CreateInstance(modType) as IMod; }
- catch (Exception ex)
- {
- rottenMelon = new RottenMelon(modType, "Failed to create an instance of the MMDL Mod.", ex);
- return null;
- }
-
- var modName = modInstance.Name;
-
- if (string.IsNullOrEmpty(modName))
- modName = modType.FullName;
-
- var modVersion = asm.GetName().Version.ToString();
- if (string.IsNullOrEmpty(modVersion) || modVersion.Equals("0.0.0.0"))
- modVersion = "1.0.0.0";
-
- var melon = MelonBase.CreateWrapper(modName, null, modVersion);
- melon.modInstance = modInstance;
- ModLoader.ModLoader.mods.Add(modInstance);
- ModLoader.ModLoader.LoadDependency(asm);
- return melon;
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/IMod.cs b/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/IMod.cs
deleted file mode 100644
index a33fe259f..000000000
--- a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/IMod.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-namespace ModHelper
-{
- public interface IMod
- {
- string Name { get; }
- string Description { get; }
- string Author { get; }
- string HomePage { get; }
- void DoPatching();
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/ModLoader.cs b/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/ModLoader.cs
deleted file mode 100644
index fef19fbcd..000000000
--- a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/ModLoader.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using System.Collections.Generic;
-using System.Reflection;
-using MelonLoader;
-using ModHelper;
-
-namespace ModLoader
-{
- public class ModLoader
- {
- internal static List mods = new List();
- internal static Dictionary depends = new Dictionary();
-
- public static void LoadDependency(Assembly assembly)
- {
- foreach (string dependStr in assembly.GetManifestResourceNames())
- {
- string filter = $"{assembly.GetName().Name}.Depends.";
- if (dependStr.StartsWith(filter) && dependStr.EndsWith(".dll"))
- {
- string dependName = dependStr.Remove(dependStr.LastIndexOf(".dll")).Remove(0, filter.Length);
- if (depends.ContainsKey(dependName))
- {
- MelonLogger.Error($"Dependency conflict: {dependName} First at: {depends[dependName].GetName().Name}");
- continue;
- }
-
- Assembly dependAssembly;
- using (var stream = assembly.GetManifestResourceStream(dependStr))
- {
- byte[] buffer = new byte[stream.Length];
- stream.Read(buffer, 0, buffer.Length);
- dependAssembly = Assembly.Load(buffer);
- }
- depends.Add(dependName, dependAssembly);
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/ModLogger.cs b/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/ModLogger.cs
deleted file mode 100644
index 5b4eacc98..000000000
--- a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModLoader/ModLogger.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System.Diagnostics;
-using MelonLoader;
-
-namespace ModHelper
-{
- public static class ModLogger
- {
- public static void Debug(object obj)
- {
- var frame = new StackTrace().GetFrame(1);
- var className = frame.GetMethod().ReflectedType.Name;
- var methodName = frame.GetMethod().Name;
- AddLog(className, methodName, obj);
- }
-
- public static void AddLog(string className, string methodName, object obj)
- {
- MelonLogger.Msg($"[{className}:{methodName}]: {obj}");
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModWrapper.cs b/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModWrapper.cs
deleted file mode 100644
index aef40b5d7..000000000
--- a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/MuseDashModWrapper.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using ModHelper;
-
-namespace MelonLoader
-{
- internal class MuseDashModWrapper : MelonMod
- {
- internal IMod modInstance;
- public override void OnInitializeMelon() => modInstance.DoPatching();
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/Muse_Dash_Mono.csproj b/Dependencies/CompatibilityLayers/Muse_Dash_Mono/Muse_Dash_Mono.csproj
deleted file mode 100644
index 79f99e91c..000000000
--- a/Dependencies/CompatibilityLayers/Muse_Dash_Mono/Muse_Dash_Mono.csproj
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
- MelonLoader.CompatibilityLayers
- net35
- true
- $(MLOutDir)/MelonLoader/Dependencies/CompatibilityLayers
- true
- embedded
-
-
-
-
-
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Stress_Level_Zero_Il2Cpp/Module.cs b/Dependencies/CompatibilityLayers/Stress_Level_Zero_Il2Cpp/Module.cs
deleted file mode 100644
index a71f73b76..000000000
--- a/Dependencies/CompatibilityLayers/Stress_Level_Zero_Il2Cpp/Module.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using MelonLoader.Modules;
-using System.Collections.Generic;
-
-[assembly: MelonLoader.PatchShield]
-
-namespace MelonLoader.CompatibilityLayers
-{
- internal class SLZ_Module : MelonModule
- {
- private static bool HasGotLoadingSceneIndex = false;
- private static int LoadingSceneIndex = -9;
-
- private static Dictionary CompatibleGames = new Dictionary
- {
- ["BONELAB"] = 0,
- ["BONEWORKS"] = 0
- };
-
- public override void OnInitialize()
- {
- if (!CompatibleGames.ContainsKey(InternalUtils.UnityInformationHandler.GameName))
- return;
-
- MelonEvents.OnSceneWasLoaded.Subscribe(OnSceneLoad, int.MinValue);
- MelonEvents.OnSceneWasInitialized.Subscribe(OnSceneInit, int.MinValue);
- }
-
- private static void OnSceneLoad(int buildIndex, string name)
- {
- if (HasGotLoadingSceneIndex)
- {
- if (buildIndex == LoadingSceneIndex)
- PreSceneEvent();
- return;
- }
-
- if (buildIndex == 0)
- return;
-
- HasGotLoadingSceneIndex = true;
- LoadingSceneIndex = buildIndex;
- PreSceneEvent();
- }
-
- private static void OnSceneInit(int buildIndex, string name)
- {
- if (!HasGotLoadingSceneIndex
- || (buildIndex != LoadingSceneIndex))
- return;
-
- PostSceneEvent();
- MelonBase.SendMessageAll("OnLoadingScreen");
- MelonBase.SendMessageAll($"{InternalUtils.UnityInformationHandler.GameName}_OnLoadingScreen");
- }
-
- private static MelonEvent.MelonEventSubscriber[] SceneInitBackup;
- private static void PreSceneEvent()
- {
- SceneInitBackup = MelonEvents.OnSceneWasInitialized.GetSubscribers();
- MelonEvents.OnSceneWasInitialized.UnsubscribeAll();
- MelonEvents.OnSceneWasInitialized.Subscribe(OnSceneInit, int.MinValue);
- }
- private static void PostSceneEvent()
- {
- MelonEvents.OnSceneWasInitialized.UnsubscribeAll();
- foreach (var sub in SceneInitBackup)
- MelonEvents.OnSceneWasInitialized.Subscribe(sub.del, sub.priority, sub.unsubscribeOnFirstInvocation);
- SceneInitBackup = null;
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/CompatibilityLayers/Stress_Level_Zero_Il2Cpp/Stress_Level_Zero_Il2Cpp.csproj b/Dependencies/CompatibilityLayers/Stress_Level_Zero_Il2Cpp/Stress_Level_Zero_Il2Cpp.csproj
deleted file mode 100644
index f30b3a643..000000000
--- a/Dependencies/CompatibilityLayers/Stress_Level_Zero_Il2Cpp/Stress_Level_Zero_Il2Cpp.csproj
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- MelonLoader.CompatibilityLayers
- net472
- true
- $(MLOutDir)/MelonLoader/Dependencies/CompatibilityLayers
- true
- None
-
-
-
-
- false
- false
-
-
-
\ No newline at end of file
diff --git a/Dependencies/Dotnet/LICENSE.TXT b/Dependencies/Dotnet/LICENSE.TXT
new file mode 100644
index 000000000..984713a49
--- /dev/null
+++ b/Dependencies/Dotnet/LICENSE.TXT
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/Dependencies/Dotnet/THIRD-PARTY-NOTICES.TXT b/Dependencies/Dotnet/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 000000000..07a2b94ba
--- /dev/null
+++ b/Dependencies/Dotnet/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,1333 @@
+.NET Runtime uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Runtime software.
+
+In the event that we accidentally failed to list a required notice, please
+bring it to our attention. Post an issue or email us:
+
+ dotnet@microsoft.com
+
+The attached notices are provided for information only.
+
+License notice for ASP.NET
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt
+
+License notice for Slicing-by-8
+-------------------------------
+
+http://sourceforge.net/projects/slicing-by-8/
+
+Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+
+This software program is licensed subject to the BSD License, available at
+http://www.opensource.org/licenses/bsd-license.html.
+
+
+License notice for Unicode data
+-------------------------------
+
+https://www.unicode.org/license.html
+
+Copyright © 1991-2022 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+
+License notice for Zlib
+-----------------------
+
+https://github.com/madler/zlib
+https://zlib.net/zlib_license.html
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.13, October 13th, 2022
+
+ Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+*/
+
+License notice for Mono
+-------------------------------
+
+http://www.mono-project.com/docs/about-mono/
+
+Copyright (c) .NET Foundation Contributors
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the Software), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for International Organization for Standardization
+-----------------------------------------------------------------
+
+Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+License notice for Intel
+------------------------
+
+"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Xamarin and Novell
+-------------------------------------
+
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Third party notice for W3C
+--------------------------
+
+"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE
+Status: This license takes effect 13 May, 2015.
+This work is being provided by the copyright holders under the following license.
+License
+By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
+Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
+The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
+Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
+Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
+Disclaimers
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders."
+
+License notice for Bit Twiddling Hacks
+--------------------------------------
+
+Bit Twiddling Hacks
+
+By Sean Eron Anderson
+seander@cs.stanford.edu
+
+Individually, the code snippets here are in the public domain (unless otherwise
+noted) — feel free to use them however you please. The aggregate collection and
+descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
+distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
+without even the implied warranty of merchantability or fitness for a particular
+purpose.
+
+License notice for Brotli
+--------------------------------------
+
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+compress_fragment.c:
+Copyright (c) 2011, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+decode_fuzzer.c:
+Copyright (c) 2015 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+
+License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for vectorized base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2016-2017, Matthieu Darbois
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for vectorized hex parsing
+--------------------------------------------------------
+
+Copyright (c) 2022, Geoff Langdale
+Copyright (c) 2022, Wojciech Mula
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for RFC 3492
+---------------------------
+
+The punycode implementation is based on the sample code in RFC 3492
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure
+---------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
+SOFTWARE.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind based code
+----------------------------------------
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for Printing Floating-Point Numbers (Dragon4)
+------------------------------------------------------------
+
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source
+ distribution.
+******************************************************************************/
+
+License notice for Printing Floating-point Numbers (Grisu3)
+-----------------------------------------------------------
+
+Copyright 2012 the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for xxHash
+-------------------------
+
+xxHash - Extremely Fast Hash algorithm
+Header File
+Copyright (C) 2012-2021 Yann Collet
+
+BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php)
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+You can contact the author at:
+ - xxHash homepage: https://www.xxhash.com
+ - xxHash source repository: https://github.com/Cyan4973/xxHash
+
+License notice for Berkeley SoftFloat Release 3e
+------------------------------------------------
+
+https://github.com/ucb-bar/berkeley-softfloat-3
+https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions, and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for xoshiro RNGs
+--------------------------------
+
+Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
+
+To the extent possible under law, the author has dedicated all copyright
+and related and neighboring rights to this software to the public domain
+worldwide. This software is distributed without any warranty.
+
+See .
+
+License for fastmod (https://github.com/lemire/fastmod), ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data) and fastrange (https://github.com/lemire/fastrange)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License for sse4-strstr (https://github.com/WojciechMula/sse4-strstr)
+--------------------------------------
+
+ Copyright (c) 2008-2016, Wojciech Mula
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for MessagePack-CSharp
+-------------------------------------
+
+MessagePack for C#
+
+MIT License
+
+Copyright (c) 2017 Yoshifumi Kawai
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for lz4net
+-------------------------------------
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Nerdbank.Streams
+-----------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Andrew Arnott
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for RapidJSON
+----------------------------
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+Licensed under the MIT License (the "License"); you may not use this file except
+in compliance with the License. You may obtain a copy of the License at
+
+http://opensource.org/licenses/MIT
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for DirectX Math Library
+---------------------------------------
+
+https://github.com/microsoft/DirectXMath/blob/master/LICENSE
+
+ The MIT License (MIT)
+
+Copyright (c) 2011-2020 Microsoft Corp
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this
+software and associated documentation files (the "Software"), to deal in the Software
+without restriction, including without limitation the rights to use, copy, modify,
+merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be included in all copies
+or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for ldap4net
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2018 Alexander Chermyanin
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License notice for vectorized sorting code
+------------------------------------------
+
+MIT License
+
+Copyright (c) 2020 Dan Shechter
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for musl
+-----------------------
+
+musl as a whole is licensed under the following standard MIT license:
+
+Copyright © 2005-2020 Rich Felker, et al.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+License notice for "Faster Unsigned Division by Constants"
+------------------------------
+
+Reference implementations of computing and using the "magic number" approach to dividing
+by constants, including codegen instructions. The unsigned division incorporates the
+"round down" optimization per ridiculous_fish.
+
+This is free and unencumbered software. Any copyright is dedicated to the Public Domain.
+
+
+License notice for mimalloc
+-----------------------------------
+
+MIT License
+
+Copyright (c) 2019 Microsoft Corporation, Daan Leijen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License for remote stack unwind (https://github.com/llvm/llvm-project/blob/main/lldb/source/Symbol/CompactUnwindInfo.cpp)
+--------------------------------------
+
+Copyright 2019 LLVM Project
+
+Licensed under the Apache License, Version 2.0 (the "License") with LLVM Exceptions;
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+https://llvm.org/LICENSE.txt
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+License notice for Apple header files
+-------------------------------------
+
+Copyright (c) 1980, 1986, 1993
+ The Regents of the University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+License notice for JavaScript queues
+-------------------------------------
+
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.
+
+Statement of Purpose
+The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").
+Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.
+For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:
+the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
+moral rights retained by the original author(s) and/or performer(s);
+publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;
+rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;
+rights protecting the extraction, dissemination, use and reuse of data in a Work;
+database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
+other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
+2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.
+3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.
+4. Limitations and Disclaimers.
+a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
+b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
+c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
+d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
+
+
+License notice for FastFloat algorithm
+-------------------------------------
+MIT License
+Copyright (c) 2021 csFastFloat authors
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
+License notice for MsQuic
+--------------------------------------
+
+Copyright (c) Microsoft Corporation.
+Licensed under the MIT License.
+
+Available at
+https://github.com/microsoft/msquic/blob/main/LICENSE
+
+License notice for m-ou-se/floatconv
+-------------------------------
+
+Copyright (c) 2020 Mara Bos
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for code from The Practice of Programming
+-------------------------------
+
+Copyright (C) 1999 Lucent Technologies
+
+Excerpted from 'The Practice of Programming
+by Brian W. Kernighan and Rob Pike
+
+You may use this code for any purpose, as long as you leave the copyright notice and book citation attached.
+
+Notice for Euclidean Affine Functions and Applications to Calendar
+Algorithms
+-------------------------------
+
+Aspects of Date/Time processing based on algorithm described in "Euclidean Affine Functions and Applications to Calendar
+Algorithms", Cassio Neri and Lorenz Schneider. https://arxiv.org/pdf/2102.06959.pdf
+
+License notice for amd/aocl-libm-ose
+-------------------------------
+
+Copyright (C) 2008-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+License notice for fmtlib/fmt
+-------------------------------
+
+Formatting library for C++
+
+Copyright (c) 2012 - present, Victor Zverovich
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+License for Jb Evain
+---------------------
+
+Copyright (c) 2006 Jb Evain (jbevain@gmail.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+--- Optional exception to the license ---
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into a machine-executable object form of such
+source code, you may redistribute such embedded portions in such object form
+without including the above copyright and permission notices.
+
+
+License for MurmurHash3
+--------------------------------------
+
+https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp
+
+MurmurHash3 was written by Austin Appleby, and is placed in the public
+domain. The author hereby disclaims copyright to this source
+
+License for Fast CRC Computation
+--------------------------------------
+
+https://github.com/intel/isa-l/blob/33a2d9484595c2d6516c920ce39a694c144ddf69/crc/crc32_ieee_by4.asm
+https://github.com/intel/isa-l/blob/33a2d9484595c2d6516c920ce39a694c144ddf69/crc/crc64_ecma_norm_by8.asm
+
+Copyright(c) 2011-2015 Intel Corporation All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License for C# Implementation of Fast CRC Computation
+-----------------------------------------------------
+
+https://github.com/SixLabors/ImageSharp/blob/f4f689ce67ecbcc35cebddba5aacb603e6d1068a/src/ImageSharp/Formats/Png/Zlib/Crc32.cs
+
+Copyright (c) Six Labors.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/SixLabors/ImageSharp/blob/f4f689ce67ecbcc35cebddba5aacb603e6d1068a/LICENSE
+
+License for the Teddy multi-substring searching implementation
+--------------------------------------
+
+https://github.com/BurntSushi/aho-corasick
+
+The MIT License (MIT)
+
+Copyright (c) 2015 Andrew Gallant
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+License notice for Avx512Vbmi base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2015-2018, Wojciech Muła
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+--------------------------------------------------------
+
+Aspects of base64 encoding / decoding are based on algorithm described in "Base64 encoding and decoding at almost the speed of a memory
+copy", Wojciech Muła and Daniel Lemire. https://arxiv.org/pdf/1910.05109.pdf
diff --git a/Dependencies/Dotnet/linux/x86_64/dotnet b/Dependencies/Dotnet/linux/x86_64/dotnet
new file mode 100644
index 000000000..c023300d3
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/dotnet differ
diff --git a/Dependencies/Dotnet/linux/x86_64/host/fxr/6.0.25/libhostfxr.so b/Dependencies/Dotnet/linux/x86_64/host/fxr/6.0.25/libhostfxr.so
new file mode 100644
index 000000000..376bffeed
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/host/fxr/6.0.25/libhostfxr.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version
new file mode 100644
index 000000000..dbb688f01
--- /dev/null
+++ b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version
@@ -0,0 +1,2 @@
+492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4
+6.0.25
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll
new file mode 100644
index 000000000..da53a8d54
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json
new file mode 100644
index 000000000..053da3997
--- /dev/null
+++ b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json
@@ -0,0 +1,2896 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v6.0/linux-x64",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v6.0": {},
+ ".NETCoreApp,Version=v6.0/linux-x64": {
+ "Microsoft.NETCore.App.Runtime.linux-x64/6.0.25": {
+ "runtime": {
+ "System.Private.CoreLib.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.VisualBasic.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscorlib.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "netstandard.dll": {
+ "assemblyVersion": "2.1.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.AppContext.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Buffers.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.DataAnnotations.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Configuration.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Core.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.DataSetExtensions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Contracts.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Debug.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Tools.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Tracing.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Drawing.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Dynamic.Runtime.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.Calendars.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.FileSystem.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.UnmanagedMemoryStream.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Numerics.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Numerics.Vectors.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.ILGeneration.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.Lightweight.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.Reader.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.ResourceManager.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Handles.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Intrinsics.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Loader.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Xml.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Principal.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.SecureString.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ServiceModel.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ServiceProcess.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Overlapped.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Thread.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.ThreadPool.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Timer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Transactions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ValueTuple.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Windows.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.Linq.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.ReaderWriter.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XmlDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XmlSerializer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XPath.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "WindowsBase.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.CSharp.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.VisualBasic.Core.dll": {
+ "assemblyVersion": "11.0.0.0",
+ "fileVersion": "11.100.2523.51912"
+ },
+ "Microsoft.Win32.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.Win32.Registry.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Concurrent.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Immutable.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.NonGeneric.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Specialized.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.Annotations.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.EventBasedAsync.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.TypeConverter.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Console.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.Common.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.DiagnosticSource.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.FileVersionInfo.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Process.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.StackTrace.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.TextWriterTraceListener.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.TraceSource.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Drawing.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Formats.Asn1.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.Brotli.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.ZipFile.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.DriveInfo.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.Watcher.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.IsolatedStorage.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.MemoryMappedFiles.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Pipes.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Pipes.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Expressions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Parallel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Queryable.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Memory.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Http.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Http.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.HttpListener.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Mail.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.NameResolution.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.NetworkInformation.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Ping.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Quic.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Requests.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Security.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.ServicePoint.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Sockets.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebClient.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebHeaderCollection.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebProxy.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebSockets.Client.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebSockets.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ObjectModel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.DataContractSerialization.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Uri.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Xml.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Xml.Linq.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.DispatchProxy.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Metadata.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.TypeExtensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.Writer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.CompilerServices.VisualC.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.InteropServices.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Numerics.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Formatters.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Claims.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Algorithms.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Cng.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Csp.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Encoding.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.OpenSsl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.X509Certificates.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Principal.Windows.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.CodePages.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encodings.Web.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.RegularExpressions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Channels.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Dataflow.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Parallel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Transactions.Local.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Web.HttpUtility.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XPath.XDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ }
+ },
+ "native": {
+ "createdump": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libclrjit.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libcoreclr.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libcoreclrtraceptprovider.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libdbgshim.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libmscordaccore.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libmscordbi.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Globalization.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.IO.Compression.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Net.Security.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Security.Cryptography.Native.OpenSsl.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libhostpolicy.so": {
+ "fileVersion": "0.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETCore.App.Runtime.linux-x64/6.0.25": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "",
+ "path": "microsoft.netcore.app.runtime.linux-x64/6.0.25"
+ }
+ },
+ "runtimes": {
+ "alpine-x64": [
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.10-x64": [
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.11-x64": [
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.12-x64": [
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.13-x64": [
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.14-x64": [
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.15-x64": [
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.16-x64": [
+ "alpine.3.16",
+ "alpine.3.15-x64",
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.17-x64": [
+ "alpine.3.17",
+ "alpine.3.16-x64",
+ "alpine.3.16",
+ "alpine.3.15-x64",
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.18-x64": [
+ "alpine.3.18",
+ "alpine.3.17-x64",
+ "alpine.3.17",
+ "alpine.3.16-x64",
+ "alpine.3.16",
+ "alpine.3.15-x64",
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.6-x64": [
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.7-x64": [
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.8-x64": [
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.9-x64": [
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android-x64": [
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.21-x64": [
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.22-x64": [
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.23-x64": [
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.24-x64": [
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.25-x64": [
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.26-x64": [
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.27-x64": [
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.28-x64": [
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.29-x64": [
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.30-x64": [
+ "android.30",
+ "android.29-x64",
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.31-x64": [
+ "android.31",
+ "android.30-x64",
+ "android.30",
+ "android.29-x64",
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.32-x64": [
+ "android.32",
+ "android.31-x64",
+ "android.31",
+ "android.30-x64",
+ "android.30",
+ "android.29-x64",
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "arch-x64": [
+ "arch",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos-x64": [
+ "centos",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos.7-x64": [
+ "centos.7",
+ "centos-x64",
+ "rhel.7-x64",
+ "centos",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos.8-x64": [
+ "centos.8",
+ "centos-x64",
+ "rhel.8-x64",
+ "centos",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos.9-x64": [
+ "centos.9",
+ "centos-x64",
+ "rhel.9-x64",
+ "centos",
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian-x64": [
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.10-x64": [
+ "debian.10",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.11-x64": [
+ "debian.11",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.12-x64": [
+ "debian.12",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.8-x64": [
+ "debian.8",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.9-x64": [
+ "debian.9",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "exherbo-x64": [
+ "exherbo",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora-x64": [
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.23-x64": [
+ "fedora.23",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.24-x64": [
+ "fedora.24",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.25-x64": [
+ "fedora.25",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.26-x64": [
+ "fedora.26",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.27-x64": [
+ "fedora.27",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.28-x64": [
+ "fedora.28",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.29-x64": [
+ "fedora.29",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.30-x64": [
+ "fedora.30",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.31-x64": [
+ "fedora.31",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.32-x64": [
+ "fedora.32",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.33-x64": [
+ "fedora.33",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.34-x64": [
+ "fedora.34",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.35-x64": [
+ "fedora.35",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.36-x64": [
+ "fedora.36",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.37-x64": [
+ "fedora.37",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.38-x64": [
+ "fedora.38",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.39-x64": [
+ "fedora.39",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "gentoo-x64": [
+ "gentoo",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linux-musl-x64": [
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linux-x64": [
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17-x64": [
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17.1-x64": [
+ "linuxmint.17.1",
+ "linuxmint.17-x64",
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17.2-x64": [
+ "linuxmint.17.2",
+ "linuxmint.17.1-x64",
+ "linuxmint.17.1",
+ "linuxmint.17-x64",
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17.3-x64": [
+ "linuxmint.17.3",
+ "linuxmint.17.2-x64",
+ "linuxmint.17.2",
+ "linuxmint.17.1-x64",
+ "linuxmint.17.1",
+ "linuxmint.17-x64",
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18-x64": [
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18.1-x64": [
+ "linuxmint.18.1",
+ "linuxmint.18-x64",
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18.2-x64": [
+ "linuxmint.18.2",
+ "linuxmint.18.1-x64",
+ "linuxmint.18.1",
+ "linuxmint.18-x64",
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18.3-x64": [
+ "linuxmint.18.3",
+ "linuxmint.18.2-x64",
+ "linuxmint.18.2",
+ "linuxmint.18.1-x64",
+ "linuxmint.18.1",
+ "linuxmint.18-x64",
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.19-x64": [
+ "linuxmint.19",
+ "ubuntu.18.04-x64",
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.19.1-x64": [
+ "linuxmint.19.1",
+ "linuxmint.19-x64",
+ "linuxmint.19",
+ "ubuntu.18.04-x64",
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.19.2-x64": [
+ "linuxmint.19.2",
+ "linuxmint.19.1-x64",
+ "linuxmint.19.1",
+ "linuxmint.19-x64",
+ "linuxmint.19",
+ "ubuntu.18.04-x64",
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol-x64": [
+ "ol",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7-x64": [
+ "ol.7",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.0-x64": [
+ "ol.7.0",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.1-x64": [
+ "ol.7.1",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.2-x64": [
+ "ol.7.2",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.3-x64": [
+ "ol.7.3",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.4-x64": [
+ "ol.7.4",
+ "ol.7.3-x64",
+ "rhel.7.4-x64",
+ "ol.7.3",
+ "rhel.7.4",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.5-x64": [
+ "ol.7.5",
+ "ol.7.4-x64",
+ "rhel.7.5-x64",
+ "ol.7.4",
+ "rhel.7.5",
+ "ol.7.3-x64",
+ "rhel.7.4-x64",
+ "ol.7.3",
+ "rhel.7.4",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.6-x64": [
+ "ol.7.6",
+ "ol.7.5-x64",
+ "rhel.7.6-x64",
+ "ol.7.5",
+ "rhel.7.6",
+ "ol.7.4-x64",
+ "rhel.7.5-x64",
+ "ol.7.4",
+ "rhel.7.5",
+ "ol.7.3-x64",
+ "rhel.7.4-x64",
+ "ol.7.3",
+ "rhel.7.4",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.8-x64": [
+ "ol.8",
+ "ol-x64",
+ "rhel.8-x64",
+ "ol",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.8.0-x64": [
+ "ol.8.0",
+ "ol.8-x64",
+ "rhel.8.0-x64",
+ "ol.8",
+ "rhel.8.0",
+ "ol-x64",
+ "rhel.8-x64",
+ "ol",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse-x64": [
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.13.2-x64": [
+ "opensuse.13.2",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.15.0-x64": [
+ "opensuse.15.0",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.15.1-x64": [
+ "opensuse.15.1",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.42.1-x64": [
+ "opensuse.42.1",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.42.2-x64": [
+ "opensuse.42.2",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.42.3-x64": [
+ "opensuse.42.3",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel-x64": [
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.6-x64": [
+ "rhel.6",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7-x64": [
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.0-x64": [
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.1-x64": [
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.2-x64": [
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.3-x64": [
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.4-x64": [
+ "rhel.7.4",
+ "rhel.7.3-x64",
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.5-x64": [
+ "rhel.7.5",
+ "rhel.7.4-x64",
+ "rhel.7.4",
+ "rhel.7.3-x64",
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.6-x64": [
+ "rhel.7.6",
+ "rhel.7.5-x64",
+ "rhel.7.5",
+ "rhel.7.4-x64",
+ "rhel.7.4",
+ "rhel.7.3-x64",
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.8-x64": [
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.8.0-x64": [
+ "rhel.8.0",
+ "rhel.8-x64",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.8.1-x64": [
+ "rhel.8.1",
+ "rhel.8.0-x64",
+ "rhel.8.0",
+ "rhel.8-x64",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.9-x64": [
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rocky-x64": [
+ "rocky",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rocky.8-x64": [
+ "rocky.8",
+ "rocky-x64",
+ "rhel.8-x64",
+ "rocky",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rocky.9-x64": [
+ "rocky.9",
+ "rocky-x64",
+ "rhel.9-x64",
+ "rocky",
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles-x64": [
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12-x64": [
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.1-x64": [
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.2-x64": [
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.3-x64": [
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.4-x64": [
+ "sles.12.4",
+ "sles.12.3-x64",
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.15-x64": [
+ "sles.15",
+ "sles.12.4-x64",
+ "sles.12.4",
+ "sles.12.3-x64",
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.15.1-x64": [
+ "sles.15.1",
+ "sles.15-x64",
+ "sles.15",
+ "sles.12.4-x64",
+ "sles.12.4",
+ "sles.12.3-x64",
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu-x64": [
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.14.04-x64": [
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.14.10-x64": [
+ "ubuntu.14.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.15.04-x64": [
+ "ubuntu.15.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.15.10-x64": [
+ "ubuntu.15.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.16.04-x64": [
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.16.10-x64": [
+ "ubuntu.16.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.17.04-x64": [
+ "ubuntu.17.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.17.10-x64": [
+ "ubuntu.17.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.18.04-x64": [
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.18.10-x64": [
+ "ubuntu.18.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.19.04-x64": [
+ "ubuntu.19.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.19.10-x64": [
+ "ubuntu.19.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.20.04-x64": [
+ "ubuntu.20.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.20.10-x64": [
+ "ubuntu.20.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.21.04-x64": [
+ "ubuntu.21.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.21.10-x64": [
+ "ubuntu.21.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.22.04-x64": [
+ "ubuntu.22.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.22.10-x64": [
+ "ubuntu.22.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.23.04-x64": [
+ "ubuntu.23.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.23.10-x64": [
+ "ubuntu.23.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json
new file mode 100644
index 000000000..3d37d8e97
--- /dev/null
+++ b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json
@@ -0,0 +1,8 @@
+{
+ "runtimeOptions": {
+ "tfm": "net6.0",
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll
new file mode 100644
index 000000000..cd30522a8
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll
new file mode 100644
index 000000000..fbdadfd2e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll
new file mode 100644
index 000000000..f8538422c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll
new file mode 100644
index 000000000..79c1b1182
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll
new file mode 100644
index 000000000..3007ef35d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll
new file mode 100644
index 000000000..bc2412b3a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll
new file mode 100644
index 000000000..e507e8449
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll
new file mode 100644
index 000000000..b8c10233a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll
new file mode 100644
index 000000000..22f61a4a6
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll
new file mode 100644
index 000000000..e8683ee01
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll
new file mode 100644
index 000000000..3acc4fb3c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll
new file mode 100644
index 000000000..1ffab6d0c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll
new file mode 100644
index 000000000..c6492fbeb
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 000000000..d6b1abe49
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll
new file mode 100644
index 000000000..72da24352
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 000000000..d3d4fb4ea
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll
new file mode 100644
index 000000000..e1efd9b4c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll
new file mode 100644
index 000000000..8e4cfc0ce
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll
new file mode 100644
index 000000000..82d92c870
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll
new file mode 100644
index 000000000..2739938e3
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll
new file mode 100644
index 000000000..5f38c52b3
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll
new file mode 100644
index 000000000..c6e1048c7
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll
new file mode 100644
index 000000000..3be9bcf26
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll
new file mode 100644
index 000000000..716166a8b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll
new file mode 100644
index 000000000..a5967d06b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 000000000..2d5ac1c47
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 000000000..2ec414c3a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll
new file mode 100644
index 000000000..b09232333
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll
new file mode 100644
index 000000000..7f09098e9
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 000000000..320cfc7ae
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll
new file mode 100644
index 000000000..0a3db380a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll
new file mode 100644
index 000000000..a91679c54
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll
new file mode 100644
index 000000000..ce7eca9e6
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll
new file mode 100644
index 000000000..d2693ef31
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll
new file mode 100644
index 000000000..9c1e36ba2
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll
new file mode 100644
index 000000000..60216621f
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll
new file mode 100644
index 000000000..98f92ab95
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll
new file mode 100644
index 000000000..a4dbf1092
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll
new file mode 100644
index 000000000..a58cda857
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll
new file mode 100644
index 000000000..ac4f221b6
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll
new file mode 100644
index 000000000..30f43d4af
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll
new file mode 100644
index 000000000..b823d9348
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll
new file mode 100644
index 000000000..4cc00bdbd
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll
new file mode 100644
index 000000000..fd99e3586
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll
new file mode 100644
index 000000000..7f7143f47
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 000000000..ddc56c98e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 000000000..ea46fc4a3
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 000000000..16852830c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll
new file mode 100644
index 000000000..e698f3f18
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll
new file mode 100644
index 000000000..ad7b163cb
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll
new file mode 100644
index 000000000..a652ebca1
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll
new file mode 100644
index 000000000..e59c2fdbc
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll
new file mode 100644
index 000000000..d73985f5a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 000000000..5723a5c6e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll
new file mode 100644
index 000000000..c2e4c13d9
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll
new file mode 100644
index 000000000..e59b38d6c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll
new file mode 100644
index 000000000..0f469b755
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll
new file mode 100644
index 000000000..9efb34149
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll
new file mode 100644
index 000000000..039efacd1
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll
new file mode 100644
index 000000000..8f02ec732
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll
new file mode 100644
index 000000000..7b29bd258
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll
new file mode 100644
index 000000000..e9e5dfc12
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll
new file mode 100644
index 000000000..69b5a9405
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll
new file mode 100644
index 000000000..0167f8007
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll
new file mode 100644
index 000000000..daa7c0b0d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll
new file mode 100644
index 000000000..f48af46b0
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll
new file mode 100644
index 000000000..033988724
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll
new file mode 100644
index 000000000..8065600ea
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll
new file mode 100644
index 000000000..0e9561c81
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll
new file mode 100644
index 000000000..8673d22c8
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll
new file mode 100644
index 000000000..e8b015139
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll
new file mode 100644
index 000000000..2fba32f26
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll
new file mode 100644
index 000000000..5f1362b73
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll
new file mode 100644
index 000000000..f1e694830
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll
new file mode 100644
index 000000000..fab72c514
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll
new file mode 100644
index 000000000..8064c5806
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll
new file mode 100644
index 000000000..df0aac33a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll
new file mode 100644
index 000000000..36b56f231
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll
new file mode 100644
index 000000000..448c6f5a4
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll
new file mode 100644
index 000000000..b4de58620
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll
new file mode 100644
index 000000000..7a941030a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll
new file mode 100644
index 000000000..87822e1e5
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll
new file mode 100644
index 000000000..4676a651b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll
new file mode 100644
index 000000000..77537b5fb
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll
new file mode 100644
index 000000000..a3425f726
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll
new file mode 100644
index 000000000..f67f0ac75
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll
new file mode 100644
index 000000000..f972bb49f
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll
new file mode 100644
index 000000000..de31d2fd1
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll
new file mode 100644
index 000000000..ae8f64a83
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll
new file mode 100644
index 000000000..cfcb42647
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll
new file mode 100644
index 000000000..22acb580a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll
new file mode 100644
index 000000000..41084ab93
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll
new file mode 100644
index 000000000..b0abfdf9c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll
new file mode 100644
index 000000000..648b50cc7
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll
new file mode 100644
index 000000000..2a51e0491
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll
new file mode 100644
index 000000000..c0058a31b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll
new file mode 100644
index 000000000..b6ca3634c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll
new file mode 100644
index 000000000..abe9a8d6d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll
new file mode 100644
index 000000000..069942f9b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 000000000..413cd6509
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 000000000..f8d37fb83
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll
new file mode 100644
index 000000000..a89ba4261
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll
new file mode 100644
index 000000000..5b2095e04
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 000000000..bec201951
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll
new file mode 100644
index 000000000..236ab2f6b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll
new file mode 100644
index 000000000..748adaf7a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll
new file mode 100644
index 000000000..46beec379
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll
new file mode 100644
index 000000000..9a17d07ba
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll
new file mode 100644
index 000000000..f6693a33b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll
new file mode 100644
index 000000000..6350e21af
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll
new file mode 100644
index 000000000..a0b85367e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 000000000..df4e4cd47
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll
new file mode 100644
index 000000000..a6ff569f9
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll
new file mode 100644
index 000000000..180f182b9
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll
new file mode 100644
index 000000000..50242fc3a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll
new file mode 100644
index 000000000..4627e53e8
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 000000000..9a1156a6c
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll
new file mode 100644
index 000000000..90b2962dc
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll
new file mode 100644
index 000000000..2b55c2f7f
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll
new file mode 100644
index 000000000..b67d39b72
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll
new file mode 100644
index 000000000..16c1b958d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 000000000..f0c0d0845
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 000000000..95116d578
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll
new file mode 100644
index 000000000..8d975be19
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll
new file mode 100644
index 000000000..0580407db
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll
new file mode 100644
index 000000000..d9c9d8f6a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll
new file mode 100644
index 000000000..2fd2db4f7
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll
new file mode 100644
index 000000000..96f15a625
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll
new file mode 100644
index 000000000..187fbe741
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll
new file mode 100644
index 000000000..aeee9ac22
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll
new file mode 100644
index 000000000..4a1c9a527
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll
new file mode 100644
index 000000000..007b15bc4
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll
new file mode 100644
index 000000000..c96f9b1da
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll
new file mode 100644
index 000000000..2fd81746e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll
new file mode 100644
index 000000000..5054ef124
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll
new file mode 100644
index 000000000..8828079ad
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll
new file mode 100644
index 000000000..fd098004e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll
new file mode 100644
index 000000000..6b433765a
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 000000000..a25c84bab
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 000000000..5eb4c0d77
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll
new file mode 100644
index 000000000..69c2130ef
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll
new file mode 100644
index 000000000..cafa7d1df
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll
new file mode 100644
index 000000000..e29476efc
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll
new file mode 100644
index 000000000..62b848d81
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll
new file mode 100644
index 000000000..5b92a7dcc
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll
new file mode 100644
index 000000000..72e0c1a91
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll
new file mode 100644
index 000000000..77d85e2c1
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll
new file mode 100644
index 000000000..d9e22aa84
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll
new file mode 100644
index 000000000..5caa0cc28
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll
new file mode 100644
index 000000000..2e9bea0f4
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll
new file mode 100644
index 000000000..05a3f17e2
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll
new file mode 100644
index 000000000..c579e21a2
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll
new file mode 100644
index 000000000..61061c1c0
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll
new file mode 100644
index 000000000..f9a201873
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll
new file mode 100644
index 000000000..c54d0a932
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll
new file mode 100644
index 000000000..44a95ecdb
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll
new file mode 100644
index 000000000..a18cca47e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll
new file mode 100644
index 000000000..e1a34d84d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll
new file mode 100644
index 000000000..1b3bab314
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll
new file mode 100644
index 000000000..3b19f2626
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll
new file mode 100644
index 000000000..035dd6032
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump
new file mode 100644
index 000000000..c3fb6784e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Globalization.Native.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Globalization.Native.so
new file mode 100644
index 000000000..63383d59d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Globalization.Native.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.IO.Compression.Native.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.IO.Compression.Native.so
new file mode 100644
index 000000000..ae5617c5b
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.IO.Compression.Native.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Native.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Native.so
new file mode 100644
index 000000000..3137d7a71
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Native.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Net.Security.Native.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Net.Security.Native.so
new file mode 100644
index 000000000..22c93d8d4
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Net.Security.Native.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.OpenSsl.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.OpenSsl.so
new file mode 100644
index 000000000..c8b3db724
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.OpenSsl.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libclrjit.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libclrjit.so
new file mode 100644
index 000000000..51f9fd1d6
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libclrjit.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclr.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclr.so
new file mode 100644
index 000000000..a75586ebe
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclr.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclrtraceptprovider.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclrtraceptprovider.so
new file mode 100644
index 000000000..b2bd87a4e
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclrtraceptprovider.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libdbgshim.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libdbgshim.so
new file mode 100644
index 000000000..700afabc5
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libdbgshim.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libhostpolicy.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libhostpolicy.so
new file mode 100644
index 000000000..aa30f4fdb
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libhostpolicy.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordaccore.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordaccore.so
new file mode 100644
index 000000000..27d12823f
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordaccore.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordbi.so b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordbi.so
new file mode 100644
index 000000000..ec27f020d
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordbi.so differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll
new file mode 100644
index 000000000..17bbf435f
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll differ
diff --git a/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll
new file mode 100644
index 000000000..405caa073
Binary files /dev/null and b/Dependencies/Dotnet/linux/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/dotnet b/Dependencies/Dotnet/macos/x86_64/dotnet
new file mode 100644
index 000000000..fa5b47d9a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/dotnet differ
diff --git a/Dependencies/Dotnet/macos/x86_64/host/fxr/6.0.25/libhostfxr.dylib b/Dependencies/Dotnet/macos/x86_64/host/fxr/6.0.25/libhostfxr.dylib
new file mode 100644
index 000000000..5960e0c6d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/host/fxr/6.0.25/libhostfxr.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version
new file mode 100644
index 000000000..dbb688f01
--- /dev/null
+++ b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version
@@ -0,0 +1,2 @@
+492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4
+6.0.25
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll
new file mode 100644
index 000000000..3cb6ac81f
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json
new file mode 100644
index 000000000..b1b947c91
--- /dev/null
+++ b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json
@@ -0,0 +1,914 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v6.0/osx-x64",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v6.0": {},
+ ".NETCoreApp,Version=v6.0/osx-x64": {
+ "Microsoft.NETCore.App.Runtime.osx-x64/6.0.25": {
+ "runtime": {
+ "System.Private.CoreLib.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.VisualBasic.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscorlib.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "netstandard.dll": {
+ "assemblyVersion": "2.1.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.AppContext.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Buffers.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.DataAnnotations.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Configuration.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Core.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.DataSetExtensions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Contracts.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Debug.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Tools.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Tracing.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Drawing.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Dynamic.Runtime.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.Calendars.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.FileSystem.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.UnmanagedMemoryStream.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Numerics.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Numerics.Vectors.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.ILGeneration.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.Lightweight.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.Reader.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.ResourceManager.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Handles.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Intrinsics.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Loader.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Xml.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Principal.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.SecureString.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ServiceModel.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ServiceProcess.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Overlapped.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Thread.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.ThreadPool.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Timer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Transactions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ValueTuple.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Windows.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.Linq.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.ReaderWriter.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XmlDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XmlSerializer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XPath.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "WindowsBase.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.CSharp.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.VisualBasic.Core.dll": {
+ "assemblyVersion": "11.0.0.0",
+ "fileVersion": "11.100.2523.51912"
+ },
+ "Microsoft.Win32.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.Win32.Registry.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Concurrent.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Immutable.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.NonGeneric.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Specialized.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.Annotations.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.EventBasedAsync.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.TypeConverter.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Console.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.Common.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.DiagnosticSource.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.FileVersionInfo.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Process.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.StackTrace.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.TextWriterTraceListener.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.TraceSource.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Drawing.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Formats.Asn1.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.Brotli.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.ZipFile.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.DriveInfo.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.Watcher.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.IsolatedStorage.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.MemoryMappedFiles.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Pipes.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Pipes.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Expressions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Parallel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Queryable.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Memory.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Http.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Http.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.HttpListener.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Mail.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.NameResolution.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.NetworkInformation.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Ping.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Quic.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Requests.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Security.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.ServicePoint.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Sockets.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebClient.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebHeaderCollection.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebProxy.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebSockets.Client.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebSockets.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ObjectModel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.DataContractSerialization.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Uri.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Xml.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Xml.Linq.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.DispatchProxy.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Metadata.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.TypeExtensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.Writer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.CompilerServices.VisualC.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.InteropServices.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Numerics.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Formatters.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Claims.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Algorithms.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Cng.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Csp.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Encoding.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.OpenSsl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.X509Certificates.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Principal.Windows.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.CodePages.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encodings.Web.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.RegularExpressions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Channels.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Dataflow.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Parallel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Transactions.Local.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Web.HttpUtility.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XPath.XDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ }
+ },
+ "native": {
+ "createdump": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libclrjit.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libcoreclr.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libdbgshim.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libmscordaccore.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libmscordbi.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Globalization.Native.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.IO.Compression.Native.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Native.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Net.Security.Native.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Security.Cryptography.Native.Apple.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Security.Cryptography.Native.OpenSsl.dylib": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libhostpolicy.dylib": {
+ "fileVersion": "0.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETCore.App.Runtime.osx-x64/6.0.25": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "",
+ "path": "microsoft.netcore.app.runtime.osx-x64/6.0.25"
+ }
+ },
+ "runtimes": {
+ "osx-x64": [
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.10-x64": [
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.11-x64": [
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.12-x64": [
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.13-x64": [
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.14-x64": [
+ "osx.10.14",
+ "osx.10.13-x64",
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.15-x64": [
+ "osx.10.15",
+ "osx.10.14-x64",
+ "osx.10.14",
+ "osx.10.13-x64",
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.10.16-x64": [
+ "osx.10.16",
+ "osx.10.15-x64",
+ "osx.10.15",
+ "osx.10.14-x64",
+ "osx.10.14",
+ "osx.10.13-x64",
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.11.0-x64": [
+ "osx.11.0",
+ "osx.10.16-x64",
+ "osx.10.16",
+ "osx.10.15-x64",
+ "osx.10.15",
+ "osx.10.14-x64",
+ "osx.10.14",
+ "osx.10.13-x64",
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.12-x64": [
+ "osx.12",
+ "osx.11.0-x64",
+ "osx.11.0",
+ "osx.10.16-x64",
+ "osx.10.16",
+ "osx.10.15-x64",
+ "osx.10.15",
+ "osx.10.14-x64",
+ "osx.10.14",
+ "osx.10.13-x64",
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "osx.13-x64": [
+ "osx.13",
+ "osx.12-x64",
+ "osx.12",
+ "osx.11.0-x64",
+ "osx.11.0",
+ "osx.10.16-x64",
+ "osx.10.16",
+ "osx.10.15-x64",
+ "osx.10.15",
+ "osx.10.14-x64",
+ "osx.10.14",
+ "osx.10.13-x64",
+ "osx.10.13",
+ "osx.10.12-x64",
+ "osx.10.12",
+ "osx.10.11-x64",
+ "osx.10.11",
+ "osx.10.10-x64",
+ "osx.10.10",
+ "osx-x64",
+ "osx",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json
new file mode 100644
index 000000000..3d37d8e97
--- /dev/null
+++ b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json
@@ -0,0 +1,8 @@
+{
+ "runtimeOptions": {
+ "tfm": "net6.0",
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll
new file mode 100644
index 000000000..586481c7a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll
new file mode 100644
index 000000000..fbdadfd2e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll
new file mode 100644
index 000000000..26c45584c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll
new file mode 100644
index 000000000..f895b56bb
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll
new file mode 100644
index 000000000..e8f2fc539
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll
new file mode 100644
index 000000000..0196cc9a1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll
new file mode 100644
index 000000000..061124eb1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll
new file mode 100644
index 000000000..025a68a78
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll
new file mode 100644
index 000000000..8007b5bdd
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll
new file mode 100644
index 000000000..7c5ca8bd7
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll
new file mode 100644
index 000000000..71add62b6
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll
new file mode 100644
index 000000000..4fbccb35a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll
new file mode 100644
index 000000000..c6492fbeb
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 000000000..ee5f603ce
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll
new file mode 100644
index 000000000..bd546abe1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 000000000..489fc0ea2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll
new file mode 100644
index 000000000..71c17d134
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll
new file mode 100644
index 000000000..8e4cfc0ce
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll
new file mode 100644
index 000000000..623fb9991
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll
new file mode 100644
index 000000000..2739938e3
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll
new file mode 100644
index 000000000..750371d2c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll
new file mode 100644
index 000000000..63ff514fc
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll
new file mode 100644
index 000000000..47a5fcbbd
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll
new file mode 100644
index 000000000..15a6f568c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll
new file mode 100644
index 000000000..1fb8f11c0
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 000000000..2d03381ed
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 000000000..ed86f68a2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll
new file mode 100644
index 000000000..94f9fa680
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll
new file mode 100644
index 000000000..c1790549e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 000000000..5540f63a7
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll
new file mode 100644
index 000000000..a7edbfc78
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll
new file mode 100644
index 000000000..d6b8d9d45
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll
new file mode 100644
index 000000000..f607d7037
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll
new file mode 100644
index 000000000..2f75ed5f4
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll
new file mode 100644
index 000000000..9c1e36ba2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll
new file mode 100644
index 000000000..4a4992548
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll
new file mode 100644
index 000000000..06ae1abcf
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll
new file mode 100644
index 000000000..6f816f714
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll
new file mode 100644
index 000000000..261cfe64b
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll
new file mode 100644
index 000000000..ec25faec4
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll
new file mode 100644
index 000000000..4b1c0f4f6
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll
new file mode 100644
index 000000000..b823d9348
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll
new file mode 100644
index 000000000..faab69b9d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll
new file mode 100644
index 000000000..540659dc2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll
new file mode 100644
index 000000000..67bbe226e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 000000000..60c6f8f8e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 000000000..be39551a8
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 000000000..7b6b3a605
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll
new file mode 100644
index 000000000..e76eabab0
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll
new file mode 100644
index 000000000..7eea3e0f7
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll
new file mode 100644
index 000000000..4838f5d18
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll
new file mode 100644
index 000000000..74a260177
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll
new file mode 100644
index 000000000..a5848ee3e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 000000000..6c034a1bc
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll
new file mode 100644
index 000000000..2e03a00b5
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll
new file mode 100644
index 000000000..addf68640
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll
new file mode 100644
index 000000000..01b506d09
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll
new file mode 100644
index 000000000..56d3dbcb1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll
new file mode 100644
index 000000000..578cff021
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll
new file mode 100644
index 000000000..7a34ea211
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll
new file mode 100644
index 000000000..133c3dfde
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll
new file mode 100644
index 000000000..5d884115b
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll
new file mode 100644
index 000000000..47d04c8c1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll
new file mode 100644
index 000000000..a7cb6eaa0
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll
new file mode 100644
index 000000000..9f6175a51
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll
new file mode 100644
index 000000000..7a792120e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll
new file mode 100644
index 000000000..964199441
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll
new file mode 100644
index 000000000..845301d5e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll
new file mode 100644
index 000000000..7d2ee02f6
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll
new file mode 100644
index 000000000..64febfa9c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll
new file mode 100644
index 000000000..76ab67a87
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll
new file mode 100644
index 000000000..89cee5fde
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll
new file mode 100644
index 000000000..65f09a835
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll
new file mode 100644
index 000000000..48ca2d085
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll
new file mode 100644
index 000000000..1557fba2d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll
new file mode 100644
index 000000000..fcd8c8022
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll
new file mode 100644
index 000000000..f5d27e98e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll
new file mode 100644
index 000000000..1f5489824
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll
new file mode 100644
index 000000000..448c6f5a4
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll
new file mode 100644
index 000000000..f051ecf96
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll
new file mode 100644
index 000000000..7a941030a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll
new file mode 100644
index 000000000..e997c2cdb
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll
new file mode 100644
index 000000000..85577fe7c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll
new file mode 100644
index 000000000..2177d618d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll
new file mode 100644
index 000000000..36e028ac2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll
new file mode 100644
index 000000000..6c0bf6c5d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll
new file mode 100644
index 000000000..765d951a2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll
new file mode 100644
index 000000000..0f47aca07
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll
new file mode 100644
index 000000000..762227ea1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll
new file mode 100644
index 000000000..109fe0927
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll
new file mode 100644
index 000000000..e9b1e6504
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll
new file mode 100644
index 000000000..e671ab60c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll
new file mode 100644
index 000000000..e5ef48e62
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll
new file mode 100644
index 000000000..ebb5b5d34
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll
new file mode 100644
index 000000000..a8f430f3d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll
new file mode 100644
index 000000000..01b5a849e
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll
new file mode 100644
index 000000000..76bae1207
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll
new file mode 100644
index 000000000..47bb1e97f
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll
new file mode 100644
index 000000000..0300e6543
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 000000000..1a98641bc
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 000000000..72d319b1a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll
new file mode 100644
index 000000000..9e66d8462
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll
new file mode 100644
index 000000000..614b8c091
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 000000000..5e507a02a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll
new file mode 100644
index 000000000..7d8154dab
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll
new file mode 100644
index 000000000..4d1a86525
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll
new file mode 100644
index 000000000..82449af46
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll
new file mode 100644
index 000000000..a9f1b6a14
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll
new file mode 100644
index 000000000..0b4f1683a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll
new file mode 100644
index 000000000..2a076f9f3
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll
new file mode 100644
index 000000000..50a8e481d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 000000000..6c3a55179
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll
new file mode 100644
index 000000000..a6ff569f9
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll
new file mode 100644
index 000000000..555054d50
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll
new file mode 100644
index 000000000..4c7c4a8de
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll
new file mode 100644
index 000000000..ae1acd649
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 000000000..4851c9f8d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll
new file mode 100644
index 000000000..0cb99f3a1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll
new file mode 100644
index 000000000..40de61b7b
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll
new file mode 100644
index 000000000..64a430967
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll
new file mode 100644
index 000000000..961333c29
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 000000000..131c8e558
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 000000000..a3b15ce9a
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll
new file mode 100644
index 000000000..f507e0c6d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll
new file mode 100644
index 000000000..13f93f3c8
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll
new file mode 100644
index 000000000..cda5f5bca
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll
new file mode 100644
index 000000000..2fd2db4f7
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll
new file mode 100644
index 000000000..96f15a625
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll
new file mode 100644
index 000000000..187fbe741
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll
new file mode 100644
index 000000000..960dc7892
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll
new file mode 100644
index 000000000..0ff34d685
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll
new file mode 100644
index 000000000..9adb2bfc0
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll
new file mode 100644
index 000000000..8cf583ac7
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll
new file mode 100644
index 000000000..776036bd0
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll
new file mode 100644
index 000000000..10d745d44
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll
new file mode 100644
index 000000000..63703edf8
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll
new file mode 100644
index 000000000..0ac006242
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll
new file mode 100644
index 000000000..44f212b1c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 000000000..2e4a19dfd
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 000000000..ce787d0b5
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll
new file mode 100644
index 000000000..364cbf142
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll
new file mode 100644
index 000000000..171ed4973
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll
new file mode 100644
index 000000000..380ed310d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll
new file mode 100644
index 000000000..79664a7fd
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll
new file mode 100644
index 000000000..799f1fe59
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll
new file mode 100644
index 000000000..72e0c1a91
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll
new file mode 100644
index 000000000..25a0c0e5d
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll
new file mode 100644
index 000000000..fd1e0ae88
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll
new file mode 100644
index 000000000..5caa0cc28
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll
new file mode 100644
index 000000000..2e9bea0f4
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll
new file mode 100644
index 000000000..05a3f17e2
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll
new file mode 100644
index 000000000..ce70c33ed
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll
new file mode 100644
index 000000000..61061c1c0
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll
new file mode 100644
index 000000000..f34840717
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll
new file mode 100644
index 000000000..e1f970ac6
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll
new file mode 100644
index 000000000..49d40ca3c
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll
new file mode 100644
index 000000000..64bff2b45
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll
new file mode 100644
index 000000000..0a9608917
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll
new file mode 100644
index 000000000..2ae1a9ce1
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll
new file mode 100644
index 000000000..151db6ed6
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll
new file mode 100644
index 000000000..035dd6032
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump
new file mode 100644
index 000000000..c06274751
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Globalization.Native.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Globalization.Native.dylib
new file mode 100644
index 000000000..b06e12827
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Globalization.Native.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.IO.Compression.Native.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.IO.Compression.Native.dylib
new file mode 100644
index 000000000..fa2590b04
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.IO.Compression.Native.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Native.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Native.dylib
new file mode 100644
index 000000000..d87e132f9
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Native.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Net.Security.Native.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Net.Security.Native.dylib
new file mode 100644
index 000000000..1c82179dd
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Net.Security.Native.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.Apple.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.Apple.dylib
new file mode 100644
index 000000000..edbcd03ae
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.Apple.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.OpenSsl.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.OpenSsl.dylib
new file mode 100644
index 000000000..39997a778
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libSystem.Security.Cryptography.Native.OpenSsl.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libclrjit.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libclrjit.dylib
new file mode 100644
index 000000000..57070a7fd
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libclrjit.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclr.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclr.dylib
new file mode 100644
index 000000000..81935bc48
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libcoreclr.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libdbgshim.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libdbgshim.dylib
new file mode 100644
index 000000000..d83e45e8b
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libdbgshim.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libhostpolicy.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libhostpolicy.dylib
new file mode 100644
index 000000000..6900e18a9
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libhostpolicy.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordaccore.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordaccore.dylib
new file mode 100644
index 000000000..848e816ca
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordaccore.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordbi.dylib b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordbi.dylib
new file mode 100644
index 000000000..732de51a7
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/libmscordbi.dylib differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll
new file mode 100644
index 000000000..a523f08cc
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll differ
diff --git a/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll
new file mode 100644
index 000000000..405caa073
Binary files /dev/null and b/Dependencies/Dotnet/macos/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/dotnet.exe b/Dependencies/Dotnet/windows/x86_64/dotnet.exe
new file mode 100644
index 000000000..8a422dbc1
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/dotnet.exe differ
diff --git a/Dependencies/Dotnet/windows/x86_64/host/fxr/6.0.25/hostfxr.dll b/Dependencies/Dotnet/windows/x86_64/host/fxr/6.0.25/hostfxr.dll
new file mode 100644
index 000000000..87e1d4a7e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/host/fxr/6.0.25/hostfxr.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version
new file mode 100644
index 000000000..dbb688f01
--- /dev/null
+++ b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/.version
@@ -0,0 +1,2 @@
+492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4
+6.0.25
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll
new file mode 100644
index 000000000..e55527081
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.CSharp.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.DiaSymReader.Native.amd64.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.DiaSymReader.Native.amd64.dll
new file mode 100644
index 000000000..8181b5122
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.DiaSymReader.Native.amd64.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json
new file mode 100644
index 000000000..bc11ff16c
--- /dev/null
+++ b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.deps.json
@@ -0,0 +1,981 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v6.0/win-x64",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v6.0": {},
+ ".NETCoreApp,Version=v6.0/win-x64": {
+ "Microsoft.NETCore.App.Runtime.win-x64/6.0.25": {
+ "runtime": {
+ "System.Private.CoreLib.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.VisualBasic.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscorlib.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "netstandard.dll": {
+ "assemblyVersion": "2.1.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.AppContext.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Buffers.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.DataAnnotations.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Configuration.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Core.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.DataSetExtensions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Contracts.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Debug.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Tools.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Tracing.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Drawing.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Dynamic.Runtime.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.Calendars.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Globalization.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.FileSystem.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Pipes.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.UnmanagedMemoryStream.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Numerics.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Numerics.Vectors.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.ILGeneration.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Emit.Lightweight.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.Reader.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.ResourceManager.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Handles.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Intrinsics.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Loader.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Xml.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Principal.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.SecureString.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ServiceModel.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ServiceProcess.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Overlapped.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Extensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Thread.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.ThreadPool.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Timer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Transactions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ValueTuple.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Windows.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.Linq.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.ReaderWriter.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XmlDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XmlSerializer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XPath.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "WindowsBase.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.CSharp.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.VisualBasic.Core.dll": {
+ "assemblyVersion": "11.0.0.0",
+ "fileVersion": "11.100.2523.51912"
+ },
+ "Microsoft.Win32.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.Win32.Registry.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Concurrent.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Immutable.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.NonGeneric.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Collections.Specialized.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.Annotations.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.EventBasedAsync.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ComponentModel.TypeConverter.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Console.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Data.Common.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.DiagnosticSource.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.FileVersionInfo.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.Process.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.StackTrace.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.TextWriterTraceListener.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Diagnostics.TraceSource.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Drawing.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Formats.Asn1.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.Brotli.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Compression.ZipFile.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.DriveInfo.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.FileSystem.Watcher.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.IsolatedStorage.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.MemoryMappedFiles.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.IO.Pipes.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Expressions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Parallel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Linq.Queryable.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Memory.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Http.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Http.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.HttpListener.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Mail.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.NameResolution.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.NetworkInformation.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Ping.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Quic.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Requests.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Security.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.ServicePoint.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.Sockets.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebClient.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebHeaderCollection.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebProxy.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebSockets.Client.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Net.WebSockets.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.ObjectModel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.DataContractSerialization.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Uri.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Xml.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Private.Xml.Linq.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.DispatchProxy.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.Metadata.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Reflection.TypeExtensions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Resources.Writer.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.CompilerServices.VisualC.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.InteropServices.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Numerics.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Formatters.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Runtime.Serialization.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.AccessControl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Claims.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Algorithms.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Cng.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Csp.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Encoding.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.OpenSsl.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.Primitives.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Cryptography.X509Certificates.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Security.Principal.Windows.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encoding.CodePages.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Encodings.Web.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.Json.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Text.RegularExpressions.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Channels.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Dataflow.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Threading.Tasks.Parallel.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Transactions.Local.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Web.HttpUtility.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ },
+ "System.Xml.XPath.XDocument.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.2523.51912"
+ }
+ },
+ "native": {
+ "clretwrc.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "clrjit.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "coreclr.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "createdump.exe": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "dbgshim.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscordaccore.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscordaccore_amd64_amd64_6.0.2523.51912.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscordbi.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "mscorrc.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "api-ms-win-core-console-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-console-l1-2-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-datetime-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-debug-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-errorhandling-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-fibers-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-file-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-file-l1-2-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-file-l2-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-handle-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-heap-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-interlocked-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-libraryloader-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-localization-l1-2-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-memory-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-namedpipe-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-processenvironment-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-processthreads-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-processthreads-l1-1-1.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-profile-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-rtlsupport-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-string-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-synch-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-synch-l1-2-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-sysinfo-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-timezone-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-core-util-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-conio-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-convert-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-environment-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-filesystem-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-heap-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-locale-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-math-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-multibyte-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-private-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-process-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-runtime-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-stdio-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-string-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-time-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "api-ms-win-crt-utility-l1-1-0.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "ucrtbase.dll": {
+ "fileVersion": "10.0.22000.194"
+ },
+ "msquic.dll": {
+ "fileVersion": "1.9.1.0"
+ },
+ "System.IO.Compression.Native.dll": {
+ "fileVersion": "42.42.42.42424"
+ },
+ "hostpolicy.dll": {
+ "fileVersion": "6.0.2523.51912"
+ },
+ "Microsoft.DiaSymReader.Native.amd64.dll": {
+ "fileVersion": "14.29.30152.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETCore.App.Runtime.win-x64/6.0.25": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "",
+ "path": "microsoft.netcore.app.runtime.win-x64/6.0.25"
+ }
+ },
+ "runtimes": {
+ "win-x64": [
+ "win",
+ "any",
+ "base"
+ ],
+ "win-x64-aot": [
+ "win-aot",
+ "win-x64",
+ "win",
+ "aot",
+ "any",
+ "base"
+ ],
+ "win10-x64": [
+ "win10",
+ "win81-x64",
+ "win81",
+ "win8-x64",
+ "win8",
+ "win7-x64",
+ "win7",
+ "win-x64",
+ "win",
+ "any",
+ "base"
+ ],
+ "win10-x64-aot": [
+ "win10-aot",
+ "win10-x64",
+ "win10",
+ "win81-x64-aot",
+ "win81-aot",
+ "win81-x64",
+ "win81",
+ "win8-x64-aot",
+ "win8-aot",
+ "win8-x64",
+ "win8",
+ "win7-x64-aot",
+ "win7-aot",
+ "win7-x64",
+ "win7",
+ "win-x64-aot",
+ "win-aot",
+ "win-x64",
+ "win",
+ "aot",
+ "any",
+ "base"
+ ],
+ "win7-x64": [
+ "win7",
+ "win-x64",
+ "win",
+ "any",
+ "base"
+ ],
+ "win7-x64-aot": [
+ "win7-aot",
+ "win7-x64",
+ "win7",
+ "win-x64-aot",
+ "win-aot",
+ "win-x64",
+ "win",
+ "aot",
+ "any",
+ "base"
+ ],
+ "win8-x64": [
+ "win8",
+ "win7-x64",
+ "win7",
+ "win-x64",
+ "win",
+ "any",
+ "base"
+ ],
+ "win8-x64-aot": [
+ "win8-aot",
+ "win8-x64",
+ "win8",
+ "win7-x64-aot",
+ "win7-aot",
+ "win7-x64",
+ "win7",
+ "win-x64-aot",
+ "win-aot",
+ "win-x64",
+ "win",
+ "aot",
+ "any",
+ "base"
+ ],
+ "win81-x64": [
+ "win81",
+ "win8-x64",
+ "win8",
+ "win7-x64",
+ "win7",
+ "win-x64",
+ "win",
+ "any",
+ "base"
+ ],
+ "win81-x64-aot": [
+ "win81-aot",
+ "win81-x64",
+ "win81",
+ "win8-x64-aot",
+ "win8-aot",
+ "win8-x64",
+ "win8",
+ "win7-x64-aot",
+ "win7-aot",
+ "win7-x64",
+ "win7",
+ "win-x64-aot",
+ "win-aot",
+ "win-x64",
+ "win",
+ "aot",
+ "any",
+ "base"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json
new file mode 100644
index 000000000..3d37d8e97
--- /dev/null
+++ b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.NETCore.App.runtimeconfig.json
@@ -0,0 +1,8 @@
+{
+ "runtimeOptions": {
+ "tfm": "net6.0",
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll
new file mode 100644
index 000000000..40a5c65ca
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.Core.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll
new file mode 100644
index 000000000..674a129ce
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.VisualBasic.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll
new file mode 100644
index 000000000..b7491e74f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll
new file mode 100644
index 000000000..93504a69e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/Microsoft.Win32.Registry.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll
new file mode 100644
index 000000000..03fb3da71
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.AppContext.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll
new file mode 100644
index 000000000..b7d48d596
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Buffers.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll
new file mode 100644
index 000000000..48941a91c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Concurrent.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll
new file mode 100644
index 000000000..8d0db9512
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Immutable.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll
new file mode 100644
index 000000000..1bc3ef67a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.NonGeneric.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll
new file mode 100644
index 000000000..7b78f7447
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.Specialized.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll
new file mode 100644
index 000000000..ecff543cc
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Collections.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll
new file mode 100644
index 000000000..1a1ec48f0
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Annotations.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll
new file mode 100644
index 000000000..c97c889c1
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.DataAnnotations.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 000000000..65d7b1d28
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll
new file mode 100644
index 000000000..1f167fcef
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 000000000..7a55cda74
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.TypeConverter.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll
new file mode 100644
index 000000000..b7a986faa
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ComponentModel.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll
new file mode 100644
index 000000000..50a19b477
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Configuration.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll
new file mode 100644
index 000000000..a6c8080b0
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Console.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll
new file mode 100644
index 000000000..0027dcd97
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Core.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll
new file mode 100644
index 000000000..845ee4e5a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.Common.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll
new file mode 100644
index 000000000..2e36a6156
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.DataSetExtensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll
new file mode 100644
index 000000000..045163b0c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Data.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll
new file mode 100644
index 000000000..bf672af85
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Contracts.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll
new file mode 100644
index 000000000..3b4a3cb09
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Debug.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 000000000..46aa4946a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 000000000..17bb321f6
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll
new file mode 100644
index 000000000..381318f7f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Process.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll
new file mode 100644
index 000000000..3f0a334ab
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.StackTrace.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 000000000..5a4b8789d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll
new file mode 100644
index 000000000..8f6301ef3
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tools.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll
new file mode 100644
index 000000000..ecf7b456a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.TraceSource.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll
new file mode 100644
index 000000000..e5fe0e067
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Diagnostics.Tracing.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll
new file mode 100644
index 000000000..ed5b21532
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll
new file mode 100644
index 000000000..53289d4d7
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Drawing.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll
new file mode 100644
index 000000000..2e07b1548
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Dynamic.Runtime.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll
new file mode 100644
index 000000000..8b89045de
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Formats.Asn1.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll
new file mode 100644
index 000000000..d1b04a0db
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Calendars.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll
new file mode 100644
index 000000000..201a3d071
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.Extensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll
new file mode 100644
index 000000000..dda792b28
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Globalization.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll
new file mode 100644
index 000000000..ef41315c7
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Brotli.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll
new file mode 100644
index 000000000..a45ec2e9f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.FileSystem.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Native.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Native.dll
new file mode 100644
index 000000000..54961e3b2
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.Native.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll
new file mode 100644
index 000000000..c95fe6e30
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.ZipFile.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll
new file mode 100644
index 000000000..ed97c3900
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Compression.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll
new file mode 100644
index 000000000..9baa7ee99
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 000000000..cbe6007dc
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 000000000..342f437b0
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 000000000..e943bdcb2
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.Watcher.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll
new file mode 100644
index 000000000..879cbb41b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.FileSystem.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll
new file mode 100644
index 000000000..c37032f6b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.IsolatedStorage.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll
new file mode 100644
index 000000000..deab12389
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.MemoryMappedFiles.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll
new file mode 100644
index 000000000..3762f4d32
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll
new file mode 100644
index 000000000..83700b944
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.Pipes.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 000000000..5464f0f42
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll
new file mode 100644
index 000000000..092888b26
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.IO.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll
new file mode 100644
index 000000000..4012ebb2f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Expressions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll
new file mode 100644
index 000000000..3a80efbe6
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Parallel.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll
new file mode 100644
index 000000000..68230d514
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.Queryable.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll
new file mode 100644
index 000000000..10b994d85
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Linq.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll
new file mode 100644
index 000000000..91dbd9d11
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Memory.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll
new file mode 100644
index 000000000..aacfd7f0c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.Json.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll
new file mode 100644
index 000000000..8959ddfa8
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Http.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll
new file mode 100644
index 000000000..a819b9d13
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.HttpListener.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll
new file mode 100644
index 000000000..7c18b886d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Mail.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll
new file mode 100644
index 000000000..50c8f2982
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NameResolution.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll
new file mode 100644
index 000000000..a6bf5f956
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.NetworkInformation.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll
new file mode 100644
index 000000000..c76c7897c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Ping.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll
new file mode 100644
index 000000000..660a8c8c9
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll
new file mode 100644
index 000000000..91ec659aa
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Quic.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll
new file mode 100644
index 000000000..9bc1d9a7d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Requests.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll
new file mode 100644
index 000000000..4de471b50
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Security.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll
new file mode 100644
index 000000000..e0c2aeed6
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.ServicePoint.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll
new file mode 100644
index 000000000..9c0048a07
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.Sockets.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll
new file mode 100644
index 000000000..61c71a548
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebClient.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll
new file mode 100644
index 000000000..b9864531e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebHeaderCollection.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll
new file mode 100644
index 000000000..075aa1bca
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebProxy.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll
new file mode 100644
index 000000000..5ff371f44
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.Client.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll
new file mode 100644
index 000000000..294e3afe6
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.WebSockets.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll
new file mode 100644
index 000000000..b2b8de91c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Net.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll
new file mode 100644
index 000000000..ac588271a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.Vectors.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll
new file mode 100644
index 000000000..1a6252d00
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Numerics.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll
new file mode 100644
index 000000000..bb6c865d7
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ObjectModel.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll
new file mode 100644
index 000000000..f95eaf40c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.CoreLib.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll
new file mode 100644
index 000000000..fca3dc203
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.DataContractSerialization.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll
new file mode 100644
index 000000000..59d087252
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Uri.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll
new file mode 100644
index 000000000..b77b941da
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.Linq.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll
new file mode 100644
index 000000000..f06c7f9f6
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Private.Xml.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll
new file mode 100644
index 000000000..318902bbb
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.DispatchProxy.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll
new file mode 100644
index 000000000..2b835ce33
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.ILGeneration.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll
new file mode 100644
index 000000000..1a4816807
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.Lightweight.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll
new file mode 100644
index 000000000..331ab29b5
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Emit.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll
new file mode 100644
index 000000000..4467c3e0c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Extensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll
new file mode 100644
index 000000000..3b85673dc
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Metadata.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll
new file mode 100644
index 000000000..dd3052838
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll
new file mode 100644
index 000000000..5bf716968
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.TypeExtensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll
new file mode 100644
index 000000000..f8ef2ce14
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Reflection.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll
new file mode 100644
index 000000000..529e4354d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Reader.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll
new file mode 100644
index 000000000..241d12701
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.ResourceManager.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll
new file mode 100644
index 000000000..66d74df8a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Resources.Writer.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 000000000..1874c0d0b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 000000000..59ba9072f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll
new file mode 100644
index 000000000..1e81b406d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Extensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll
new file mode 100644
index 000000000..d1a620453
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Handles.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 000000000..30222733f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll
new file mode 100644
index 000000000..4801c8aad
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.InteropServices.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll
new file mode 100644
index 000000000..2d1f54584
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Intrinsics.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll
new file mode 100644
index 000000000..3212c91b3
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Loader.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll
new file mode 100644
index 000000000..298354dce
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Numerics.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll
new file mode 100644
index 000000000..8b5630f4e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Formatters.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll
new file mode 100644
index 000000000..9a1b89e40
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Json.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll
new file mode 100644
index 000000000..7b734ba38
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 000000000..e593d3345
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.Xml.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll
new file mode 100644
index 000000000..2c0cc451a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.Serialization.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll
new file mode 100644
index 000000000..486192eea
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Runtime.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll
new file mode 100644
index 000000000..a0a6a8603
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.AccessControl.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll
new file mode 100644
index 000000000..0d1b2575e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Claims.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 000000000..c29984318
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Algorithms.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll
new file mode 100644
index 000000000..829125c0b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Cng.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll
new file mode 100644
index 000000000..5c644ed33
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Csp.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll
new file mode 100644
index 000000000..9452ec6b5
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Encoding.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll
new file mode 100644
index 000000000..3be7bd27e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.OpenSsl.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 000000000..805556d2d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.Primitives.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 000000000..43f87266e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll
new file mode 100644
index 000000000..eb5d96ac0
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.Windows.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll
new file mode 100644
index 000000000..b1b585a76
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.Principal.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll
new file mode 100644
index 000000000..52a35180c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.SecureString.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll
new file mode 100644
index 000000000..defb56f79
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Security.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll
new file mode 100644
index 000000000..578cc7459
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceModel.Web.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll
new file mode 100644
index 000000000..c4992c526
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ServiceProcess.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll
new file mode 100644
index 000000000..b8a8a8f34
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.CodePages.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll
new file mode 100644
index 000000000..ae280de32
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.Extensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll
new file mode 100644
index 000000000..f82091349
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encoding.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll
new file mode 100644
index 000000000..374899330
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Encodings.Web.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll
new file mode 100644
index 000000000..dce122c65
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.Json.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll
new file mode 100644
index 000000000..cc5176df4
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Text.RegularExpressions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll
new file mode 100644
index 000000000..b0926cf25
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Channels.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll
new file mode 100644
index 000000000..d3c1915b4
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Overlapped.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll
new file mode 100644
index 000000000..cb6360d23
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Dataflow.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 000000000..03f68038b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Extensions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 000000000..8c8c6e486
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.Parallel.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll
new file mode 100644
index 000000000..7a8b2b677
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Tasks.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll
new file mode 100644
index 000000000..9f02991e8
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Thread.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll
new file mode 100644
index 000000000..082171467
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.ThreadPool.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll
new file mode 100644
index 000000000..899ccc08d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.Timer.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll
new file mode 100644
index 000000000..5e638a65d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Threading.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll
new file mode 100644
index 000000000..ea30bd4ad
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Transactions.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll
new file mode 100644
index 000000000..310b07757
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.ValueTuple.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll
new file mode 100644
index 000000000..c78a3313a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.HttpUtility.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll
new file mode 100644
index 000000000..c3126879d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Web.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll
new file mode 100644
index 000000000..60b9d8ad4
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Windows.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll
new file mode 100644
index 000000000..38db11a30
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Linq.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll
new file mode 100644
index 000000000..b7ceddd31
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.ReaderWriter.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll
new file mode 100644
index 000000000..e0a65ba45
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.Serialization.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll
new file mode 100644
index 000000000..695b88a6b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XDocument.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll
new file mode 100644
index 000000000..2c49d3c34
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.XDocument.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll
new file mode 100644
index 000000000..00a62b3fa
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XPath.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll
new file mode 100644
index 000000000..9871b86a6
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlDocument.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll
new file mode 100644
index 000000000..e3f3d95bc
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.XmlSerializer.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll
new file mode 100644
index 000000000..0a1b7e509
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.Xml.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll
new file mode 100644
index 000000000..32b5a15d2
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/System.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll
new file mode 100644
index 000000000..271ffa086
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/WindowsBase.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-console-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-console-l1-1-0.dll
new file mode 100644
index 000000000..726b97532
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-console-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-console-l1-2-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-console-l1-2-0.dll
new file mode 100644
index 000000000..b9d1ed43e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-console-l1-2-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-datetime-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-datetime-l1-1-0.dll
new file mode 100644
index 000000000..f2ecfa7ab
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-datetime-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-debug-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-debug-l1-1-0.dll
new file mode 100644
index 000000000..7bd075bcd
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-debug-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-errorhandling-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-errorhandling-l1-1-0.dll
new file mode 100644
index 000000000..3bafba91c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-errorhandling-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-fibers-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-fibers-l1-1-0.dll
new file mode 100644
index 000000000..651ffe133
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-fibers-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l1-1-0.dll
new file mode 100644
index 000000000..12bf0b6c0
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l1-2-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l1-2-0.dll
new file mode 100644
index 000000000..da64db36a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l1-2-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l2-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l2-1-0.dll
new file mode 100644
index 000000000..9246b9893
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-file-l2-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-handle-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-handle-l1-1-0.dll
new file mode 100644
index 000000000..c96e31d98
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-handle-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-heap-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-heap-l1-1-0.dll
new file mode 100644
index 000000000..baa932fd5
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-heap-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-interlocked-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-interlocked-l1-1-0.dll
new file mode 100644
index 000000000..7aa063977
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-interlocked-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-libraryloader-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-libraryloader-l1-1-0.dll
new file mode 100644
index 000000000..ddd5e276e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-libraryloader-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-localization-l1-2-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-localization-l1-2-0.dll
new file mode 100644
index 000000000..7b90b7c2f
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-localization-l1-2-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-memory-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-memory-l1-1-0.dll
new file mode 100644
index 000000000..63e54f31b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-memory-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-namedpipe-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-namedpipe-l1-1-0.dll
new file mode 100644
index 000000000..37e956eca
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-namedpipe-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processenvironment-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processenvironment-l1-1-0.dll
new file mode 100644
index 000000000..a2f36050a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processenvironment-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processthreads-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processthreads-l1-1-0.dll
new file mode 100644
index 000000000..f4d3a0339
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processthreads-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processthreads-l1-1-1.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processthreads-l1-1-1.dll
new file mode 100644
index 000000000..7bc40e056
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-processthreads-l1-1-1.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-profile-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-profile-l1-1-0.dll
new file mode 100644
index 000000000..da2b687a1
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-profile-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-rtlsupport-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-rtlsupport-l1-1-0.dll
new file mode 100644
index 000000000..ae6dce55e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-rtlsupport-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-string-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-string-l1-1-0.dll
new file mode 100644
index 000000000..32b52be78
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-string-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-synch-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-synch-l1-1-0.dll
new file mode 100644
index 000000000..b88f76af0
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-synch-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-synch-l1-2-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-synch-l1-2-0.dll
new file mode 100644
index 000000000..a17135afc
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-synch-l1-2-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-sysinfo-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-sysinfo-l1-1-0.dll
new file mode 100644
index 000000000..527d1a12c
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-sysinfo-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-timezone-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-timezone-l1-1-0.dll
new file mode 100644
index 000000000..bab2d02ff
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-timezone-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-util-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-util-l1-1-0.dll
new file mode 100644
index 000000000..080a9c959
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-core-util-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-conio-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-conio-l1-1-0.dll
new file mode 100644
index 000000000..2355a627e
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-conio-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-convert-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-convert-l1-1-0.dll
new file mode 100644
index 000000000..ddd2b4ca1
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-convert-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-environment-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-environment-l1-1-0.dll
new file mode 100644
index 000000000..e2fe9ef7a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-environment-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-filesystem-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-filesystem-l1-1-0.dll
new file mode 100644
index 000000000..97ea4656b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-filesystem-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-heap-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-heap-l1-1-0.dll
new file mode 100644
index 000000000..4e3af05f8
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-heap-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-locale-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-locale-l1-1-0.dll
new file mode 100644
index 000000000..5fcd98b2b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-locale-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-math-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-math-l1-1-0.dll
new file mode 100644
index 000000000..c3f2800e3
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-math-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-multibyte-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-multibyte-l1-1-0.dll
new file mode 100644
index 000000000..e86ce8183
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-multibyte-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-private-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-private-l1-1-0.dll
new file mode 100644
index 000000000..62c45dd04
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-private-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-process-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-process-l1-1-0.dll
new file mode 100644
index 000000000..bc346dc35
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-process-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-runtime-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-runtime-l1-1-0.dll
new file mode 100644
index 000000000..d0a43f824
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-runtime-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-stdio-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-stdio-l1-1-0.dll
new file mode 100644
index 000000000..59e68c053
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-stdio-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-string-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-string-l1-1-0.dll
new file mode 100644
index 000000000..08015e290
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-string-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-time-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-time-l1-1-0.dll
new file mode 100644
index 000000000..6e3ba53c8
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-time-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-utility-l1-1-0.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-utility-l1-1-0.dll
new file mode 100644
index 000000000..eaa72041d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/api-ms-win-crt-utility-l1-1-0.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/clretwrc.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/clretwrc.dll
new file mode 100644
index 000000000..cab860962
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/clretwrc.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/clrjit.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/clrjit.dll
new file mode 100644
index 000000000..bf65aa5be
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/clrjit.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/coreclr.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/coreclr.dll
new file mode 100644
index 000000000..e529f702b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/coreclr.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump.exe b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump.exe
new file mode 100644
index 000000000..bf85031a7
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/createdump.exe differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/dbgshim.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/dbgshim.dll
new file mode 100644
index 000000000..7e2f5609a
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/dbgshim.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/hostpolicy.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/hostpolicy.dll
new file mode 100644
index 000000000..8dc018cff
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/hostpolicy.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordaccore.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordaccore.dll
new file mode 100644
index 000000000..0ed22a59d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordaccore.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordaccore_amd64_amd64_6.0.2523.51912.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordaccore_amd64_amd64_6.0.2523.51912.dll
new file mode 100644
index 000000000..0ed22a59d
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordaccore_amd64_amd64_6.0.2523.51912.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordbi.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordbi.dll
new file mode 100644
index 000000000..3ce9d8324
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscordbi.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll
new file mode 100644
index 000000000..94e942025
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorlib.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorrc.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorrc.dll
new file mode 100644
index 000000000..013484677
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/mscorrc.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/msquic.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/msquic.dll
new file mode 100644
index 000000000..07cd9e305
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/msquic.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll
new file mode 100644
index 000000000..92a70dfdb
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/netstandard.dll differ
diff --git a/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/ucrtbase.dll b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/ucrtbase.dll
new file mode 100644
index 000000000..0b410784b
Binary files /dev/null and b/Dependencies/Dotnet/windows/x86_64/shared/Microsoft.NETCore.App/6.0.25/ucrtbase.dll differ
diff --git a/Dependencies/GodotPCKExplorer/GodotPCKExplorer.dll b/Dependencies/GodotPCKExplorer/GodotPCKExplorer.dll
new file mode 100644
index 000000000..32ee6ffdb
Binary files /dev/null and b/Dependencies/GodotPCKExplorer/GodotPCKExplorer.dll differ
diff --git a/Dependencies/Il2CppAssemblyGenerator/Core.cs b/Dependencies/Il2CppAssemblyGenerator/Core.cs
deleted file mode 100644
index c81dfdee1..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Core.cs
+++ /dev/null
@@ -1,169 +0,0 @@
-using System.IO;
-using System.Net.Http;
-using MelonLoader.Il2CppAssemblyGenerator.Packages;
-using MelonLoader.Il2CppAssemblyGenerator.Packages.Models;
-using MelonLoader.Modules;
-using MelonLoader.Properties;
-using MelonLoader.Utils;
-
-namespace MelonLoader.Il2CppAssemblyGenerator
-{
- internal class Core : MelonModule
- {
- internal static string BasePath = null;
- internal static string GameAssemblyPath = null;
- internal static string ManagedPath = null;
-
- internal static HttpClient webClient = null;
-
- internal static ExecutablePackage cpp2il = null;
- internal static Cpp2IL_StrippedCodeRegSupport cpp2il_scrs = null;
-
- internal static Packages.Il2CppInterop il2cppinterop = null;
- internal static UnityDependencies unitydependencies = null;
- internal static DeobfuscationMap deobfuscationMap = null;
- internal static DeobfuscationRegex deobfuscationRegex = null;
-
- internal static bool AssemblyGenerationNeeded = false;
-
- internal static MelonLogger.Instance Logger;
-
- public override void OnInitialize()
- {
- Logger = LoggerInstance;
-
- webClient = new();
- webClient.DefaultRequestHeaders.Add("User-Agent", $"{BuildInfo.Name} v{BuildInfo.Version}");
-
- AssemblyGenerationNeeded = LoaderConfig.Current.UnityEngine.ForceRegeneration;
-
- string gameAssemblyName = "GameAssembly";
- if (MelonUtils.IsUnix)
- gameAssemblyName += ".so";
- if (MelonUtils.IsWindows)
- gameAssemblyName += ".dll";
- if (MelonUtils.IsMac)
- gameAssemblyName += ".dylib";
-
- GameAssemblyPath = Path.Combine(MelonEnvironment.GameRootDirectory, gameAssemblyName);
- ManagedPath = MelonEnvironment.MelonManagedDirectory;
- BasePath = MelonEnvironment.Il2CppAssemblyGeneratorDirectory;
- }
-
- private static int Run()
- {
- Config.Initialize();
-
- if (!LoaderConfig.Current.UnityEngine.ForceOfflineGeneration)
- RemoteAPI.Contact();
-
- Cpp2IL cpp2IL_netcore = new Cpp2IL();
- if (MelonUtils.IsWindows
- && (cpp2IL_netcore.VersionSem < Cpp2IL.NetCoreMinVersion))
- cpp2il = new Cpp2IL_NetFramework();
- else
- cpp2il = cpp2IL_netcore;
- cpp2il_scrs = new Cpp2IL_StrippedCodeRegSupport(cpp2il);
-
- il2cppinterop = new Packages.Il2CppInterop();
- unitydependencies = new UnityDependencies();
- deobfuscationMap = new DeobfuscationMap();
- deobfuscationRegex = new DeobfuscationRegex();
-
- Logger.Msg($"Using Cpp2IL Version: {(string.IsNullOrEmpty(cpp2il.Version) ? "null" : cpp2il.Version)}");
- Logger.Msg($"Using Il2CppInterop Version = {(string.IsNullOrEmpty(il2cppinterop.Version) ? "null" : il2cppinterop.Version)}");
- Logger.Msg($"Using Unity Dependencies Version = {(string.IsNullOrEmpty(unitydependencies.Version) ? "null" : unitydependencies.Version)}");
- Logger.Msg($"Using Deobfuscation Regex = {(string.IsNullOrEmpty(deobfuscationRegex.Regex) ? "null" : deobfuscationRegex.Regex)}");
-
- if (!cpp2il.Setup()
- || !cpp2il_scrs.Setup()
- || !il2cppinterop.Setup()
- || !unitydependencies.Setup()
- || !deobfuscationMap.Setup())
- return 1;
-
- deobfuscationRegex.Setup();
-
- string CurrentGameAssemblyHash;
- Logger.Msg("Checking GameAssembly...");
- MelonDebug.Msg($"Last GameAssembly Hash: {Config.Values.GameAssemblyHash}");
- MelonDebug.Msg($"Current GameAssembly Hash: {CurrentGameAssemblyHash = MelonUtils.ComputeSimpleSHA512Hash(GameAssemblyPath)}");
-
- if (string.IsNullOrEmpty(Config.Values.GameAssemblyHash)
- || !Config.Values.GameAssemblyHash.Equals(CurrentGameAssemblyHash))
- AssemblyGenerationNeeded = true;
-
- if (!AssemblyGenerationNeeded)
- {
- Logger.Msg("Assembly is up to date. No Generation Needed.");
- return 0;
- }
- Logger.Msg("Assembly Generation Needed!");
-
- cpp2il.Cleanup();
- il2cppinterop.Cleanup();
-
- if (!cpp2il.Execute())
- {
- cpp2il.Cleanup();
- return 1;
- }
-
- if (!il2cppinterop.Execute())
- {
- cpp2il.Cleanup();
- il2cppinterop.Cleanup();
- return 1;
- }
-
- OldFiles_Cleanup();
- OldFiles_LAM();
-
- cpp2il.Cleanup();
- il2cppinterop.Cleanup();
-
- Logger.Msg("Assembly Generation Successful!");
- deobfuscationRegex.Save();
- Config.Values.GameAssemblyHash = CurrentGameAssemblyHash;
- Config.Save();
-
- return 0;
- }
-
- private static void OldFiles_Cleanup()
- {
- if (Config.Values.OldFiles.Count <= 0)
- return;
- for (int i = 0; i < Config.Values.OldFiles.Count; i++)
- {
- string filename = Config.Values.OldFiles[i];
- string filepath = Path.Combine(MelonEnvironment.Il2CppAssembliesDirectory, filename);
- if (File.Exists(filepath))
- {
- Logger.Msg("Deleting " + filename);
- File.Delete(filepath);
- }
- }
- Config.Values.OldFiles.Clear();
- }
-
- private static void OldFiles_LAM()
- {
- string[] filepathtbl = Directory.GetFiles(il2cppinterop.OutputFolder);
- string il2CppAssembliesDirectory = MelonEnvironment.Il2CppAssembliesDirectory;
- for (int i = 0; i < filepathtbl.Length; i++)
- {
- string filepath = filepathtbl[i];
- string filename = Path.GetFileName(filepath);
- Logger.Msg("Moving " + filename);
- Config.Values.OldFiles.Add(filename);
- string newfilepath = Path.Combine(il2CppAssembliesDirectory, filename);
- if (File.Exists(newfilepath))
- File.Delete(newfilepath);
- Directory.CreateDirectory(il2CppAssembliesDirectory);
- File.Move(filepath, newfilepath);
- }
- Config.Save();
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/Il2CppAssemblyGenerator/Extensions.cs b/Dependencies/Il2CppAssemblyGenerator/Extensions.cs
deleted file mode 100644
index 6eb549cc0..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Extensions.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System.IO;
-using System.Net.Http;
-
-namespace MelonLoader.Il2CppAssemblyGenerator;
-
-internal static class Extensions
-{
- public static void DownloadFile(this HttpClient client, string url, string dest)
- {
- using var dlStream = client.GetStreamAsync(url).Result;
- using var fileStream = File.Open(dest, FileMode.Create, FileAccess.Write);
- dlStream.CopyTo(fileStream);
- }
-}
\ No newline at end of file
diff --git a/Dependencies/Il2CppAssemblyGenerator/FileHandler.cs b/Dependencies/Il2CppAssemblyGenerator/FileHandler.cs
deleted file mode 100644
index 1066295bc..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/FileHandler.cs
+++ /dev/null
@@ -1,130 +0,0 @@
-using System;
-using System.IO;
-using System.IO.Compression;
-
-namespace MelonLoader.Il2CppAssemblyGenerator
-{
- internal static class FileHandler
- {
- internal static bool Download(string url, string destination)
- {
- if (string.IsNullOrEmpty(url))
- {
- Core.Logger.Error($"url cannot be Null or Empty!");
- return false;
- }
-
- if (string.IsNullOrEmpty(destination))
- {
- Core.Logger.Error($"destination cannot be Null or Empty!");
- return false;
- }
-
- if (File.Exists(destination))
- File.Delete(destination);
-
- Core.Logger.Msg($"Downloading {url} to {destination}");
- try { Core.webClient.DownloadFile(url, destination); }
- catch (Exception ex)
- {
- Core.Logger.Error(ex.ToString());
-
- if (File.Exists(destination))
- File.Delete(destination);
-
- return false;
- }
-
- return true;
- }
-
- internal static bool Process(string filepath, string destination, string targetName = null)
- {
- if (string.IsNullOrEmpty(filepath))
- {
- Core.Logger.Error($"filepath cannot be Null or Empty!");
- return false;
- }
-
- if (string.IsNullOrEmpty(destination))
- {
- Core.Logger.Error($"destination cannot be Null or Empty!");
- return false;
- }
-
- if (filepath.Equals(destination))
- return true;
-
- if (!File.Exists(filepath))
- {
- Core.Logger.Error($"{filepath} does not Exist!");
- return false;
- }
-
- if (Path.HasExtension(destination))
- {
- if (File.Exists(destination))
- File.Delete(destination);
- }
- else
- {
- if (Directory.Exists(destination))
- {
- Core.Logger.Msg($"Cleaning {destination}");
- foreach (var entry in Directory.EnumerateFileSystemEntries(destination))
- {
- if (Directory.Exists(entry))
- Directory.Delete(entry, true);
- else
- File.Delete(entry);
- }
- }
- else
- {
- Core.Logger.Msg($"Creating Directory {destination}");
- Directory.CreateDirectory(destination);
- }
- }
-
- string filename = Path.GetFileName(filepath);
- if (!filename.EndsWith(".zip"))
- {
- Core.Logger.Msg($"Moving {filepath} to {destination}");
-
- if (!string.IsNullOrEmpty(targetName))
- destination = Path.Combine(destination, targetName);
-
- File.Move(filepath, destination);
- return true;
- }
-
- Core.Logger.Msg($"Extracting {filepath} to {destination}");
- try { ZipFile.ExtractToDirectory(filepath, destination); }
- catch (Exception ex)
- {
- Core.Logger.Error(ex.ToString());
-
- if (File.Exists(filepath))
- File.Delete(filepath);
-
- if (Directory.Exists(destination))
- {
- foreach (var entry in Directory.EnumerateFileSystemEntries(destination))
- {
- if (Directory.Exists(entry))
- Directory.Delete(entry, true);
- else
- File.Delete(entry);
- }
- }
-
- return false;
- }
-
- if (File.Exists(filepath))
- File.Delete(filepath);
-
- return true;
- }
- }
-}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Il2CppAssemblyGenerator.csproj b/Dependencies/Il2CppAssemblyGenerator/Il2CppAssemblyGenerator.csproj
deleted file mode 100644
index 61168b91a..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Il2CppAssemblyGenerator.csproj
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- MelonLoader.Il2CppAssemblyGenerator
- net6
- true
- true
- $(MLOutDir)/MelonLoader/Dependencies/Il2CppAssemblyGenerator
- true
- embedded
- false
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL.cs b/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL.cs
deleted file mode 100644
index 4a5b1b347..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using Semver;
-
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
-{
- internal class Cpp2IL : Models.ExecutablePackage
- {
- internal static SemVersion NetCoreMinVersion = SemVersion.Parse("2022.1.0-pre-release.18");
- internal SemVersion VersionSem;
- private string BaseFolder;
-
- private static string ReleaseName =>
- MelonUtils.IsWindows ? "Windows" : MelonUtils.IsUnix ? "Linux" : "OSX";
-
- internal Cpp2IL()
- {
- Version = LoaderConfig.Current.UnityEngine.ForceIl2CppDumperVersion;
-#if !DEBUG
- if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
- Version = RemoteAPI.Info.ForceDumperVersion;
-#endif
- if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
- Version = $"2022.1.0-pre-release.19";
- VersionSem = SemVersion.Parse(Version);
-
- Name = nameof(Cpp2IL);
-
- var filename = Name;
-#if WINDOWS
- filename += ".exe";
-#endif
-
- BaseFolder = Path.Combine(Core.BasePath, Name);
- Directory.CreateDirectory(BaseFolder);
-
- FilePath =
- ExeFilePath =
- Destination =
- Path.Combine(BaseFolder, filename);
-
- OutputFolder = Path.Combine(BaseFolder, "cpp2il_out");
-
- URL = $"https://github.com/SamboyCoding/{Name}/releases/download/{Version}/{Name}-{Version}-{ReleaseName}";
-#if WINDOWS
- URL += ".exe";
-#endif
- }
-
- internal override bool ShouldSetup()
- => string.IsNullOrEmpty(Config.Values.DumperVersion)
- || !Config.Values.DumperVersion.Equals(Version);
-
- internal override void Cleanup() { }
-
- internal override void Save()
- => Save(ref Config.Values.DumperVersion);
-
- internal override bool Execute()
- => Execute([
- MelonDebug.IsEnabled() ? "--verbose" : string.Empty,
-
- "--game-path",
- "\"" + Path.GetDirectoryName(Core.GameAssemblyPath) + "\"",
-
- "--exe-name",
- "\"" + Process.GetCurrentProcess().ProcessName + "\"",
-
- "--output-as",
- "dummydll",
-
- "--use-processor",
- "attributeanalyzer",
- "attributeinjector",
- LoaderConfig.Current.UnityEngine.EnableCpp2ILCallAnalyzer ? "callanalyzer" : string.Empty,
- LoaderConfig.Current.UnityEngine.EnableCpp2ILNativeMethodDetector ? "nativemethoddetector" : string.Empty,
- //"deobfmap",
- //"stablenamer",
-
- ], false, new Dictionary() {
- {"NO_COLOR", "1"},
- });
- }
-}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL_NetFramework.cs b/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL_NetFramework.cs
deleted file mode 100644
index 686b8508e..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL_NetFramework.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using Semver;
-
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
-{
- internal class Cpp2IL_NetFramework : Models.ExecutablePackage
- {
- private static string ReleaseName => "Windows-Netframework472";
- internal Cpp2IL_NetFramework()
- {
- Version = LoaderConfig.Current.UnityEngine.ForceIl2CppDumperVersion;
-#if !DEBUG
- if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
- Version = RemoteAPI.Info.ForceDumperVersion;
-#endif
- if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
- Version = $"2022.1.0-pre-release.15";
-
- Name = nameof(Cpp2IL);
- Destination = Path.Combine(Core.BasePath, Name);
- OutputFolder = Path.Combine(Destination, "cpp2il_out");
-
- URL = $"https://github.com/SamboyCoding/{Name}/releases/download/{Version}/{Name}-{Version}-{ReleaseName}.zip";
- ExeFilePath = Path.Combine(Destination, $"{Name}.exe");
- FilePath = Path.Combine(Core.BasePath, $"{Name}_{Version}.zip");
- }
-
- internal override bool ShouldSetup()
- => string.IsNullOrEmpty(Config.Values.DumperVersion)
- || !Config.Values.DumperVersion.Equals(Version);
-
- internal override void Cleanup() { }
-
- internal override void Save()
- => Save(ref Config.Values.DumperVersion);
-
- internal override bool Execute()
- {
- if (SemVersion.Parse(Version) <= SemVersion.Parse("2022.0.999"))
- return ExecuteOld();
- return ExecuteNew();
- }
-
- private bool ExecuteNew()
- {
- if (Execute([
- MelonDebug.IsEnabled() ? "--verbose" : string.Empty,
-
- "--game-path",
- "\"" + Path.GetDirectoryName(Core.GameAssemblyPath) + "\"",
-
- "--exe-name",
- "\"" + Process.GetCurrentProcess().ProcessName + "\"",
-
- "--output-as",
- "dummydll",
-
- "--use-processor",
- "attributeanalyzer",
- "attributeinjector",
- LoaderConfig.Current.UnityEngine.EnableCpp2ILCallAnalyzer ? "callanalyzer" : string.Empty,
- LoaderConfig.Current.UnityEngine.EnableCpp2ILNativeMethodDetector ? "nativemethoddetector" : string.Empty,
- //"deobfmap",
- //"stablenamer",
-
- ], false, new Dictionary() {
- {"NO_COLOR", "1"}
- }))
- return true;
-
- return false;
- }
-
- private bool ExecuteOld()
- {
- if (Execute([
- MelonDebug.IsEnabled() ? "--verbose" : string.Empty,
-
- "--game-path",
- "\"" + Path.GetDirectoryName(Core.GameAssemblyPath) + "\"",
-
- "--exe-name",
- "\"" + Process.GetCurrentProcess().ProcessName + "\"",
-
- "--skip-analysis",
- "--skip-metadata-txts",
- "--disable-registration-prompts"
-
- ], false, new Dictionary() {
- {"NO_COLOR", "1"}
- }))
- return true;
-
- return false;
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/DeobfuscationRegex.cs b/Dependencies/Il2CppAssemblyGenerator/Packages/DeobfuscationRegex.cs
deleted file mode 100644
index 493bf4c26..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/DeobfuscationRegex.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
-{
- internal class DeobfuscationRegex
- {
- internal string Regex = null;
-
- internal DeobfuscationRegex()
- {
- Regex = LoaderConfig.Current.UnityEngine.ForceGeneratorRegex;
- if (string.IsNullOrEmpty(Regex))
- Regex = RemoteAPI.Info.ObfuscationRegex;
- }
-
- internal void Setup()
- {
- if (string.IsNullOrEmpty(Regex))
- {
- if (!string.IsNullOrEmpty(Config.Values.DeobfuscationRegex))
- {
- Core.AssemblyGenerationNeeded = true;
- return;
- }
- }
- else
- {
- if (string.IsNullOrEmpty(Config.Values.DeobfuscationRegex))
- {
- Core.AssemblyGenerationNeeded = true;
- return;
- }
- if (!Config.Values.DeobfuscationRegex.Equals(Regex))
- {
- Core.AssemblyGenerationNeeded = true;
- return;
- }
- }
- }
-
- internal void Save()
- {
- Config.Values.DeobfuscationRegex = Regex;
- Config.Save();
- }
- }
-}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/Il2CppInterop.cs b/Dependencies/Il2CppAssemblyGenerator/Packages/Il2CppInterop.cs
deleted file mode 100644
index cbb6ca484..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/Il2CppInterop.cs
+++ /dev/null
@@ -1,142 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text.RegularExpressions;
-using Il2CppInterop.Common;
-using Il2CppInterop.Generator;
-using Il2CppInterop.Generator.Runners;
-using Microsoft.Extensions.Logging;
-using AsmResolver.DotNet;
-using AsmResolver.DotNet.Serialized;
-
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
-{
- internal class Il2CppInterop : Models.ExecutablePackage
- {
- internal Il2CppInterop()
- {
- Version = typeof(Il2CppInteropGenerator).Assembly.CustomAttributes
- .Where(x => x.AttributeType.Name == "AssemblyInformationalVersionAttribute")
- .Select(x => x.ConstructorArguments[0].Value.ToString())
- .FirstOrDefault();
-
- Name = nameof(Il2CppInterop);
- Destination = Path.Combine(Core.BasePath, Name);
- OutputFolder = Path.Combine(Destination, "Il2CppAssemblies");
- }
-
- internal override bool ShouldSetup()
- => false;
-
- internal override bool Execute()
- {
- Core.Logger.Msg("Reading dumped assemblies for interop generation...");
-
- var resolver = new InteropResolver();
- var inputAssemblies = Directory.GetFiles(Core.cpp2il.OutputFolder)
- .Where(f => f.EndsWith(".dll"))
- .Select(f => ModuleDefinition.FromFile(f, new ModuleReaderParameters() { ModuleResolver = resolver }))
- .Select(f => { resolver.Add(f); return f; })
- .Select(f => f.Assembly)
- .ToList();
-
- var opts = new GeneratorOptions()
- {
- GameAssemblyPath = Core.GameAssemblyPath,
- Source = inputAssemblies,
- OutputDir = OutputFolder,
- UnityBaseLibsDir = Core.unitydependencies.Destination,
- ObfuscatedNamesRegex = string.IsNullOrEmpty(Core.deobfuscationRegex.Regex) ? null : new Regex(Core.deobfuscationRegex.Regex),
- Parallel = true,
- Il2CppPrefixMode = GeneratorOptions.PrefixMode.OptOut,
- };
-
- //Inform cecil of the unity base libs
- var trusted = (string)AppDomain.CurrentDomain.GetData("TRUSTED_PLATFORM_ASSEMBLIES");
- var allUnityDlls = string.Join(Path.PathSeparator, Directory.GetFiles(Core.unitydependencies.Destination, "*.dll", SearchOption.TopDirectoryOnly));
- // var allDumpedDlls = string.Join(Path.PathSeparator, Directory.GetFiles(Core.dumper.OutputFolder, "*.dll", SearchOption.TopDirectoryOnly));
- AppDomain.CurrentDomain.SetData("TRUSTED_PLATFORM_ASSEMBLIES", trusted + Path.PathSeparator + allUnityDlls);
-
- if (!string.IsNullOrEmpty(Core.deobfuscationMap.Version))
- {
- Core.Logger.Msg("Loading Deobfuscation Map...");
- opts.ReadRenameMap(Core.deobfuscationMap.Destination);
- }
-
- Core.Logger.Msg("Generating Interop Assemblies...");
-
-#if !DEBUG
- try
-#endif
- {
- Il2CppInteropGenerator.Create(opts)
- .AddLogger(new InteropLogger())
- .AddInteropAssemblyGenerator()
- .Run();
- }
-#if !DEBUG
- catch (Exception e)
- {
- Core.Logger.Error("Error Generating Interop Assemblies!", e);
- return false;
- }
-#endif
-
- Core.Logger.Msg("Cleaning up...");
- AppDomain.CurrentDomain.SetData("TRUSTED_PLATFORM_ASSEMBLIES", trusted);
- //inputAssemblies.ForEach(a => a.Dispose());
-
- Core.Logger.Msg("Interop Generation Complete!");
- return true;
- }
- }
-
- internal class InteropLogger : ILogger
- {
- public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter)
- {
- if (logLevel is LogLevel.Debug or LogLevel.Trace)
- {
- MelonDebug.Msg(formatter(state, exception));
- return;
- }
-
- Core.Logger.Msg(formatter(state, exception));
- }
-
- public bool IsEnabled(LogLevel logLevel)
- {
- return logLevel switch
- {
- LogLevel.Debug or LogLevel.Trace => MelonDebug.IsEnabled(),
- _ => true
- };
- }
-
- public IDisposable BeginScope(TState state)
- {
- throw new NotImplementedException();
- }
- }
-
- internal class InteropResolver : INetModuleResolver
- {
- private readonly Dictionary _cache = new();
-
- public void Dispose()
- {
- _cache.Clear();
- }
-
- internal void Add(ModuleDefinition module)
- {
- _cache[module.Name] = module;
- }
-
- public ModuleDefinition Resolve(string name)
- {
- return _cache.GetValueOrDefault(name);
- }
- }
-}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/Models/PackageBase.cs b/Dependencies/Il2CppAssemblyGenerator/Packages/Models/PackageBase.cs
deleted file mode 100644
index b5cbd232e..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/Models/PackageBase.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System.IO;
-
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages.Models
-{
- internal class PackageBase
- {
- internal string Name;
- internal string URL;
- internal string FilePath;
- internal string Destination;
- internal string Version;
-
- internal virtual bool ShouldSetup() => true;
-
- internal virtual bool OnProcess()
- => FileHandler.Process(FilePath, Destination, MelonUtils.IsWindows ? null : Name);
-
- internal virtual bool Setup()
- {
- if (string.IsNullOrEmpty(Version) || string.IsNullOrEmpty(URL))
- return true;
-
- if (!ShouldSetup())
- {
- Core.Logger.Msg($"{Name} is up to date.");
- return true;
- }
-
- Core.AssemblyGenerationNeeded = true;
-
- if (!LoaderConfig.Current.UnityEngine.ForceOfflineGeneration
- && ((this is DeobfuscationMap) || !File.Exists(FilePath)))
- {
- Core.Logger.Msg($"Downloading {Name}...");
- if (!FileHandler.Download(URL, FilePath))
- {
- ThrowInternalFailure($"Failed to Download {Name}!");
- return false;
- }
- }
-
- Core.Logger.Msg($"Processing {Name}...");
- if (!OnProcess())
- {
- ThrowInternalFailure($"Failed to Process {Name}!");
- return false;
- }
-
- Save();
- return true;
- }
-
- internal virtual void Save() { }
- internal void Save(ref string configPref)
- {
- configPref = Version;
- Config.Save();
- }
-
- internal static void ThrowInternalFailure(string txt) => MelonLogger.ThrowInternalFailure(txt);
- }
-}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/UnityDependencies.cs b/Dependencies/Il2CppAssemblyGenerator/Packages/UnityDependencies.cs
deleted file mode 100644
index 830b0bece..000000000
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/UnityDependencies.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using System.IO;
-
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
-{
- internal class UnityDependencies : Models.PackageBase
- {
- internal UnityDependencies()
- {
- Name = nameof(UnityDependencies);
- Version = InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType();
- URL = $"https://github.com/LavaGang/MelonLoader.UnityDependencies/releases/download/{Version}/Managed.zip";
- Destination = Path.Combine(Core.BasePath, Name);
- FilePath = Path.Combine(Core.BasePath, $"{Name}_{Version}.zip");
- }
-
- internal override bool ShouldSetup()
- => string.IsNullOrEmpty(Config.Values.UnityVersion)
- || !Config.Values.UnityVersion.Equals(Version);
-
- internal override void Save()
- => Save(ref Config.Values.UnityVersion);
- }
-}
diff --git a/Dependencies/MelonStartScreen/Core.cs b/Dependencies/MelonStartScreen/Core.cs
deleted file mode 100644
index 651525d4d..000000000
--- a/Dependencies/MelonStartScreen/Core.cs
+++ /dev/null
@@ -1,288 +0,0 @@
-using MelonLoader.MelonStartScreen.NativeUtils;
-using MelonLoader.Modules;
-using MelonLoader.NativeUtils.PEParser;
-using System;
-using System.Diagnostics;
-using System.IO;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-using System.Threading;
-using Windows;
-using MelonLoader.Utils;
-using MelonLoader.NativeUtils;
-
-namespace MelonLoader.MelonStartScreen
-{
- internal class Core : MelonModule
- {
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- private delegate IntPtr User32SetTimerDelegate(IntPtr hWnd, IntPtr nIDEvent, uint uElapse, IntPtr lpTimerFunc);
- private static NativeHook user32Hook = new();
-
- private static bool nextSetTimerIsUnity = false;
- private static IntPtr titleBarTimer;
-
- private static bool functionRunDone = false;
- private static int functionRunResult = 0;
-
- internal static string FolderPath;
- internal static string ThemesFolderPath;
-
- public static Core instance;
-
- public static MelonLogger.Instance Logger => instance.LoggerInstance;
-
- public override void OnInitialize()
- {
- instance = this;
- }
-
- private static int LoadAndRun(LemonFunc functionToWaitForAsync)
- {
- // Start Screen has no signatures for Development Builds of UnityPlayer.dll
- if (MelonUnityEngine.UnityDebug.isDebugBuild)
- return functionToWaitForAsync();
-
- Logger.Msg("Initializing...");
-
- FolderPath = Path.Combine(MelonEnvironment.UserDataDirectory, "MelonStartScreen");
- if (!Directory.Exists(FolderPath))
- Directory.CreateDirectory(FolderPath);
-
- ThemesFolderPath = Path.Combine(FolderPath, "Themes");
- if (!Directory.Exists(ThemesFolderPath))
- Directory.CreateDirectory(ThemesFolderPath);
-
- UI_Theme.Load();
- if (!UI_Theme.General.Enabled)
- return functionToWaitForAsync();
-
- // We try to resolve all the signatures, which are available for Unity 2018.1.0+
- // If we can't find them (signatures changed or <2018.1.0), then we run the function and return.
- try
- {
- if (!NativeSignatureResolver.Apply())
- return functionToWaitForAsync();
-
- if (!ApplyUser32SetTimerPatch())
- return functionToWaitForAsync();
-
- MelonDebug.Msg("Initializing Screen Renderer");
- ScreenRenderer.Init();
- MelonDebug.Msg("Screen Renderer initialized");
-
- RegisterMessageCallbacks();
-
- // Initial render
- ScreenRenderer.Render();
- }
- catch (Exception e)
- {
- Logger.Error(e);
- ScreenRenderer.disabled = true;
- return functionToWaitForAsync();
- }
-
- SubscribeToCoreCallbacks();
-
- StartFunction(functionToWaitForAsync);
- MainLoop();
-
- return functionRunResult;
- }
-
- private static void SubscribeToCoreCallbacks()
- {
- MelonEvents.OnApplicationLateStart.Subscribe(Finish, int.MinValue);
- MelonEvents.OnApplicationStart.Subscribe(OnApplicationStart, int.MaxValue);
- MelonBase.OnMelonInitializing.Subscribe(OnMelonInitializing, 100);
- MelonAssembly.OnAssemblyResolving.Subscribe(OnMelonsResolving, 100);
- }
-
- private static void RegisterMessageCallbacks()
- {
- MelonLogger.MsgDrawingCallbackHandler += (namesection_color, txt_color, namesection, txt) => ScreenRenderer.UpdateProgressFromLog(txt);
- MelonDebug.MsgCallbackHandler += (txt_color, txt) => ScreenRenderer.UpdateProgressFromLog(txt);
- }
-
- #region User32::SetTime Path
-
- private static unsafe bool ApplyUser32SetTimerPatch()
- {
- IntPtr original = PEUtils.GetExportedFunctionPointerForModule("USER32.dll", "SetTimer");
- MelonDebug.Msg($"User32::SetTimer original: 0x{(long)original:X}");
-
- if (original == IntPtr.Zero)
- {
- MelonDebug.Error("Failed to find USER32.dll::SetTimer");
- return false;
- }
-
- // We get a native function pointer to User32SetTimerDetour from our current class
-#if NET6_0_OR_GREATER
- delegate* unmanaged[Cdecl] detourPtr = &User32SetTimerDetour;
-#else
- IntPtr detourPtr = Marshal.GetFunctionPointerForDelegate((User32SetTimerDelegate)User32SetTimerDetour);
-
- if (detourPtr == IntPtr.Zero)
- {
- MelonDebug.Error("Failed to find User32SetTimerDetour");
- return false;
- }
-#endif
- user32Hook.Target = original;
- user32Hook.Detour = (IntPtr)detourPtr;
-
- // And we patch SetTimer to replace it by our hook
- MelonDebug.Msg($"Applying USER32.dll::SetTimer Hook at 0x{original.ToInt64():X}");
- user32Hook.Attach();
- MelonDebug.Msg("Applied USER32.dll::SetTimer patch");
-
- return true;
- }
-
-#if NET6_0_OR_GREATER
- [UnmanagedCallersOnly(CallConvs = new[] {typeof(CallConvCdecl)})]
-#endif
- private unsafe static IntPtr User32SetTimerDetour(IntPtr hWnd, IntPtr nIDEvent, uint uElapse, IntPtr timerProc)
- {
- if (nextSetTimerIsUnity)
- {
- nextSetTimerIsUnity = false;
- return IntPtr.Zero;
- }
-
- return user32Hook.Trampoline(hWnd, nIDEvent, uElapse, timerProc);
- }
-
- #endregion
-
- private static void StartFunction(LemonFunc func)
- {
- new Thread(() =>
- {
- functionRunResult = func();
- functionRunDone = true;
- })
- {
- IsBackground = true,
- Name = "MelonStartScreen Function Thread"
- }.Start();
- }
-
- private static void MainLoop()
- {
- while (!functionRunDone) // WM_QUIT
- {
- ProcessEventsAndRender(true);
- }
-
- if (titleBarTimer != IntPtr.Zero)
- {
- User32.KillTimer(IntPtr.Zero, titleBarTimer);
- titleBarTimer = IntPtr.Zero;
- }
- }
-
- #region Event Processing and Rendering
-
- private static void ProcessEventsAndRender(bool isMainLoop = false)
- {
- ProcessMessages();
-
- if (titleBarTimer != IntPtr.Zero)
- {
- User32.KillTimer(IntPtr.Zero, titleBarTimer);
- titleBarTimer = IntPtr.Zero;
- }
- ScreenRenderer.Render();
- if (isMainLoop)
- Thread.Sleep(16); // ~60fps
- else
- {
- if (titleBarTimer != IntPtr.Zero)
- {
- User32.KillTimer(IntPtr.Zero, titleBarTimer);
- titleBarTimer = IntPtr.Zero;
- }
- }
- }
-
- private static void ProcessMessages()
- {
- while (true)
- {
- User32.PeekMessage(out Msg msg, IntPtr.Zero, 0, 0, 0);
- if (msg.message == WindowMessage.QUIT)
- {
- Process.GetCurrentProcess().Kill();
- return;
- }
- else if (User32.PeekMessage(out msg, IntPtr.Zero, 0, 0, 1)) // If there a message pending
- {
- if (msg.message == WindowMessage.NCLBUTTONDOWN || msg.message == (WindowMessage)0x242 /* NCPOINTERDOWN */)
- {
- if (titleBarTimer == IntPtr.Zero)
- titleBarTimer = User32.SetTimer(IntPtr.Zero, IntPtr.Zero, 10, TitleBarTimerUpdateCallback);
- nextSetTimerIsUnity = true;
- }
- else if (msg.message == WindowMessage.PAINT)
- ScreenRenderer.Render();
-
- User32.TranslateMessage(ref msg);
- User32.DispatchMessage(ref msg);
- }
- else
- return;
- }
- }
-
- private static void TitleBarTimerUpdateCallback(IntPtr hWnd, uint uMsg, IntPtr nIDEvent, uint dwTime)
- {
- ScreenRenderer.Render();
- }
-
- #endregion
-
- #region Calls from MelonLoader
-
- internal static void OnMelonInitializing(MelonBase melon)
- {
- ScreenRenderer.UpdateProgressState(ModLoadStep.InitializeMelons);
- ScreenRenderer.UpdateProgressFromMod(melon);
- ProcessEventsAndRender();
- }
-
- internal static void OnMelonsResolving(Assembly asm)
- {
- ScreenRenderer.UpdateProgressState(ModLoadStep.LoadMelons);
- ScreenRenderer.UpdateProgressFromModAssembly(asm);
- ProcessEventsAndRender();
- }
-
- internal static void OnApplicationStart()
- {
- ScreenRenderer.UpdateProgressState(ModLoadStep.OnApplicationStart);
- ProcessEventsAndRender();
- }
-
- internal static void DisplayModLoadIssuesIfNeeded()
- {
- // TODO Start a new locking thread with a display of the issues and buttons to either close the game or continue
- }
-
- internal static void Finish()
- {
- ScreenRenderer.UpdateMainProgress("Starting game...", 1f);
- ScreenRenderer.Render(); // Final render, to set the progress bar to 100%
-
- MelonEvents.OnApplicationLateStart.Unsubscribe(typeof(Core).GetMethod(nameof(Finish), BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic));
- MelonEvents.OnApplicationStart.Unsubscribe(typeof(Core).GetMethod(nameof(OnApplicationStart), BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic));
- MelonBase.OnMelonInitializing.Unsubscribe(typeof(Core).GetMethod(nameof(OnMelonInitializing), BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic));
- MelonAssembly.OnAssemblyResolving.Unsubscribe(typeof(Core).GetMethod(nameof(OnMelonsResolving), BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic));
- }
-
- #endregion
- }
-}
diff --git a/Dependencies/MelonStartScreen/MelonStartScreen.csproj b/Dependencies/MelonStartScreen/MelonStartScreen.csproj
deleted file mode 100644
index 605a76a07..000000000
--- a/Dependencies/MelonStartScreen/MelonStartScreen.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
- MelonLoader.MelonStartScreen
- net35;net6
- true
- $(MLOutDir)/MelonLoader
- true
- true
- embedded
-
-
-
-
-
-
-
-
-
-
-
- Runtime
-
-
-
\ No newline at end of file
diff --git a/Dependencies/MelonStartScreen/ModLoadStep.cs b/Dependencies/MelonStartScreen/ModLoadStep.cs
deleted file mode 100644
index d29ccf30f..000000000
--- a/Dependencies/MelonStartScreen/ModLoadStep.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace MelonLoader.MelonStartScreen
-{
- internal enum ModLoadStep
- {
- Generation,
- LoadMelons,
- InitializeMelons,
- OnApplicationStart
- }
-}
diff --git a/Dependencies/MelonStartScreen/NativeUtils/NativeFieldValueAttribute.cs b/Dependencies/MelonStartScreen/NativeUtils/NativeFieldValueAttribute.cs
deleted file mode 100644
index c9a847e13..000000000
--- a/Dependencies/MelonStartScreen/NativeUtils/NativeFieldValueAttribute.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-
-namespace MelonLoader.MelonStartScreen.NativeUtils
-{
- [AttributeUsage(AttributeTargets.Field, AllowMultiple = true)]
- class NativeFieldValueAttribute : Attribute
- {
- internal uint LookupIndex { get; }
- internal NativeSignatureFlags Flags { get; }
- internal object Value { get; }
- internal string[] MinimalUnityVersions { get; }
-
- public NativeFieldValueAttribute(uint lookupIndex, NativeSignatureFlags flags, object value, params string[] minimalUnityVersions)
- {
- LookupIndex = lookupIndex;
- Flags = flags;
- Value = value;
- MinimalUnityVersions = minimalUnityVersions;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureAttribute.cs b/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureAttribute.cs
deleted file mode 100644
index cb048ac7b..000000000
--- a/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureAttribute.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-
-namespace MelonLoader.MelonStartScreen.NativeUtils
-{
- [AttributeUsage(AttributeTargets.Field, AllowMultiple = true)]
- internal class NativeSignatureAttribute : Attribute
- {
- internal uint LookupIndex { get; }
- internal NativeSignatureFlags Flags { get; }
- internal string Signature { get; }
- internal string[] MinimalUnityVersions { get; }
-
- internal NativeSignatureAttribute(uint lookupIndex, NativeSignatureFlags flags, string signature, params string[] minimalUnityVersions)
- {
- LookupIndex = lookupIndex;
- Flags = flags;
- Signature = signature;
- MinimalUnityVersions = minimalUnityVersions;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureFlags.cs b/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureFlags.cs
deleted file mode 100644
index 8ec8628ae..000000000
--- a/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureFlags.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-namespace MelonLoader.MelonStartScreen.NativeUtils
-{
- internal enum NativeSignatureFlags
- {
- None = 0,
-
- Il2Cpp = 1,
- Mono = 2,
-
- //Dev = 4,
- //NonDev = 8
-
- X86 = 16,
- X64 = 32,
- //ARMEABIV7A = 64,
- }
-}
diff --git a/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureResolver.cs b/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureResolver.cs
deleted file mode 100644
index 94b626a6a..000000000
--- a/Dependencies/MelonStartScreen/NativeUtils/NativeSignatureResolver.cs
+++ /dev/null
@@ -1,161 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.InteropServices;
-using MelonLoader.NativeUtils;
-
-namespace MelonLoader.MelonStartScreen.NativeUtils
-{
- internal static class NativeSignatureResolver
- {
- internal static bool Apply()
- {
- NativeSignatureFlags currentFlags = default;
- currentFlags |= MelonUtils.IsGame32Bit() ? NativeSignatureFlags.X86 : NativeSignatureFlags.X64;
- currentFlags |= MelonUtils.IsGameIl2Cpp() ? NativeSignatureFlags.Il2Cpp : NativeSignatureFlags.Mono;
- MelonDebug.Msg("Current Unity flags: " + (uint)currentFlags);
-
- string currentUnityVersion = InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType();
- string moduleName = "UnityPlayer.dll";
-#if LINUX
- // TODO
-#elif OSX
- // TODO
-#elif ANDROID
- // TODO
-#else
- if (!currentUnityVersion.StartsWith("20") || currentUnityVersion.StartsWith("2017.1"))
- moduleName = "player_win.exe";
-#endif
-
-
- IntPtr moduleAddress = IntPtr.Zero;
- int moduleSize = 0;
-
- foreach (ProcessModule module in Process.GetCurrentProcess().Modules)
- {
- if (module.ModuleName == moduleName)
- {
- moduleAddress = module.BaseAddress;
- moduleSize = module.ModuleMemorySize;
- break;
- }
- }
-
- if (moduleAddress == IntPtr.Zero)
- {
- Core.Logger.Error($"Failed to find module \"{moduleName}\"");
- return false;
- }
-
- bool success = true;
- foreach (Type type in typeof(NativeSignatureResolver).Assembly.GetTypes())
- {
- foreach (FieldInfo fi in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static))
- {
- bool hasAttribute = false;
- bool signaturefound = false;
- bool optionalOnEarlyVersion = false;
- IOrderedEnumerable nativeSignatureAttributes = fi.GetCustomAttributes(false)
- .Where(attr => attr is NativeSignatureAttribute)
- .Select(attr => (NativeSignatureAttribute)attr)
- .OrderByDescending(attr => attr.LookupIndex);
- foreach (NativeSignatureAttribute attribute in nativeSignatureAttributes)
- {
- hasAttribute = true;
- if ((attribute.Flags & currentFlags) != attribute.Flags)
- continue;
-
- if (!IsUnityVersionOverOrEqual(currentUnityVersion, attribute.MinimalUnityVersions))
- continue;
-
- signaturefound = true;
-
- if (attribute.Signature == null)
- {
- optionalOnEarlyVersion = true;
- break;
- }
-
- IntPtr ptr = CppUtils.Sigscan(moduleAddress, moduleSize, attribute.Signature);
- if (ptr == IntPtr.Zero)
- {
- success = false;
- Core.Logger.Error("Failed to find the signature for field " + fi.Name + " in module. Signature: " + attribute.Signature);
- break;
- }
-
- if (typeof(Delegate).IsAssignableFrom(fi.FieldType))
- fi.SetValue(null, Marshal.GetDelegateForFunctionPointer(ptr, fi.FieldType));
- else if (typeof(IntPtr).IsAssignableFrom(fi.FieldType))
- fi.SetValue(null, ptr);
- else
- Core.Logger.Error($"Invalid target type for field \"{fi.FieldType} {fi.Name}\"");
-
- MelonDebug.Msg("Signature for " + fi.Name + ": " + attribute.Signature);
- break;
- }
-
- if (hasAttribute && !signaturefound && !optionalOnEarlyVersion)
- {
- Core.Logger.Error("Failed to find a signature for field " + fi.Name + " for this version of Unity");
- success = false;
- }
-
- hasAttribute = false;
- signaturefound = false;
- IOrderedEnumerable nativeFieldValueAttributes = fi.GetCustomAttributes(false)
- .Where(attr => attr is NativeFieldValueAttribute)
- .Select(attr => (NativeFieldValueAttribute)attr)
- .OrderByDescending(attr => attr.LookupIndex);
- foreach (NativeFieldValueAttribute attribute in nativeFieldValueAttributes)
- {
- hasAttribute = true;
- if ((attribute.Flags & currentFlags) != attribute.Flags)
- continue;
-
- if (!IsUnityVersionOverOrEqual(currentUnityVersion, attribute.MinimalUnityVersions))
- continue;
-
- signaturefound = true;
-
- fi.SetValue(null, attribute.Value);
-
- MelonDebug.Msg("Value for " + fi.Name + ": " + attribute.Value);
- break;
- }
-
- if (hasAttribute && !signaturefound)
- {
- Core.Logger.Error("Failed to find a value for field " + fi.Name + " for this version of Unity");
- success = false;
- }
- }
- }
-
- return success;
- }
-
- internal static bool IsUnityVersionOverOrEqual(string currentversion, string[] validversions)
- {
- if (validversions == null || validversions.Length == 0)
- return true;
-
- string[] versionparts = currentversion.Split('.');
-
- foreach (string validversion in validversions)
- {
- string[] validversionparts = validversion.Split('.');
-
- if (
- int.Parse(versionparts[0]) >= int.Parse(validversionparts[0]) &&
- int.Parse(versionparts[1]) >= int.Parse(validversionparts[1]) &&
- int.Parse(versionparts[2]) >= int.Parse(validversionparts[2]))
- return true;
- }
-
- return false;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/ProgressParser.cs b/Dependencies/MelonStartScreen/ProgressParser.cs
deleted file mode 100644
index 2bbf33c72..000000000
--- a/Dependencies/MelonStartScreen/ProgressParser.cs
+++ /dev/null
@@ -1,364 +0,0 @@
-using System.Collections.Generic;
-using System.IO;
-using System.Reflection;
-using System.Text.RegularExpressions;
-
-namespace MelonLoader.MelonStartScreen
-{
- internal static class ProgressParser
- {
- private static float generationPercent = MelonUtils.IsGameIl2Cpp() ? 80f : 10f;
- private static ModLoadStep currentStep = ModLoadStep.Generation;
- private static string currentStepName = "___";
-
- internal struct AverageStepDuration
- {
- public string message;
- public float weight;
- public string progresstext;
-
- public AverageStepDuration(string message, float weight, string progresstext)
- {
- this.message = message;
- this.weight = weight;
- this.progresstext = progresstext;
- }
- }
-
- private static readonly Dictionary stepsNames = new Dictionary()
- {
- { ModLoadStep.LoadMelons, "Loading Melons" },
- { ModLoadStep.InitializeMelons, "Initializing" },
- { ModLoadStep.OnApplicationStart, "Loading..." }
- };
-
- public static float GetProgressFromLog(string data, ref string progressText, float default_) // TODO flags (il2cpp/mono, cpp2il/il2cppdumper)
- {
- if (currentStep != ModLoadStep.Generation)
- return default_;
-
- if (Regex.IsMatch(data, "Assembly is up to date"))
- {
- generationPercent = default_ * 100f;
- return default_;
- }
-
- float totalTime = 0;
- float progressTime = 0;
- foreach (var entry in averageStepDurations)
- {
- if (progressTime <= 0f && Regex.IsMatch(data, entry.message))
- {
- progressTime = totalTime;
- progressText = entry.progresstext ?? data;
- }
-
- totalTime += entry.weight;
- }
-
- return progressTime > 0 ? (progressTime / totalTime) * (generationPercent * 0.01f) : default_;
- }
-
- public static float GetProgressFromMod(MelonBase melon, ref string progressText)
- {
- progressText = $"{currentStepName} {melon.MelonTypeName}: {melon.Info.Name} {melon.Info.Version}";
-
- float generationPart = generationPercent * 0.01f;
- return generationPart + (((int)currentStep - 1) * ((1 - generationPart) / 4));
- }
-
- public static float GetProgressFromModAssembly(Assembly asm, ref string progressText)
- {
- progressText = $"{currentStepName}: {Path.GetFileName(asm.Location)}";
-
- float generationPart = generationPercent * 0.01f;
- return generationPart + (((int)currentStep - 1) * ((1 - generationPart) / 4));
- }
-
- public static bool SetModState(ModLoadStep step, ref string progressText, out float generationPart)
- {
- generationPart = generationPercent * 0.01f;
- generationPart += ((int)step - 1) * ((1 - generationPart) / 3);
-
- if (currentStep == step)
- return false;
-
- currentStep = step;
- if (!stepsNames.TryGetValue(step, out currentStepName))
- currentStepName = $"{step}";
- progressText = currentStepName;
-
- return true;
- }
-
- internal static readonly AverageStepDuration[] averageStepDurations = new AverageStepDuration[]
- {
- // Il2CppAssemblyGenerator
- new AverageStepDuration(
- @"Contacting RemoteAPI\.\.\.",
- 100f,
- @"Initialization - Contacting Remote API"
- ),
- new AverageStepDuration(
- @"Downloading Unity \S+ Dependencies\.\.\.",
- 1000f,
- @"Initialization - Downloading Unity Dependencies"
- ),
- new AverageStepDuration(
- @"Extracting .* to .*UnityDpendencies",
- 500f,
- @"Initialization - Extracting Unity Dependencies"
- ),
- new AverageStepDuration(
- @"Downloading Cpp2IL\.\.\.",
- 500f,
- @"Initialization - Downloading Cpp2IL"
- ),
- new AverageStepDuration(
- @"Extracting .* to .*Cpp2IL",
- 500f,
- @"Initialization - Extracting Cpp2IL"
- ),
- new AverageStepDuration(
- @"Downloading DeobfuscationMap\.\.\.",
- 500f,
- @"Initialization - Downloading DeobfuscationMap"
- ),
- new AverageStepDuration(
- @"Checking GameAssembly\.\.\.",
- 1000f,
- @"Initialization - Checking GameAssembly"
- ),
-
-
- // Cpp2IL
- // Slaynash: I skipped a lot of steps taking less than 100ms, but we may want to add them back for slower platforms
- new AverageStepDuration(
- @"Initializing metadata\.\.\.",
- 2500f,
- "Cpp2IL - Initializing metadata"
- ),
- new AverageStepDuration(
- @"Searching Binary for Required Data",
- 402f,
- "Cpp2IL - Seaching Binary for Required Data"
- ),
- new AverageStepDuration(
- @"Initializing Binary",
- 402f,
- "Cpp2IL - Initializing Binary"
- ),
- new AverageStepDuration(
- @"Initializing Binary",
- 2533f,
- "Cpp2IL - Initializing Binary"
- ),
- new AverageStepDuration(
- @"Pre-generating stubs",
- 708f,
- "Cpp2IL - Building Assemblies: Pre-generating stubs"
- ),
- new AverageStepDuration(
- @"Populating mscorlib\.dll",
- 340f,
- "Cpp2IL - Building Assemblies: Populating assemblies"
- ),
- new AverageStepDuration(
- @"Populating Assembly-CSharp\.dll",
- 3000f,
- "Cpp2IL - Building Assemblies: Populating assemblies"
- ),
- new AverageStepDuration(
- @"Fixing up explicit overrides",
- 1000f,
- "Cpp2IL - Fixing up explicit overrides"
- ),
- new AverageStepDuration(
- @"Running Scan for Known Functions",
- 300f,
- "Cpp2IL - Running Scan for Known Functions"
- ),
- new AverageStepDuration(
- @"Applying type, method, and field attributes",
- 5500f,
- "Cpp2IL - Applying type, method, and field attributes"
- ),
- new AverageStepDuration(
- @"Saving .* assemblies to ",
- 4000f,
- "Cpp2IL - Saving assemblies"
- ),
-
-
- // Il2CppInterop
- new AverageStepDuration(
- @"Reading assemblies\.\.\.",
- 170f,
- "Il2CppInterop - Reading assemblies"
- ),
- new AverageStepDuration(
- @"Reading system assemblies\.\.\.",
- 14f,
- "Il2CppInterop - Reading system assemblies"
- ),
- new AverageStepDuration(
- @"Reading unity assemblies\.\.\.",
- 29f,
- "Il2CppInterop - Reading unity assemblies"
- ),
- new AverageStepDuration(
- @"Creating rewrite assemblies\.\.\.",
- 20f,
- "Il2CppInterop - Creating rewrite assemblies"
- ),
- new AverageStepDuration(
- @"Computing renames\.\.\.",
- 281f,
- "Il2CppInterop - Computing renames"
- ),
- new AverageStepDuration(
- @"Creating typedefs\.\.\.",
- 109f,
- "Il2CppInterop - Creating typedefs"
- ),
- new AverageStepDuration(
- @"Computing struct blittability\.\.\.",
- 10f,
- "Il2CppInterop - Computing struct blittability"
- ),
- new AverageStepDuration(
- @"Filling typedefs\.\.\.",
- 27f,
- "Il2CppInterop - Filling typedefs"
- ),
- new AverageStepDuration(
- @"Filling generic constraints\.\.\.",
- 6f,
- "Il2CppInterop - Filling generic constraints"
- ),
- new AverageStepDuration(
- @"Creating members\.\.\.",
- 2256f,
- "Il2CppInterop - Creating members"
- ),
- new AverageStepDuration(
- @"Scanning method cross-references\.\.\.",
- 1919f,
- "Il2CppInterop - Scanning method cross-references"
- ),
- new AverageStepDuration(
- @"Finalizing method declarations\.\.\.",
- 2867f,
- "Il2CppInterop - Finalizing method declarations"
- ),
- new AverageStepDuration(
- @"Filling method parameters\.\.\.",
- 510f,
- "Il2CppInterop - Filling method parameters"
- ),
- new AverageStepDuration(
- @"Creating static constructors\.\.\.",
- 1237f,
- "Il2CppInterop - Creating static constructors"
- ),
- new AverageStepDuration(
- @"Creating value type fields\.\.\.",
- 186f,
- "Il2CppInterop - Creating value type fields"
- ),
- new AverageStepDuration(
- @"Creating enums\.\.\.",
- 69f,
- "Il2CppInterop - Creating enums"
- ),
- new AverageStepDuration(
- @"Creating IntPtr constructors\.\.\.",
- 63f,
- "Il2CppInterop - Creating IntPtr constructors"
- ),
- new AverageStepDuration(
- @"Creating type getters\.\.\.",
- 132f,
- "Il2CppInterop - Creating type getters"
- ),
- /*
- (
- @"Creating non-blittable struct constructors\.\.\.",
- 38f,
- "Il2CppInterop - Creating non-blittable struct constructors"
- ),
- (
- @"Creating generic method static constructors\.\.\.",
- 42f,
- "Il2CppInterop - Creating generic method static constructors"
- ),
- */
- new AverageStepDuration(
- @"Creating field accessors\.\.\.",
- 1642f,
- "Il2CppInterop - Creating field accessors"
- ),
- new AverageStepDuration(
- @"Filling methods\.\.\.",
- 2385f,
- "Il2CppInterop - Filling methods"
- ),
- new AverageStepDuration(
- @"Generating implicit conversions\.\.\.",
- 121f,
- "Il2CppInterop - Generating implicit conversions"
- ),
- new AverageStepDuration(
- @"Creating properties\.\.\.",
- 102f,
- "Il2CppInterop - Creating properties"
- ),
- new AverageStepDuration(
- @"Unstripping types\.\.\.",
- 44f,
- "Il2CppInterop - Unstripping types"
- ),
- new AverageStepDuration(
- @"Unstripping fields\.\.\.",
- 5f,
- "Il2CppInterop - Unstripping fields"
- ),
- new AverageStepDuration(
- @"Unstripping methods\.\.\.",
- 241f,
- "Il2CppInterop - Unstripping methods"
- ),
- new AverageStepDuration(
- @"Unstripping method bodies\.\.\.",
- 266f,
- "Il2CppInterop - Unstripping method bodies"
- ),
- new AverageStepDuration(
- @"Generating forwarded types\.\.\.",
- 4f,
- "Il2CppInterop - Generating forwarded types"
- ),
- new AverageStepDuration(
- @"Writing xref cache\.\.\.",
- 1179f,
- "Il2CppInterop - Writing xref cache"
- ),
- new AverageStepDuration(
- @"Writing assemblies\.\.\.",
- 2586f,
- "Il2CppInterop - Writing assemblies"
- ),
- new AverageStepDuration(
- @"Writing method pointer map\.\.\.",
- 89f,
- "Il2CppInterop - Writing method pointer map"
- ),
- // Move files
- new AverageStepDuration(
- @"Deleting .*\.dll",
- 500f,
- "Il2CppInterop - Moving files"
- ),
- };
- }
-}
diff --git a/Dependencies/MelonStartScreen/Resources/Loading_Halloween.dat b/Dependencies/MelonStartScreen/Resources/Loading_Halloween.dat
deleted file mode 100644
index c7643a776..000000000
Binary files a/Dependencies/MelonStartScreen/Resources/Loading_Halloween.dat and /dev/null differ
diff --git a/Dependencies/MelonStartScreen/Resources/Loading_Lemon.dat b/Dependencies/MelonStartScreen/Resources/Loading_Lemon.dat
deleted file mode 100644
index 54c705dde..000000000
Binary files a/Dependencies/MelonStartScreen/Resources/Loading_Lemon.dat and /dev/null differ
diff --git a/Dependencies/MelonStartScreen/Resources/Loading_Melon.dat b/Dependencies/MelonStartScreen/Resources/Loading_Melon.dat
deleted file mode 100644
index 9a92310a9..000000000
Binary files a/Dependencies/MelonStartScreen/Resources/Loading_Melon.dat and /dev/null differ
diff --git a/Dependencies/MelonStartScreen/Resources/Logo_Halloween.dat b/Dependencies/MelonStartScreen/Resources/Logo_Halloween.dat
deleted file mode 100644
index a34ba5c48..000000000
Binary files a/Dependencies/MelonStartScreen/Resources/Logo_Halloween.dat and /dev/null differ
diff --git a/Dependencies/MelonStartScreen/Resources/Logo_Lemon.dat b/Dependencies/MelonStartScreen/Resources/Logo_Lemon.dat
deleted file mode 100644
index 4803417e0..000000000
Binary files a/Dependencies/MelonStartScreen/Resources/Logo_Lemon.dat and /dev/null differ
diff --git a/Dependencies/MelonStartScreen/Resources/Logo_Melon.dat b/Dependencies/MelonStartScreen/Resources/Logo_Melon.dat
deleted file mode 100644
index abf653010..000000000
Binary files a/Dependencies/MelonStartScreen/Resources/Logo_Melon.dat and /dev/null differ
diff --git a/Dependencies/MelonStartScreen/ScreenRenderer.cs b/Dependencies/MelonStartScreen/ScreenRenderer.cs
deleted file mode 100644
index fe930614b..000000000
--- a/Dependencies/MelonStartScreen/ScreenRenderer.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using MelonLoader.MelonStartScreen.NativeUtils;
-using MelonLoader.MelonStartScreen.UI;
-using System;
-using System.Reflection;
-using MelonUnityEngine.CoreModule;
-using UnityPlayer;
-
-namespace MelonLoader.MelonStartScreen
-{
- internal static class ScreenRenderer
- {
- private const float logoRatio = 1.2353f;
-
- private delegate void SetupPixelCorrectCoordinates(bool param_1);
-
-#pragma warning disable 0649
- #region m_SetupPixelCorrectCoordinates Signatures
- [NativeSignature(01, NativeSignatureFlags.X86, "55 8b ec 83 ec 60 56 e8 ?? ?? ?? ?? 8b f0 8b 45 08 50 8d 4d f0 51 e8", "2017.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X86, "55 8b ec 83 ec 60 53 56 57 e8 ?? ?? ?? ?? ff 75 08 8b d8 8d 45 f0 50 e8", "2017.3.0", "2018.1.0")]
- [NativeSignature(03, NativeSignatureFlags.X86, "55 8b ec 83 ec 60 53 56 57 e8 ?? ?? ?? ?? 8b d8 e8 ?? ?? ?? ?? ff 75 08 8d 4d f0", "2019.1.0")]
- [NativeSignature(01, NativeSignatureFlags.X64, "48 89 5c 24 08 57 48 81 ec a0 00 00 00 8b d9 e8 ?? ?? ?? ?? 48 8b f8 e8", "2017.1.0")]
- #endregion
- private static SetupPixelCorrectCoordinates m_SetupPixelCorrectCoordinates;
-#pragma warning restore 0649
-
- public static bool disabled = false;
-
- private static uint shouldCallWFLPAGT = 0;
-
- internal static void Init()
- {
- if (disabled)
- return;
-
- try
- {
- MelonDebug.Msg("Initializing UIStyleValues");
- UI_Style.Init();
- MelonDebug.Msg("UIStyleValues Initialized");
-
- uint graphicsDeviceType = SystemInfo.GetGraphicsDeviceType();
- MelonDebug.Msg("Graphics Device Type: " + graphicsDeviceType);
- shouldCallWFLPAGT = NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new[] { "2020.2.7", "2020.3.0", "2021.1.0" })
- && (graphicsDeviceType == /*DX11*/2 || graphicsDeviceType == /*DX12*/18)
- ? graphicsDeviceType : 0;
- }
- catch (Exception e)
- {
- Core.Logger.Error("Exception while init rendering: " + e);
- disabled = true;
- }
- }
-
- internal static unsafe void Render()
- {
- if (disabled)
- return;
-
- try
- {
- m_SetupPixelCorrectCoordinates(false);
-
- UI_Style.Render();
-
- GfxDevice.PresentFrame();
- if (shouldCallWFLPAGT != 0)
- GfxDevice.WaitForLastPresentationAndGetTimestamp(shouldCallWFLPAGT);
- }
- catch (Exception e)
- {
- Core.Logger.Error("Exception while rendering: " + e);
- disabled = true;
- }
- }
-
- internal static void UpdateMainProgress(string text, float progress)
- {
- if (UI_Style.ProgressBar == null)
- return;
-
- UI_Style.ProgressBar.text.text = text;
- UI_Style.ProgressBar.text.isDirty = true;
- UI_Style.ProgressBar.progress = progress;
- }
-
- internal static void UpdateProgressFromLog(string msg)
- {
- if (UI_Style.ProgressBar == null)
- return;
-
- UI_Style.ProgressBar.progress = ProgressParser.GetProgressFromLog(msg, ref UI_Style.ProgressBar.text.text, UI_Style.ProgressBar.progress);
- UI_Style.ProgressBar.text.isDirty = true;
- }
-
- internal static void UpdateProgressFromMod(MelonBase melon)
- {
- if (UI_Style.ProgressBar == null)
- return;
-
- UI_Style.ProgressBar.progress = ProgressParser.GetProgressFromMod(melon, ref UI_Style.ProgressBar.text.text);
- UI_Style.ProgressBar.text.isDirty = true;
- }
-
- internal static void UpdateProgressFromModAssembly(Assembly asm)
- {
- if (UI_Style.ProgressBar == null)
- return;
-
- UI_Style.ProgressBar.progress = ProgressParser.GetProgressFromModAssembly(asm, ref UI_Style.ProgressBar.text.text);
- UI_Style.ProgressBar.text.isDirty = true;
- }
-
- internal static void UpdateProgressState(ModLoadStep step)
- {
- if (UI_Style.ProgressBar == null)
- return;
-
- if (ProgressParser.SetModState(step, ref UI_Style.ProgressBar.text.text, out float generationPart))
- {
- UI_Style.ProgressBar.progress = generationPart;
- UI_Style.ProgressBar.text.isDirty = true;
- }
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/TextMeshGenerator.cs b/Dependencies/MelonStartScreen/TextMeshGenerator.cs
deleted file mode 100644
index e7db0d981..000000000
--- a/Dependencies/MelonStartScreen/TextMeshGenerator.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using System;
-using System.Linq;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen
-{
- internal static class TextMeshGenerator
- {
- public static Mesh Generate(string text, TextGenerationSettings settings)
- {
- TextGenerator generator = new TextGenerator();
- generator.Populate(text, settings);
-
- Mesh mesh = new Mesh();
- UIVertexWrapper[] vertices = generator.GetVerticesArray();
- Vector3[] verticesPosition = vertices.Select(v => v.position).ToArray();
- mesh.vertices = verticesPosition;
- if (GL.sRGBWrite)
- mesh.colors = vertices.Select(v => {
- Color color = v.color;
- color.r = (float)Math.Pow(color.r, 2.2);
- color.g = (float)Math.Pow(color.g, 2.2);
- color.b = (float)Math.Pow(color.b, 2.2);
- return color;
- }).ToArray();
- else
- mesh.colors = vertices.Select(v => (Color)v.color).ToArray();
- mesh.normals = vertices.Select(v => v.normal).ToArray();
- mesh.tangents = vertices.Select(v => v.tangent).ToArray();
- mesh.uv = vertices.Select(v => v.uv0).ToArray();
-
- int characterCount = generator.vertexCount / 4;
- int[] indices = new int[characterCount * 6];
- for (var i = 0; i < characterCount; ++i)
- {
- int vertIndexStart = i * 4;
- int trianglesIndexStart = i * 6;
- indices[trianglesIndexStart++] = vertIndexStart;
- indices[trianglesIndexStart++] = vertIndexStart + 1;
- indices[trianglesIndexStart++] = vertIndexStart + 2;
- indices[trianglesIndexStart++] = vertIndexStart;
- indices[trianglesIndexStart++] = vertIndexStart + 2;
- indices[trianglesIndexStart] = vertIndexStart + 3;
- }
- mesh.triangles = indices;
- mesh.RecalculateBounds();
-
- return mesh;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Objects/UI_AnimatedImage.cs b/Dependencies/MelonStartScreen/UI/Objects/UI_AnimatedImage.cs
deleted file mode 100644
index 0131d24c0..000000000
--- a/Dependencies/MelonStartScreen/UI/Objects/UI_AnimatedImage.cs
+++ /dev/null
@@ -1,90 +0,0 @@
-using System.Collections.Generic;
-using System.Diagnostics;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI.Objects
-{
- internal class UI_AnimatedImage : UI_Image
- {
- private Stopwatch stopwatch = new Stopwatch();
- private float frameDelayMS = 90f;
- private Texture2D[] textures;
-
- internal UI_AnimatedImage(UI_Theme.ImageSettings imageSettings, string filepath) : base(imageSettings, filepath) { }
- internal UI_AnimatedImage(UI_Theme.ImageSettings imageSettings, byte[] filedata) : base(imageSettings, filedata) { }
- internal override void LoadImage(UI_Theme.ImageSettings imageSettings, byte[] filedata)
- {
- config = imageSettings;
-
- mgGif.Decoder decoder = new mgGif.Decoder(filedata);
-
- var img = decoder.NextImage();
- frameDelayMS = img.Delay;
-
- List images = new List();
- while (img != null)
- {
- Texture2D newtexture = img.CreateTexture(config.Filter);
- newtexture.hideFlags = HideFlags.HideAndDontSave;
- newtexture.DontDestroyOnLoad();
-
- images.Add(newtexture);
- img = decoder.NextImage();
- }
-
- textures = images.ToArray();
- MainTexture = textures[0];
- AspectRatio = MainTexture.width / (float)MainTexture.height;
-
- AllElements.Add(this);
- }
-
- internal override void Render()
- {
- if (!config.Enabled || (textures == null) || (textures.Length <= 0))
- {
- if (stopwatch.IsRunning)
- stopwatch.Stop();
- return;
- }
-
- if (!stopwatch.IsRunning)
- stopwatch.Start();
-
- int image = (int)((float)(stopwatch.ElapsedMilliseconds / frameDelayMS) % textures.Length);
- MainTexture = textures[image];
-
- base.Render();
- }
-
- internal override void Render(int x, int y, int width, int height)
- {
- if (!config.Enabled)
- {
- if (stopwatch.IsRunning)
- stopwatch.Stop();
- return;
- }
-
- if (!stopwatch.IsRunning)
- stopwatch.Start();
-
- int image = (int)((float)(stopwatch.ElapsedMilliseconds / frameDelayMS) % textures.Length);
- MainTexture = textures[image];
-
- base.Render(x, y, width, height);
- }
-
- internal override void Dispose()
- {
- if ((textures == null) || (textures.Length <= 0))
- return;
-
- foreach (Texture2D texture in textures)
- texture.DestroyImmediate();
-
- textures = null;
- MainTexture = null;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Objects/UI_Background.cs b/Dependencies/MelonStartScreen/UI/Objects/UI_Background.cs
deleted file mode 100644
index 37cb565b3..000000000
--- a/Dependencies/MelonStartScreen/UI/Objects/UI_Background.cs
+++ /dev/null
@@ -1,48 +0,0 @@
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI.Objects
-{
- internal class UI_Background : UI_Object
- {
- private UI_Theme.cBackground config;
- private UI_Image image;
- internal Texture2D solidTexture;
-
- internal UI_Background(UI_Theme.cBackground backgroundSettings)
- {
- config = backgroundSettings;
- image = UI_Utils.LoadImage(config, "Background");
-
- solidTexture = UI_Utils.CreateColorTexture(config.SolidColor);
- solidTexture.hideFlags = HideFlags.HideAndDontSave;
- solidTexture.DontDestroyOnLoad();
- AllElements.Add(this);
- }
-
- internal override void Render()
- {
- int sw = Screen.width;
- int sh = Screen.height;
-
- if (solidTexture != null)
- Graphics.DrawTexture(new Rect(0, 0, sw, sh), solidTexture);
-
- if (image != null)
- {
- if (config.StretchToScreen)
- image.Render(0, 0, sw, sh);
- else
- image.Render();
- }
- }
-
- internal override void Dispose()
- {
- if (solidTexture == null)
- return;
-
- solidTexture.DestroyImmediate();
- solidTexture = null;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Objects/UI_Image.cs b/Dependencies/MelonStartScreen/UI/Objects/UI_Image.cs
deleted file mode 100644
index 584848022..000000000
--- a/Dependencies/MelonStartScreen/UI/Objects/UI_Image.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using System;
-using System.IO;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI.Objects
-{
- internal class UI_Image : UI_Object
- {
- internal UI_Theme.ImageSettings config;
- internal Texture2D MainTexture;
- internal float AspectRatio;
-
- internal UI_Image(UI_Theme.ImageSettings imageSettings, string filepath) => LoadImage(imageSettings, File.ReadAllBytes(filepath));
- internal UI_Image(UI_Theme.ImageSettings imageSettings, byte[] filedata) => LoadImage(imageSettings, filedata);
-
- internal virtual void LoadImage(UI_Theme.ImageSettings imageSettings, byte[] filedata)
- {
- config = imageSettings;
-
- MainTexture = new Texture2D(2, 2);
- MainTexture.filterMode = config.Filter;
-
- if (!ImageConversion.LoadImage(MainTexture, filedata, false))
- throw new Exception("ImageConversion.LoadImage Failed!");
-
- AspectRatio = MainTexture.width / (float)MainTexture.height;
-
- MainTexture.hideFlags = HideFlags.HideAndDontSave;
- MainTexture.DontDestroyOnLoad();
-
- AllElements.Add(this);
- }
-
- internal override void Render()
- {
- if (!config.Enabled)
- return;
- if (MainTexture == null)
- return;
-
- int aspectHeight = config.MaintainAspectRatio ? (int)(config.Size.Item1 / AspectRatio) : config.Size.Item2;
-
- UI_Utils.AnchorToScreen(config.ScreenAnchor, config.Position.Item1, config.Position.Item2, out int anchor_x, out int anchor_y);
- UI_Utils.AnchorToObject(config.Anchor, anchor_x, anchor_y, config.Size.Item1, -aspectHeight, out anchor_x, out anchor_y);
-
- Graphics.DrawTexture(new Rect(anchor_x, anchor_y, config.Size.Item1, -aspectHeight), MainTexture);
- }
-
- internal virtual void Render(int x, int y, int width, int height)
- {
- if (!config.Enabled)
- return;
- Graphics.DrawTexture(new Rect(x, height + y, width, -height), MainTexture);
- }
-
- internal override void Dispose()
- {
- if (MainTexture == null)
- return;
-
- MainTexture.DestroyImmediate();
- MainTexture = null;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Objects/UI_Object.cs b/Dependencies/MelonStartScreen/UI/Objects/UI_Object.cs
deleted file mode 100644
index 9f165c1a0..000000000
--- a/Dependencies/MelonStartScreen/UI/Objects/UI_Object.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace MelonLoader.MelonStartScreen.UI.Objects
-{
- internal abstract class UI_Object : IDisposable
- {
- internal static List AllElements = new List();
- private bool disposedValue;
-
- internal virtual void Dispose() { }
- internal abstract void Render();
-
- protected virtual void Dispose(bool managed)
- {
- if (disposedValue)
- return;
- if (managed)
- Dispose();
- disposedValue = true;
- }
-
- void IDisposable.Dispose()
- {
- Dispose(managed: true);
- GC.SuppressFinalize(this);
- }
-
- internal static void DisposeOfAll()
- {
- if (AllElements.Count <= 0)
- return;
- foreach (UI_Object obj in AllElements)
- obj.Dispose();
- AllElements.Clear();
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Objects/UI_ProgressBar.cs b/Dependencies/MelonStartScreen/UI/Objects/UI_ProgressBar.cs
deleted file mode 100644
index 0dded3547..000000000
--- a/Dependencies/MelonStartScreen/UI/Objects/UI_ProgressBar.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI.Objects
-{
- internal class UI_ProgressBar : UI_Object
- {
- private UI_Theme.cProgressBar config;
- internal float progress;
- internal UI_Text text;
- private Texture2D innerTexture;
- private Texture2D outerTexture;
-
- internal UI_ProgressBar(UI_Theme.cProgressBar progressBarSettings, UI_Theme.TextSettings textSettings)
- {
- config = progressBarSettings;
- text = new UI_Text(textSettings);
-
- innerTexture = UI_Utils.CreateColorTexture(config.InnerColor);
- innerTexture.hideFlags = HideFlags.HideAndDontSave;
- innerTexture.DontDestroyOnLoad();
-
- outerTexture = UI_Utils.CreateColorTexture(config.OuterColor);
- outerTexture.hideFlags = HideFlags.HideAndDontSave;
- outerTexture.DontDestroyOnLoad();
-
- AllElements.Add(this);
- }
-
- internal override void Render()
- {
- if (config.Enabled && (outerTexture != null) && (UI_Style.Background.solidTexture != null) && (innerTexture != null))
- {
- UI_Utils.AnchorToScreen(config.ScreenAnchor, config.Position.Item1, config.Position.Item2, out int anchor_x, out int anchor_y);
- UI_Utils.AnchorToObject(config.Anchor, anchor_x, anchor_y, config.Size.Item1, config.Size.Item2, out anchor_x, out anchor_y);
-
- Graphics.DrawTexture(new Rect(anchor_x, anchor_y, config.Size.Item1, config.Size.Item2), outerTexture);
- Graphics.DrawTexture(new Rect(anchor_x + 6, anchor_y + 6, config.Size.Item1 - 12, config.Size.Item2 - 12), UI_Style.Background.solidTexture);
- Graphics.DrawTexture(new Rect(anchor_x + 9, anchor_y + 9, (int)((config.Size.Item1 - 18) * Math.Min(1.0f, progress)), config.Size.Item2 - 18), innerTexture);
- }
-
- text?.Render();
- }
-
- internal override void Dispose()
- {
- if (innerTexture != null)
- {
- innerTexture.DestroyImmediate();
- innerTexture = null;
- }
-
- if (outerTexture != null)
- {
- outerTexture.DestroyImmediate();
- outerTexture = null;
- }
-
- if (text != null)
- text.Dispose();
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Objects/UI_Text.cs b/Dependencies/MelonStartScreen/UI/Objects/UI_Text.cs
deleted file mode 100644
index d926baea9..000000000
--- a/Dependencies/MelonStartScreen/UI/Objects/UI_Text.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using MelonLoader.Properties;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI.Objects
-{
- internal class UI_Text : UI_Object
- {
- private UI_Theme.TextSettings config;
- private Mesh mesh;
- internal bool isDirty = true;
- internal string text;
- internal Font font;
-
- internal UI_Text(UI_Theme.TextSettings textSettings)
- {
- config = textSettings;
- text = config.Text;
-
- try
- {
- font = MelonUnityEngine.Resources.GetBuiltinResource($"{config.Font}.ttf");
- }
- catch { }
-
- if (font == null)
- font = MelonUnityEngine.Resources.GetBuiltinResource("Arial.ttf");
-
- AllElements.Add(this);
- }
-
- internal override void Render()
- => Render(config.Position.Item1, config.Position.Item2);
- internal void Render(int x, int y)
- {
- if (!config.Enabled)
- return;
-
- UpdateMesh();
- font.material.SetPass(0);
- if (mesh == null)
- return;
-
- UI_Utils.AnchorToScreen(config.ScreenAnchor, x, y, out int anchor_x, out int anchor_y);
- Graphics.DrawMeshNow(mesh, new Vector3(anchor_x, anchor_y, 0), Quaternion.identity);
- }
-
- private void UpdateMesh()
- {
- if (!isDirty)
- return;
- if (string.IsNullOrEmpty(text))
- return;
-
- if (mesh != null)
- {
- mesh.DestroyImmediate();
- mesh = null;
- }
-
- TextGenerationSettings settings = new TextGenerationSettings();
- settings.generationExtents = new Vector2(540, 47.5f);
- settings.pivot = new Vector2(0.5f, 0.5f);
- settings.verticalOverflow = VerticalWrapMode.Overflow;
- settings.font = font;
- settings.textAnchor = (TextAnchor)config.Anchor;
- settings.color = config.TextColor;
- settings.richText = config.RichText;
- settings.fontSize = config.TextSize;
- settings.fontStyle = config.Style;
- settings.scaleFactor = config.Scale;
- settings.lineSpacing = config.LineSpacing;
-
- string displayText = text;
- displayText = displayText.Replace("", (MelonLaunchOptions.Console.Mode == MelonLaunchOptions.Console.DisplayMode.LEMON) ? "LemonLoader" : "MelonLoader");
- displayText = displayText.Replace("", BuildInfo.Version);
- displayText = displayText.Replace("LemonLoader", "LemonLoader");
- displayText = displayText.Replace("MelonLoader", "MelonLoader");
- displayText = displayText.Replace("", "MelonLoader");
-
-
-
- mesh = TextMeshGenerator.Generate(displayText, settings);
- mesh.hideFlags = HideFlags.HideAndDontSave;
- mesh.DontDestroyOnLoad();
-
- isDirty = false;
- }
-
- internal override void Dispose()
- {
- if (mesh == null)
- return;
-
- mesh.DestroyImmediate();
- mesh = null;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/StartScreenResources.cs b/Dependencies/MelonStartScreen/UI/StartScreenResources.cs
deleted file mode 100644
index 38ebcfadc..000000000
--- a/Dependencies/MelonStartScreen/UI/StartScreenResources.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System.IO;
-using System.Reflection;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI
-{
- internal static class StartScreenResources
- {
- public static byte[] HalloweenLoadingIcon => GetResource("Loading_Halloween.dat");
- public static byte[] MelonLoadingIcon => GetResource("Loading_Melon.dat");
- public static byte[] LemonLoadingIcon => GetResource("Loading_Lemon.dat");
-
- //Logos
- public static byte[] HalloweenLogo => GetResource("Logo_Halloween.dat");
- public static byte[] MelonLogo => GetResource("Logo_Melon.dat");
- public static byte[] LemonLogo => GetResource("Logo_Lemon.dat");
-
- private static byte[] GetResource(string name)
- {
- using var s = Assembly.GetExecutingAssembly().GetManifestResourceStream($"MelonLoader.MelonStartScreen.Resources.{name}");
- if (s == null)
- return null;
-#if NET6_0_OR_GREATER
- using var ms = new MemoryStream();
- s.CopyTo(ms);
- return ms.ToArray();
-#else
- var ret = new byte[s.Length];
- s.Read(ret, 0, ret.Length);
- return ret;
-#endif
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Default.cs b/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Default.cs
deleted file mode 100644
index b4890682f..000000000
--- a/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Default.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace MelonLoader.MelonStartScreen.UI.Themes
-{
- internal class UI_Theme_Default : UI_Theme
- {
- internal UI_Theme_Default() => Defaults();
-
- internal override byte[] GetLoadingImage()
- => StartScreenResources.MelonLoadingIcon;
-
- internal override byte[] GetLogoImage()
- => StartScreenResources.MelonLogo;
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Lemon.cs b/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Lemon.cs
deleted file mode 100644
index 6e0a614c5..000000000
--- a/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Lemon.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-namespace MelonLoader.MelonStartScreen.UI.Themes
-{
- internal class UI_Theme_Lemon : UI_Theme
- {
- internal UI_Theme_Lemon() => Defaults();
-
- internal override byte[] GetLoadingImage()
- => StartScreenResources.LemonLoadingIcon;
-
- internal override byte[] GetLogoImage()
- => StartScreenResources.LemonLogo;
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Pumpkin.cs b/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Pumpkin.cs
deleted file mode 100644
index 52229ce7f..000000000
--- a/Dependencies/MelonStartScreen/UI/Themes/UI_Theme_Pumpkin.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI.Themes
-{
- internal class UI_Theme_Pumpkin : UI_Theme
- {
- internal UI_Theme_Pumpkin()
- {
- Background = new hBackground();
- ProgressBar = new hProgressBar();
- VersionText = new hVersionTextSettings();
- Defaults();
- }
-
- internal override byte[] GetLoadingImage()
- => StartScreenResources.HalloweenLoadingIcon;
-
- internal override byte[] GetLogoImage()
- => StartScreenResources.HalloweenLogo;
-
- internal class hBackground : cBackground
- {
- public hBackground()
- => SolidColor = new Color(0.078f, 0f, 0.141f);
- }
-
- internal class hProgressBar : cProgressBar
- {
- public hProgressBar() : base()
- {
- OuterColor = new Color(0.478f, 0.169f, 0.749f);
- InnerColor = new Color(1f, 0.435f, 0f);
- Defaults();
- }
- }
-
- internal class hVersionTextSettings : VersionTextSettings
- {
- public hVersionTextSettings()
- {
- Text = $" v {(Is_ALPHA_PreRelease ? "ALPHA Pre-Release" : "Open-Beta")}";
- Defaults();
- }
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/UI_Anchor.cs b/Dependencies/MelonStartScreen/UI/UI_Anchor.cs
deleted file mode 100644
index 3a6717082..000000000
--- a/Dependencies/MelonStartScreen/UI/UI_Anchor.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-namespace MelonLoader.MelonStartScreen.UI
-{
- internal enum UI_Anchor
- {
- // Upper
- UpperLeft,
- UpperCenter,
- UpperRight,
-
- // Middle
- MiddleLeft,
- MiddleCenter,
- MiddleRight,
-
- // Lower
- LowerLeft,
- LowerCenter,
- LowerRight
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/UI_Style.cs b/Dependencies/MelonStartScreen/UI/UI_Style.cs
deleted file mode 100644
index 3ab8ac839..000000000
--- a/Dependencies/MelonStartScreen/UI/UI_Style.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using MelonUnityEngine;
-using System;
-
-namespace MelonLoader.MelonStartScreen.UI
-{
- internal class UI_Style
- {
- internal static Objects.UI_Background Background;
- internal static Objects.UI_Image LogoImage;
- internal static Objects.UI_Image LoadingImage;
- internal static Objects.UI_Text VersionText;
- internal static Objects.UI_ProgressBar ProgressBar;
-
- internal static void Init()
- {
- Background = new Objects.UI_Background(UI_Theme.Instance.Background);
- VersionText = new Objects.UI_Text(UI_Theme.Instance.VersionText);
- ProgressBar = new Objects.UI_ProgressBar(UI_Theme.Instance.ProgressBar, UI_Theme.Instance.ProgressText);
-
- if (UI_Theme.Instance.LogoImage.ScanForCustomImage)
- LogoImage = UI_Utils.LoadImage(UI_Theme.Instance.LogoImage, "Logo");
- if (LogoImage == null)
- LogoImage = new Objects.UI_Image(UI_Theme.Instance.LogoImage, UI_Theme.Instance.GetLogoImage());
-
- if (UI_Theme.Instance.LoadingImage.ScanForCustomImage)
- LoadingImage = UI_Utils.LoadImage(UI_Theme.Instance.LoadingImage, "Loading");
- if (LoadingImage == null)
- LoadingImage = new Objects.UI_AnimatedImage(UI_Theme.Instance.LoadingImage, UI_Theme.Instance.GetLoadingImage());
- }
-
-
- internal static void Render()
- {
- Background.Render();
- LogoImage.Render();
- LoadingImage.Render();
- ProgressBar.Render();
- VersionText.Render();
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/MelonStartScreen/UI/UI_Theme.cs b/Dependencies/MelonStartScreen/UI/UI_Theme.cs
deleted file mode 100644
index d70733222..000000000
--- a/Dependencies/MelonStartScreen/UI/UI_Theme.cs
+++ /dev/null
@@ -1,283 +0,0 @@
-using System.IO;
-using MelonUnityEngine;
-using Tomlet;
-using Tomlet.Attributes;
-using Tomlet.Models;
-using MelonLoader.MelonStartScreen.UI;
-using System;
-
-namespace MelonLoader.MelonStartScreen
-{
- internal abstract class UI_Theme
- {
- internal static UI_Theme Instance;
-
- private static string[] includedThemeIDs =
- {
- "Default",
- "Random",
- "Pumpkin"
- };
- internal static bool IsIncludedThemeID() { foreach (var id in includedThemeIDs) if (id.Equals(ThemeID)) return true; return false; }
- internal static string ThemeID = includedThemeIDs[0];
-
- internal static string FilePath;
- internal static string ThemePath;
- internal static cGeneral General;
- internal static bool IsLemon;
- internal static bool IsPumpkin;
-
- internal cBackground Background;
- internal ImageSettings LogoImage;
- internal ImageSettings LoadingImage;
- internal TextSettings ProgressText;
- internal cProgressBar ProgressBar;
- internal VersionTextSettings VersionText;
-
- internal void Defaults()
- {
- if (Background == null)
- Background = CreateCat(nameof(Background), true);
- if (LogoImage == null)
- LogoImage = CreateCat(nameof(LogoImage), true);
- if (LoadingImage == null)
- LoadingImage = CreateCat(nameof(LoadingImage), true);
- if (ProgressText == null)
- ProgressText = CreateCat(nameof(ProgressText), true);
- if (ProgressBar == null)
- ProgressBar = CreateCat(nameof(ProgressBar), true);
- if (VersionText == null)
- VersionText = CreateCat(nameof(VersionText), true);
- }
-
- internal static void Load()
- {
- TomletMain.RegisterMapper(WriteColor, ReadColor);
-
- FilePath = Path.Combine(Core.FolderPath, "Config.cfg");
- General = CreateCat(FilePath, nameof(General));
-
- if (!string.IsNullOrEmpty(General.Theme))
- ThemeID = General.Theme
- .Replace("\\", "")
- .Replace("/", "");
-
- if (ThemeID == "Halloween")
- General.Theme = ThemeID = includedThemeIDs[0];
-
- bool isIncludedID = IsIncludedThemeID();
-
- if (ThemeID.Equals(includedThemeIDs[1]))
- ThemePath = UI_Utils.RandomFolder(Core.ThemesFolderPath);
- else
- ThemePath = Path.Combine(Core.ThemesFolderPath, ThemeID);
-
- if (!isIncludedID && !Directory.Exists(ThemePath))
- {
- Core.Logger.Error($"Failed to find Start Screen Theme: {ThemeID}");
-
- isIncludedID = true;
- General.Theme = ThemeID = includedThemeIDs[0];
- ThemePath = Path.Combine(Core.ThemesFolderPath, ThemeID);
- }
-
- if (isIncludedID && !ThemeID.Equals(includedThemeIDs[1]))
- {
- // Lemon
- IsLemon = (MelonLaunchOptions.Console.Mode == MelonLaunchOptions.Console.DisplayMode.LEMON);
- if (!IsLemon)
- {
- // Pumpkin
- IsPumpkin = ThemeID.Equals(includedThemeIDs[2]);
- var nowTime = DateTime.Now;
- if ((nowTime.Month == 10)
- && (nowTime.Day == 31))
- IsPumpkin = true;
- }
-
- ThemeID = "Default";
- ThemePath = Path.Combine(Core.ThemesFolderPath, ThemeID);
- }
-
- if (!Directory.Exists(ThemePath))
- Directory.CreateDirectory(ThemePath);
-
- if (isIncludedID)
- MelonPreferences.SaveCategory(nameof(General), false);
-
- string themeName = (
- IsPumpkin ? "Pumpkin"
- : (IsLemon ? "Lemon" : ThemeID));
-
- Core.Logger.Msg($"Using Start Screen Theme: \"{themeName}\"");
-
- Instance =
- IsPumpkin ? new UI.Themes.UI_Theme_Pumpkin()
- : (IsLemon ? new UI.Themes.UI_Theme_Lemon()
- : new UI.Themes.UI_Theme_Default());
- }
-
- internal abstract byte[] GetLogoImage();
- internal abstract byte[] GetLoadingImage();
-
- internal static T CreateCat(string name, bool shouldRemoveOld = false) where T : new() => CreateCat(Path.Combine(ThemePath, $"{name}.cfg"), name, shouldRemoveOld);
- internal static T CreateCat(string filePath, string name, bool shouldRemoveOld = false) where T : new()
- {
- if (shouldRemoveOld)
- MelonPreferences.RemoveCategoryFromFile(FilePath, name);
- Preferences.MelonPreferences_ReflectiveCategory cat = MelonPreferences.CreateCategory(name, name);
- cat.SetFilePath(filePath, true, false);
- cat.SaveToFile(false);
- cat.DestroyFileWatcher();
- return cat.GetValue();
- }
-
- internal class cGeneral
- {
- [TomlPrecedingComment("Toggles the Entire Start Screen ( true | false )")]
- internal bool Enabled = true;
- [TomlPrecedingComment("Current Theme of the Start Screen")]
- internal string Theme = "Default";
- }
-
- internal class cBackground : ImageSettings
- {
- [TomlPrecedingComment("Solid RGBA Color of the Background")]
- internal Color SolidColor = new Color(0.08f, 0.09f, 0.10f);
- [TomlPrecedingComment("If it should stretch the Background to the Full Window Size")]
- internal bool StretchToScreen = true;
- }
-
- internal class ProgressTextSettings : TextSettings
- {
- public ProgressTextSettings()
- {
- Position.Item2 = 56;
- Anchor = UI_Anchor.MiddleCenter;
- ScreenAnchor = UI_Anchor.MiddleCenter;
- }
- }
-
- internal class cProgressBar : ElementSettings
- {
- public cProgressBar() => Defaults();
- public void Defaults()
- {
- Position.Item2 = 56;
- Size.Item1 = 540;
- Size.Item2 = 36;
-
- Anchor = UI_Anchor.MiddleCenter;
- ScreenAnchor = UI_Anchor.MiddleCenter;
- }
-
- [TomlPrecedingComment("Inner RGBA Color of the Progress Bar")]
- internal Color InnerColor = new Color(1.00f, 0.23f, 0.42f);
- [TomlPrecedingComment("Outer RGBA Color of the Progress Bar")]
- internal Color OuterColor = new Color(0.47f, 0.97f, 0.39f);
- }
-
- internal class VersionTextSettings : TextSettings
- {
- internal bool Is_ALPHA_PreRelease = false;
- public VersionTextSettings() => Defaults();
- public void Defaults()
- {
- if (Text == null)
- Text = $" v {(Is_ALPHA_PreRelease ? "ALPHA Pre-Release" : "Open-Beta")}";
- TextSize = 24;
- Anchor = UI_Anchor.MiddleCenter;
- ScreenAnchor = UI_Anchor.MiddleCenter;
- Position.Item2 = 16;
- }
- }
-
- internal class LogoImageSettings : ImageSettings
- {
- public LogoImageSettings()
- {
- Size.Item1 = 262;
- Size.Item2 = 212;
- Position.Item2 = -(Size.Item2 / 2);
-
- Anchor = UI_Anchor.MiddleCenter;
- ScreenAnchor = UI_Anchor.MiddleCenter;
- }
- }
-
- internal class LoadingImageSettings : ImageSettings
- {
- public LoadingImageSettings()
- {
- Position.Item2 = 35;
- Size.Item1 = 200;
- Size.Item2 = 132;
-
- Anchor = UI_Anchor.LowerRight;
- ScreenAnchor = UI_Anchor.LowerRight;
- }
- }
-
- internal class ElementSettings
- {
- [TomlPrecedingComment("Toggles the Element ( true | false )")]
- internal bool Enabled = true;
-
- [TomlPrecedingComment("Position of the Element")]
- internal LemonTuple Position = new LemonTuple();
- [TomlPrecedingComment("Size of the Element")]
- internal LemonTuple Size = new LemonTuple();
-
- [TomlPrecedingComment("Anchor of the Text relative to Itself ( \"None\" | \"UpperLeft\" | \"UpperCenter\" | \"UpperRight\" | \"MiddleLeft\" | \"MiddleCenter\" | \"MiddleRight\" | \"LowerLeft\" | \"LowerCenter\" | \"LowerRight\" )")]
- internal UI_Anchor Anchor = UI_Anchor.UpperLeft;
- [TomlPrecedingComment("Anchor of the Text relative to the Screen ( \"None\" | \"UpperLeft\" | \"UpperCenter\" | \"UpperRight\" | \"MiddleLeft\" | \"MiddleCenter\" | \"MiddleRight\" | \"LowerLeft\" | \"LowerCenter\" | \"LowerRight\" )")]
- internal UI_Anchor ScreenAnchor = UI_Anchor.UpperLeft;
- }
-
- internal class TextSettings : ElementSettings
- {
- [TomlPrecedingComment("UnityEngine.FontStyle of the Text ( \"Normal\" | \"Bold\" | \"Italic\" | \"BoldAndItalic\" )")]
- internal FontStyle Style = FontStyle.Bold;
- [TomlPrecedingComment("Is this Rich Text ( true | false )")]
- internal bool RichText = true;
- [TomlPrecedingComment("Size of the Text")]
- internal int TextSize = 16;
- [TomlPrecedingComment("Scale of the Text")]
- internal float Scale = 1f;
- [TomlPrecedingComment("Font of the Text")]
- internal string Font = "Arial";
- [TomlPrecedingComment("Scale of Line Spacing of the Text")]
- internal float LineSpacing = 1f;
- [TomlPrecedingComment("RGBA Color of the Text")]
- internal Color TextColor = new Color(1, 1, 1);
- [TomlPrecedingComment("Text to be Displayed")]
- internal string Text;
- }
-
- internal class ImageSettings : ElementSettings
- {
- [TomlPrecedingComment("If should Load Custom Image ( true | false )")]
- internal bool ScanForCustomImage = true;
-
- [TomlPrecedingComment("UnityEngine.FilterMode of the Image ( \"Point\" | \"Bilinear\" | \"Trilinear\" )")]
- internal FilterMode Filter = FilterMode.Bilinear;
-
- [TomlPrecedingComment("If the Image should attempt to Maintain it's Aspect Ratio")]
- internal bool MaintainAspectRatio = false;
- }
-
- private static Color ReadColor(TomlValue value)
- {
- float[] floats = MelonPreferences.Mapper.ReadArray(value);
- if (floats == null || floats.Length != 4)
- return default;
- return new Color(floats[0] / 255f, floats[1] / 255f, floats[2] / 255f, floats[3] / 255f);
- }
-
- private static TomlValue WriteColor(Color value)
- {
- float[] floats = new[] { value.r * 255, value.g * 255, value.b * 255, value.a * 255 };
- return MelonPreferences.Mapper.WriteArray(floats);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UI/UI_Utils.cs b/Dependencies/MelonStartScreen/UI/UI_Utils.cs
deleted file mode 100644
index 40943a57f..000000000
--- a/Dependencies/MelonStartScreen/UI/UI_Utils.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using System.IO;
-using System.Linq;
-using MelonUnityEngine;
-
-namespace MelonLoader.MelonStartScreen.UI
-{
- internal static class UI_Utils
- {
- internal static Texture2D CreateColorTexture(Color color)
- {
- Texture2D texture = new Texture2D(2, 2);
- texture.SetPixels(new Color[] { color, color, color, color });
- texture.Apply();
- return texture;
- }
-
- internal static Objects.UI_Image LoadImage(UI_Theme.ImageSettings imageSettings, string filename)
- {
- string filepath = ScanForFile(UI_Theme.ThemePath, filename, new string[] { ".gif", ".png", ".jpg", ".jpeg" });
- if (string.IsNullOrEmpty(filepath))
- return null;
-
- string fileext = Path.GetExtension(filepath).ToLowerInvariant();
-
- if (fileext.Equals(".gif"))
- return new Objects.UI_AnimatedImage(imageSettings, filepath);
-
- if (fileext.Equals(".png")
- || fileext.Equals(".jpg")
- || fileext.Equals(".jpeg"))
- return new Objects.UI_Image(imageSettings, filepath);
-
- return null;
- }
-
- internal static string ScanForFile(string folderPath, string filename, string[] fileExts)
- {
- string[] files = Directory.GetFiles(folderPath);
- if (files.Length <= 0)
- return null;
-
- string filename_lower = filename.ToLowerInvariant();
- return files.FirstOrDefault((string filepath) =>
- {
- string currentfilename = Path.GetFileNameWithoutExtension(filepath).ToLowerInvariant();
- if (!currentfilename.Equals(filename_lower))
- return false;
-
- string fileext = Path.GetExtension(filepath).ToLowerInvariant();
- return fileExts.Contains(fileext);
- });
- }
-
- internal static string RandomFolder(string folderPath)
- {
- string[] files = Directory.GetDirectories(folderPath);
- if (files.Length <= 0)
- return null;
- return files[MelonUtils.RandomInt(0, files.Length)];
- }
-
- internal static void AnchorToScreen(UI_Anchor anchor, int x, int y, out int out_x, out int out_y)
- {
- int sw = Screen.width;
- int sh = Screen.height - 35;
-
- switch (anchor)
- {
- // Upper
- case UI_Anchor.UpperLeft:
- y = sh - y;
- goto default;
- case UI_Anchor.UpperCenter:
- x = (sw / 2) + x;
- y = sh - y;
- goto default;
- case UI_Anchor.UpperRight:
- x = sw - x;
- y = sh - y;
- goto default;
-
- // Middle
- case UI_Anchor.MiddleLeft:
- y = (sh / 2) - y;
- goto default;
- case UI_Anchor.MiddleCenter:
- x = (sw / 2) + x;
- y = (sh / 2) - y;
- goto default;
- case UI_Anchor.MiddleRight:
- x = sw - x;
- y = (sh / 2) - y;
- goto default;
-
- // Lower
- case UI_Anchor.LowerCenter:
- x = (sw / 2) + x;
- goto default;
-
- case UI_Anchor.LowerRight:
- x = sw - x;
- goto default;
-
- // End
- case UI_Anchor.LowerLeft:
- default:
- out_x = x;
- out_y = y;
- break;
- }
- }
-
- internal static void AnchorToObject(UI_Anchor anchor, int x, int y, int width, int height, out int out_x, out int out_y)
- {
- switch (anchor)
- {
- // Upper
- case UI_Anchor.UpperCenter:
- x -= (width / 2);
- goto default;
- case UI_Anchor.UpperRight:
- x -= width;
- goto default;
-
- // Middle
- case UI_Anchor.MiddleLeft:
- y -= (height / 2);
- goto default;
- case UI_Anchor.MiddleCenter:
- y -= (height / 2);
- x -= (width / 2);
- goto default;
- case UI_Anchor.MiddleRight:
- y -= (height / 2);
- x -= width;
- goto default;
-
- // Lower
- case UI_Anchor.LowerLeft:
- y -= height;
- goto default;
- case UI_Anchor.LowerCenter:
- y -= height;
- x -= (width / 2);
- goto default;
- case UI_Anchor.LowerRight:
- y -= height;
- x -= width;
- goto default;
-
- // End
- case UI_Anchor.UpperLeft:
- default:
- out_x = x;
- out_y = y;
- break;
- }
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppException.cs b/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppException.cs
deleted file mode 100644
index 49c1552f1..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppException.cs
+++ /dev/null
@@ -1,35 +0,0 @@
-using System;
-using System.Text;
-#pragma warning disable 0649
-
-namespace UnhollowerMini
-{
- internal class Il2CppException : Exception
- {
- [ThreadStatic] private static byte[] ourMessageBytes;
-
- public static Func ParseMessageHook;
-
- public Il2CppException(IntPtr exception) : base(BuildMessage(exception)) { }
-
- private static unsafe string BuildMessage(IntPtr exception)
- {
- if (ParseMessageHook != null) return ParseMessageHook(exception);
- if (ourMessageBytes == null) ourMessageBytes = new byte[65536];
- fixed (byte* message = ourMessageBytes)
- UnityInternals.format_exception(exception, message, ourMessageBytes.Length);
- string builtMessage = Encoding.UTF8.GetString(ourMessageBytes, 0, Array.IndexOf(ourMessageBytes, (byte)0));
- fixed (byte* message = ourMessageBytes)
- UnityInternals.format_stack_trace(exception, message, ourMessageBytes.Length);
- builtMessage +=
- "\n" + Encoding.UTF8.GetString(ourMessageBytes, 0, Array.IndexOf(ourMessageBytes, (byte)0));
- return builtMessage;
- }
-
- public static void RaiseExceptionIfNecessary(IntPtr returnedException)
- {
- if (returnedException == IntPtr.Zero) return;
- throw new Il2CppException(returnedException);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Byte.cs b/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Byte.cs
deleted file mode 100644
index fd8c9d495..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Byte.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace Il2CppSystem
-{
- [StructLayout(LayoutKind.Explicit)]
- internal class Byte
- {
- [FieldOffset(0)]
- public byte m_value;
-
- static Byte()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("mscorlib.dll", "System", "Byte");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Int32.cs b/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Int32.cs
deleted file mode 100644
index c7e2df520..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Int32.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace Il2CppSystem
-{
- [StructLayout(LayoutKind.Explicit)]
- internal class Int32
- {
- [FieldOffset(0)]
- public int m_value;
-
- static Int32()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("mscorlib.dll", "System", "Int32");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Type.cs b/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Type.cs
deleted file mode 100644
index 307428ab3..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/Il2CppSystem/Type.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using MelonLoader;
-using System;
-using UnhollowerMini;
-
-namespace Il2CppSystem
-{
- internal class Type : InternalObjectBase
- {
- private static readonly IntPtr m_internal_from_handle;
-
- static Type()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("mscorlib.dll", "System", "Type");
-
- m_internal_from_handle = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "internal_from_handle", "System.Type", "System.IntPtr");
- }
-
- public Type(IntPtr ptr) : base(ptr) { }
-
- public unsafe static Type internal_from_handle(IntPtr handle)
- {
- void** args = stackalloc void*[1];
- args[0] = &handle;
- IntPtr returnedException = default;
- IntPtr intPtr = UnityInternals.runtime_invoke(Type.m_internal_from_handle, IntPtr.Zero, (void**)args, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return (intPtr != IntPtr.Zero) ? new Type(intPtr) : null;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/InternalClassPointerStore.cs b/Dependencies/MelonStartScreen/UnhollowerMini/InternalClassPointerStore.cs
deleted file mode 100644
index 37e0b0615..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/InternalClassPointerStore.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using MelonLoader;
-using System;
-using System.Runtime.CompilerServices;
-#pragma warning disable 0649
-
-namespace UnhollowerMini
-{
- internal static class InternalClassPointerStore
- {
- public static IntPtr NativeClassPtr;
- public static Type CreatedTypeRedirect;
-
- static InternalClassPointerStore()
- {
- var targetType = typeof(T);
-
- RuntimeHelpers.RunClassConstructor(targetType.TypeHandle);
-
- if (targetType.IsPrimitive || targetType == typeof(string))
- {
- MelonDebug.Msg("Running class constructor on Il2Cpp" + targetType.FullName);
- RuntimeHelpers.RunClassConstructor(typeof(InternalClassPointerStore<>).Assembly.GetType("Il2Cpp" + targetType.FullName).TypeHandle);
- MelonDebug.Msg("Done running class constructor");
- }
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/InternalObjectBase.cs b/Dependencies/MelonStartScreen/UnhollowerMini/InternalObjectBase.cs
deleted file mode 100644
index 478df5a69..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/InternalObjectBase.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-
-namespace UnhollowerMini
-{
- internal class InternalObjectBase
- {
- public IntPtr Pointer
- {
- get
- {
- var handleTarget = UnityInternals.gchandle_get_target(myGcHandle);
- if (handleTarget == IntPtr.Zero) throw new ObjectCollectedException("Object was garbage collected");
- return handleTarget;
- }
- }
-
- protected uint myGcHandle;
-
- protected InternalObjectBase() { }
-
- public InternalObjectBase(IntPtr pointer)
- {
- if (pointer == IntPtr.Zero)
- throw new NullReferenceException();
-
- myGcHandle = UnityInternals.gchandle_new(pointer, false);
- }
-
- ~InternalObjectBase()
- {
- UnityInternals.gchandle_free(myGcHandle);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/InternalType.cs b/Dependencies/MelonStartScreen/UnhollowerMini/InternalType.cs
deleted file mode 100644
index fa312cd03..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/InternalType.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using MelonLoader;
-using System;
-
-namespace UnhollowerMini
-{
- internal static class InternalType
- {
- public static Il2CppSystem.Type TypeFromPointer(IntPtr classPointer, string typeName = "")
- {
- if (classPointer == IntPtr.Zero) throw new ArgumentException($"{typeName} does not have a corresponding internal class pointer");
- var il2CppType = UnityInternals.class_get_type(classPointer);
- if (il2CppType == IntPtr.Zero) throw new ArgumentException($"{typeName} does not have a corresponding class type pointer");
- return Il2CppSystem.Type.internal_from_handle(il2CppType);
- }
-
- public static Il2CppSystem.Type Of()
- {
- var classPointer = InternalClassPointerStore.NativeClassPtr;
- return TypeFromPointer(classPointer, typeof(T).Name);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/ObjectCollectedException.cs b/Dependencies/MelonStartScreen/UnhollowerMini/ObjectCollectedException.cs
deleted file mode 100644
index dd681b28b..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/ObjectCollectedException.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System;
-
-namespace UnhollowerMini
-{
- internal class ObjectCollectedException : Exception
- {
- public ObjectCollectedException(string message) : base(message) { }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnhollowerMini/UnityInternals.cs b/Dependencies/MelonStartScreen/UnhollowerMini/UnityInternals.cs
deleted file mode 100644
index 9265239fb..000000000
--- a/Dependencies/MelonStartScreen/UnhollowerMini/UnityInternals.cs
+++ /dev/null
@@ -1,696 +0,0 @@
-using MelonLoader;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-namespace UnhollowerMini
-{
- internal static unsafe class UnityInternals
- {
- private delegate void delegate_gfunc_mono_assembly_foreach(IntPtr assembly, IntPtr user_data);
-
- private static readonly IntPtr domain;
- private static readonly List assemblies = new List();
-
- private static readonly uint monoClassOffset = 0;
-
- unsafe static UnityInternals()
- {
- if (MelonUtils.IsGameIl2Cpp())
- {
- domain = il2cpp_domain_get();
-
- uint assemblyCount = 0;
- IntPtr* assemblyArray = il2cpp_domain_get_assemblies(domain, ref assemblyCount);
- for (int i = 0; i < assemblyCount; ++i)
- assemblies.Add(new InternalAssembly(il2cpp_assembly_get_image(*(assemblyArray + i))));
- }
- else
- {
- domain = mono_domain_get();
-
- MonoClass* testclass = (MonoClass*)Marshal.AllocHGlobal(sizeof(MonoClass));
- testclass->applyZeroes();
- testclass->nested_in_0x04 = (IntPtr)0x1234;
- testclass->nested_in_0x08 = (IntPtr)0x5678;
- testclass->nested_in_0x0C = (IntPtr)0x9012;
- long returnedName = (long)mono_class_get_name((IntPtr)testclass);
- MelonDebug.Msg($"returnedName {returnedName:X}");
- Marshal.FreeHGlobal((IntPtr)testclass);
- if (returnedName == 0x1234)
- monoClassOffset = 0;
- else if (returnedName == 0x5678)
- monoClassOffset = (uint)IntPtr.Size * 1;
- else if (returnedName == 0x9012)
- monoClassOffset = (uint)IntPtr.Size * 2;
- else
- throw new Exception("Failed to find MonoClass name offset");
-
- MelonDebug.Msg("monoClassOffset? " + monoClassOffset);
- }
- }
-
- private class InternalAssembly
- {
- public IntPtr ptr;
- public string name;
-
- public InternalAssembly(IntPtr ptr)
- {
- this.ptr = ptr;
- if (MelonUtils.IsGameIl2Cpp())
- {
- name = Marshal.PtrToStringAnsi(il2cpp_image_get_filename(this.ptr));
- }
- else
- {
- name = Marshal.PtrToStringAnsi(mono_image_get_filename(this.ptr));
- }
- }
- }
-
- private class InternalClass
- {
- public IntPtr ptr;
- public string name;
- public string name_space;
-
- public InternalClass(IntPtr ptr)
- {
- this.ptr = ptr;
- if (MelonUtils.IsGameIl2Cpp())
- {
- name = Marshal.PtrToStringAnsi(il2cpp_class_get_name(ptr));
- name_space = Marshal.PtrToStringAnsi(il2cpp_class_get_namespace(ptr));
- }
- else
- {
- throw new NotImplementedException();
- }
- }
-
- public InternalClass(IntPtr ptr, string name, string name_space)
- {
- if (MelonUtils.IsGameIl2Cpp())
- {
- throw new NotImplementedException();
- }
- else
- {
- this.ptr = ptr;
- this.name = name;
- this.name_space = name_space;
- }
- }
- }
-
-
- internal static IntPtr GetClass(string assemblyname, string name_space, string classname)
- {
- MelonDebug.Msg($"GetClass {assemblyname} {name_space} {classname}");
- if (MelonUtils.IsGameIl2Cpp())
- {
- InternalAssembly assembly = assemblies.FirstOrDefault(a => a.name == assemblyname);
- if (assembly == null)
- {
- throw new Exception("Unable to find assembly " + assemblyname + " in il2cpp domain");
- }
-
- IntPtr clazz = il2cpp_class_from_name(assembly.ptr, name_space, classname);
- if (clazz == IntPtr.Zero)
- {
- throw new Exception("Unable to find class " + name_space + "." + classname + " in assembly " + assemblyname);
- }
-
- MelonDebug.Msg($" > 0x{(long)clazz:X}");
- return clazz;
- }
- else
- {
- string fullname = string.IsNullOrEmpty(name_space) ? "" : (name_space + ".") + classname;
-
- Assembly ass = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(a => a.GetName().Name + ".dll" == assemblyname);
- if (ass == null)
- {
- throw new Exception("Unable to find assembly " + assemblyname + " in mono domain");
- }
-
- Type t = ass.GetType(fullname);
- if (t == null)
- {
- throw new Exception("Unable to find class " + fullname + " in assembly " + assemblyname);
- }
- MelonDebug.Msg($" > 0x{(long)(*(IntPtr*)t.TypeHandle.Value):X}");
-
- return *(IntPtr*)t.TypeHandle.Value;
- }
- }
-
- public static IntPtr GetField(IntPtr clazz, string fieldName)
- {
- MelonDebug.Msg($"GetField {fieldName}");
- if (clazz == IntPtr.Zero)
- return IntPtr.Zero;
-
- var field = MelonUtils.IsGameIl2Cpp() ? il2cpp_class_get_field_from_name(clazz, fieldName) : mono_class_get_field_from_name(clazz, fieldName);
- if (field == IntPtr.Zero)
- throw new Exception($"Field {fieldName} was not found on class {Marshal.PtrToStringAnsi(MelonUtils.IsGameIl2Cpp() ? il2cpp_class_get_name(clazz) : mono_class_get_name(clazz))}");
- MelonDebug.Msg($" > 0x{(long)field:X}");
- return field;
- }
-
- internal static IntPtr GetMethod(IntPtr clazz, string name, string returntype, params string[] parameters)
- {
- MelonDebug.Msg($"GetMethod {returntype} {name}({string.Join(", ", parameters)})");
- if (MelonUtils.IsGameIl2Cpp())
- {
- IntPtr iter = IntPtr.Zero;
- IntPtr element;
- while ((element = il2cpp_class_get_methods(clazz, ref iter)) != IntPtr.Zero)
- {
- if (Marshal.PtrToStringAnsi(il2cpp_method_get_name(element)) != name)
- continue;
-
- if (Marshal.PtrToStringAnsi(il2cpp_type_get_name(il2cpp_method_get_return_type(element))) != returntype)
- continue;
-
- if (parameters.Length != il2cpp_method_get_param_count(element))
- continue;
-
- bool hasValidParameters = true;
- for (uint i = 0; i < parameters.Length; ++i)
- {
- if (Marshal.PtrToStringAnsi(il2cpp_type_get_name(il2cpp_method_get_param(element, i))) != parameters[i])
- {
- hasValidParameters = false;
- break;
- }
- }
-
- if (hasValidParameters)
- {
- MelonDebug.Msg($" > 0x{(long)element:X}");
- return element;
- }
- }
- }
- else
- {
-
- IntPtr iter = IntPtr.Zero;
- IntPtr element;
- while ((element = mono_class_get_methods(clazz, ref iter)) != IntPtr.Zero)
- {
- if (Marshal.PtrToStringAnsi(mono_method_get_name(element)) != name)
- continue;
-
- IntPtr sig = mono_method_get_signature(element, IntPtr.Zero, 0);
- if (Marshal.PtrToStringAnsi(mono_type_get_name(mono_signature_get_return_type(sig))) != returntype)
- continue;
- if (parameters.Length != mono_signature_get_param_count(sig))
- continue;
-
- bool hasValidParameters = true;
- IntPtr iter2 = IntPtr.Zero;
- IntPtr param;
- int i = 0;
- while ((param = mono_signature_get_params(sig, ref iter2)) != IntPtr.Zero)
- {
- if (Marshal.PtrToStringAnsi(mono_type_get_name(param)) != parameters[i])
- {
- hasValidParameters = false;
- break;
- }
- ++i;
- }
-
- if (hasValidParameters)
- {
- MelonDebug.Msg($" > 0x{(long)element:X}");
- return element;
- }
- }
- }
- //MelonLogger.Error($"Unable to find method {returntype} {name}({string.Join(", ", parameters)})");
- //return IntPtr.Zero;
- throw new Exception($"Unable to find method {returntype} {name}({string.Join(", ", parameters)})");
- }
-
- public static IntPtr ObjectBaseToPtr(InternalObjectBase obj)
- {
- return obj?.Pointer ?? IntPtr.Zero;
- }
-
- public static IntPtr ObjectBaseToPtrNotNull(InternalObjectBase obj)
- {
- return obj?.Pointer ?? throw new NullReferenceException();
- }
-
- public static IntPtr ManagedStringToInternal(string str)
- {
- if (str == null) return IntPtr.Zero;
-
- fixed (char* chars = str)
- return MelonUtils.IsGameIl2Cpp() ? il2cpp_string_new_utf16(chars, str.Length) : mono_string_new_utf16(domain, chars, str.Length);
- }
-
- public static IntPtr ResolveICall(string signature)
- {
- MelonDebug.Msg("Resolving ICall " + signature);
- IntPtr icallPtr;
- if (MelonUtils.IsGameIl2Cpp())
- icallPtr = il2cpp_resolve_icall(signature);
- else
- {
- // We generate a fake MonoMethod + MonoMethodSignature + MonoClass struct to exploit the lookup code and force resolve our icall without the class/method being registered
- // (Slaynash: Yes this is illegal)
- MonoMethod* monoMethod = IcallToFakeMonoMethod(signature);
- icallPtr = mono_lookup_internal_call((IntPtr)monoMethod);
- DestroyFakeMonoMethod(monoMethod);
- }
-
- if (icallPtr == IntPtr.Zero)
- {
- //MelonLogger.Error($"ICall {signature} not resolved");
- //return IntPtr.Zero;
- throw new Exception($"ICall {signature} not resolved");
- }
- MelonDebug.Msg($" > 0x{(long)icallPtr:X}");
-
- return icallPtr;
- }
-
- public static T ResolveICall(string signature) where T : Delegate
- {
- IntPtr icallPtr = ResolveICall(signature);
- return icallPtr == IntPtr.Zero ? null : (T)Marshal.GetDelegateForFunctionPointer(icallPtr, typeof(T));
- }
-
- private static unsafe MonoMethod* IcallToFakeMonoMethod(string icallName)
- {
- string[] typeAndMethod = icallName.Split(new[] { "::" }, StringSplitOptions.None);
- int parenthesisIndex = typeAndMethod[1].IndexOf('(');
- if (parenthesisIndex >= 0)
- typeAndMethod[1] = typeAndMethod[1].Substring(0, parenthesisIndex);
- // We add a padding to the end of each allocated memory since our structs are supposed to be bigger than the one we have here
- MonoMethod* monoMethod = (MonoMethod*)Marshal.AllocHGlobal(sizeof(MonoMethod) + 0x100);
- monoMethod->applyZeroes();
- monoMethod->klass = (MonoClass*)Marshal.AllocHGlobal(sizeof(MonoClass) + 0x100);
- monoMethod->klass->applyZeroes();
- monoMethod->name = (byte*)Marshal.StringToHGlobalAnsi(typeAndMethod[1]);
- int lastDotIndex = typeAndMethod[0].LastIndexOf('.');
- if (lastDotIndex < 0)
- {
- *(IntPtr*)((long)&monoMethod->klass->nested_in_0x08 + monoClassOffset) = Marshal.StringToHGlobalAnsi("");
- *(IntPtr*)((long)&monoMethod->klass->nested_in_0x04 + monoClassOffset) = Marshal.StringToHGlobalAnsi(typeAndMethod[0]);
- }
- else
- {
- string name_space = typeAndMethod[0].Substring(0, lastDotIndex);
- string name = typeAndMethod[0].Substring(lastDotIndex + 1);
- *(IntPtr*)((long)&monoMethod->klass->nested_in_0x08 + monoClassOffset) = Marshal.StringToHGlobalAnsi(name_space);
- *(IntPtr*)((long)&monoMethod->klass->nested_in_0x04 + monoClassOffset) = Marshal.StringToHGlobalAnsi(name);
- }
-
- MonoMethodSignature* monoMethodSignature = (MonoMethodSignature*)Marshal.AllocHGlobal(sizeof(MonoMethodSignature));
- monoMethodSignature->ApplyZeroes();
- monoMethod->signature = monoMethodSignature;
-
- return monoMethod;
- }
-
- private static unsafe void DestroyFakeMonoMethod(MonoMethod* monoMethod)
- {
- Marshal.FreeHGlobal((IntPtr)monoMethod->signature);
- Marshal.FreeHGlobal(*(IntPtr*)((long)&monoMethod->klass->nested_in_0x04 + monoClassOffset));
- Marshal.FreeHGlobal(*(IntPtr*)((long)&monoMethod->klass->nested_in_0x08 + monoClassOffset));
- Marshal.FreeHGlobal((IntPtr)monoMethod->klass);
- Marshal.FreeHGlobal((IntPtr)monoMethod->name);
- Marshal.FreeHGlobal((IntPtr)monoMethod);
- }
-
- [StructLayout(LayoutKind.Sequential)]
- private struct MonoMethod
- {
- public ushort flags; /* method flags */
- public ushort iflags; /* method implementation flags */
- public uint token;
- public MonoClass* klass; /* To what class does this method belong */
- public MonoMethodSignature* signature;
- /* name is useful mostly for debugging */
- public byte* name;
-
- public IntPtr method_pointer;
- public IntPtr invoke_pointer;
-
- /* this is used by the inlining algorithm */
- public ushort bitfield;
- public int slot;
-
- internal void applyZeroes()
- {
- flags = 0;
- iflags = 0;
- token = 0;
- klass = (MonoClass*)0;
- signature = (MonoMethodSignature*)0;
- name = (byte*)0;
- method_pointer = IntPtr.Zero;
- invoke_pointer = IntPtr.Zero;
- bitfield = 0;
- slot = 0;
- }
- }
-
- [StructLayout(LayoutKind.Sequential)]
- private struct MonoMethodSignature
- {
- public IntPtr ret;
- public ushort param_cout;
- // ...
-
- internal void ApplyZeroes()
- {
- ret = (IntPtr)0;
- param_cout = 0;
- }
- }
-
- [StructLayout(LayoutKind.Sequential)]
- private struct MonoClass
- {
- /* element class for arrays and enum basetype for enums */
- public MonoClass* element_class;
- /* used for subtype checks */
- public MonoClass* cast_class;
-
- /* for fast subtype checks */
- public MonoClass** supertypes;
- public ushort idepth;
-
- /* array dimension */
- public byte rank; // 0x0E
-
- /* One of the values from MonoTypeKind */
- public byte class_kind;
-
- public int instance_size; // 0x10
-
- public uint bitfield1; // 0x14
-
- public byte min_align; // 0x18
-
- public uint bitfield2; // 0x1C
-
- byte exception_type;
-
- public MonoClass* parent; // 0x24
- public MonoClass* nested_in; // 0x28 // Should always be null
-
- //public IntPtr cattrs; // 0x2C
-
- //
- // Starting here (unity version from 2014+), fields will be offset by IntPtr.Size
- //
-
- public IntPtr nested_in_0x04; // 0x2C - 0x30
- public IntPtr nested_in_0x08; // 0x30 - 0x34
- public IntPtr nested_in_0x0C; // 0x34 - 0x38
- public IntPtr nested_in_0x10; // 0x38 - 0x3C
-
- // ...
-
- internal void applyZeroes()
- {
- element_class = (MonoClass*)0;
- cast_class = (MonoClass*)0;
- supertypes = (MonoClass**)0;
- idepth = 0;
- rank = 0;
- class_kind = 0;
- instance_size = 0;
- bitfield1 = 0;
- min_align = 0;
- bitfield2 = 0;
- exception_type = 0;
- parent = (MonoClass*)0;
- nested_in = (MonoClass*)0;
- nested_in_0x04 = (IntPtr)0;
- nested_in_0x08 = (IntPtr)0;
- nested_in_0x0C = (IntPtr)0;
- nested_in_0x10 = (IntPtr)0;
- }
- }
-
- private struct MonoType
- {
- public IntPtr data;
- public short attrs;
- public byte type;
- public byte bitflags;
-
- internal void applyZeroes()
- {
- data = (IntPtr)0;
- attrs = 0;
- type = 0;
- bitflags = 0;
- }
- }
-
- public static IntPtr class_get_type(IntPtr klass)
- {
- return MelonUtils.IsGameIl2Cpp() ? il2cpp_class_get_type(klass) : mono_class_get_type(klass);
- }
-
- public static void runtime_class_init(IntPtr klass)
- {
- if (klass == IntPtr.Zero)
- throw new ArgumentException("Class to init is null");
-
- if (MelonUtils.IsGameIl2Cpp()) il2cpp_runtime_class_init(klass); else mono_runtime_class_init(klass);
- }
-
- public static IntPtr runtime_invoke(IntPtr method, IntPtr obj, void** param, ref IntPtr exc) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_runtime_invoke(method, obj, param, ref exc) : mono_runtime_invoke(method, obj, param, ref exc);
-
- public static IntPtr array_new(IntPtr elementTypeInfo, ulong length) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_array_new(elementTypeInfo, length) : mono_array_new(domain, elementTypeInfo, length);
-
- public static uint array_length(IntPtr array) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_array_length(array) : *(uint*)((long)array + IntPtr.Size * 3);
-
- public static uint field_get_offset(IntPtr field) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_field_get_offset(field) : mono_field_get_offset(field);
-
- public static IntPtr object_unbox(IntPtr obj) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_object_unbox(obj) : mono_object_unbox(obj);
-
- public static IntPtr object_new(IntPtr klass) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_object_new(klass) : mono_object_new(domain, klass);
-
- public static int class_value_size(IntPtr klass, ref uint align) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_class_value_size(klass, ref align) : mono_class_value_size(klass, ref align);
-
- public static uint gchandle_new(IntPtr obj, bool pinned) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_gchandle_new(obj, pinned) : mono_gchandle_new(obj, pinned ? 1 : 0);
- public static void gchandle_free(uint gchandle)
- { if (MelonUtils.IsGameIl2Cpp()) il2cpp_gchandle_free(gchandle); else mono_gchandle_free(gchandle); }
- public static IntPtr gchandle_get_target(uint gchandle) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_gchandle_get_target(gchandle) : mono_gchandle_get_target(gchandle);
-
- public static IntPtr value_box(IntPtr klass, IntPtr val) =>
- MelonUtils.IsGameIl2Cpp() ? il2cpp_value_box(klass, val) : mono_value_box(domain, klass, val);
-
- public static void format_exception(IntPtr ex, void* message, int message_size)
- {
- if (MelonUtils.IsGameIl2Cpp())
- il2cpp_format_exception(ex, message, message_size);
- // TODO Mono mono_format_exception
- }
-
- public static void format_stack_trace(IntPtr ex, void* output, int output_size)
- {
- if (MelonUtils.IsGameIl2Cpp())
- il2cpp_format_stack_trace(ex, output, output_size);
- // TODO mono_format_stack_trace
- }
-
-
- // Mono Functions
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_domain_get();
-
- /*
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr* mono_domain_get_assemblies(IntPtr domain, ref uint size);
- */
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void mono_assembly_foreach(delegate_gfunc_mono_assembly_foreach func, IntPtr user_data);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_assembly_get_image(IntPtr assembly);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_image_get_filename(IntPtr image);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint mono_image_get_class_count(IntPtr image);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_image_get_class(IntPtr image, uint index);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_class_get_name(IntPtr klass);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_class_get_namespace(IntPtr klass);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_lookup_internal_call(IntPtr method);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- public static extern IntPtr mono_class_get_type(IntPtr klass);
-
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern unsafe IntPtr mono_runtime_invoke(IntPtr method, IntPtr obj, void** param, ref IntPtr exc);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void mono_runtime_class_init(IntPtr klass);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_array_new(IntPtr domain, IntPtr eclass, ulong n);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint mono_field_get_offset(IntPtr field);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_object_unbox(IntPtr obj);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_object_new(IntPtr domain, IntPtr klass);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern int mono_class_value_size(IntPtr klass, ref uint align);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint mono_gchandle_new(IntPtr obj, int pinned);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void mono_gchandle_free(uint gchandle);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_gchandle_get_target(uint gchandle);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_class_get_field_from_name(IntPtr klass, [MarshalAs(UnmanagedType.LPStr)] string name);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_value_box(IntPtr domain, IntPtr klass, IntPtr data);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_class_get_methods(IntPtr klass, ref IntPtr iter);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- public static extern IntPtr mono_method_get_name(IntPtr method);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_type_get_name(IntPtr type);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_image_get_table_info(IntPtr image, int table_id);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern int mono_table_info_get_rows(IntPtr table);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void mono_metadata_decode_row(IntPtr t, int idx, uint[] res, int res_size);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_metadata_string_heap(IntPtr meta, uint index);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_class_from_name(IntPtr image, string name_space, string name);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_domain_try_type_resolve(IntPtr domain, string name, IntPtr typebuilder_raw);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_method_get_signature(IntPtr method, IntPtr image, uint token);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_signature_get_return_type(IntPtr sig);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint mono_signature_get_param_count(IntPtr sig);
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_signature_get_params(IntPtr sig, ref IntPtr iter);
-
- [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr mono_string_new_utf16(IntPtr domain, char* text, int len);
-
-
-
-
- // IL2CPP Functions
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_domain_get();
-
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_resolve_icall([MarshalAs(UnmanagedType.LPStr)] string name);
-
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint il2cpp_array_length(IntPtr array);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_array_new(IntPtr elementTypeInfo, ulong length);
-
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_assembly_get_image(IntPtr assembly);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_class_get_field_from_name(IntPtr klass, [MarshalAs(UnmanagedType.LPStr)] string name);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_class_get_methods(IntPtr klass, ref IntPtr iter);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_class_get_name(IntPtr klass);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_class_get_namespace(IntPtr klass);
-
-
-
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- public static extern IntPtr il2cpp_class_get_type(IntPtr klass);
-
-
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern int il2cpp_class_value_size(IntPtr klass, ref uint align);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr* il2cpp_domain_get_assemblies(IntPtr domain, ref uint size);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void il2cpp_format_exception(IntPtr ex, void* message, int message_size);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void il2cpp_format_stack_trace(IntPtr ex, void* output, int output_size);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint il2cpp_field_get_offset(IntPtr field);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint il2cpp_gchandle_new(IntPtr obj, bool pinned);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_gchandle_get_target(uint gchandle);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void il2cpp_gchandle_free(uint gchandle);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_method_get_return_type(IntPtr method);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern uint il2cpp_method_get_param_count(IntPtr method);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_method_get_param(IntPtr method, uint index);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- public static extern IntPtr il2cpp_method_get_name(IntPtr method);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_object_new(IntPtr klass);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_object_unbox(IntPtr obj);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_value_box(IntPtr klass, IntPtr data);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern unsafe IntPtr il2cpp_runtime_invoke(IntPtr method, IntPtr obj, void** param, ref IntPtr exc);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern void il2cpp_runtime_class_init(IntPtr klass);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_string_new_utf16(char* text, int len);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_type_get_name(IntPtr type);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_image_get_filename(IntPtr image);
- [DllImport("GameAssembly", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
- private static extern IntPtr il2cpp_class_from_name(IntPtr image, string namespaze, string name);
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Color.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Color.cs
deleted file mode 100644
index f390cb358..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Color.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Color
- {
- private static readonly IntPtr m_ToString;
-
- [FieldOffset(0)]
- public float r;
- [FieldOffset(4)]
- public float g;
- [FieldOffset(8)]
- public float b;
- [FieldOffset(12)]
- public float a;
-
- static Color()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Color");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
- m_ToString = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "ToString", "System.String");
- }
-
- public Color(float r, float g, float b, float a = 1f)
- {
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Color32.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Color32.cs
deleted file mode 100644
index 39bc045c9..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Color32.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Color32
- {
- [FieldOffset(0)]
- public byte r;
- [FieldOffset(1)]
- public byte g;
- [FieldOffset(2)]
- public byte b;
- [FieldOffset(3)]
- public byte a;
-
- [FieldOffset(0)]
- public int rgba;
-
- static Color32()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Color32");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
- }
-
- public Color32(byte r, byte g, byte b, byte a)
- {
- this.rgba = 0;
- this.r = r;
- this.g = g;
- this.b = b;
- this.a = a;
- }
-
- public static implicit operator Color(Color32 c)
- {
- return new Color(c.r / 255f, c.g / 255f, c.b / 255f, c.a / 255f);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/FilterMode.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/FilterMode.cs
deleted file mode 100644
index 05122e2f4..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/FilterMode.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace MelonUnityEngine
-{
- internal enum FilterMode
- {
- Point,
- Bilinear,
- Trilinear
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/GL.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/GL.cs
deleted file mode 100644
index 045bc4059..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/GL.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal sealed class GL
- {
- private delegate bool d_get_sRGBWrite();
- private static readonly d_get_sRGBWrite m_get_sRGBWrite;
-
- unsafe static GL()
- {
- m_get_sRGBWrite = UnityInternals.ResolveICall("UnityEngine.GL::get_sRGBWrite");
- }
-
- public unsafe static bool sRGBWrite
- {
- get => m_get_sRGBWrite();
- // set
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Graphics.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Graphics.cs
deleted file mode 100644
index a01bd0ac3..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Graphics.cs
+++ /dev/null
@@ -1,117 +0,0 @@
-using MelonLoader;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Graphics : InternalObjectBase
- {
- private delegate IntPtr Internal_DrawMeshNow1_InjectedDelegate(IntPtr mesh, int subsetIndex, ref Vector3 position, ref Quaternion rotation);
- private delegate void Internal_DrawTextureDelegate2017(ref Internal_DrawTextureArguments_2017 args);
- private delegate void Internal_DrawTextureDelegate2018(ref Internal_DrawTextureArguments_2018 args);
- private delegate void Internal_DrawTextureDelegate2019(ref Internal_DrawTextureArguments_2019 args);
- private delegate void Internal_DrawTextureDelegate2020(ref Internal_DrawTextureArguments_2020 args);
-
- private static readonly Internal_DrawTextureDelegate2017 fd_Internal_DrawTexture2017;
- private static readonly Internal_DrawTextureDelegate2018 fd_Internal_DrawTexture2018;
- private static readonly Internal_DrawTextureDelegate2019 fd_Internal_DrawTexture2019;
- private static readonly Internal_DrawTextureDelegate2020 fd_Internal_DrawTexture2020;
- private static readonly Internal_DrawMeshNow1_InjectedDelegate fd_Internal_DrawMeshNow1_Injected;
-
- private static readonly int m_DrawTexture_Internal_struct = -1;
-
- unsafe static Graphics()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Graphics");
- fd_Internal_DrawTexture2017 = UnityInternals.ResolveICall("UnityEngine.Graphics::Internal_DrawTexture");
- fd_Internal_DrawTexture2018 = UnityInternals.ResolveICall("UnityEngine.Graphics::Internal_DrawTexture");
- fd_Internal_DrawTexture2019 = UnityInternals.ResolveICall("UnityEngine.Graphics::Internal_DrawTexture");
- fd_Internal_DrawTexture2020 = UnityInternals.ResolveICall("UnityEngine.Graphics::Internal_DrawTexture");
-
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2018.2.0", "2019.1.0" }))
- fd_Internal_DrawMeshNow1_Injected = UnityInternals.ResolveICall("UnityEngine.Graphics::Internal_DrawMeshNow1_Injected");
- else
- fd_Internal_DrawMeshNow1_Injected = UnityInternals.ResolveICall("UnityEngine.Graphics::INTERNAL_CALL_Internal_DrawMeshNow1");
-
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2019.3.0", "2020.1.0" }))
- m_DrawTexture_Internal_struct = 3;
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2018.2.0", "2019.1.0" }))
- m_DrawTexture_Internal_struct = 2;
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2017.3.0", "2018.1.0" }))
- m_DrawTexture_Internal_struct = 1;
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2017.2.0" }))
- m_DrawTexture_Internal_struct = 0;
- }
-
- public Graphics(IntPtr ptr) : base(ptr) { }
-
- public unsafe static void DrawTexture(Rect screenRect, Texture2D texture)
- {
- if ((texture == null) || (texture.Pointer == IntPtr.Zero))
- return;
-
- if (m_DrawTexture_Internal_struct == 0)
- {
- Internal_DrawTextureArguments_2017 args = default;
- args.screenRect = screenRect;
- args.sourceRect = new Rect(0, 0, 1, 1);
- args.color = new Color32(128, 128, 128, 128);
- args.texture = UnityInternals.ObjectBaseToPtrNotNull(texture);
- fd_Internal_DrawTexture2017(ref args);
- }
- else if (m_DrawTexture_Internal_struct == 1)
- {
- Internal_DrawTextureArguments_2018 args = default;
- args.screenRect = screenRect;
- args.sourceRect = new Rect(0, 0, 1, 1);
- args.color = new Color32(128, 128, 128, 128);
- args.texture = UnityInternals.ObjectBaseToPtrNotNull(texture);
- fd_Internal_DrawTexture2018(ref args);
- }
- else if (m_DrawTexture_Internal_struct == 2)
- {
- Internal_DrawTextureArguments_2019 args = default;
- args.screenRect = screenRect;
- args.sourceRect = new Rect(0, 0, 1, 1);
- args.color = new Color(0.5f, 0.5f, 0.5f, 0.5f);
- args.texture = UnityInternals.ObjectBaseToPtrNotNull(texture);
- fd_Internal_DrawTexture2019(ref args);
- }
- else if (m_DrawTexture_Internal_struct == 3)
- {
- Internal_DrawTextureArguments_2020 args = default;
- args.screenRect = screenRect;
- args.sourceRect = new Rect(0, 0, 1, 1);
- args.color = new Color(0.5f, 0.5f, 0.5f, 0.5f);
- args.leftBorderColor = new Color(0, 0, 0, 1);
- args.topBorderColor = new Color(0, 0, 0, 1);
- args.rightBorderColor = new Color(0, 0, 0, 1);
- args.bottomBorderColor = new Color(0, 0, 0, 1);
- args.smoothCorners = true;
- args.texture = UnityInternals.ObjectBaseToPtrNotNull(texture);
- fd_Internal_DrawTexture2020(ref args);
- }
- }
-
- public static void DrawMeshNow(Mesh mesh, Vector3 position, Quaternion rotation) =>
- DrawMeshNow(mesh, position, rotation, -1);
-
- public static void DrawMeshNow(Mesh mesh, Vector3 position, Quaternion rotation, int materialIndex)
- {
- if (mesh == null)
- throw new ArgumentNullException("mesh");
- Internal_DrawMeshNow1(mesh, materialIndex, position, rotation);
- }
-
- private static void Internal_DrawMeshNow1(Mesh mesh, int subsetIndex, Vector3 position, Quaternion rotation) =>
- Internal_DrawMeshNow1_Injected(mesh, subsetIndex, ref position, ref rotation);
-
- private static void Internal_DrawMeshNow1_Injected(Mesh mesh, int subsetIndex, ref Vector3 position, ref Quaternion rotation)
- {
- if ((mesh == null) || (mesh.Pointer == IntPtr.Zero))
- return;
- fd_Internal_DrawMeshNow1_Injected(UnityInternals.ObjectBaseToPtr(mesh), subsetIndex, ref position, ref rotation);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/HideFlags.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/HideFlags.cs
deleted file mode 100644
index 86fa181e8..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/HideFlags.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace MelonUnityEngine
-{
- internal enum HideFlags
- {
- None = 0,
- HideInHierarchy = 1,
- HideInInspector = 2,
- DontSaveInEditor = 4,
- NotEditable = 8,
- DontSaveInBuild = 16,
- DontUnloadUnusedAsset = 32,
- DontSave = 52,
- HideAndDontSave = 61
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/ImageConversion.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/ImageConversion.cs
deleted file mode 100644
index 50843ca85..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/ImageConversion.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using MelonLoader;
-using System;
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal static class ImageConversion
- {
- private delegate bool ImageConversion_LoadImage_Delegate(IntPtr tex, IntPtr data, bool markNonReadable);
- private static ImageConversion_LoadImage_Delegate ImageConversion_LoadImage;
-
- static ImageConversion()
- {
- IntPtr ptr = UnityInternals.ResolveICall("UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)");
- if (ptr != IntPtr.Zero)
- ImageConversion_LoadImage = (ImageConversion_LoadImage_Delegate)Marshal.GetDelegateForFunctionPointer(ptr, typeof(ImageConversion_LoadImage_Delegate));
- else
- MelonLogger.Error("Failed to resolve icall UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)");
- }
-
- public unsafe static bool LoadImage(Texture2D tex, byte[] data, bool markNonReadable)
- {
- if (ImageConversion_LoadImage == null)
- {
- MelonLogger.Error("Failed to run UnityEngine.ImageConversion::LoadImage(UnityEngine.Texture2D,System.Byte[],System.Boolean)");
- return false;
- }
-
- IntPtr dataPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (uint)data.Length);
- for (var i = 0; i < data.Length; i++)
- {
- IntPtr arrayStartPointer = (IntPtr)((long)dataPtr + 4 * IntPtr.Size);
- ((byte*)arrayStartPointer.ToPointer())[i] = data[i];
- }
-
- return ImageConversion_LoadImage(tex.Pointer, dataPtr, markNonReadable);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Internal_DrawTextureArguments.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Internal_DrawTextureArguments.cs
deleted file mode 100644
index 6fb630c01..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Internal_DrawTextureArguments.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-
-namespace MelonUnityEngine
-{
- // 2017.2.0
- [StructLayout(LayoutKind.Sequential)]
- internal struct Internal_DrawTextureArguments_2017
- {
- public Rect screenRect;
- public Rect sourceRect;
- public int leftBorder;
- public int rightBorder;
- public int topBorder;
- public int bottomBorder;
- public Color32 color;
- public Vector4 borderWidths;
- public float cornerRadius;
- public int pass;
- public IntPtr texture;
- public IntPtr mat;
- }
-
- // 2017.3.0, 2018.1.0
- [StructLayout(LayoutKind.Sequential)]
- internal struct Internal_DrawTextureArguments_2018
- {
- public Rect screenRect;
- public Rect sourceRect;
- public int leftBorder;
- public int rightBorder;
- public int topBorder;
- public int bottomBorder;
- public Color32 color;
- public Vector4 borderWidths;
- public Vector4 cornerRadius; // Int32 -> Vector4
- public int pass;
- public IntPtr texture;
- public IntPtr mat;
- }
-
- // 2018.2.0, 2019.1.0
- [StructLayout(LayoutKind.Sequential)]
- internal struct Internal_DrawTextureArguments_2019
- {
- public Rect screenRect;
- public Rect sourceRect;
- public int leftBorder;
- public int rightBorder;
- public int topBorder;
- public int bottomBorder;
- public Color color; // Color32 -> Color
- public Vector4 borderWidths;
- public Vector4 cornerRadius;
- public int pass;
- public IntPtr texture;
- public IntPtr mat;
- }
-
- // 2019.3.0, 2020.1.0
- [StructLayout(LayoutKind.Sequential)]
- internal struct Internal_DrawTextureArguments_2020
- {
- public Rect screenRect;
- public Rect sourceRect;
- public int leftBorder;
- public int rightBorder;
- public int topBorder;
- public int bottomBorder;
- public Color leftBorderColor; // Added
- public Color rightBorderColor; // Added
- public Color topBorderColor; // Added
- public Color bottomBorderColor; // Added
- public Color color;
- public Vector4 borderWidths;
- public Vector4 cornerRadiuses;
- public bool smoothCorners; // Added
- public int pass;
- public IntPtr texture;
- public IntPtr mat;
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Material.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Material.cs
deleted file mode 100644
index 733d8f6c0..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Material.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Material : UnityObject
- {
- private delegate bool d_SetPass(IntPtr @this, int pass);
- private static readonly d_SetPass m_SetPass;
-
- unsafe static Material()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Material");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- //m_SetPass = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "SetPass", "System.Boolean", "System.Int32");
- m_SetPass = UnityInternals.ResolveICall("UnityEngine.Material::SetPass");
- }
-
- public Material(IntPtr ptr) : base(ptr) { }
-
- public unsafe bool SetPass(int pass)
- {
- return m_SetPass(UnityInternals.ObjectBaseToPtrNotNull(this), pass);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Mesh.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Mesh.cs
deleted file mode 100644
index 8e1dfcdc7..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Mesh.cs
+++ /dev/null
@@ -1,168 +0,0 @@
-using MelonLoader;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using System;
-using UnhollowerMini;
-using MelonUnityEngine.Rendering;
-
-namespace MelonUnityEngine
-{
- internal sealed class Mesh : UnityObject
- {
- private delegate void SetArrayForChannelImpl_2017(IntPtr @this, int channel, int format, int dim, IntPtr values, int arraySize);
- private delegate void SetArrayForChannelImpl_2019(IntPtr @this, int channel, int format, int dim, IntPtr values, int arraySize, int valuesStart, int valuesCount);
- private delegate void SetArrayForChannelImpl_2020(IntPtr @this, int channel, int format, int dim, IntPtr values, int arraySize, int valuesStart, int valuesCount, int updateFlags);
-
- private static readonly IntPtr m_ctor;
- private static readonly IntPtr m_set_triangles;
- private static readonly IntPtr m_RecalculateBounds;
-
- private static readonly SetArrayForChannelImpl_2017 m_SetArrayForChannelImpl_2017;
- private static readonly SetArrayForChannelImpl_2019 m_SetArrayForChannelImpl_2019;
- private static readonly SetArrayForChannelImpl_2020 m_SetArrayForChannelImpl_2020;
- private static readonly int type_SetArrayForChannelImpl = -1;
-
- static Mesh()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Mesh");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- m_ctor = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, ".ctor", "System.Void");
-
- m_set_triangles = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "set_triangles", "System.Void", "System.Int32[]");
- m_RecalculateBounds = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "RecalculateBounds", "System.Void");
-
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2020.1.0" }))
- {
- m_SetArrayForChannelImpl_2020 = UnityInternals.ResolveICall("UnityEngine.Mesh::SetArrayForChannelImpl");
- type_SetArrayForChannelImpl = 2;
- }
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2019.3.0" }))
- {
- m_SetArrayForChannelImpl_2019 = UnityInternals.ResolveICall("UnityEngine.Mesh::SetArrayForChannelImpl");
- type_SetArrayForChannelImpl = 1;
- }
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2017.1.0" }))
- {
- m_SetArrayForChannelImpl_2017 = UnityInternals.ResolveICall("UnityEngine.Mesh::SetArrayForChannelImpl");
- type_SetArrayForChannelImpl = 0;
- }
- }
-
- public Mesh(IntPtr ptr) : base(ptr) { }
-
- public unsafe Mesh() : base(UnityInternals.object_new(InternalClassPointerStore.NativeClassPtr))
- {
- IntPtr returnedException = default;
- UnityInternals.runtime_invoke(m_ctor, UnityInternals.ObjectBaseToPtrNotNull(this), (void**)0, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
-
- private unsafe void SetArrayForChannelImpl(int channel, IntPtr values, int channelDimensions, int valuesCount)
- {
- if (type_SetArrayForChannelImpl == 0)
- m_SetArrayForChannelImpl_2017(UnityInternals.ObjectBaseToPtrNotNull(this), channel, 0 /* float */, channelDimensions, values, valuesCount);
- else if (type_SetArrayForChannelImpl == 1)
- m_SetArrayForChannelImpl_2019(UnityInternals.ObjectBaseToPtrNotNull(this), channel, 0 /* float */, channelDimensions, values, valuesCount, 0, valuesCount);
- else if (type_SetArrayForChannelImpl == 2)
- m_SetArrayForChannelImpl_2020(UnityInternals.ObjectBaseToPtrNotNull(this), channel, 0 /* float */, channelDimensions, values, valuesCount, 0, valuesCount, 0 /* MeshUpdateFlags.Default */);
- else
- throw new NotImplementedException("SetArrayForChannel isn't implemented for this version of Unity");
- }
-
-
- public unsafe Vector3[] vertices
- {
- set
- {
- int valuesCount = value.Length;
-
- IntPtr valueArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (ulong)valuesCount);
- for (var i = 0; i < valuesCount; i++)
- ((Vector3*)((long)valueArrayPtr + 4 * IntPtr.Size))[i] = value[i];
-
- SetArrayForChannelImpl(VertexAttribute.Vertex, valueArrayPtr, 3, valuesCount);
- }
- }
-
- public unsafe Vector3[] normals
- {
- set
- {
- int valuesCount = value.Length;
-
- IntPtr valueArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (ulong)valuesCount);
- for (var i = 0; i < valuesCount; i++)
- ((Vector3*)((long)valueArrayPtr + 4 * IntPtr.Size))[i] = value[i];
-
- SetArrayForChannelImpl(VertexAttribute.Normal, valueArrayPtr, 3, valuesCount);
- }
- }
-
- public unsafe Vector4[] tangents
- {
- set
- {
- int valuesCount = value.Length;
-
- IntPtr valueArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (ulong)valuesCount);
- for (var i = 0; i < valuesCount; i++)
- ((Vector4*)((long)valueArrayPtr + 4 * IntPtr.Size))[i] = value[i];
-
- SetArrayForChannelImpl(VertexAttribute.Tangent, valueArrayPtr, 4, valuesCount);
- }
- }
-
- public unsafe Vector2[] uv
- {
- set
- {
- int valuesCount = value.Length;
-
- IntPtr valueArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (ulong)valuesCount);
- for (var i = 0; i < valuesCount; i++)
- ((Vector2*)((long)valueArrayPtr + 4 * IntPtr.Size))[i] = value[i];
-
- SetArrayForChannelImpl(VertexAttribute.TexCoord0, valueArrayPtr, 2, valuesCount);
- }
- }
-
- public unsafe Color[] colors
- {
- set
- {
- int valuesCount = value.Length;
-
- IntPtr valueArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (ulong)valuesCount);
- for (var i = 0; i < valuesCount; i++)
- ((Color*)((long)valueArrayPtr + 4 * IntPtr.Size))[i] = value[i];
-
- SetArrayForChannelImpl(VertexAttribute.Color, valueArrayPtr, 4, valuesCount);
- }
- }
-
- public unsafe int[] triangles
- {
- set
- {
- UnityInternals.ObjectBaseToPtrNotNull(this);
- IntPtr valueArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (ulong)value.Length);
- for (var i = 0; i < value.Length; i++)
- ((int*)((long)valueArrayPtr + 4 * IntPtr.Size))[i] = value[i];
- void** ptr = stackalloc void*[1];
- ptr[0] = (void*)valueArrayPtr;
- IntPtr returnedException = default;
- IntPtr intPtr = UnityInternals.runtime_invoke(m_set_triangles, UnityInternals.ObjectBaseToPtrNotNull(this), ptr, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
- }
-
- public unsafe void RecalculateBounds()
- {
- UnityInternals.ObjectBaseToPtrNotNull(this);
- IntPtr returnedException = default;
- UnityInternals.runtime_invoke(m_RecalculateBounds, UnityInternals.ObjectBaseToPtrNotNull(this), (void**)0, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
-
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Quaternion.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Quaternion.cs
deleted file mode 100644
index ab8ffa03b..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Quaternion.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Quaternion
- {
- [FieldOffset(0)]
- public float x;
- [FieldOffset(4)]
- public float y;
- [FieldOffset(8)]
- public float z;
- [FieldOffset(12)]
- public float w;
-
- static Quaternion()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Quaternion");
- }
-
- public static Quaternion identity => new Quaternion();
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Rect.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Rect.cs
deleted file mode 100644
index 17cf00d19..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Rect.cs
+++ /dev/null
@@ -1,32 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Rect
- {
- [FieldOffset(0)]
- public float m_XMin;
- [FieldOffset(4)]
- public float m_YMin;
- [FieldOffset(8)]
- public float m_Width;
- [FieldOffset(12)]
- public float m_Height;
-
- static Rect()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Rect");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
- }
-
- public Rect(int x, int y, int width, int height)
- {
- m_XMin = x;
- m_YMin = y;
- m_Width = width;
- m_Height = height;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Resources.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Resources.cs
deleted file mode 100644
index 2dadb77f3..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Resources.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using MelonLoader;
-using System;
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Resources
- {
- private static readonly IntPtr m_GetBuiltinResource;
-
- static Resources()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Resources");
- //UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- m_GetBuiltinResource = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "GetBuiltinResource", "UnityEngine.Object", "System.Type", "System.String");
-
- }
-
- public unsafe static IntPtr GetBuiltinResource(Il2CppSystem.Type type, string path)
- {
- void** ptr = stackalloc void*[2];
- ptr[0] = (void*)UnityInternals.ObjectBaseToPtr(type);
- ptr[1] = (void*)UnityInternals.ManagedStringToInternal(path);
- IntPtr returnedException = default;
- MelonDebug.Msg("Calling runtime_invoke for GetBuiltinResource");
- IntPtr objectPointer = UnityInternals.runtime_invoke(m_GetBuiltinResource, IntPtr.Zero, ptr, ref returnedException);
- MelonDebug.Msg("returnedException: " + returnedException + ", objectPointer: " + objectPointer);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return objectPointer;
- }
-
- public static T GetBuiltinResource(string path) where T : InternalObjectBase
- {
- MelonDebug.Msg("GetBuiltinResource");
- IntPtr ptr = GetBuiltinResource(InternalType.Of(), path);
- return ptr != IntPtr.Zero ? (T)typeof(T).GetConstructor(new[] { typeof(IntPtr) }).Invoke(new object[] { ptr }) : null;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Screen.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Screen.cs
deleted file mode 100644
index 259486606..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Screen.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Screen
- {
- private static IntPtr m_get_width;
- private static IntPtr m_get_height;
-
- static Screen()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Screen");
- m_get_width = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "get_width", "System.Int32");
- m_get_height = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "get_height", "System.Int32");
- }
-
- public unsafe static int width
- {
- get
- {
- IntPtr* param = null;
- IntPtr returnedException = IntPtr.Zero;
- IntPtr intPtr = UnityInternals.runtime_invoke(m_get_width, IntPtr.Zero, (void**)param, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return *(int*)UnityInternals.object_unbox(intPtr);
- }
- }
-
- public unsafe static int height
- {
- get
- {
- IntPtr* param = null;
- IntPtr returnedException = IntPtr.Zero;
- IntPtr intPtr = UnityInternals.runtime_invoke(m_get_height, IntPtr.Zero, (void**)param, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return *(int*)UnityInternals.object_unbox(intPtr);
- }
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/SystemInfo.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/SystemInfo.cs
deleted file mode 100644
index 9f00acc27..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/SystemInfo.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using MelonLoader;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using UnhollowerMini;
-
-namespace MelonUnityEngine.CoreModule
-{
- internal sealed class SystemInfo
- {
- private delegate uint d_GetGraphicsDeviceType();
- private static readonly d_GetGraphicsDeviceType m_GetGraphicsDeviceType;
-
- unsafe static SystemInfo()
- {
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2018.1.0" }))
- m_GetGraphicsDeviceType = UnityInternals.ResolveICall("UnityEngine.SystemInfo::GetGraphicsDeviceType");
- else
- m_GetGraphicsDeviceType = UnityInternals.ResolveICall("UnityEngine.SystemInfo::get_graphicsDeviceType");
- }
-
- public static uint GetGraphicsDeviceType() =>
- m_GetGraphicsDeviceType();
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Texture.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Texture.cs
deleted file mode 100644
index b6b681578..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Texture.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-using MelonLoader;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Texture : UnityObject
- {
- private delegate int GetDataWidthDelegate(IntPtr @this);
- private delegate int GetDataHeightDelegate(IntPtr @this);
- private delegate int set_filterModeDelegate(IntPtr @this, FilterMode filterMode);
-
- private static readonly GetDataWidthDelegate getDataWidth;
- private static readonly GetDataHeightDelegate getDataHeight;
- private static readonly set_filterModeDelegate set_filterMode_;
-
- static Texture()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Texture");
-
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2018.1.0" }))
- {
- getDataWidth = UnityInternals.ResolveICall("UnityEngine.Texture::GetDataWidth");
- getDataHeight = UnityInternals.ResolveICall("UnityEngine.Texture::GetDataHeight");
- }
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2017.1.0" }))
- {
- getDataWidth = UnityInternals.ResolveICall("UnityEngine.Texture::Internal_GetWidth");
- getDataHeight = UnityInternals.ResolveICall("UnityEngine.Texture::Internal_GetHeight");
- }
- set_filterMode_ = UnityInternals.ResolveICall("UnityEngine.Texture::set_filterMode");
- }
-
- public Texture(IntPtr ptr) : base(ptr) { }
-
- public int width => getDataWidth(UnityInternals.ObjectBaseToPtrNotNull(this));
- public int height => getDataHeight(UnityInternals.ObjectBaseToPtrNotNull(this));
-
- public FilterMode filterMode
- {
- set => set_filterMode_(UnityInternals.ObjectBaseToPtrNotNull(this), value);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Texture2D.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Texture2D.cs
deleted file mode 100644
index 277e0571d..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Texture2D.cs
+++ /dev/null
@@ -1,98 +0,0 @@
-using MelonLoader;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Texture2D : Texture
- {
- private delegate void SetPixelsImplDelegate_2017(IntPtr @this, int x, int y, int w, int h, IntPtr pixel, int miplevel);
- private delegate void SetPixelsImplDelegate_2018(IntPtr @this, int x, int y, int w, int h, IntPtr pixel, int miplevel, int frame);
-
- private static readonly IntPtr m_get_whiteTexture;
- private static readonly IntPtr m_ctor;
- private static readonly SetPixelsImplDelegate_2017 m_SetPixelsImpl_2017;
- private static readonly SetPixelsImplDelegate_2018 m_SetPixelsImpl_2018;
- private static readonly IntPtr m_Apply;
-
- private static readonly int type_SetPixelsImpl = -1;
-
- static Texture2D()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Texture2D");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- m_ctor = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, ".ctor", "System.Void", "System.Int32", "System.Int32");
-
- m_get_whiteTexture = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "get_whiteTexture", "UnityEngine.Texture2D");
-
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2018.1.0" })) {
- type_SetPixelsImpl = 1;
- m_SetPixelsImpl_2018 = UnityInternals.ResolveICall("UnityEngine.Texture2D::SetPixelsImpl");
- }
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2017.1.0" }))
- {
- type_SetPixelsImpl = 0;
- m_SetPixelsImpl_2017 = UnityInternals.ResolveICall("UnityEngine.Texture2D::SetPixels");
- }
-
- m_Apply = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "Apply", "System.Void");
- }
-
- public Texture2D(IntPtr ptr) : base(ptr) { }
-
- public unsafe static Texture2D whiteTexture
- {
- get
- {
- IntPtr returnedException = IntPtr.Zero;
- IntPtr intPtr = UnityInternals.runtime_invoke(m_get_whiteTexture, IntPtr.Zero, (void**)0, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return intPtr == IntPtr.Zero ? null : new Texture2D(intPtr);
- }
- }
-
- public unsafe Texture2D(int width, int height) : base(UnityInternals.object_new(InternalClassPointerStore.NativeClassPtr))
- {
- void** args = stackalloc void*[2];
- args[0] = &width;
- args[1] = &height;
- IntPtr returnedException = default;
- UnityInternals.runtime_invoke(m_ctor, UnityInternals.ObjectBaseToPtrNotNull(this), args, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
-
- public unsafe void SetPixels(Color[] colors)
- {
- SetPixels(0, 0, width, height, colors, 0);
- }
-
- public unsafe void SetPixels(int x, int y, int blockWidth, int blockHeight, Color[] colors, int miplevel = 0)
- {
- SetPixelsImpl(x, y, blockWidth, blockHeight, colors, miplevel, 0);
- }
-
- public unsafe void SetPixelsImpl(int x, int y, int w, int h, Color[] pixel, int miplevel, int frame)
- {
- IntPtr pixelArrayPtr = UnityInternals.array_new(InternalClassPointerStore.NativeClassPtr, (uint)pixel.Length);
- for (var i = 0; i < pixel.Length; i++)
- {
- IntPtr arrayStartPointer = (IntPtr)((long)pixelArrayPtr + 4 * IntPtr.Size);
- ((Color*)arrayStartPointer.ToPointer())[i] = pixel[i];
- }
-
- if (type_SetPixelsImpl == 0)
- m_SetPixelsImpl_2017(UnityInternals.ObjectBaseToPtrNotNull(this), x, y, w, h, pixelArrayPtr, miplevel);
- else if (type_SetPixelsImpl == 1)
- m_SetPixelsImpl_2018(UnityInternals.ObjectBaseToPtrNotNull(this), x, y, w, h, pixelArrayPtr, miplevel, frame);
- }
-
- public unsafe void Apply()
- {
- IntPtr returnedException = default;
- UnityInternals.runtime_invoke(m_Apply, UnityInternals.ObjectBaseToPtrNotNull(this), (void**)0, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/UnityDebug.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/UnityDebug.cs
deleted file mode 100644
index ee4b45df9..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/UnityDebug.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using MelonLoader;
-using System;
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal static class UnityDebug
- {
- private delegate bool get_isDebugBuild_Delegate();
- private static get_isDebugBuild_Delegate get_isDebugBuild_Ptr;
-
- static UnityDebug()
- {
- IntPtr ptr = UnityInternals.ResolveICall("UnityEngine.Debug::get_isDebugBuild");
- if (ptr != IntPtr.Zero)
- get_isDebugBuild_Ptr = (get_isDebugBuild_Delegate)Marshal.GetDelegateForFunctionPointer(ptr, typeof(get_isDebugBuild_Delegate));
- else
- MelonLogger.Error("Failed to resolve icall UnityEngine.Debug::get_isDebugBuild");
- }
-
- internal static bool isDebugBuild { get => get_isDebugBuild_Ptr(); }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/UnityObject.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/UnityObject.cs
deleted file mode 100644
index a7fbae4dd..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/UnityObject.cs
+++ /dev/null
@@ -1,71 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class UnityObject : InternalObjectBase
- {
- private delegate HideFlags get_hideFlags_Delegate(IntPtr obj);
- private static get_hideFlags_Delegate m_get_hideFlags;
- private delegate void set_hideFlags_Delegate(IntPtr obj, HideFlags hideFlags);
- private static set_hideFlags_Delegate m_set_hideFlags;
-
- private static IntPtr m_DestroyImmediate;
- private static IntPtr m_DontDestroyOnLoad;
- unsafe static UnityObject()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Object");
- //UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- m_DestroyImmediate = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "DestroyImmediate", "System.Void", "UnityEngine.Object");
- m_DontDestroyOnLoad = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "DontDestroyOnLoad", "System.Void", "UnityEngine.Object");
-
- m_get_hideFlags = UnityInternals.ResolveICall("UnityEngine.Object::get_hideFlags(UnityEngine.Object)");
- m_set_hideFlags = UnityInternals.ResolveICall("UnityEngine.Object::set_hideFlags(UnityEngine.Object)");
- }
-
- public UnityObject(IntPtr ptr) : base(ptr) { }
-
- unsafe public HideFlags hideFlags
- {
- get
- {
- if (Pointer == IntPtr.Zero)
- return HideFlags.None;
- return m_get_hideFlags(Pointer);
- }
- set
- {
- if (Pointer == IntPtr.Zero)
- return;
- m_set_hideFlags(Pointer, value);
- }
- }
-
- unsafe public void DestroyImmediate()
- {
- if (Pointer == IntPtr.Zero)
- return;
-
- void** args = stackalloc void*[1];
- args[0] = Pointer.ToPointer();
-
- IntPtr returnedException = IntPtr.Zero;
- UnityInternals.runtime_invoke(m_DestroyImmediate, IntPtr.Zero, args, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
-
- unsafe public void DontDestroyOnLoad()
- {
- if (Pointer == IntPtr.Zero)
- return;
-
- void** args = stackalloc void*[1];
- args[0] = Pointer.ToPointer();
-
- IntPtr returnedException = IntPtr.Zero;
- UnityInternals.runtime_invoke(m_DontDestroyOnLoad, IntPtr.Zero, args, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector2.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector2.cs
deleted file mode 100644
index 9ad85ed7f..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector2.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Vector2
- {
- [FieldOffset(0)]
- public float x;
- [FieldOffset(4)]
- public float y;
-
- static Vector2()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Vector2");
- }
-
- public Vector2(float x, float y)
- {
- this.x = x;
- this.y = y;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector3.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector3.cs
deleted file mode 100644
index 1089a10f0..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector3.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Vector3
- {
- [FieldOffset(0)]
- public float x;
- [FieldOffset(4)]
- public float y;
- [FieldOffset(8)]
- public float z;
-
- static Vector3()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Vector3");
- }
-
- public static Vector3 zero => new Vector3();
-
- public Vector3(float x, float y, float z)
- {
- this.x = x;
- this.y = y;
- this.z = z;
- }
-
- public static Vector3 operator*(Vector3 a, float d)
- {
- return new Vector3(a.x * d, a.y * d, a.z * d);
- }
-
- public override string ToString()
- {
- return $"{x} {y} {z}";
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector4.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector4.cs
deleted file mode 100644
index d0b4d911b..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/Vector4.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Explicit)]
- internal struct Vector4
- {
- [FieldOffset(0)]
- public float x;
- [FieldOffset(4)]
- public float y;
- [FieldOffset(8)]
- public float z;
- [FieldOffset(12)]
- public float w;
-
- static Vector4()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.CoreModule.dll", "UnityEngine", "Vector4");
- }
-
- public static explicit operator Vector2(Vector4 src) => new Vector2(src.x, src.y);
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/VertexAttribute.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/VertexAttribute.cs
deleted file mode 100644
index e4fa48bd0..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/VertexAttribute.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using MelonLoader.MelonStartScreen.NativeUtils;
-
-namespace MelonUnityEngine.Rendering
-{
- static class VertexAttribute
- {
- public static int Vertex = 0;
- public static int Normal = 1;
-
- [NativeFieldValue(01, NativeSignatureFlags.None, 7, "2017.1.0")]
- [NativeFieldValue(02, NativeSignatureFlags.None, 2, "2018.1.0")]
- public static int Tangent = 0;
-
- [NativeFieldValue(01, NativeSignatureFlags.None, 2, "2017.1.0")]
- [NativeFieldValue(02, NativeSignatureFlags.None, 3, "2018.1.0")]
- public static int Color = 0;
-
- [NativeFieldValue(01, NativeSignatureFlags.None, 3, "2017.1.0")]
- [NativeFieldValue(02, NativeSignatureFlags.None, 4, "2018.1.0")]
- public static int TexCoord0 = 0;
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/VerticalWrapMode.cs b/Dependencies/MelonStartScreen/UnityEngine/CoreModule/VerticalWrapMode.cs
deleted file mode 100644
index 20c510df6..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/CoreModule/VerticalWrapMode.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace MelonUnityEngine
-{
- internal enum VerticalWrapMode
- {
- Truncate,
- Overflow
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/Font.cs b/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/Font.cs
deleted file mode 100644
index 790a07084..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/Font.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class Font : UnityObject
- {
- private static IntPtr m_get_material;
-
- static Font()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.TextRenderingModule.dll", "UnityEngine", "Font");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- m_get_material = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "get_material", "UnityEngine.Material");
- }
-
- public Font(IntPtr ptr) : base(ptr) { }
-
- public unsafe Material material
- {
- get
- {
- UnityInternals.ObjectBaseToPtrNotNull(this);
- IntPtr returnedException = default;
- IntPtr intPtr = UnityInternals.runtime_invoke(Font.m_get_material, UnityInternals.ObjectBaseToPtrNotNull(this), (void**)0, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return (intPtr != IntPtr.Zero) ? new Material(intPtr) : null;
- }
- // set
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/FontStyle.cs b/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/FontStyle.cs
deleted file mode 100644
index d9f5764f4..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/FontStyle.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-namespace MelonUnityEngine
-{
- internal enum FontStyle
- {
- Normal,
- Bold,
- Italic,
- BoldAndItalic
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextAnchor.cs b/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextAnchor.cs
deleted file mode 100644
index 5b997cf00..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextAnchor.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace MelonUnityEngine
-{
- internal enum TextAnchor
- {
- UpperLeft,
- UpperCenter,
- UpperRight,
- MiddleLeft,
- MiddleCenter,
- MiddleRight,
- LowerLeft,
- LowerCenter,
- LowerRight
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextGenerationSettings.cs b/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextGenerationSettings.cs
deleted file mode 100644
index f8983e9cd..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextGenerationSettings.cs
+++ /dev/null
@@ -1,137 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- internal class TextGenerationSettings : InternalObjectBase
- {
- private static readonly int classsize;
-
- private static readonly IntPtr f_font;
- private static readonly IntPtr f_color;
- private static readonly IntPtr f_fontSize;
- private static readonly IntPtr f_lineSpacing;
- private static readonly IntPtr f_richText;
- private static readonly IntPtr f_scaleFactor;
- private static readonly IntPtr f_fontStyle;
- private static readonly IntPtr f_textAnchor;
- //private static readonly IntPtr f_alignByGeometry;
- //private static readonly IntPtr f_resizeTextForBestFit;
- //private static readonly IntPtr f_resizeTextMinSize;
- //private static readonly IntPtr f_resizeTextMaxSize;
- //private static readonly IntPtr f_updateBounds;
- private static readonly IntPtr f_verticalOverflow;
- //private static readonly IntPtr f_horizontalOverflow;
- private static readonly IntPtr f_generationExtents;
- private static readonly IntPtr f_pivot;
- //private static readonly IntPtr f_generateOutOfBounds;
-
- static TextGenerationSettings()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.TextRenderingModule.dll", "UnityEngine", "TextGenerationSettings");
- //UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- uint align = 0;
- classsize = UnityInternals.class_value_size(InternalClassPointerStore.NativeClassPtr, ref align);
-
-
- f_font = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "font");
- f_color = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "color");
- f_fontSize = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "fontSize");
- f_lineSpacing = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "lineSpacing");
- f_richText = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "richText");
- f_scaleFactor = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "scaleFactor");
- f_fontStyle = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "fontStyle");
- f_textAnchor = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "textAnchor");
- //f_alignByGeometry = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "alignByGeometry");
- //f_resizeTextForBestFit = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "resizeTextForBestFit");
- //f_resizeTextMinSize = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "resizeTextMinSize");
- //f_resizeTextMaxSize = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "resizeTextMaxSize");
- //f_updateBounds = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "updateBounds");
- f_verticalOverflow = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "verticalOverflow");
- //f_horizontalOverflow = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "horizontalOverflow");
- f_generationExtents = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "generationExtents");
- f_pivot = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "pivot");
- //f_generateOutOfBounds = UnityInternals.GetField(InternalClassPointerStore.NativeClassPtr, "generateOutOfBounds");
- }
-
- public TextGenerationSettings(IntPtr ptr) : base(ptr) { }
-
- public unsafe TextGenerationSettings()
- {
- byte** data = stackalloc byte*[classsize];
- IntPtr pointer = UnityInternals.value_box(InternalClassPointerStore.NativeClassPtr, (IntPtr)data);
- myGcHandle = UnityInternals.gchandle_new(pointer, false);
- }
-
- public unsafe Font font
- {
- get
- {
- IntPtr intPtr = *(IntPtr*)((uint)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_font));
- return (intPtr != IntPtr.Zero) ? new Font(intPtr) : null;
- }
- set => *(IntPtr*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_font)) = UnityInternals.ObjectBaseToPtr(value);
- }
-
- public unsafe Color color
- {
- get => *(Color*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_color));
- set => *(Color*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_color)) = value;
- }
-
- public unsafe int fontSize
- {
- get => *(int*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_fontSize));
- set => *(int*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_fontSize)) = value;
- }
-
- public unsafe float lineSpacing
- {
- get => *(float*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_lineSpacing));
- set => *(float*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_lineSpacing)) = value;
- }
-
- public unsafe bool richText
- {
- get => *(bool*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_richText));
- set => *(bool*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_richText)) = value;
- }
-
- public unsafe float scaleFactor
- {
- get => *(float*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_scaleFactor));
- set => *(float*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_scaleFactor)) = value;
- }
-
- public unsafe FontStyle fontStyle
- {
- get => *(FontStyle*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_fontStyle));
- set => *(FontStyle*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_fontStyle)) = value;
- }
-
- public unsafe TextAnchor textAnchor
- {
- get => *(TextAnchor*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_textAnchor));
- set => *(TextAnchor*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_textAnchor)) = value;
- }
-
- public unsafe VerticalWrapMode verticalOverflow
- {
- get => *(VerticalWrapMode*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_verticalOverflow));
- set => *(VerticalWrapMode*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_verticalOverflow)) = value;
- }
-
- public unsafe Vector2 generationExtents
- {
- get => *(Vector2*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_generationExtents));
- set => *(Vector2*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_generationExtents)) = value;
- }
-
- public unsafe Vector2 pivot
- {
- get => *(Vector2*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_pivot));
- set => *(Vector2*)((ulong)UnityInternals.ObjectBaseToPtrNotNull(this) + UnityInternals.field_get_offset(f_pivot)) = value;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextGenerator.cs b/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextGenerator.cs
deleted file mode 100644
index 6cb6b2a63..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/TextGenerator.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System;
-using UnhollowerMini;
-
-namespace MelonUnityEngine
-{
- class TextGenerator : InternalObjectBase
- {
- private delegate int get_vertexCountDelegate(IntPtr @this);
- private delegate IntPtr GetVerticesArrayDelegate(IntPtr @this);
-
- private static readonly IntPtr m_ctor;
- private static readonly IntPtr m_Populate;
- private static readonly get_vertexCountDelegate fd_get_vertexCount;
- private static readonly GetVerticesArrayDelegate fd_GetVerticesArray;
-
- static TextGenerator()
- {
- InternalClassPointerStore.NativeClassPtr = UnityInternals.GetClass("UnityEngine.TextRenderingModule.dll", "UnityEngine", "TextGenerator");
- UnityInternals.runtime_class_init(InternalClassPointerStore.NativeClassPtr);
-
- m_ctor = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, ".ctor", "System.Void");
-
- m_Populate = UnityInternals.GetMethod(InternalClassPointerStore.NativeClassPtr, "Populate", "System.Boolean", "System.String", "UnityEngine.TextGenerationSettings");
-
- fd_get_vertexCount = UnityInternals.ResolveICall("UnityEngine.TextGenerator::get_vertexCount");
- fd_GetVerticesArray = UnityInternals.ResolveICall("UnityEngine.TextGenerator::GetVerticesArray");
- }
-
- public TextGenerator(IntPtr ptr) : base(ptr) { }
-
- public unsafe TextGenerator() : this(UnityInternals.object_new(InternalClassPointerStore.NativeClassPtr))
- {
- IntPtr returnedException = default;
- UnityInternals.runtime_invoke(m_ctor, UnityInternals.ObjectBaseToPtrNotNull(this), (void**)0, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- }
-
- public unsafe bool Populate(string str, TextGenerationSettings settings)
- {
- void** args = stackalloc void*[2];
- args[0] = (void*)UnityInternals.ManagedStringToInternal(str);
- args[1] = (void*)UnityInternals.object_unbox(UnityInternals.ObjectBaseToPtrNotNull(settings));
- IntPtr returnedException = default;
- IntPtr obj = UnityInternals.runtime_invoke(m_Populate, UnityInternals.ObjectBaseToPtrNotNull(this), args, ref returnedException);
- Il2CppException.RaiseExceptionIfNecessary(returnedException);
- return *(bool*)UnityInternals.object_unbox(obj);
- }
-
- public int vertexCount => fd_get_vertexCount(UnityInternals.ObjectBaseToPtrNotNull(this));
-
- public unsafe UIVertexWrapper[] GetVerticesArray()
- {
- IntPtr intPtr = fd_GetVerticesArray(UnityInternals.ObjectBaseToPtrNotNull(this));
- if (intPtr == IntPtr.Zero) return null;
- UIVertexWrapper[] arr = new UIVertexWrapper[UnityInternals.array_length(intPtr)];
- for (int i = 0; i < arr.Length; ++i)
- arr[i] = new UIVertexWrapper((IntPtr)((long)intPtr + 4 * IntPtr.Size + i * UIVertexWrapper.sizeOfElement));
- // arr[i] = ( (UIVertex*)((long)intPtr + 4 * IntPtr.Size) )[i];
- // arr[i] = *( (UIVertex*)((long)intPtr + 4 * IntPtr.Size) + (i * sizeof(UIVertex)))
- return arr;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/UIVertex.cs b/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/UIVertex.cs
deleted file mode 100644
index a7a844c3f..000000000
--- a/Dependencies/MelonStartScreen/UnityEngine/TextRenderingModule/UIVertex.cs
+++ /dev/null
@@ -1,108 +0,0 @@
-using MelonLoader;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using System;
-using System.Runtime.InteropServices;
-
-namespace MelonUnityEngine
-{
- [StructLayout(LayoutKind.Sequential)]
- internal struct UIVertex_2020
- {
- public Vector3 position;
- public Vector3 normal;
- public Vector4 tangent;
- public Color32 color;
- public Vector4 uv0;
- public Vector4 uv1;
- public Vector4 uv2;
- public Vector4 uv3;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct UIVertex_2018
- {
- public Vector3 position;
- public Vector3 normal;
- public Vector4 tangent;
- public Color32 color;
- public Vector2 uv0;
- public Vector2 uv1;
- public Vector2 uv2;
- public Vector2 uv3;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct UIVertex_2017
- {
- public Vector3 position;
- public Vector3 normal;
- public Color32 color;
- public Vector2 uv0;
- public Vector2 uv1;
- public Vector2 uv2;
- public Vector2 uv3;
- public Vector4 tangent;
- }
-
- internal struct UIVertexWrapper
- {
- private static readonly int mode = -1;
- public static readonly int sizeOfElement = 0;
-
- private IntPtr ptr;
-
- unsafe static UIVertexWrapper()
- {
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2020.2.0", "2021.1.0" }))
- {
- mode = 2;
- sizeOfElement = sizeof(UIVertex_2020);
- }
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2018.1.0" }))
- {
- mode = 1;
- sizeOfElement = sizeof(UIVertex_2018);
- }
- else if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new string[] { "2017.2.0" }))
- {
- mode = 0;
- sizeOfElement = sizeof(UIVertex_2017);
- }
- }
-
- public UIVertexWrapper(IntPtr ptr)
- {
- this.ptr = ptr;
- }
-
- public unsafe Vector3 position =>
- mode == 2 ? (*(UIVertex_2020*)ptr).position :
- mode == 1 ? (*(UIVertex_2018*)ptr).position :
- mode == 0 ? (*(UIVertex_2017*)ptr).position :
- throw new Exception("UIVertex mode not set");
-
- public unsafe Vector3 normal =>
- mode == 2 ? (*(UIVertex_2020*)ptr).normal :
- mode == 1 ? (*(UIVertex_2018*)ptr).normal :
- mode == 0 ? (*(UIVertex_2017*)ptr).normal :
- throw new Exception("UIVertex mode not set");
-
- public unsafe Vector4 tangent =>
- mode == 2 ? (*(UIVertex_2020*)ptr).tangent :
- mode == 1 ? (*(UIVertex_2018*)ptr).tangent :
- mode == 0 ? (*(UIVertex_2017*)ptr).tangent :
- throw new Exception("UIVertex mode not set");
-
- public unsafe Color32 color =>
- mode == 2 ? (*(UIVertex_2020*)ptr).color :
- mode == 1 ? (*(UIVertex_2018*)ptr).color :
- mode == 0 ? (*(UIVertex_2017*)ptr).color :
- throw new Exception("UIVertex mode not set");
-
- public unsafe Vector2 uv0 =>
- mode == 2 ? (Vector2)(*(UIVertex_2020*)ptr).uv0 :
- mode == 1 ? (*(UIVertex_2018*)ptr).uv0 :
- mode == 0 ? (*(UIVertex_2017*)ptr).uv0 :
- throw new Exception("UIVertex mode not set");
- }
-}
diff --git a/Dependencies/MelonStartScreen/UnityPlayer/GfxDevice.cs b/Dependencies/MelonStartScreen/UnityPlayer/GfxDevice.cs
deleted file mode 100644
index e6098c8f6..000000000
--- a/Dependencies/MelonStartScreen/UnityPlayer/GfxDevice.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-using MelonLoader;
-using MelonLoader.NativeUtils;
-using MelonLoader.MelonStartScreen.NativeUtils;
-using System;
-using System.Runtime.InteropServices;
-using UnhollowerMini;
-
-namespace UnityPlayer
-{
- internal class GfxDevice
- {
- private delegate void PresentFrameDelegate();
- private delegate void WaitForLastPresentationAndGetTimestampDelegate(IntPtr gfxDevice);
- private delegate IntPtr GetRealGfxDeviceDelegate();
-
-#pragma warning disable 0649
- #region m_PresentFrame Signatures
- [NativeSignature(01, NativeSignatureFlags.X86, "e8 ?? ?? ?? ?? 85 c0 74 12 e8 ?? ?? ?? ?? 8b ?? 8b ?? 8b 42 70 ff d0 84 c0 75", "2017.1.0", "5.6.0", "2017.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X86, "55 8b ec 51 e8 ?? ?? ?? ?? 85 c0 74 12 e8 ?? ?? ?? ?? 8b c8 8b 10 8b 42 ?? ff d0 84 c0 75", "2018.1.0")]
- [NativeSignature(03, NativeSignatureFlags.X86, "55 8b ec 51 e8 ?? ?? ?? ?? 85 c0 74 15 e8 ?? ?? ?? ?? 8b c8 8b 10 8b 82 ?? 00 00 00 ff d0", "2018.4.9", "2019.1.0")]
- [NativeSignature(04, NativeSignatureFlags.X86, "55 8b ec 51 56 e8 ?? ?? ?? ?? 8b f0 8b ce e8 ?? ?? ?? ?? e8 ?? ?? ?? ?? 85 c0 74 ?? e8", "2018.4.18", "2019.3.0", "2020.1.0")]
-
- [NativeSignature(01, NativeSignatureFlags.X64, "48 83 ec 28 e8 ?? ?? ?? ?? 48 85 c0 74 15 e8 ?? ?? ?? ?? 48 8b c8 48 8b 10 ff 92 e0 00 00 00 84 c0", "5.6.0", "2017.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X64, "48 83 ec 28 e8 ?? ?? ?? ?? 48 85 c0 74 15 e8 ?? ?? ?? ?? 48 8b c8 48 8b 10 ff 92 ?? ?? 00 00 84 c0", "2018.3.0", "2019.1.0")] // We can't use this one too early, else we match multiple functions
- [NativeSignature(03, NativeSignatureFlags.X64, "40 53 48 83 ec 20 e8 ?? ?? ?? ?? 48 8b c8 48 8b d8 e8 ?? ?? ?? ?? e8 ?? ?? ?? ?? 48 85 c0 74", "2018.4.18", "2019.3.0", "2020.1.0")]
- #endregion
- private static PresentFrameDelegate m_PresentFrame;
-
- #region m_D3D11WaitForLastPresentationAndGetTimestamp Signatures
- [NativeSignature(00, NativeSignatureFlags.None, null, "2017.1.0")]
-
- [NativeSignature(01, NativeSignatureFlags.X86, "55 8b ec 83 ec 40 53 56 8b d9 57 89 5d fc e8 ?? ?? ?? ?? 6a 02 8b c8", "2020.2.7", "2020.3.0", "2021.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X86, "55 8b ec 83 ec 48 53 56 8b d9 57 89 5d fc e8 ?? ?? ?? ?? 6a 02 8b c8", "2021.1.5", "2021.2.0")]
- [NativeSignature(03, NativeSignatureFlags.X86, "55 8b ec 83 ec 58 53 56 8b d9 57 89 5d fc e8 ?? ?? ?? ?? 6a 02 8b c8", "2022.1.0")]
- [NativeSignature(04, NativeSignatureFlags.X86 | NativeSignatureFlags.Mono, null, "2020.3.9")] // TODO validate this with more advanced sigcheck
-
- [NativeSignature(01, NativeSignatureFlags.X64, "48 89 5c 24 10 56 48 81 ec 90 00 00 00 0f 29 b4 24 80 00 00 00 48 8b f1", "2020.2.7", "2020.3.0", "2021.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X64, "48 89 5c 24 10 56 48 81 ec b0 00 00 00 0f 29 b4 24 a0 00 00 00 48 8b f1", "2022.1.0")]
- #endregion
- private static WaitForLastPresentationAndGetTimestampDelegate m_D3D11WaitForLastPresentationAndGetTimestamp;
-
- #region m_D3D12WaitForLastPresentationAndGetTimestamp Signatures
- [NativeSignature(00, NativeSignatureFlags.None, null, "2017.1.0")]
-
- [NativeSignature(01, NativeSignatureFlags.X86, "55 8b ec 83 ec 40 53 56 57 8b f9 89 7d f4 e8 ?? ?? ?? ?? 6a 02 8b c8", "2020.2.7", "2020.3.0", "2021.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X86, "55 8b ec 83 ec 48 56 57 8b f9 89 7d f0 e8 ?? ?? ?? ?? 6a 02 8b c8", "2020.3.9", "2021.1.5")]
- [NativeSignature(03, NativeSignatureFlags.X86, "55 8b ec 83 ec 48 56 57 8b f9 89 7d f8 e8 ?? ?? ?? ?? 6a 02 8b c8", "2021.2.0")]
- [NativeSignature(04, NativeSignatureFlags.X86, "55 8b ec 83 ec 58 56 57 8b f9 89 7d f8 e8 ?? ?? ?? ?? 6a 02 8b c8", "2022.1.0")]
-
- [NativeSignature(01, NativeSignatureFlags.X64, "48 89 5c 24 08 57 48 81 ec 90 00 00 00 0f 29 b4 24 80 00 00 00 48 8b d9", "2020.2.7", "2020.3.0", "2021.1.0")]
- [NativeSignature(02, NativeSignatureFlags.X64, "48 89 5c 24 08 57 48 81 ec b0 00 00 00 0f 29 b4 24 a0 00 00 00 48 8b d9", "2022.1.0")]
- #endregion
- private static WaitForLastPresentationAndGetTimestampDelegate m_D3D12WaitForLastPresentationAndGetTimestamp;
-#pragma warning restore 0649
-
- private static GetRealGfxDeviceDelegate m_GetRealGfxDevice;
-
- static GfxDevice()
- {
- if (NativeSignatureResolver.IsUnityVersionOverOrEqual(MelonLoader.InternalUtils.UnityInformationHandler.EngineVersion.ToStringWithoutType(), new[] { "2020.2.7", "2020.3.0", "2021.1.0" }))
- {
- // `FrameTimingManager_CUSTOM_CaptureFrameTimings()` calls `GetRealGfxDevice()` after 4 bytes.
- m_GetRealGfxDevice = (GetRealGfxDeviceDelegate)Marshal.GetDelegateForFunctionPointer(
- CppUtils.ResolveRelativeInstruction(
- (IntPtr)((long)UnityInternals.ResolveICall("UnityEngine.FrameTimingManager::CaptureFrameTimings") + (MelonUtils.IsGame32Bit() ? 0 : 4))),
- typeof(GetRealGfxDeviceDelegate));
- }
- }
-
- public static void PresentFrame() =>
- m_PresentFrame();
-
- public static IntPtr GetRealGfxDevice() =>
- m_GetRealGfxDevice();
-
- internal static void WaitForLastPresentationAndGetTimestamp(uint deviceType)
- {
- if (m_GetRealGfxDevice == null)
- throw new NotImplementedException();
-
- IntPtr gfxDevice = GetRealGfxDevice();
- if (gfxDevice == IntPtr.Zero)
- throw new NotImplementedException();
-
- switch (deviceType)
- {
- case /*DX11*/ 2:
- if (m_D3D11WaitForLastPresentationAndGetTimestamp == null)
- throw new NotImplementedException();
- m_D3D11WaitForLastPresentationAndGetTimestamp(gfxDevice);
- break;
-
- case /*DX12*/ 18:
- if (m_D3D12WaitForLastPresentationAndGetTimestamp == null)
- throw new NotImplementedException();
- m_D3D12WaitForLastPresentationAndGetTimestamp(gfxDevice);
- break;
-
- default:
- throw new NotImplementedException();
- }
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/Windows/DropFile.cs b/Dependencies/MelonStartScreen/Windows/DropFile.cs
deleted file mode 100644
index 7c9b2d4bb..000000000
--- a/Dependencies/MelonStartScreen/Windows/DropFile.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Runtime.InteropServices;
-
-namespace Windows
-{
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
- class DropFile
- {
- uint pFiles = 14;
- public Point pt;
- public bool fNC;
- bool fWide = true;
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 300)] // Max path size on windows is 260
- public string file = "";
- }
-}
diff --git a/Dependencies/MelonStartScreen/Windows/Msg.cs b/Dependencies/MelonStartScreen/Windows/Msg.cs
deleted file mode 100644
index 1a17fa734..000000000
--- a/Dependencies/MelonStartScreen/Windows/Msg.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace Windows
-{
- [StructLayout(LayoutKind.Sequential)]
- internal struct Msg
- {
- public IntPtr hwnd;
- public WindowMessage message;
- public IntPtr wParam;
- public IntPtr lParam;
- public uint time;
- public Point pt;
- }
-}
diff --git a/Dependencies/MelonStartScreen/Windows/Point.cs b/Dependencies/MelonStartScreen/Windows/Point.cs
deleted file mode 100644
index 4d7c5feae..000000000
--- a/Dependencies/MelonStartScreen/Windows/Point.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-namespace Windows
-{
- internal struct Point
- {
- public int x;
- public int y;
- }
-}
diff --git a/Dependencies/MelonStartScreen/Windows/User32.cs b/Dependencies/MelonStartScreen/Windows/User32.cs
deleted file mode 100644
index 9778f4a1b..000000000
--- a/Dependencies/MelonStartScreen/Windows/User32.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System;
-using System.Runtime.InteropServices;
-
-namespace Windows
-{
- internal static class User32
- {
- [DllImport("user32.dll")]
- public static extern bool PeekMessage(out Msg lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax, uint wRemoveMsg);
-
- [DllImport("user32.dll")]
- public static extern bool TranslateMessage([In] ref Msg lpMsg);
-
- [DllImport("user32.dll")]
- public static extern IntPtr DispatchMessage([In] ref Msg lpmsg);
-
- [DllImport("user32.dll", SetLastError = false)]
- public static extern IntPtr GetMessageExtraInfo();
-
- [DllImport("user32.dll", ExactSpelling = true)]
- public static extern IntPtr SetTimer(IntPtr hWnd, IntPtr nIDEvent, uint uElapse, TimerProc lpTimerFunc);
- public delegate void TimerProc(IntPtr hWnd, uint uMsg, IntPtr nIDEvent, uint dwTime);
-
- [DllImport("user32.dll", ExactSpelling = true)]
- public static extern bool KillTimer(IntPtr hWnd, IntPtr uIDEvent);
-
- [DllImport("user32.dll")]
- public static extern IntPtr SetClipboardData(uint uFormat, ref DropFile hMem);
- }
-}
diff --git a/Dependencies/MelonStartScreen/Windows/WindowMessage.cs b/Dependencies/MelonStartScreen/Windows/WindowMessage.cs
deleted file mode 100644
index 738ebb605..000000000
--- a/Dependencies/MelonStartScreen/Windows/WindowMessage.cs
+++ /dev/null
@@ -1,969 +0,0 @@
-using System;
-
-namespace Windows
-{
- ///
- /// Windows Messages
- /// Defined in winuser.h from Windows SDK v6.1
- /// Documentation pulled from MSDN.
- ///
- internal enum WindowMessage : uint
- {
- ///
- /// The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore.
- ///
- NULL = 0x0000,
- ///
- /// The WM_CREATE message is sent when an application requests that a window be created by calling the CreateWindowEx or CreateWindow function. (The message is sent before the function returns.) The window procedure of the new window receives this message after the window is created, but before the window becomes visible.
- ///
- CREATE = 0x0001,
- ///
- /// The WM_DESTROY message is sent when a window is being destroyed. It is sent to the window procedure of the window being destroyed after the window is removed from the screen.
- /// This message is sent first to the window being destroyed and then to the child windows (if any) as they are destroyed. During the processing of the message, it can be assumed that all child windows still exist.
- /// ///
- DESTROY = 0x0002,
- ///
- /// The WM_MOVE message is sent after a window has been moved.
- ///
- MOVE = 0x0003,
- ///
- /// The WM_SIZE message is sent to a window after its size has changed.
- ///
- SIZE = 0x0005,
- ///
- /// The WM_ACTIVATE message is sent to both the window being activated and the window being deactivated. If the windows use the same input queue, the message is sent synchronously, first to the window procedure of the top-level window being deactivated, then to the window procedure of the top-level window being activated. If the windows use different input queues, the message is sent asynchronously, so the window is activated immediately.
- ///
- ACTIVATE = 0x0006,
- ///
- /// The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus.
- ///
- SETFOCUS = 0x0007,
- ///
- /// The WM_KILLFOCUS message is sent to a window immediately before it loses the keyboard focus.
- ///
- KILLFOCUS = 0x0008,
- ///
- /// The WM_ENABLE message is sent when an application changes the enabled state of a window. It is sent to the window whose enabled state is changing. This message is sent before the EnableWindow function returns, but after the enabled state (WS_DISABLED style bit) of the window has changed.
- ///
- ENABLE = 0x000A,
- ///
- /// An application sends the WM_SETREDRAW message to a window to allow changes in that window to be redrawn or to prevent changes in that window from being redrawn.
- ///
- SETREDRAW = 0x000B,
- ///
- /// An application sends a WM_SETTEXT message to set the text of a window.
- ///
- SETTEXT = 0x000C,
- ///
- /// An application sends a WM_GETTEXT message to copy the text that corresponds to a window into a buffer provided by the caller.
- ///
- GETTEXT = 0x000D,
- ///
- /// An application sends a WM_GETTEXTLENGTH message to determine the length, in characters, of the text associated with a window.
- ///
- GETTEXTLENGTH = 0x000E,
- ///
- /// The WM_PAINT message is sent when the system or another application makes a request to paint a portion of an application's window. The message is sent when the UpdateWindow or RedrawWindow function is called, or by the DispatchMessage function when the application obtains a WM_PAINT message by using the GetMessage or PeekMessage function.
- ///
- PAINT = 0x000F,
- ///
- /// The WM_CLOSE message is sent as a signal that a window or an application should terminate.
- ///
- CLOSE = 0x0010,
- ///
- /// The WM_QUERYENDSESSION message is sent when the user chooses to end the session or when an application calls one of the system shutdown functions. If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero.
- /// After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message.
- ///
- QUERYENDSESSION = 0x0011,
- ///
- /// The WM_QUERYOPEN message is sent to an icon when the user requests that the window be restored to its previous size and position.
- ///
- QUERYOPEN = 0x0013,
- ///
- /// The WM_ENDSESSION message is sent to an application after the system processes the results of the WM_QUERYENDSESSION message. The WM_ENDSESSION message informs the application whether the session is ending.
- ///
- ENDSESSION = 0x0016,
- ///
- /// The WM_QUIT message indicates a request to terminate an application and is generated when the application calls the PostQuitMessage function. It causes the GetMessage function to return zero.
- ///
- QUIT = 0x0012,
- ///
- /// The WM_ERASEBKGND message is sent when the window background must be erased (for example, when a window is resized). The message is sent to prepare an invalidated portion of a window for painting.
- ///
- ERASEBKGND = 0x0014,
- ///
- /// This message is sent to all top-level windows when a change is made to a system color setting.
- ///
- SYSCOLORCHANGE = 0x0015,
- ///
- /// The WM_SHOWWINDOW message is sent to a window when the window is about to be hidden or shown.
- ///
- SHOWWINDOW = 0x0018,
- ///
- /// An application sends the WM_WININICHANGE message to all top-level windows after making a change to the WIN.INI file. The SystemParametersInfo function sends this message after an application uses the function to change a setting in WIN.INI.
- /// Note The WM_WININICHANGE message is provided only for compatibility with earlier versions of the system. Applications should use the WM_SETTINGCHANGE message.
- ///
- WININICHANGE = 0x001A,
- ///
- /// An application sends the WM_WININICHANGE message to all top-level windows after making a change to the WIN.INI file. The SystemParametersInfo function sends this message after an application uses the function to change a setting in WIN.INI.
- /// Note The WM_WININICHANGE message is provided only for compatibility with earlier versions of the system. Applications should use the WM_SETTINGCHANGE message.
- ///
- SETTINGCHANGE = WININICHANGE,
- ///
- /// The WM_DEVMODECHANGE message is sent to all top-level windows whenever the user changes device-mode settings.
- ///
- DEVMODECHANGE = 0x001B,
- ///
- /// The WM_ACTIVATEAPP message is sent when a window belonging to a different application than the active window is about to be activated. The message is sent to the application whose window is being activated and to the application whose window is being deactivated.
- ///
- ACTIVATEAPP = 0x001C,
- ///
- /// An application sends the WM_FONTCHANGE message to all top-level windows in the system after changing the pool of font resources.
- ///
- FONTCHANGE = 0x001D,
- ///
- /// A message that is sent whenever there is a change in the system time.
- ///
- TIMECHANGE = 0x001E,
- ///
- /// The WM_CANCELMODE message is sent to cancel certain modes, such as mouse capture. For example, the system sends this message to the active window when a dialog box or message box is displayed. Certain functions also send this message explicitly to the specified window regardless of whether it is the active window. For example, the EnableWindow function sends this message when disabling the specified window.
- ///
- CANCELMODE = 0x001F,
- ///
- /// The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured.
- ///
- SETCURSOR = 0x0020,
- ///
- /// The WM_MOUSEACTIVATE message is sent when the cursor is in an inactive window and the user presses a mouse button. The parent window receives this message only if the child window passes it to the DefWindowProc function.
- ///
- MOUSEACTIVATE = 0x0021,
- ///
- /// The WM_CHILDACTIVATE message is sent to a child window when the user clicks the window's title bar or when the window is activated, moved, or sized.
- ///
- CHILDACTIVATE = 0x0022,
- ///
- /// The WM_QUEUESYNC message is sent by a computer-based training (CBT) application to separate user-input messages from other messages sent through the WH_JOURNALPLAYBACK Hook procedure.
- ///
- QUEUESYNC = 0x0023,
- ///
- /// The WM_GETMINMAXINFO message is sent to a window when the size or position of the window is about to change. An application can use this message to override the window's default maximized size and position, or its default minimum or maximum tracking size.
- ///
- GETMINMAXINFO = 0x0024,
- ///
- /// Windows NT 3.51 and earlier: The WM_PAINTICON message is sent to a minimized window when the icon is to be painted. This message is not sent by newer versions of Microsoft Windows, except in unusual circumstances explained in the Remarks.
- ///
- PAINTICON = 0x0026,
- ///
- /// Windows NT 3.51 and earlier: The WM_ICONERASEBKGND message is sent to a minimized window when the background of the icon must be filled before painting the icon. A window receives this message only if a class icon is defined for the window; otherwise, WM_ERASEBKGND is sent. This message is not sent by newer versions of Windows.
- ///
- ICONERASEBKGND = 0x0027,
- ///
- /// The WM_NEXTDLGCTL message is sent to a dialog box procedure to set the keyboard focus to a different control in the dialog box.
- ///
- NEXTDLGCTL = 0x0028,
- ///
- /// The WM_SPOOLERSTATUS message is sent from Print Manager whenever a job is added to or removed from the Print Manager queue.
- ///
- SPOOLERSTATUS = 0x002A,
- ///
- /// The WM_DRAWITEM message is sent to the parent window of an owner-drawn button, combo box, list box, or menu when a visual aspect of the button, combo box, list box, or menu has changed.
- ///
- DRAWITEM = 0x002B,
- ///
- /// The WM_MEASUREITEM message is sent to the owner window of a combo box, list box, list view control, or menu item when the control or menu is created.
- ///
- MEASUREITEM = 0x002C,
- ///
- /// Sent to the owner of a list box or combo box when the list box or combo box is destroyed or when items are removed by the LB_DELETESTRING, LB_RESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT message. The system sends a WM_DELETEITEM message for each deleted item. The system sends the WM_DELETEITEM message for any deleted list box or combo box item with nonzero item data.
- ///
- DELETEITEM = 0x002D,
- ///
- /// Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its owner in response to a WM_KEYDOWN message.
- ///
- VKEYTOITEM = 0x002E,
- ///
- /// Sent by a list box with the LBS_WANTKEYBOARDINPUT style to its owner in response to a WM_CHAR message.
- ///
- CHARTOITEM = 0x002F,
- ///
- /// An application sends a WM_SETFONT message to specify the font that a control is to use when drawing text.
- ///
- SETFONT = 0x0030,
- ///
- /// An application sends a WM_GETFONT message to a control to retrieve the font with which the control is currently drawing its text.
- ///
- GETFONT = 0x0031,
- ///
- /// An application sends a WM_SETHOTKEY message to a window to associate a hot key with the window. When the user presses the hot key, the system activates the window.
- ///
- SETHOTKEY = 0x0032,
- ///
- /// An application sends a WM_GETHOTKEY message to determine the hot key associated with a window.
- ///
- GETHOTKEY = 0x0033,
- ///
- /// The WM_QUERYDRAGICON message is sent to a minimized (iconic) window. The window is about to be dragged by the user but does not have an icon defined for its class. An application can return a handle to an icon or cursor. The system displays this cursor or icon while the user drags the icon.
- ///
- QUERYDRAGICON = 0x0037,
- ///
- /// The system sends the WM_COMPAREITEM message to determine the relative position of a new item in the sorted list of an owner-drawn combo box or list box. Whenever the application adds a new item, the system sends this message to the owner of a combo box or list box created with the CBS_SORT or LBS_SORT style.
- ///
- COMPAREITEM = 0x0039,
- ///
- /// Active Accessibility sends the WM_GETOBJECT message to obtain information about an accessible object contained in a server application.
- /// Applications never send this message directly. It is sent only by Active Accessibility in response to calls to AccessibleObjectFromPoint, AccessibleObjectFromEvent, or AccessibleObjectFromWindow. However, server applications handle this message.
- ///
- GETOBJECT = 0x003D,
- ///
- /// The WM_COMPACTING message is sent to all top-level windows when the system detects more than 12.5 percent of system time over a 30- to 60-second interval is being spent compacting memory. This indicates that system memory is low.
- ///
- COMPACTING = 0x0041,
- ///
- /// WM_COMMNOTIFY is Obsolete for Win32-Based Applications
- ///
- [Obsolete]
- COMMNOTIFY = 0x0044,
- ///
- /// The WM_WINDOWPOSCHANGING message is sent to a window whose size, position, or place in the Z order is about to change as a result of a call to the SetWindowPos function or another window-management function.
- ///
- WINDOWPOSCHANGING = 0x0046,
- ///
- /// The WM_WINDOWPOSCHANGED message is sent to a window whose size, position, or place in the Z order has changed as a result of a call to the SetWindowPos function or another window-management function.
- ///
- WINDOWPOSCHANGED = 0x0047,
- ///
- /// Notifies applications that the system, typically a battery-powered personal computer, is about to enter a suspended mode.
- /// Use: POWERBROADCAST
- ///
- [Obsolete]
- POWER = 0x0048,
- ///
- /// An application sends the WM_COPYDATA message to pass data to another application.
- ///
- COPYDATA = 0x004A,
- ///
- /// The WM_CANCELJOURNAL message is posted to an application when a user cancels the application's journaling activities. The message is posted with a NULL window handle.
- ///
- CANCELJOURNAL = 0x004B,
- ///
- /// Sent by a common control to its parent window when an event has occurred or the control requires some information.
- ///
- NOTIFY = 0x004E,
- ///
- /// The WM_INPUTLANGCHANGEREQUEST message is posted to the window with the focus when the user chooses a new input language, either with the hotkey (specified in the Keyboard control panel application) or from the indicator on the system taskbar. An application can accept the change by passing the message to the DefWindowProc function or reject the change (and prevent it from taking place) by returning immediately.
- ///
- INPUTLANGCHANGEREQUEST = 0x0050,
- ///
- /// The WM_INPUTLANGCHANGE message is sent to the topmost affected window after an application's input language has been changed. You should make any application-specific settings and pass the message to the DefWindowProc function, which passes the message to all first-level child windows. These child windows can pass the message to DefWindowProc to have it pass the message to their child windows, and so on.
- ///
- INPUTLANGCHANGE = 0x0051,
- ///
- /// Sent to an application that has initiated a training card with Microsoft Windows Help. The message informs the application when the user clicks an authorable button. An application initiates a training card by specifying the HELP_TCARD command in a call to the WinHelp function.
- ///
- TCARD = 0x0052,
- ///
- /// Indicates that the user pressed the F1 key. If a menu is active when F1 is pressed, WM_HELP is sent to the window associated with the menu; otherwise, WM_HELP is sent to the window that has the keyboard focus. If no window has the keyboard focus, WM_HELP is sent to the currently active window.
- ///
- HELP = 0x0053,
- ///
- /// The WM_USERCHANGED message is sent to all windows after the user has logged on or off. When the user logs on or off, the system updates the user-specific settings. The system sends this message immediately after updating the settings.
- ///
- USERCHANGED = 0x0054,
- ///
- /// Determines if a window accepts ANSI or Unicode structures in the WM_NOTIFY notification message. WM_NOTIFYFORMAT messages are sent from a common control to its parent window and from the parent window to the common control.
- ///
- NOTIFYFORMAT = 0x0055,
- ///
- /// The WM_CONTEXTMENU message notifies a window that the user clicked the right mouse button (right-clicked) in the window.
- ///
- CONTEXTMENU = 0x007B,
- ///
- /// The WM_STYLECHANGING message is sent to a window when the SetWindowLong function is about to change one or more of the window's styles.
- ///
- STYLECHANGING = 0x007C,
- ///
- /// The WM_STYLECHANGED message is sent to a window after the SetWindowLong function has changed one or more of the window's styles
- ///
- STYLECHANGED = 0x007D,
- ///
- /// The WM_DISPLAYCHANGE message is sent to all windows when the display resolution has changed.
- ///
- DISPLAYCHANGE = 0x007E,
- ///
- /// The WM_GETICON message is sent to a window to retrieve a handle to the large or small icon associated with a window. The system displays the large icon in the ALT+TAB dialog, and the small icon in the window caption.
- ///
- GETICON = 0x007F,
- ///
- /// An application sends the WM_SETICON message to associate a new large or small icon with a window. The system displays the large icon in the ALT+TAB dialog box, and the small icon in the window caption.
- ///
- SETICON = 0x0080,
- ///
- /// The WM_NCCREATE message is sent prior to the WM_CREATE message when a window is first created.
- ///
- NCCREATE = 0x0081,
- ///
- /// The WM_NCDESTROY message informs a window that its nonclient area is being destroyed. The DestroyWindow function sends the WM_NCDESTROY message to the window following the WM_DESTROY message. WM_DESTROY is used to free the allocated memory object associated with the window.
- /// The WM_NCDESTROY message is sent after the child windows have been destroyed. In contrast, WM_DESTROY is sent before the child windows are destroyed.
- ///
- NCDESTROY = 0x0082,
- ///
- /// The WM_NCCALCSIZE message is sent when the size and position of a window's client area must be calculated. By processing this message, an application can control the content of the window's client area when the size or position of the window changes.
- ///
- NCCALCSIZE = 0x0083,
- ///
- /// The WM_NCHITTEST message is sent to a window when the cursor moves, or when a mouse button is pressed or released. If the mouse is not captured, the message is sent to the window beneath the cursor. Otherwise, the message is sent to the window that has captured the mouse.
- ///
- NCHITTEST = 0x0084,
- ///
- /// The WM_NCPAINT message is sent to a window when its frame must be painted.
- ///
- NCPAINT = 0x0085,
- ///
- /// The WM_NCACTIVATE message is sent to a window when its nonclient area needs to be changed to indicate an active or inactive state.
- ///
- NCACTIVATE = 0x0086,
- ///
- /// The WM_GETDLGCODE message is sent to the window procedure associated with a control. By default, the system handles all keyboard input to the control; the system interprets certain types of keyboard input as dialog box navigation keys. To override this default behavior, the control can respond to the WM_GETDLGCODE message to indicate the types of input it wants to process itself.
- ///
- GETDLGCODE = 0x0087,
- ///
- /// The WM_SYNCPAINT message is used to synchronize painting while avoiding linking independent GUI threads.
- ///
- SYNCPAINT = 0x0088,
- ///
- /// The WM_NCMOUSEMOVE message is posted to a window when the cursor is moved within the nonclient area of the window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCMOUSEMOVE = 0x00A0,
- ///
- /// The WM_NCLBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCLBUTTONDOWN = 0x00A1,
- ///
- /// The WM_NCLBUTTONUP message is posted when the user releases the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCLBUTTONUP = 0x00A2,
- ///
- /// The WM_NCLBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCLBUTTONDBLCLK = 0x00A3,
- ///
- /// The WM_NCRBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCRBUTTONDOWN = 0x00A4,
- ///
- /// The WM_NCRBUTTONUP message is posted when the user releases the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCRBUTTONUP = 0x00A5,
- ///
- /// The WM_NCRBUTTONDBLCLK message is posted when the user double-clicks the right mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCRBUTTONDBLCLK = 0x00A6,
- ///
- /// The WM_NCMBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCMBUTTONDOWN = 0x00A7,
- ///
- /// The WM_NCMBUTTONUP message is posted when the user releases the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCMBUTTONUP = 0x00A8,
- ///
- /// The WM_NCMBUTTONDBLCLK message is posted when the user double-clicks the middle mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCMBUTTONDBLCLK = 0x00A9,
- ///
- /// The WM_NCXBUTTONDOWN message is posted when the user presses the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCXBUTTONDOWN = 0x00AB,
- ///
- /// The WM_NCXBUTTONUP message is posted when the user releases the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCXBUTTONUP = 0x00AC,
- ///
- /// The WM_NCXBUTTONDBLCLK message is posted when the user double-clicks the first or second X button while the cursor is in the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.
- ///
- NCXBUTTONDBLCLK = 0x00AD,
- ///
- /// The WM_INPUT_DEVICE_CHANGE message is sent to the window that registered to receive raw input. A window receives this message through its WindowProc function.
- ///
- INPUT_DEVICE_CHANGE = 0x00FE,
- ///
- /// The WM_INPUT message is sent to the window that is getting raw input.
- ///
- INPUT = 0x00FF,
- ///
- /// This message filters for keyboard messages.
- ///
- KEYFIRST = 0x0100,
- ///
- /// The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.
- ///
- KEYDOWN = 0x0100,
- ///
- /// The WM_KEYUP message is posted to the window with the keyboard focus when a nonsystem key is released. A nonsystem key is a key that is pressed when the ALT key is not pressed, or a keyboard key that is pressed when a window has the keyboard focus.
- ///
- KEYUP = 0x0101,
- ///
- /// The WM_CHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_CHAR message contains the character code of the key that was pressed.
- ///
- CHAR = 0x0102,
- ///
- /// The WM_DEADCHAR message is posted to the window with the keyboard focus when a WM_KEYUP message is translated by the TranslateMessage function. WM_DEADCHAR specifies a character code generated by a dead key. A dead key is a key that generates a character, such as the umlaut (double-dot), that is combined with another character to form a composite character. For example, the umlaut-O character (Ö) is generated by typing the dead key for the umlaut character, and then typing the O key.
- ///
- DEADCHAR = 0x0103,
- ///
- /// The WM_SYSKEYDOWN message is posted to the window with the keyboard focus when the user presses the F10 key (which activates the menu bar) or holds down the ALT key and then presses another key. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter.
- ///
- SYSKEYDOWN = 0x0104,
- ///
- /// The WM_SYSKEYUP message is posted to the window with the keyboard focus when the user releases a key that was pressed while the ALT key was held down. It also occurs when no window currently has the keyboard focus; in this case, the WM_SYSKEYUP message is sent to the active window. The window that receives the message can distinguish between these two contexts by checking the context code in the lParam parameter.
- ///
- SYSKEYUP = 0x0105,
- ///
- /// The WM_SYSCHAR message is posted to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. It specifies the character code of a system character key — that is, a character key that is pressed while the ALT key is down.
- ///
- SYSCHAR = 0x0106,
- ///
- /// The WM_SYSDEADCHAR message is sent to the window with the keyboard focus when a WM_SYSKEYDOWN message is translated by the TranslateMessage function. WM_SYSDEADCHAR specifies the character code of a system dead key — that is, a dead key that is pressed while holding down the ALT key.
- ///
- SYSDEADCHAR = 0x0107,
- ///
- /// The WM_UNICHAR message is posted to the window with the keyboard focus when a WM_KEYDOWN message is translated by the TranslateMessage function. The WM_UNICHAR message contains the character code of the key that was pressed.
- /// The WM_UNICHAR message is equivalent to WM_CHAR, but it uses Unicode Transformation Format (UTF)-32, whereas WM_CHAR uses UTF-16. It is designed to send or post Unicode characters to ANSI windows and it can can handle Unicode Supplementary Plane characters.
- ///
- UNICHAR = 0x0109,
- ///
- /// This message filters for keyboard messages.
- ///
- KEYLAST = 0x0108,
- ///
- /// Sent immediately before the IME generates the composition string as a result of a keystroke. A window receives this message through its WindowProc function.
- ///
- IME_STARTCOMPOSITION = 0x010D,
- ///
- /// Sent to an application when the IME ends composition. A window receives this message through its WindowProc function.
- ///
- IME_ENDCOMPOSITION = 0x010E,
- ///
- /// Sent to an application when the IME changes composition status as a result of a keystroke. A window receives this message through its WindowProc function.
- ///
- IME_COMPOSITION = 0x010F,
- IME_KEYLAST = 0x010F,
- ///
- /// The WM_INITDIALOG message is sent to the dialog box procedure immediately before a dialog box is displayed. Dialog box procedures typically use this message to initialize controls and carry out any other initialization tasks that affect the appearance of the dialog box.
- ///
- INITDIALOG = 0x0110,
- ///
- /// The WM_COMMAND message is sent when the user selects a command item from a menu, when a control sends a notification message to its parent window, or when an accelerator keystroke is translated.
- ///
- COMMAND = 0x0111,
- ///
- /// A window receives this message when the user chooses a command from the Window menu, clicks the maximize button, minimize button, restore button, close button, or moves the form. You can stop the form from moving by filtering this out.
- ///
- SYSCOMMAND = 0x0112,
- ///
- /// The WM_TIMER message is posted to the installing thread's message queue when a timer expires. The message is posted by the GetMessage or PeekMessage function.
- ///
- TIMER = 0x0113,
- ///
- /// The WM_HSCROLL message is sent to a window when a scroll event occurs in the window's standard horizontal scroll bar. This message is also sent to the owner of a horizontal scroll bar control when a scroll event occurs in the control.
- ///
- HSCROLL = 0x0114,
- ///
- /// The WM_VSCROLL message is sent to a window when a scroll event occurs in the window's standard vertical scroll bar. This message is also sent to the owner of a vertical scroll bar control when a scroll event occurs in the control.
- ///
- VSCROLL = 0x0115,
- ///
- /// The WM_INITMENU message is sent when a menu is about to become active. It occurs when the user clicks an item on the menu bar or presses a menu key. This allows the application to modify the menu before it is displayed.
- ///
- INITMENU = 0x0116,
- ///
- /// The WM_INITMENUPOPUP message is sent when a drop-down menu or submenu is about to become active. This allows an application to modify the menu before it is displayed, without changing the entire menu.
- ///
- INITMENUPOPUP = 0x0117,
- ///
- /// The WM_MENUSELECT message is sent to a menu's owner window when the user selects a menu item.
- ///
- MENUSELECT = 0x011F,
- ///
- /// The WM_MENUCHAR message is sent when a menu is active and the user presses a key that does not correspond to any mnemonic or accelerator key. This message is sent to the window that owns the menu.
- ///
- MENUCHAR = 0x0120,
- ///
- /// The WM_ENTERIDLE message is sent to the owner window of a modal dialog box or menu that is entering an idle state. A modal dialog box or menu enters an idle state when no messages are waiting in its queue after it has processed one or more previous messages.
- ///
- ENTERIDLE = 0x0121,
- ///
- /// The WM_MENURBUTTONUP message is sent when the user releases the right mouse button while the cursor is on a menu item.
- ///
- MENURBUTTONUP = 0x0122,
- ///
- /// The WM_MENUDRAG message is sent to the owner of a drag-and-drop menu when the user drags a menu item.
- ///
- MENUDRAG = 0x0123,
- ///
- /// The WM_MENUGETOBJECT message is sent to the owner of a drag-and-drop menu when the mouse cursor enters a menu item or moves from the center of the item to the top or bottom of the item.
- ///
- MENUGETOBJECT = 0x0124,
- ///
- /// The WM_UNINITMENUPOPUP message is sent when a drop-down menu or submenu has been destroyed.
- ///
- UNINITMENUPOPUP = 0x0125,
- ///
- /// The WM_MENUCOMMAND message is sent when the user makes a selection from a menu.
- ///
- MENUCOMMAND = 0x0126,
- ///
- /// An application sends the WM_CHANGEUISTATE message to indicate that the user interface (UI) state should be changed.
- ///
- CHANGEUISTATE = 0x0127,
- ///
- /// An application sends the WM_UPDATEUISTATE message to change the user interface (UI) state for the specified window and all its child windows.
- ///
- UPDATEUISTATE = 0x0128,
- ///
- /// An application sends the WM_QUERYUISTATE message to retrieve the user interface (UI) state for a window.
- ///
- QUERYUISTATE = 0x0129,
- ///
- /// The WM_CTLCOLORMSGBOX message is sent to the owner window of a message box before Windows draws the message box. By responding to this message, the owner window can set the text and background colors of the message box by using the given display device context handle.
- ///
- CTLCOLORMSGBOX = 0x0132,
- ///
- /// An edit control that is not read-only or disabled sends the WM_CTLCOLOREDIT message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text and background colors of the edit control.
- ///
- CTLCOLOREDIT = 0x0133,
- ///
- /// Sent to the parent window of a list box before the system draws the list box. By responding to this message, the parent window can set the text and background colors of the list box by using the specified display device context handle.
- ///
- CTLCOLORLISTBOX = 0x0134,
- ///
- /// The WM_CTLCOLORBTN message is sent to the parent window of a button before drawing the button. The parent window can change the button's text and background colors. However, only owner-drawn buttons respond to the parent window processing this message.
- ///
- CTLCOLORBTN = 0x0135,
- ///
- /// The WM_CTLCOLORDLG message is sent to a dialog box before the system draws the dialog box. By responding to this message, the dialog box can set its text and background colors using the specified display device context handle.
- ///
- CTLCOLORDLG = 0x0136,
- ///
- /// The WM_CTLCOLORSCROLLBAR message is sent to the parent window of a scroll bar control when the control is about to be drawn. By responding to this message, the parent window can use the display context handle to set the background color of the scroll bar control.
- ///
- CTLCOLORSCROLLBAR = 0x0137,
- ///
- /// A static control, or an edit control that is read-only or disabled, sends the WM_CTLCOLORSTATIC message to its parent window when the control is about to be drawn. By responding to this message, the parent window can use the specified device context handle to set the text and background colors of the static control.
- ///
- CTLCOLORSTATIC = 0x0138,
- ///
- /// Use WM_MOUSEFIRST to specify the first mouse message. Use the PeekMessage() Function.
- ///
- MOUSEFIRST = 0x0200,
- ///
- /// The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- MOUSEMOVE = 0x0200,
- ///
- /// The WM_LBUTTONDOWN message is posted when the user presses the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- LBUTTONDOWN = 0x0201,
- ///
- /// The WM_LBUTTONUP message is posted when the user releases the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- LBUTTONUP = 0x0202,
- ///
- /// The WM_LBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- LBUTTONDBLCLK = 0x0203,
- ///
- /// The WM_RBUTTONDOWN message is posted when the user presses the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- RBUTTONDOWN = 0x0204,
- ///
- /// The WM_RBUTTONUP message is posted when the user releases the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- RBUTTONUP = 0x0205,
- ///
- /// The WM_RBUTTONDBLCLK message is posted when the user double-clicks the right mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- RBUTTONDBLCLK = 0x0206,
- ///
- /// The WM_MBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- MBUTTONDOWN = 0x0207,
- ///
- /// The WM_MBUTTONUP message is posted when the user releases the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- MBUTTONUP = 0x0208,
- ///
- /// The WM_MBUTTONDBLCLK message is posted when the user double-clicks the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- MBUTTONDBLCLK = 0x0209,
- ///
- /// The WM_MOUSEWHEEL message is sent to the focus window when the mouse wheel is rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it.
- ///
- MOUSEWHEEL = 0x020A,
- ///
- /// The WM_XBUTTONDOWN message is posted when the user presses the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- XBUTTONDOWN = 0x020B,
- ///
- /// The WM_XBUTTONUP message is posted when the user releases the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- XBUTTONUP = 0x020C,
- ///
- /// The WM_XBUTTONDBLCLK message is posted when the user double-clicks the first or second X button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
- ///
- XBUTTONDBLCLK = 0x020D,
- ///
- /// The WM_MOUSEHWHEEL message is sent to the focus window when the mouse's horizontal scroll wheel is tilted or rotated. The DefWindowProc function propagates the message to the window's parent. There should be no internal forwarding of the message, since DefWindowProc propagates it up the parent chain until it finds a window that processes it.
- ///
- MOUSEHWHEEL = 0x020E,
- ///
- /// Use WM_MOUSELAST to specify the last mouse message. Used with PeekMessage() Function.
- ///
- MOUSELAST = 0x020E,
- ///
- /// The WM_PARENTNOTIFY message is sent to the parent of a child window when the child window is created or destroyed, or when the user clicks a mouse button while the cursor is over the child window. When the child window is being created, the system sends WM_PARENTNOTIFY just before the CreateWindow or CreateWindowEx function that creates the window returns. When the child window is being destroyed, the system sends the message before any processing to destroy the window takes place.
- ///
- PARENTNOTIFY = 0x0210,
- ///
- /// The WM_ENTERMENULOOP message informs an application's main window procedure that a menu modal loop has been entered.
- ///
- ENTERMENULOOP = 0x0211,
- ///
- /// The WM_EXITMENULOOP message informs an application's main window procedure that a menu modal loop has been exited.
- ///
- EXITMENULOOP = 0x0212,
- ///
- /// The WM_NEXTMENU message is sent to an application when the right or left arrow key is used to switch between the menu bar and the system menu.
- ///
- NEXTMENU = 0x0213,
- ///
- /// The WM_SIZING message is sent to a window that the user is resizing. By processing this message, an application can monitor the size and position of the drag rectangle and, if needed, change its size or position.
- ///
- SIZING = 0x0214,
- ///
- /// The WM_CAPTURECHANGED message is sent to the window that is losing the mouse capture.
- ///
- CAPTURECHANGED = 0x0215,
- ///
- /// The WM_MOVING message is sent to a window that the user is moving. By processing this message, an application can monitor the position of the drag rectangle and, if needed, change its position.
- ///
- MOVING = 0x0216,
- ///
- /// Notifies applications that a power-management event has occurred.
- ///
- POWERBROADCAST = 0x0218,
- ///
- /// Notifies an application of a change to the hardware configuration of a device or the computer.
- ///
- DEVICECHANGE = 0x0219,
- ///
- /// An application sends the WM_MDICREATE message to a multiple-document interface (MDI) client window to create an MDI child window.
- ///
- MDICREATE = 0x0220,
- ///
- /// An application sends the WM_MDIDESTROY message to a multiple-document interface (MDI) client window to close an MDI child window.
- ///
- MDIDESTROY = 0x0221,
- ///
- /// An application sends the WM_MDIACTIVATE message to a multiple-document interface (MDI) client window to instruct the client window to activate a different MDI child window.
- ///
- MDIACTIVATE = 0x0222,
- ///
- /// An application sends the WM_MDIRESTORE message to a multiple-document interface (MDI) client window to restore an MDI child window from maximized or minimized size.
- ///
- MDIRESTORE = 0x0223,
- ///
- /// An application sends the WM_MDINEXT message to a multiple-document interface (MDI) client window to activate the next or previous child window.
- ///
- MDINEXT = 0x0224,
- ///
- /// An application sends the WM_MDIMAXIMIZE message to a multiple-document interface (MDI) client window to maximize an MDI child window. The system resizes the child window to make its client area fill the client window. The system places the child window's window menu icon in the rightmost position of the frame window's menu bar, and places the child window's restore icon in the leftmost position. The system also appends the title bar text of the child window to that of the frame window.
- ///
- MDIMAXIMIZE = 0x0225,
- ///
- /// An application sends the WM_MDITILE message to a multiple-document interface (MDI) client window to arrange all of its MDI child windows in a tile format.
- ///
- MDITILE = 0x0226,
- ///
- /// An application sends the WM_MDICASCADE message to a multiple-document interface (MDI) client window to arrange all its child windows in a cascade format.
- ///
- MDICASCADE = 0x0227,
- ///
- /// An application sends the WM_MDIICONARRANGE message to a multiple-document interface (MDI) client window to arrange all minimized MDI child windows. It does not affect child windows that are not minimized.
- ///
- MDIICONARRANGE = 0x0228,
- ///
- /// An application sends the WM_MDIGETACTIVE message to a multiple-document interface (MDI) client window to retrieve the handle to the active MDI child window.
- ///
- MDIGETACTIVE = 0x0229,
- ///
- /// An application sends the WM_MDISETMENU message to a multiple-document interface (MDI) client window to replace the entire menu of an MDI frame window, to replace the window menu of the frame window, or both.
- ///
- MDISETMENU = 0x0230,
- ///
- /// The WM_ENTERSIZEMOVE message is sent one time to a window after it enters the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns.
- /// The system sends the WM_ENTERSIZEMOVE message regardless of whether the dragging of full windows is enabled.
- ///
- ENTERSIZEMOVE = 0x0231,
- ///
- /// The WM_EXITSIZEMOVE message is sent one time to a window, after it has exited the moving or sizing modal loop. The window enters the moving or sizing modal loop when the user clicks the window's title bar or sizing border, or when the window passes the WM_SYSCOMMAND message to the DefWindowProc function and the wParam parameter of the message specifies the SC_MOVE or SC_SIZE value. The operation is complete when DefWindowProc returns.
- ///
- EXITSIZEMOVE = 0x0232,
- ///
- /// Sent when the user drops a file on the window of an application that has registered itself as a recipient of dropped files.
- ///
- DROPFILES = 0x0233,
- ///
- /// An application sends the WM_MDIREFRESHMENU message to a multiple-document interface (MDI) client window to refresh the window menu of the MDI frame window.
- ///
- MDIREFRESHMENU = 0x0234,
- ///
- /// Sent to an application when a window is activated. A window receives this message through its WindowProc function.
- ///
- IME_SETCONTEXT = 0x0281,
- ///
- /// Sent to an application to notify it of changes to the IME window. A window receives this message through its WindowProc function.
- ///
- IME_NOTIFY = 0x0282,
- ///
- /// Sent by an application to direct the IME window to carry out the requested command. The application uses this message to control the IME window that it has created. To send this message, the application calls the SendMessage function with the following parameters.
- ///
- IME_CONTROL = 0x0283,
- ///
- /// Sent to an application when the IME window finds no space to extend the area for the composition window. A window receives this message through its WindowProc function.
- ///
- IME_COMPOSITIONFULL = 0x0284,
- ///
- /// Sent to an application when the operating system is about to change the current IME. A window receives this message through its WindowProc function.
- ///
- IME_SELECT = 0x0285,
- ///
- /// Sent to an application when the IME gets a character of the conversion result. A window receives this message through its WindowProc function.
- ///
- IME_CHAR = 0x0286,
- ///
- /// Sent to an application to provide commands and request information. A window receives this message through its WindowProc function.
- ///
- IME_REQUEST = 0x0288,
- ///
- /// Sent to an application by the IME to notify the application of a key press and to keep message order. A window receives this message through its WindowProc function.
- ///
- IME_KEYDOWN = 0x0290,
- ///
- /// Sent to an application by the IME to notify the application of a key release and to keep message order. A window receives this message through its WindowProc function.
- ///
- IME_KEYUP = 0x0291,
- ///
- /// The WM_MOUSEHOVER message is posted to a window when the cursor hovers over the client area of the window for the period of time specified in a prior call to TrackMouseEvent.
- ///
- MOUSEHOVER = 0x02A1,
- ///
- /// The WM_MOUSELEAVE message is posted to a window when the cursor leaves the client area of the window specified in a prior call to TrackMouseEvent.
- ///
- MOUSELEAVE = 0x02A3,
- ///
- /// The WM_NCMOUSEHOVER message is posted to a window when the cursor hovers over the nonclient area of the window for the period of time specified in a prior call to TrackMouseEvent.
- ///
- NCMOUSEHOVER = 0x02A0,
- ///
- /// The WM_NCMOUSELEAVE message is posted to a window when the cursor leaves the nonclient area of the window specified in a prior call to TrackMouseEvent.
- ///
- NCMOUSELEAVE = 0x02A2,
- ///
- /// The WM_WTSSESSION_CHANGE message notifies applications of changes in session state.
- ///
- WTSSESSION_CHANGE = 0x02B1,
- TABLET_FIRST = 0x02c0,
- TABLET_LAST = 0x02df,
- ///
- /// An application sends a WM_CUT message to an edit control or combo box to delete (cut) the current selection, if any, in the edit control and copy the deleted text to the clipboard in CF_TEXT format.
- ///
- CUT = 0x0300,
- ///
- /// An application sends the WM_COPY message to an edit control or combo box to copy the current selection to the clipboard in CF_TEXT format.
- ///
- COPY = 0x0301,
- ///
- /// An application sends a WM_PASTE message to an edit control or combo box to copy the current content of the clipboard to the edit control at the current caret position. Data is inserted only if the clipboard contains data in CF_TEXT format.
- ///
- PASTE = 0x0302,
- ///
- /// An application sends a WM_CLEAR message to an edit control or combo box to delete (clear) the current selection, if any, from the edit control.
- ///
- CLEAR = 0x0303,
- ///
- /// An application sends a WM_UNDO message to an edit control to undo the last operation. When this message is sent to an edit control, the previously deleted text is restored or the previously added text is deleted.
- ///
- UNDO = 0x0304,
- ///
- /// The WM_RENDERFORMAT message is sent to the clipboard owner if it has delayed rendering a specific clipboard format and if an application has requested data in that format. The clipboard owner must render data in the specified format and place it on the clipboard by calling the SetClipboardData function.
- ///
- RENDERFORMAT = 0x0305,
- ///
- /// The WM_RENDERALLFORMATS message is sent to the clipboard owner before it is destroyed, if the clipboard owner has delayed rendering one or more clipboard formats. For the content of the clipboard to remain available to other applications, the clipboard owner must render data in all the formats it is capable of generating, and place the data on the clipboard by calling the SetClipboardData function.
- ///
- RENDERALLFORMATS = 0x0306,
- ///
- /// The WM_DESTROYCLIPBOARD message is sent to the clipboard owner when a call to the EmptyClipboard function empties the clipboard.
- ///
- DESTROYCLIPBOARD = 0x0307,
- ///
- /// The WM_DRAWCLIPBOARD message is sent to the first window in the clipboard viewer chain when the content of the clipboard changes. This enables a clipboard viewer window to display the new content of the clipboard.
- ///
- DRAWCLIPBOARD = 0x0308,
- ///
- /// The WM_PAINTCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and the clipboard viewer's client area needs repainting.
- ///
- PAINTCLIPBOARD = 0x0309,
- ///
- /// The WM_VSCROLLCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's vertical scroll bar. The owner should scroll the clipboard image and update the scroll bar values.
- ///
- VSCROLLCLIPBOARD = 0x030A,
- ///
- /// The WM_SIZECLIPBOARD message is sent to the clipboard owner by a clipboard viewer window when the clipboard contains data in the CF_OWNERDISPLAY format and the clipboard viewer's client area has changed size.
- ///
- SIZECLIPBOARD = 0x030B,
- ///
- /// The WM_ASKCBFORMATNAME message is sent to the clipboard owner by a clipboard viewer window to request the name of a CF_OWNERDISPLAY clipboard format.
- ///
- ASKCBFORMATNAME = 0x030C,
- ///
- /// The WM_CHANGECBCHAIN message is sent to the first window in the clipboard viewer chain when a window is being removed from the chain.
- ///
- CHANGECBCHAIN = 0x030D,
- ///
- /// The WM_HSCROLLCLIPBOARD message is sent to the clipboard owner by a clipboard viewer window. This occurs when the clipboard contains data in the CF_OWNERDISPLAY format and an event occurs in the clipboard viewer's horizontal scroll bar. The owner should scroll the clipboard image and update the scroll bar values.
- ///
- HSCROLLCLIPBOARD = 0x030E,
- ///
- /// This message informs a window that it is about to receive the keyboard focus, giving the window the opportunity to realize its logical palette when it receives the focus.
- ///
- QUERYNEWPALETTE = 0x030F,
- ///
- /// The WM_PALETTEISCHANGING message informs applications that an application is going to realize its logical palette.
- ///
- PALETTEISCHANGING = 0x0310,
- ///
- /// This message is sent by the OS to all top-level and overlapped windows after the window with the keyboard focus realizes its logical palette.
- /// This message enables windows that do not have the keyboard focus to realize their logical palettes and update their client areas.
- ///
- PALETTECHANGED = 0x0311,
- ///
- /// The WM_HOTKEY message is posted when the user presses a hot key registered by the RegisterHotKey function. The message is placed at the top of the message queue associated with the thread that registered the hot key.
- ///
- HOTKEY = 0x0312,
- ///
- /// The WM_PRINT message is sent to a window to request that it draw itself in the specified device context, most commonly in a printer device context.
- ///
- PRINT = 0x0317,
- ///
- /// The WM_PRINTCLIENT message is sent to a window to request that it draw its client area in the specified device context, most commonly in a printer device context.
- ///
- PRINTCLIENT = 0x0318,
- ///
- /// The WM_APPCOMMAND message notifies a window that the user generated an application command event, for example, by clicking an application command button using the mouse or typing an application command key on the keyboard.
- ///
- APPCOMMAND = 0x0319,
- ///
- /// The WM_THEMECHANGED message is broadcast to every window following a theme change event. Examples of theme change events are the activation of a theme, the deactivation of a theme, or a transition from one theme to another.
- ///
- THEMECHANGED = 0x031A,
- ///
- /// Sent when the contents of the clipboard have changed.
- ///
- CLIPBOARDUPDATE = 0x031D,
- ///
- /// The system will send a window the WM_DWMCOMPOSITIONCHANGED message to indicate that the availability of desktop composition has changed.
- ///
- DWMCOMPOSITIONCHANGED = 0x031E,
- ///
- /// WM_DWMNCRENDERINGCHANGED is called when the non-client area rendering status of a window has changed. Only windows that have set the flag DWM_BLURBEHIND.fTransitionOnMaximized to true will get this message.
- ///
- DWMNCRENDERINGCHANGED = 0x031F,
- ///
- /// Sent to all top-level windows when the colorization color has changed.
- ///
- DWMCOLORIZATIONCOLORCHANGED = 0x0320,
- ///
- /// WM_DWMWINDOWMAXIMIZEDCHANGE will let you know when a DWM composed window is maximized. You also have to register for this message as well. You'd have other windowd go opaque when this message is sent.
- ///
- DWMWINDOWMAXIMIZEDCHANGE = 0x0321,
- ///
- /// Sent to request extended title bar information. A window receives this message through its WindowProc function.
- ///
- GETTITLEBARINFOEX = 0x033F,
- HANDHELDFIRST = 0x0358,
- HANDHELDLAST = 0x035F,
- AFXFIRST = 0x0360,
- AFXLAST = 0x037F,
- PENWINFIRST = 0x0380,
- PENWINLAST = 0x038F,
- ///
- /// The WM_APP constant is used by applications to help define private messages, usually of the form WM_APP+X, where X is an integer value.
- ///
- APP = 0x8000,
- ///
- /// The WM_USER constant is used by applications to help define private messages for use by private window classes, usually of the form WM_USER+X, where X is an integer value.
- ///
- USER = 0x0400,
-
- ///
- /// An application sends the WM_CPL_LAUNCH message to Windows Control Panel to request that a Control Panel application be started.
- ///
- CPL_LAUNCH = USER + 0x1000,
- ///
- /// The WM_CPL_LAUNCHED message is sent when a Control Panel application, started by the WM_CPL_LAUNCH message, has closed. The WM_CPL_LAUNCHED message is sent to the window identified by the wParam parameter of the WM_CPL_LAUNCH message that started the application.
- ///
- CPL_LAUNCHED = USER + 0x1001,
- ///
- /// WM_SYSTIMER is a well-known yet still undocumented message. Windows uses WM_SYSTIMER for internal actions like scrolling.
- ///
- SYSTIMER = 0x118,
-
- ///
- /// The accessibility state has changed.
- ///
- HSHELL_ACCESSIBILITYSTATE = 11,
- ///
- /// The shell should activate its main window.
- ///
- HSHELL_ACTIVATESHELLWINDOW = 3,
- ///
- /// The user completed an input event (for example, pressed an application command button on the mouse or an application command key on the keyboard), and the application did not handle the WM_APPCOMMAND message generated by that input.
- /// If the Shell procedure handles the WM_COMMAND message, it should not call CallNextHookEx. See the Return Value section for more information.
- ///
- HSHELL_APPCOMMAND = 12,
- ///
- /// A window is being minimized or maximized. The system needs the coordinates of the minimized rectangle for the window.
- ///
- HSHELL_GETMINRECT = 5,
- ///
- /// Keyboard language was changed or a new keyboard layout was loaded.
- ///
- HSHELL_LANGUAGE = 8,
- ///
- /// The title of a window in the task bar has been redrawn.
- ///
- HSHELL_REDRAW = 6,
- ///
- /// The user has selected the task list. A shell application that provides a task list should return TRUE to prevent Windows from starting its task list.
- ///
- HSHELL_TASKMAN = 7,
- ///
- /// A top-level, unowned window has been created. The window exists when the system calls this hook.
- ///
- HSHELL_WINDOWCREATED = 1,
- ///
- /// A top-level, unowned window is about to be destroyed. The window still exists when the system calls this hook.
- ///
- HSHELL_WINDOWDESTROYED = 2,
- ///
- /// The activation has changed to a different top-level, unowned window.
- ///
- HSHELL_WINDOWACTIVATED = 4,
- ///
- /// A top-level window is being replaced. The window exists when the system calls this hook.
- ///
- HSHELL_WINDOWREPLACED = 13
- }
-}
diff --git a/Dependencies/MelonStartScreen/mgGif/Decoder.cs b/Dependencies/MelonStartScreen/mgGif/Decoder.cs
deleted file mode 100644
index a9b34d624..000000000
--- a/Dependencies/MelonStartScreen/mgGif/Decoder.cs
+++ /dev/null
@@ -1,628 +0,0 @@
-using System;
-using System.Text;
-using MelonUnityEngine;
-using MelonLoader;
-
-namespace mgGif
-{
- internal class Decoder : IDisposable
- {
- public string Version;
- public ushort Width;
- public ushort Height;
- public Color32 BackgroundColour;
-
- //------------------------------------------------------------------------------
- // GIF format enums
-
- private enum ImageFlag
- {
- Interlaced = 0x40,
- ColourTable = 0x80,
- TableSizeMask = 0x07,
- BitDepthMask = 0x70,
- }
-
- private enum Block
- {
- Image = 0x2C,
- Extension = 0x21,
- End = 0x3B
- }
-
- private enum Extension
- {
- GraphicControl = 0xF9,
- Comments = 0xFE,
- PlainText = 0x01,
- ApplicationData = 0xFF
- }
-
- private enum Disposal
- {
- None = 0x00,
- DoNotDispose = 0x04,
- RestoreBackground = 0x08,
- ReturnToPrevious = 0x0C
- }
-
- private enum ControlFlags
- {
- HasTransparency = 0x01,
- DisposalMask = 0x0C
- }
-
- //------------------------------------------------------------------------------
-
- private const uint NoCode = 0xFFFF;
- private const ushort NoTransparency = 0xFFFF;
-
- // input stream to decode
- private byte[] Input;
-
- private int D;
-
- // colour table
- private Color32[] GlobalColourTable;
-
- private Color32[] LocalColourTable;
- private Color32[] ActiveColourTable;
- private ushort TransparentIndex;
-
- // current image
- private Image Image = new Image();
-
- private ushort ImageLeft;
- private ushort ImageTop;
- private ushort ImageWidth;
- private ushort ImageHeight;
-
- private Color32[] Output;
- private Color32[] PreviousImage;
-
- private readonly int[] Pow2 = { 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 };
-
- //------------------------------------------------------------------------------
- // ctor
-
- public Decoder(byte[] data) : this()
- => Load(data);
-
- public Decoder Load(byte[] data)
- {
- Input = data;
- D = 0;
-
- GlobalColourTable = new Color32[256];
- LocalColourTable = new Color32[256];
- TransparentIndex = NoTransparency;
- Output = null;
- PreviousImage = null;
-
- Image.Delay = 0;
-
- return this;
- }
-
- //------------------------------------------------------------------------------
- // reading data utility functions
-
- private byte ReadByte() => Input[D++];
-
- private ushort ReadUInt16() => (ushort)(Input[D++] | Input[D++] << 8);
-
- //------------------------------------------------------------------------------
-
- private void ReadHeader()
- {
- if (Input == null || Input.Length <= 12)
- throw new Exception("Invalid data");
-
- // signature
-
- Version = Encoding.ASCII.GetString(Input, 0, 6);
- D = 6;
-
- if (Version != "GIF87a" && Version != "GIF89a")
- {
- throw new Exception("Unsupported GIF version");
- }
-
- // read header
-
- Width = ReadUInt16();
- Height = ReadUInt16();
-
- Image.Width = Width;
- Image.Height = Height;
-
- var flags = (ImageFlag)ReadByte();
- var bgIndex = ReadByte(); // background colour
-
- ReadByte(); // aspect ratio
-
- if (flags.HasFlag(ImageFlag.ColourTable))
- ReadColourTable(GlobalColourTable, flags);
-
- BackgroundColour = GlobalColourTable[bgIndex];
- }
-
- //------------------------------------------------------------------------------
-
- public Image NextImage()
- {
- // if at start of data, read header
-
- if (D == 0)
- ReadHeader();
-
- // read blocks until we find an image block
-
- while (true)
- {
- var block = (Block)ReadByte();
-
- switch (block)
- {
- case Block.Image:
- {
- // return the image if we got one
-
- var img = ReadImageBlock();
-
- if (img != null)
- return img;
- }
- break;
-
- case Block.Extension:
- {
- var ext = (Extension)ReadByte();
-
- if (ext == Extension.GraphicControl)
- ReadControlBlock();
- else
- SkipBlocks();
- }
- break;
-
- case Block.End:
- {
- // end block - stop!
- return null;
- }
-
- default:
- {
- throw new Exception("Unexpected block type");
- }
- }
- }
- }
-
- //------------------------------------------------------------------------------
-
- private Color32[] ReadColourTable(Color32[] colourTable, ImageFlag flags)
- {
- var tableSize = Pow2[(int)(flags & ImageFlag.TableSizeMask) + 1];
-
- for (var i = 0; i < tableSize; i++)
- {
- colourTable[i] = new Color32(
- Input[D++],
- Input[D++],
- Input[D++],
- 0xFF
- );
- }
-
- return colourTable;
- }
-
- //------------------------------------------------------------------------------
-
- private void SkipBlocks()
- {
- var blockSize = Input[D++];
-
- while (blockSize != 0x00)
- {
- D += blockSize;
- blockSize = Input[D++];
- }
- }
-
- //------------------------------------------------------------------------------
-
- private void ReadControlBlock()
- {
- // read block
-
- ReadByte(); // block size (0x04)
- var flags = (ControlFlags)ReadByte(); // flags
- Image.Delay = ReadUInt16() * 10; // delay (1/100th -> milliseconds)
- var transparentColour = ReadByte(); // transparent colour
- ReadByte(); // terminator (0x00)
-
- // has transparent colour?
-
- if (flags.HasFlag(ControlFlags.HasTransparency))
- TransparentIndex = transparentColour;
- else
- TransparentIndex = NoTransparency;
-
- // dispose of current image
-
- switch ((Disposal)(flags & ControlFlags.DisposalMask))
- {
- default:
- case Disposal.None:
- case Disposal.DoNotDispose:
- // remember current image in case we need to "return to previous"
- PreviousImage = Output;
- break;
-
- case Disposal.RestoreBackground:
- // empty image - don't track
- Output = new Color32[Width * Height];
- break;
-
- case Disposal.ReturnToPrevious:
-
- // return to previous image
-
- Output = new Color32[Width * Height];
-
- if (PreviousImage != null)
- Array.Copy(PreviousImage, Output, Output.Length);
-
- break;
- }
- }
-
- //------------------------------------------------------------------------------
-
- private Image ReadImageBlock()
- {
- // read image block header
-
- ImageLeft = ReadUInt16();
- ImageTop = ReadUInt16();
- ImageWidth = ReadUInt16();
- ImageHeight = ReadUInt16();
- var flags = (ImageFlag)ReadByte();
-
- // bad image if we don't have any dimensions
-
- if (ImageWidth == 0 || ImageHeight == 0)
- return null;
-
- // read colour table
-
- if (flags.HasFlag(ImageFlag.ColourTable))
- ActiveColourTable = ReadColourTable(LocalColourTable, flags);
- else
- ActiveColourTable = GlobalColourTable;
-
- if (Output == null)
- {
- Output = new Color32[Width * Height];
- PreviousImage = Output;
- }
-
- // read image data
-
- DecompressLZW();
-
- // deinterlace
-
- if (flags.HasFlag(ImageFlag.Interlaced))
- Deinterlace();
-
- // return image
-
- Image.RawImage = Output;
- return Image;
- }
-
- //------------------------------------------------------------------------------
- // decode interlaced images
-
- private void Deinterlace()
- {
- var numRows = Output.Length / Width;
- var writePos = Output.Length - Width; // NB: work backwards due to Y-coord flip
- var input = Output;
-
- Output = new Color32[Output.Length];
-
- for (var row = 0; row < numRows; row++)
- {
- int copyRow;
-
- // every 8th row starting at 0
- if (row % 8 == 0)
- {
- copyRow = row / 8;
- }
- // every 8th row starting at 4
- else if ((row + 4) % 8 == 0)
- {
- var o = numRows / 8;
- copyRow = o + (row - 4) / 8;
- }
- // every 4th row starting at 2
- else if ((row + 2) % 4 == 0)
- {
- var o = numRows / 4;
- copyRow = o + (row - 2) / 4;
- }
- // every 2nd row starting at 1
- else // if( ( r + 1 ) % 2 == 0 )
- {
- var o = numRows / 2;
- copyRow = o + (row - 1) / 2;
- }
-
- Array.Copy(input, (numRows - copyRow - 1) * Width, Output, writePos, Width);
-
- writePos -= Width;
- }
- }
-
- //------------------------------------------------------------------------------
-
- // dispose isn't needed for the safe implementation but keep here for interface parity
-
- public Decoder() { }
-
- public void Dispose() { Dispose(true); }
-
- protected virtual void Dispose(bool disposing) { }
-
- private int[] Indices = new int[4096];
- private ushort[] Codes = new ushort[128 * 1024];
- private uint[] CurBlock = new uint[64];
-
- private void DecompressLZW()
- {
- // output write position
-
- int row = (Height - ImageTop - 1) * Width; // reverse rows for unity texture coords
- int col = ImageLeft;
- int rightEdge = ImageLeft + ImageWidth;
-
- // setup codes
-
- int minimumCodeSize = Input[D++];
-
- if (minimumCodeSize > 11)
- minimumCodeSize = 11;
-
- var codeSize = minimumCodeSize + 1;
- var nextSize = Pow2[codeSize];
- var maximumCodeSize = Pow2[minimumCodeSize];
- var clearCode = maximumCodeSize;
- var endCode = maximumCodeSize + 1;
-
- // initialise buffers
-
- var codesEnd = 0;
- var numCodes = maximumCodeSize + 2;
-
- for (ushort i = 0; i < numCodes; i++)
- {
- Indices[i] = codesEnd;
- Codes[codesEnd++] = 1; // length
- Codes[codesEnd++] = i; // code
- }
-
- // LZW decode loop
-
- uint previousCode = NoCode; // last code processed
- uint mask = (uint)(nextSize - 1); // mask out code bits
- uint shiftRegister = 0; // shift register holds the bytes coming in from the input stream, we shift down by the number of bits
-
- int bitsAvailable = 0; // number of bits available to read in the shift register
- int bytesAvailable = 0; // number of bytes left in current block
-
- int blockPos = 0;
-
- while (true)
- {
- // get next code
-
- uint curCode = shiftRegister & mask;
-
- if (bitsAvailable >= codeSize)
- {
- bitsAvailable -= codeSize;
- shiftRegister >>= codeSize;
- }
- else
- {
- // reload shift register
-
- // if start of new block
-
- if (bytesAvailable <= 0)
- {
- // read blocksize
- bytesAvailable = Input[D++];
-
- // exit if end of stream
- if (bytesAvailable == 0)
- return;
-
- // read block
- CurBlock[(bytesAvailable - 1) / 4] = 0; // zero last entry
- Buffer.BlockCopy(Input, D, CurBlock, 0, bytesAvailable);
- blockPos = 0;
- D += bytesAvailable;
- }
-
- // load shift register
-
- shiftRegister = CurBlock[blockPos++];
- int newBits = bytesAvailable >= 4 ? 32 : bytesAvailable * 8;
- bytesAvailable -= 4;
-
- // read remaining bits
-
- if (bitsAvailable > 0)
- {
- var bitsRemaining = codeSize - bitsAvailable;
- curCode |= (shiftRegister << bitsAvailable) & mask;
- shiftRegister >>= bitsRemaining;
- bitsAvailable = newBits - bitsRemaining;
- }
- else
- {
- curCode = shiftRegister & mask;
- shiftRegister >>= codeSize;
- bitsAvailable = newBits - codeSize;
- }
- }
-
- // process code
-
- if (curCode == clearCode)
- {
- // reset codes
- codeSize = minimumCodeSize + 1;
- nextSize = Pow2[codeSize];
- numCodes = maximumCodeSize + 2;
-
- // reset buffer write pos
- codesEnd = numCodes * 2;
-
- // clear previous code
- previousCode = NoCode;
- mask = (uint)(nextSize - 1);
-
- continue;
- }
- else if (curCode == endCode)
- {
- // stop
- break;
- }
-
- bool plusOne = false;
- int codePos = 0;
-
- if (curCode < numCodes)
- {
- // write existing code
- codePos = Indices[curCode];
- }
- else if (previousCode != NoCode)
- {
- // write previous code
- codePos = Indices[previousCode];
- plusOne = true;
- }
- else
- continue;
-
- // output colours
-
- var codeLength = Codes[codePos++];
- var newCode = Codes[codePos];
-
- for (int i = 0; i < codeLength; i++)
- {
- var code = Codes[codePos++];
-
- if (code != TransparentIndex && col < Width)
- {
- Output[row + col] = ActiveColourTable[code];
- }
-
- if (++col == rightEdge)
- {
- col = ImageLeft;
- row -= Width;
-
- if (row < 0)
- {
- SkipBlocks();
- return;
- }
- }
- }
-
- if (plusOne)
- {
- if (newCode != TransparentIndex && col < Width)
- Output[row + col] = ActiveColourTable[newCode];
-
- if (++col == rightEdge)
- {
- col = ImageLeft;
- row -= Width;
-
- if (row < 0)
- break;
- }
- }
-
- // create new code
-
- if (previousCode != NoCode && numCodes != Indices.Length)
- {
- // get previous code from buffer
-
- codePos = Indices[previousCode];
- codeLength = Codes[codePos++];
-
- // resize buffer if required (should be rare)
-
- if (codesEnd + codeLength + 1 >= Codes.Length)
- Array.Resize(ref Codes, Codes.Length * 2);
-
- // add new code
-
- Indices[numCodes++] = codesEnd;
- Codes[codesEnd++] = (ushort)(codeLength + 1);
-
- // copy previous code sequence
-
- var stop = codesEnd + codeLength;
-
- while (codesEnd < stop)
- Codes[codesEnd++] = Codes[codePos++];
-
- // append new code
-
- Codes[codesEnd++] = newCode;
- }
-
- // increase code size?
-
- if (numCodes >= nextSize && codeSize < 12)
- {
- nextSize = Pow2[++codeSize];
- mask = (uint)(nextSize - 1);
- }
-
- // remember last code processed
- previousCode = curCode;
- }
-
- // skip any remaining blocks
- SkipBlocks();
- }
-
- public static string Ident()
- {
- var v = "1.1";
- var e = BitConverter.IsLittleEndian ? "L" : "B";
- var b = "M";
- var s = "S";
- var n = "2.0";
-
- return $"{v} {e}{s}{b} {n}";
- }
- }
-}
\ No newline at end of file
diff --git a/Dependencies/MelonStartScreen/mgGif/Image.cs b/Dependencies/MelonStartScreen/mgGif/Image.cs
deleted file mode 100644
index 705736f44..000000000
--- a/Dependencies/MelonStartScreen/mgGif/Image.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using System;
-using MelonUnityEngine;
-
-namespace mgGif
-{
- internal class Image : ICloneable
- {
- public int Width;
- public int Height;
- public int Delay; // milliseconds
- public Color32[] RawImage;
-
- public Image() { }
-
- public Image(Image img)
- {
- Width = img.Width;
- Height = img.Height;
- Delay = img.Delay;
- RawImage = img.RawImage != null ? (Color32[])img.RawImage.Clone() : null;
- }
-
- public object Clone() => new Image(this);
-
- public Texture2D CreateTexture(FilterMode filterMode = FilterMode.Bilinear)
- {
- var tex = new Texture2D(Width, Height);
- tex.filterMode = filterMode;
-
- Color[] colors = new Color[RawImage.Length];
- for (int i = 0; i < colors.Length; i++)
- colors[i] = RawImage[i];
-
- tex.SetPixels(colors);
- tex.Apply();
-
- return tex;
- }
- }
-}
diff --git a/Dependencies/MelonStartScreen/mgGif/LICENSE.txt b/Dependencies/MelonStartScreen/mgGif/LICENSE.txt
deleted file mode 100644
index 28eeb1976..000000000
--- a/Dependencies/MelonStartScreen/mgGif/LICENSE.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 Gwaredd Mountain
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/Engine.Unity.Shared.csproj b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/Engine.Unity.Shared.csproj
new file mode 100644
index 000000000..0e2de1886
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/Engine.Unity.Shared.csproj
@@ -0,0 +1,20 @@
+
+
+ MelonLoader.Engine.Unity
+ net35;net6
+ Latest
+ true
+ $(MLOutDir)/MelonLoader/Dependencies/Engines/Unity/
+ true
+ embedded
+ MelonLoader.Engine.Unity.Shared
+
+
+
+
+ False
+
+
+
+
+
\ No newline at end of file
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonCoroutines.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonCoroutines.cs
new file mode 100644
index 000000000..38def65fb
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonCoroutines.cs
@@ -0,0 +1,74 @@
+using System.Collections;
+using System.Collections.Generic;
+
+namespace MelonLoader
+{
+ public abstract class MelonCoroutineInterop
+ {
+ public abstract object Start(IEnumerator routine);
+ public abstract void Stop(object coroutineToken);
+ }
+
+ public static class MelonCoroutines
+ {
+ public static List QueuedCoroutines { get; private set; } = new List();
+ public static MelonCoroutineInterop Interop;
+
+ public static void ProcessQueue()
+ {
+ if (QueuedCoroutines == null)
+ return;
+ foreach (var queuedCoroutine in QueuedCoroutines)
+ Start(queuedCoroutine);
+ QueuedCoroutines.Clear();
+ QueuedCoroutines = null;
+ }
+
+ ///
+ /// Start a new coroutine.
+ /// Coroutines are called at the end of the game Update loops.
+ ///
+ /// The target routine
+ /// An object that can be passed to Stop to stop this coroutine
+ public static object Start(IEnumerator routine)
+ {
+ if (Interop != null)
+ return Interop.Start(routine);
+ return Queue(routine);
+ }
+
+ ///
+ /// Start a new coroutine.
+ /// Coroutines are called at the end of the game Update loops.
+ ///
+ /// The target routine
+ /// An object that can be passed to Stop to stop this coroutine
+ public static object Queue(IEnumerator routine)
+ {
+ if (QueuedCoroutines == null)
+ return routine;
+ QueuedCoroutines.Add(routine);
+ return routine;
+ }
+
+ ///
+ /// Stop a currently running coroutine
+ ///
+ /// The coroutine to stop
+ public static void Stop(object coroutineToken)
+ {
+ if (Interop != null)
+ Interop.Stop(coroutineToken);
+ Dequeue(coroutineToken as IEnumerator);
+ }
+
+ public static void Dequeue(object coroutineToken)
+ {
+ if (QueuedCoroutines == null)
+ return;
+ IEnumerator routine = coroutineToken as IEnumerator;
+ if (QueuedCoroutines.Contains(routine))
+ QueuedCoroutines.Remove(routine);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityEvents.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityEvents.cs
new file mode 100644
index 000000000..b1afb2814
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityEvents.cs
@@ -0,0 +1,55 @@
+namespace MelonLoader.Engine.Unity
+{
+ public class MelonUnityEvents : MelonEvents
+ {
+ ///
+ /// Called once per frame.
+ ///
+ public readonly static MelonEvent OnUpdate = new();
+
+ ///
+ /// Called every 0.02 seconds, unless Time.fixedDeltaTime has a different Value. It is recommended to do all important Physics calculations inside this Callback.
+ ///
+ public readonly static MelonEvent OnFixedUpdate = new();
+
+ ///
+ /// Called once per frame, after .
+ ///
+ public readonly static MelonEvent OnLateUpdate = new();
+
+ ///
+ /// Called at every IMGUI event. Only use this for drawing IMGUI Elements.
+ ///
+ public readonly static MelonEvent OnGUI = new();
+
+ ///
+ /// Called when a new Scene is loaded.
+ ///
+ /// Arguments:
+ ///
: Build Index of the Scene.
+ ///
: Name of the Scene.
+ ///
+ ///
+ public readonly static MelonEvent OnSceneWasLoaded = new();
+
+ ///
+ /// Called once a Scene is initialized.
+ ///
+ /// Arguments:
+ ///
: Build Index of the Scene.
+ ///
: Name of the Scene.
+ ///
+ ///
+ public readonly static MelonEvent OnSceneWasInitialized = new();
+
+ ///
+ /// Called once a Scene unloads.
+ ///
+ /// Arguments:
+ ///
: Build Index of the Scene.
+ ///
: Name of the Scene.
+ ///
+ ///
+ public readonly static MelonEvent OnSceneWasUnloaded = new();
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityMod.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityMod.cs
new file mode 100644
index 000000000..e7d5d8650
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityMod.cs
@@ -0,0 +1,71 @@
+using System.Collections;
+
+namespace MelonLoader.Engine.Unity
+{
+ public class MelonUnityMod : MelonMod
+ {
+ public override void RegisterCallbacks()
+ {
+ base.RegisterCallbacks();
+
+ MelonUnityEvents.OnUpdate.Subscribe(OnUpdate, Priority);
+ MelonUnityEvents.OnLateUpdate.Subscribe(OnLateUpdate, Priority);
+ MelonUnityEvents.OnFixedUpdate.Subscribe(OnFixedUpdate, Priority);
+ MelonUnityEvents.OnGUI.Subscribe(OnGUI, Priority);
+ MelonUnityEvents.OnSceneWasLoaded.Subscribe(OnSceneWasLoaded, Priority);
+ MelonUnityEvents.OnSceneWasInitialized.Subscribe(OnSceneWasInitialized, Priority);
+ MelonUnityEvents.OnSceneWasUnloaded.Subscribe(OnSceneWasUnloaded, Priority);
+ }
+
+ ///
+ /// Start a new coroutine.
+ /// Coroutines are called at the end of the game Update loops.
+ ///
+ /// The target routine
+ /// An object that can be passed to Stop to stop this coroutine
+ public object StartCoroutine(IEnumerator routine)
+ => MelonCoroutines.Start(routine);
+
+ ///
+ /// Stop a currently running coroutine
+ ///
+ /// The coroutine to stop
+ public void StopCoroutine(object coroutineToken)
+ => MelonCoroutines.Stop(coroutineToken);
+
+ ///
+ /// Runs once per frame.
+ ///
+ public virtual void OnUpdate() { }
+
+ ///
+ /// Can run multiple times per frame. Mostly used for Physics.
+ ///
+ public virtual void OnFixedUpdate() { }
+
+ ///
+ /// Runs once per frame, after .
+ ///
+ public virtual void OnLateUpdate() { }
+
+ ///
+ /// Can run multiple times per frame. Mostly used for Unity's IMGUI.
+ ///
+ public virtual void OnGUI() { }
+
+ ///
+ /// Runs when a new Scene is loaded.
+ ///
+ public virtual void OnSceneWasLoaded(int buildIndex, string sceneName) { }
+
+ ///
+ /// Runs once a Scene is initialized.
+ ///
+ public virtual void OnSceneWasInitialized(int buildIndex, string sceneName) { }
+
+ ///
+ /// Runs once a Scene unloads.
+ ///
+ public virtual void OnSceneWasUnloaded(int buildIndex, string sceneName) { }
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityPlugin.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityPlugin.cs
new file mode 100644
index 000000000..fc0f218cd
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/MelonUnityPlugin.cs
@@ -0,0 +1,53 @@
+using System.Collections;
+
+namespace MelonLoader.Engine.Unity
+{
+ public class MelonUnityPlugin : MelonPlugin
+ {
+ public override void RegisterCallbacks()
+ {
+ base.RegisterCallbacks();
+
+ MelonUnityEvents.OnUpdate.Subscribe(OnUpdate, Priority);
+ MelonUnityEvents.OnLateUpdate.Subscribe(OnLateUpdate, Priority);
+ MelonUnityEvents.OnFixedUpdate.Subscribe(OnFixedUpdate, Priority);
+ MelonUnityEvents.OnGUI.Subscribe(OnGUI, Priority);
+ }
+
+ ///
+ /// Start a new coroutine.
+ /// Coroutines are called at the end of the game Update loops.
+ ///
+ /// The target routine
+ /// An object that can be passed to Stop to stop this coroutine
+ public object StartCoroutine(IEnumerator routine)
+ => MelonCoroutines.Start(routine);
+
+ ///
+ /// Stop a currently running coroutine
+ ///
+ /// The coroutine to stop
+ public void StopCoroutine(object coroutineToken)
+ => MelonCoroutines.Stop(coroutineToken);
+
+ ///
+ /// Runs once per frame.
+ ///
+ public virtual void OnUpdate() { }
+
+ ///
+ /// Can run multiple times per frame. Mostly used for Physics.
+ ///
+ public virtual void OnFixedUpdate() { }
+
+ ///
+ /// Runs once per frame, after .
+ ///
+ public virtual void OnLateUpdate() { }
+
+ ///
+ /// Can run multiple times per frame. Mostly used for Unity's IMGUI.
+ ///
+ public virtual void OnGUI() { }
+ }
+}
diff --git a/MelonLoader/Resources/classdata.tpk b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/Resources/classdata.tpk
similarity index 100%
rename from MelonLoader/Resources/classdata.tpk
rename to Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/Resources/classdata.tpk
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityExtensions.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityExtensions.cs
new file mode 100644
index 000000000..9b9c634ee
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityExtensions.cs
@@ -0,0 +1,32 @@
+using AssetsTools.NET;
+using AssetsTools.NET.Extra;
+
+namespace MelonLoader.Engine.Unity
+{
+ public static class UnityExtensions
+ {
+ #region AssetsManager
+
+ public static ClassPackageFile LoadIncludedClassPackage(this AssetsManager assetsManager)
+ {
+ var asm = typeof(UnityExtensions).Assembly;
+ var names = asm.GetManifestResourceNames();
+ string resourceName = null;
+ foreach (var name in names)
+ if (name.Contains("classdata"))
+ {
+ resourceName = name;
+ break;
+ }
+ if (string.IsNullOrEmpty(resourceName))
+ return null;
+
+ ClassPackageFile classPackage = null;
+ using (var stream = asm.GetManifestResourceStream(resourceName))
+ classPackage = assetsManager.LoadClassPackage(stream);
+ return classPackage;
+ }
+
+ #endregion
+ }
+}
diff --git a/MelonLoader/InternalUtils/UnityInformationHandler.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityInformationHandler.cs
similarity index 87%
rename from MelonLoader/InternalUtils/UnityInformationHandler.cs
rename to Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityInformationHandler.cs
index 3578b5fbb..8e4b8e383 100644
--- a/MelonLoader/InternalUtils/UnityInformationHandler.cs
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityInformationHandler.cs
@@ -7,11 +7,10 @@
using System.Text.RegularExpressions;
using AssetsTools.NET;
using AssetsTools.NET.Extra;
-using System.Drawing;
using MelonLoader.Utils;
-using UnityVersion = AssetRipper.VersionUtilities.UnityVersion;
+using UnityVersion = AssetRipper.Primitives.UnityVersion;
-namespace MelonLoader.InternalUtils
+namespace MelonLoader.Engine.Unity
{
public static class UnityInformationHandler
{
@@ -38,12 +37,10 @@ private static UnityVersion TryParse(string version)
return returnval;
}
- internal static void Setup()
+ public static void Setup(string gameDataPath, string unityPlayerPath)
{
- string gameDataPath = MelonEnvironment.UnityGameDataDirectory;
-
- if (!string.IsNullOrEmpty(LoaderConfig.Current.UnityEngine.VersionOverride))
- EngineVersion = TryParse(LoaderConfig.Current.UnityEngine.VersionOverride);
+ //if (!string.IsNullOrEmpty(LoaderConfig.Current.UnityEngine.VersionOverride))
+ // EngineVersion = TryParse(LoaderConfig.Current.UnityEngine.VersionOverride);
AssetsManager assetsManager = new AssetsManager();
ReadGameInfo(assetsManager, gameDataPath);
@@ -51,10 +48,10 @@ internal static void Setup()
if (string.IsNullOrEmpty(GameDeveloper)
|| string.IsNullOrEmpty(GameName))
- ReadGameInfoFallback();
+ ReadGameInfoFallback(gameDataPath);
if (EngineVersion == UnityVersion.MinVersion)
- EngineVersion = ReadVersionFallback(gameDataPath);
+ EngineVersion = ReadVersionFallback(gameDataPath, unityPlayerPath);
if (string.IsNullOrEmpty(GameDeveloper))
GameDeveloper = DefaultInfo;
@@ -62,14 +59,6 @@ internal static void Setup()
GameName = DefaultInfo;
if (string.IsNullOrEmpty(GameVersion))
GameVersion = DefaultInfo;
-
- MelonLogger.WriteLine(Color.Magenta);
- MelonLogger.Msg($"Game Name: {GameName}");
- MelonLogger.Msg($"Game Developer: {GameDeveloper}");
- MelonLogger.Msg($"Unity Version: {EngineVersion}");
- MelonLogger.Msg($"Game Version: {GameVersion}");
- MelonLogger.WriteLine(Color.Magenta);
- MelonLogger.WriteSpacer();
}
private static void ReadGameInfo(AssetsManager assetsManager, string gameDataPath)
@@ -123,6 +112,10 @@ private static void ReadGameInfo(AssetsManager assetsManager, string gameDataPat
GameName = productName.AsString;
}
}
+ else
+ {
+ MelonLogger.Warning("Unable to find PlayerSettings in globalgamemanagers. Possible out-dated classdata.tpk present. Using fallback method.");
+ }
}
catch(Exception ex)
{
@@ -133,11 +126,11 @@ private static void ReadGameInfo(AssetsManager assetsManager, string gameDataPat
instance.file.Close();
}
- private static void ReadGameInfoFallback()
+ private static void ReadGameInfoFallback(string gameDataPath)
{
try
{
- string appInfoFilePath = Path.Combine(MelonEnvironment.UnityGameDataDirectory, "app.info");
+ string appInfoFilePath = Path.Combine(gameDataPath, "app.info");
if (!File.Exists(appInfoFilePath))
return;
@@ -159,11 +152,10 @@ private static void ReadGameInfoFallback()
}
}
- private static UnityVersion ReadVersionFallback(string gameDataPath)
+ private static UnityVersion ReadVersionFallback(string gameDataPath, string unityPlayerPath)
{
- string unityPlayerPath = MelonEnvironment.UnityPlayerPath;
if (!File.Exists(unityPlayerPath))
- unityPlayerPath = MelonEnvironment.GameExecutablePath;
+ unityPlayerPath = MelonEnvironment.ApplicationExecutablePath;
if (Environment.OSVersion.Platform == PlatformID.Win32NT)
{
diff --git a/MelonLoader/InternalUtils/UnityMagicMethods.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityMagicMethods.cs
similarity index 99%
rename from MelonLoader/InternalUtils/UnityMagicMethods.cs
rename to Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityMagicMethods.cs
index 1f485139b..da71933af 100644
--- a/MelonLoader/InternalUtils/UnityMagicMethods.cs
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity.Shared/UnityMagicMethods.cs
@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Reflection;
-namespace MelonLoader.InternalUtils
+namespace MelonLoader.Engine.Unity
{
/*
* A list of Unity's built-in messages / magic methods and their (optional) argument types.
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity/Engine.Unity.csproj b/Dependencies/Modules/Engines/Unity/Engine.Unity/Engine.Unity.csproj
new file mode 100644
index 000000000..93dfd6689
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity/Engine.Unity.csproj
@@ -0,0 +1,48 @@
+
+
+ MelonLoader.Engine.Unity
+ net6
+ Latest
+ false
+ $(MLOutDir)/MelonLoader/Dependencies/Engines/Unity/
+ true
+ embedded
+ MelonLoader.Engine.Unity
+
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+ False
+ all
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dependencies/Modules/Engines/Unity/Engine.Unity/UnityLoader.cs b/Dependencies/Modules/Engines/Unity/Engine.Unity/UnityLoader.cs
new file mode 100644
index 000000000..7fa62b834
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Engine.Unity/UnityLoader.cs
@@ -0,0 +1,265 @@
+using System.IO;
+using MelonLoader.Utils;
+using MelonLoader.Modules;
+using MelonLoader.Runtime.Il2Cpp;
+using System;
+using MelonLoader.Resolver;
+using System.Runtime.Loader;
+using MelonLoader.Engine.Unity.Il2Cpp;
+using MelonLoader.Runtime.Mono;
+using System.Collections.Generic;
+
+namespace MelonLoader.Engine.Unity
+{
+ internal class UnityLoaderModule : MelonEngineModule
+ {
+ private readonly string GameDataPath = Path.Combine(MelonEnvironment.ApplicationRootDirectory, $"{MelonEnvironment.ApplicationExecutableName}_Data");
+ private string UnityPlayerPath;
+ private string GameAssemblyPath;
+ private bool IsIl2Cpp;
+
+ private string LoaderPath;
+ private string SupportModulePath;
+
+ private MonoRuntimeInfo MonoInfo;
+
+ private static readonly string[] monoFolderNames =
+ [
+ "Mono",
+ "MonoBleedingEdge"
+ ];
+
+ private static readonly string[] monoLibNames =
+ [
+ "mono",
+#if WINDOWS
+ "mono-2.0-bdwgc",
+ "mono-2.0-sgen",
+ "mono-2.0-boehm"
+#elif LINUX
+ "monobdwgc-2.0"
+#endif
+ ];
+
+ private static readonly string[] monoPosixHelperNames =
+ [
+ "MonoPosixHelper",
+ ];
+
+ public override bool Validate()
+ {
+ UnityPlayerPath = Path.Combine(MelonEnvironment.ApplicationRootDirectory, $"UnityPlayer{OsUtils.NativeFileExtension}");
+ if (File.Exists(UnityPlayerPath))
+ return true;
+
+ if (Directory.Exists(GameDataPath))
+ return File.Exists(Path.Combine(GameDataPath, "globalgamemanagers"))
+ || File.Exists(Path.Combine(GameDataPath, "data.unity3d"))
+ || File.Exists(Path.Combine(GameDataPath, "mainData"));
+
+ return false;
+ }
+
+ public override void Initialize()
+ {
+ MelonDebug.Msg("Initializing Unity Engine Module...");
+ LoaderPath = Path.GetDirectoryName(typeof(UnityLoaderModule).Assembly.Location);
+
+ UnityInformationHandler.Setup(GameDataPath, UnityPlayerPath);
+
+ string gameAssemblyName = "GameAssembly";
+ if (OsUtils.IsAndroid)
+ gameAssemblyName = "libil2cpp";
+ gameAssemblyName += OsUtils.NativeFileExtension;
+
+ GameAssemblyPath = Path.Combine(MelonEnvironment.ApplicationRootDirectory, gameAssemblyName);
+ IsIl2Cpp = File.Exists(GameAssemblyPath);
+ if (!IsIl2Cpp)
+ {
+ // Android only has Il2Cpp currently
+ if (OsUtils.IsAndroid)
+ {
+ MelonLogger.ThrowInternalFailure($"Failed to find {gameAssemblyName}!");
+ return;
+ }
+
+ // Attempt to find Library
+ MonoInfo = GetMonoRuntimeInfo();
+ if (MonoInfo == null)
+ {
+ MelonLogger.ThrowInternalFailure("Failed to get Mono Runtime Info!");
+ return;
+ }
+ }
+
+ string indentifier = IsIl2Cpp ? "Il2Cpp" : (MonoInfo.IsBleedingEdge ? "MonoBleedingEdge" : "Mono");
+ SupportModulePath = Path.Combine(
+ LoaderPath,
+ IsIl2Cpp ? "net6" : "net35",
+ $"MelonLoader.Unity.{(IsIl2Cpp ? "Il2Cpp" : "Mono")}.dll");
+
+ SetEngineInfo("Unity", UnityInformationHandler.EngineVersion.ToStringWithoutType(), (IsIl2Cpp ? "Il2Cpp" : (MonoInfo.IsBleedingEdge ? "MonoBleedingEdge" : "Mono")));
+ SetApplicationInfo(UnityInformationHandler.GameName, UnityInformationHandler.GameDeveloper, UnityInformationHandler.GameVersion);
+ PrintAppInfo();
+
+ if (IsIl2Cpp)
+ {
+ // Initialize Il2Cpp Loader
+ Il2CppLoader.Initialize(this, new(GameAssemblyPath, SupportModulePath,
+ [
+ "Internal_ActiveSceneChanged",
+ "UnityEngine.ISerializationCallbackReceiver.OnAfterSerialize"
+ ]));
+ }
+ else
+ {
+ // Android only has Il2Cpp currently
+ if (OsUtils.IsAndroid)
+ return;
+
+ // Initialize Mono Loader
+ MonoInfo.SupportModulePath = SupportModulePath;
+ MonoLoader.Initialize(this, MonoInfo);
+ }
+ }
+
+ public override void Stage3(string supportModulePath)
+ {
+ if (!IsIl2Cpp)
+ {
+ // Run Stage3
+ base.Stage3(supportModulePath);
+ return;
+ }
+
+ string genBasePath = Path.Combine(LoaderPath, "Il2CppAssemblyGenerator");
+ if (!Directory.Exists(genBasePath))
+ Directory.CreateDirectory(genBasePath);
+
+ string genOutputPath = Path.Combine(MelonEnvironment.DependenciesDirectory, "Il2CppAssemblies");
+ if (!Directory.Exists(genOutputPath))
+ Directory.CreateDirectory(genOutputPath);
+ MelonAssemblyResolver.AddSearchDirectory(genOutputPath);
+
+ // Apply Il2Cpp Fixes
+ Il2CppInteropFixes.Install(genOutputPath);
+ Il2CppICallInjector.Install();
+
+ // Generate Il2Cpp Wrapper Assemblies
+ try
+ {
+ if (!AssemblyGenerator.Run(genBasePath, GameAssemblyPath, genOutputPath))
+ {
+ MelonDebug.Error("Il2Cpp Assembly Generation Failure!");
+ return;
+ }
+
+ foreach (var file in Directory.GetFiles(genOutputPath, "*.dll"))
+ {
+ try
+ {
+ AssemblyLoadContext.Default.LoadFromAssemblyPath(file);
+ }
+ catch { }
+ }
+ }
+ catch (Exception ex)
+ {
+ MelonDebug.Error(ex.ToString());
+ return;
+ }
+
+ // Run Stage3 after Assembly Generation
+ base.Stage3(supportModulePath);
+ }
+
+ private MonoRuntimeInfo GetMonoRuntimeInfo()
+ {
+ // Folders the Mono folders might be located in
+ string[] directoriesToSearch =
+ [
+ MelonEnvironment.ApplicationRootDirectory,
+ GameDataPath
+ ];
+
+ // Iterate through Variations in Mono types
+ (string, string, bool)? libPaths = null;
+ foreach (var folderName in monoFolderNames)
+ {
+ // Iterate through Variations in Mono Directory Positions
+ foreach (var dir in directoriesToSearch)
+ {
+ // Iterate through Variations in Mono Lib Names
+ string folderPath = Path.Combine(dir, folderName);
+ foreach (var fileName in monoLibNames)
+ {
+ libPaths = SearchFolderForMonoLib(folderPath, fileName);
+ if (libPaths != null)
+ break;
+ }
+ if (libPaths != null)
+ break;
+ }
+ if (libPaths != null)
+ break;
+ }
+ if (libPaths == null)
+ return null;
+
+ // Attempt to find Posix Helper
+ string posixPath = null;
+ foreach (string fileName in monoPosixHelperNames)
+ {
+ string localFileName = fileName;
+ if (OsUtils.IsUnix)
+ localFileName = $"lib{fileName}";
+ localFileName += OsUtils.NativeFileExtension;
+ string localFilePath = Path.Combine(libPaths.Value.Item1, localFileName);
+ if (File.Exists(localFilePath))
+ {
+ posixPath = localFilePath;
+ break;
+ }
+ }
+
+ bool isBleedingEdge = libPaths.Value.Item3;
+ return new MonoRuntimeInfo(libPaths.Value.Item2, posixPath, Path.Combine(GameDataPath, "Managed"), isBleedingEdge, null, [
+ (!isBleedingEdge ? "Awake" : string.Empty),
+ (!isBleedingEdge ? "DoSendMouseEvents" : string.Empty),
+ "Internal_ActiveSceneChanged",
+ "UnityEngine.ISerializationCallbackReceiver.OnAfterSerialize",
+ ]);
+ }
+
+ private (string, string, bool)? SearchFolderForMonoLib(string folderPath, string fileName)
+ {
+ bool isBleedingEdge = (fileName != monoLibNames[0]);
+
+ if (OsUtils.IsUnix)
+ fileName = $"lib{fileName}";
+ fileName += OsUtils.NativeFileExtension;
+
+ string filePath = Path.Combine(folderPath, fileName);
+ if (File.Exists(filePath))
+ return (folderPath, filePath, isBleedingEdge);
+
+ string embedRuntimePath = Path.Combine(folderPath, "EmbedRuntime");
+ if (Directory.Exists(embedRuntimePath))
+ {
+ filePath = Path.Combine(embedRuntimePath, fileName);
+ if (File.Exists(filePath))
+ return (embedRuntimePath, filePath, isBleedingEdge);
+
+ string x64Path = Path.Combine(embedRuntimePath, "x86_64");
+ if (Directory.Exists(x64Path))
+ {
+ filePath = Path.Combine(x64Path, fileName);
+ if (File.Exists(filePath))
+ return (x64Path, filePath, isBleedingEdge);
+ }
+ }
+
+ return null;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/SupportModules/Il2Cpp/Libs/Il2CppSystem.dll b/Dependencies/Modules/Engines/Unity/Il2Cpp/Libs/Il2CppSystem.dll
similarity index 100%
rename from Dependencies/SupportModules/Il2Cpp/Libs/Il2CppSystem.dll
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Libs/Il2CppSystem.dll
diff --git a/Dependencies/SupportModules/Il2Cpp/Libs/Il2Cppmscorlib.dll b/Dependencies/Modules/Engines/Unity/Il2Cpp/Libs/Il2Cppmscorlib.dll
similarity index 100%
rename from Dependencies/SupportModules/Il2Cpp/Libs/Il2Cppmscorlib.dll
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Libs/Il2Cppmscorlib.dll
diff --git a/Dependencies/SupportModules/Il2Cpp/Libs/UnityEngine.CoreModule.dll b/Dependencies/Modules/Engines/Unity/Il2Cpp/Libs/UnityEngine.CoreModule.dll
similarity index 100%
rename from Dependencies/SupportModules/Il2Cpp/Libs/UnityEngine.CoreModule.dll
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Libs/UnityEngine.CoreModule.dll
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/AssemblyGenerator.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/AssemblyGenerator.cs
new file mode 100644
index 000000000..6d19a95dc
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/AssemblyGenerator.cs
@@ -0,0 +1,162 @@
+using System;
+using System.IO;
+using System.Net.Http;
+using MelonLoader.Engine.Unity.Packages;
+using MelonLoader.Properties;
+using MelonLoader.Utils;
+
+namespace MelonLoader.Engine.Unity
+{
+ public class AssemblyGenerator
+ {
+ internal static HttpClient webClient = null;
+
+ internal static Cpp2IL cpp2il = null;
+ internal static Cpp2IL_StrippedCodeRegSupport cpp2il_scrs = null;
+
+ internal static Packages.Il2CppInterop il2cppinterop = null;
+ internal static UnityDependencies unitydependencies = null;
+ internal static DeobfuscationMap deobfuscationMap = null;
+ internal static DeobfuscationRegex deobfuscationRegex = null;
+
+ internal static bool AssemblyGenerationNeeded = false;
+ internal static MelonLogger.Instance Logger;
+
+ public static bool Run(string BasePath, string GameAssemblyPath, string OutputPath)
+ {
+ Environment.SetEnvironmentVariable("IL2CPP_INTEROP_DATABASES_LOCATION", OutputPath);
+ Logger = new("Il2Cpp.AssemblyGenerator");
+
+ webClient = new();
+ webClient.DefaultRequestHeaders.Add("User-Agent", $"{BuildInfo.Name} v{BuildInfo.Version}");
+
+ //AssemblyGenerationNeeded = LoaderConfig.Current.UnityEngine.ForceRegeneration;
+
+ Config.Initialize(BasePath);
+
+ //if (!LoaderConfig.Current.UnityEngine.ForceOfflineGeneration)
+ RemoteAPI.Contact();
+
+ Cpp2IL cpp2IL_netcore = new Cpp2IL(BasePath);
+ if (OsUtils.IsWindows
+ && (cpp2IL_netcore.VersionSem < Cpp2IL.NetCoreMinVersion))
+ cpp2il = new Cpp2IL_NetFramework(BasePath);
+ else
+ cpp2il = cpp2IL_netcore;
+ cpp2il_scrs = new Cpp2IL_StrippedCodeRegSupport(cpp2il, BasePath);
+
+ il2cppinterop = new Packages.Il2CppInterop(BasePath);
+ unitydependencies = new UnityDependencies(BasePath);
+ deobfuscationMap = new DeobfuscationMap(BasePath);
+ deobfuscationRegex = new DeobfuscationRegex();
+
+ Logger.Msg($"Using Cpp2IL Version: {(string.IsNullOrEmpty(cpp2il.Version) ? "null" : cpp2il.Version)}");
+ Logger.Msg($"Using Il2CppInterop Version = {(string.IsNullOrEmpty(il2cppinterop.Version) ? "null" : il2cppinterop.Version)}");
+ Logger.Msg($"Using Unity Dependencies Version = {(string.IsNullOrEmpty(unitydependencies.Version) ? "null" : unitydependencies.Version)}");
+ Logger.Msg($"Using Deobfuscation Regex = {(string.IsNullOrEmpty(deobfuscationRegex.Regex) ? "null" : deobfuscationRegex.Regex)}");
+
+ if (!cpp2il.Setup()
+ || !cpp2il_scrs.Setup()
+ || !il2cppinterop.Setup()
+ || !unitydependencies.Setup()
+ || !deobfuscationMap.Setup())
+ {
+ webClient.Dispose();
+ webClient = null;
+ return false;
+ }
+
+ deobfuscationRegex.Setup();
+
+ string CurrentGameAssemblyHash;
+ Logger.Msg("Checking GameAssembly...");
+ MelonDebug.Msg($"Last GameAssembly Hash: {Config.Values.GameAssemblyHash}");
+ MelonDebug.Msg($"Current GameAssembly Hash: {CurrentGameAssemblyHash = MelonUtils.ComputeSimpleSHA512Hash(GameAssemblyPath)}");
+
+ if (string.IsNullOrEmpty(Config.Values.GameAssemblyHash)
+ || !Config.Values.GameAssemblyHash.Equals(CurrentGameAssemblyHash))
+ AssemblyGenerationNeeded = true;
+
+ if (!AssemblyGenerationNeeded)
+ {
+ Logger.Msg("Assembly is up to date. No Generation Needed.");
+ webClient.Dispose();
+ webClient = null;
+ return true;
+ }
+ Logger.Msg("Assembly Generation Needed!");
+
+ cpp2il.Cleanup();
+ il2cppinterop.Cleanup();
+
+ if (!cpp2il.Execute(GameAssemblyPath))
+ {
+ cpp2il.Cleanup();
+ webClient.Dispose();
+ webClient = null;
+ return false;
+ }
+
+ if (!il2cppinterop.Execute(GameAssemblyPath))
+ {
+ cpp2il.Cleanup();
+ il2cppinterop.Cleanup();
+ webClient.Dispose();
+ webClient = null;
+ return false;
+ }
+
+ OldFiles_Cleanup(OutputPath);
+ OldFiles_LAM(OutputPath);
+
+ cpp2il.Cleanup();
+ il2cppinterop.Cleanup();
+
+ webClient.Dispose();
+ webClient = null;
+
+ Logger.Msg("Assembly Generation Successful!");
+ deobfuscationRegex.Save();
+ Config.Values.GameAssemblyHash = CurrentGameAssemblyHash;
+ Config.Save();
+
+ return true;
+ }
+
+ private static void OldFiles_Cleanup(string OutputPath)
+ {
+ if (Config.Values.OldFiles.Count <= 0)
+ return;
+ for (int i = 0; i < Config.Values.OldFiles.Count; i++)
+ {
+ string filename = Config.Values.OldFiles[i];
+ string filepath = Path.Combine(OutputPath, filename);
+ if (File.Exists(filepath))
+ {
+ Logger.Msg("Deleting " + filename);
+ File.Delete(filepath);
+ }
+ }
+ Config.Values.OldFiles.Clear();
+ }
+
+ private static void OldFiles_LAM(string OutputPath)
+ {
+ string[] filepathtbl = Directory.GetFiles(il2cppinterop.OutputFolder);
+ string il2CppAssembliesDirectory = OutputPath;
+ for (int i = 0; i < filepathtbl.Length; i++)
+ {
+ string filepath = filepathtbl[i];
+ string filename = Path.GetFileName(filepath);
+ Logger.Msg("Moving " + filename);
+ Config.Values.OldFiles.Add(filename);
+ string newfilepath = Path.Combine(il2CppAssembliesDirectory, filename);
+ if (File.Exists(newfilepath))
+ File.Delete(newfilepath);
+ Directory.CreateDirectory(il2CppAssembliesDirectory);
+ File.Move(filepath, newfilepath);
+ }
+ Config.Save();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Il2CppAssemblyGenerator/Config.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Config.cs
similarity index 89%
rename from Dependencies/Il2CppAssemblyGenerator/Config.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Config.cs
index 3c40f6f0c..82f3d9dbb 100644
--- a/Dependencies/Il2CppAssemblyGenerator/Config.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Config.cs
@@ -3,7 +3,7 @@
using System.IO;
using MelonLoader.Preferences;
-namespace MelonLoader.Il2CppAssemblyGenerator
+namespace MelonLoader.Engine.Unity
{
internal class Config
{
@@ -11,9 +11,9 @@ internal class Config
private static MelonPreferences_ReflectiveCategory Category;
internal static AssemblyGeneratorConfiguration Values;
- internal static void Initialize()
+ internal static void Initialize(string BasePath)
{
- FilePath = Path.Combine(Core.BasePath, "Config.cfg");
+ FilePath = Path.Combine(BasePath, "Config.cfg");
Category = MelonPreferences.CreateCategory("Il2CppAssemblyGenerator");
Category.SetFilePath(FilePath, printmsg: false);
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Extensions.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Extensions.cs
new file mode 100644
index 000000000..7a68581b3
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Extensions.cs
@@ -0,0 +1,14 @@
+using System.IO;
+using System.Net.Http;
+
+namespace MelonLoader.Engine.Unity;
+
+internal static class Extensions
+{
+ public static void DownloadFile(this HttpClient client, string url, string dest)
+ {
+ using var dlStream = client.GetStreamAsync(url).Result;
+ using var fileStream = File.Open(dest, FileMode.Create, FileAccess.Write);
+ dlStream.CopyTo(fileStream);
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/FileHandler.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/FileHandler.cs
new file mode 100644
index 000000000..c0b3ca211
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/FileHandler.cs
@@ -0,0 +1,130 @@
+using System;
+using System.IO;
+using System.IO.Compression;
+
+namespace MelonLoader.Engine.Unity
+{
+ internal static class FileHandler
+ {
+ internal static bool Download(string url, string destination)
+ {
+ if (string.IsNullOrEmpty(url))
+ {
+ AssemblyGenerator.Logger.Error($"url cannot be Null or Empty!");
+ return false;
+ }
+
+ if (string.IsNullOrEmpty(destination))
+ {
+ AssemblyGenerator.Logger.Error($"destination cannot be Null or Empty!");
+ return false;
+ }
+
+ if (File.Exists(destination))
+ File.Delete(destination);
+
+ AssemblyGenerator.Logger.Msg($"Downloading {url} to {destination}");
+ try { AssemblyGenerator.webClient.DownloadFile(url, destination); }
+ catch (Exception ex)
+ {
+ AssemblyGenerator.Logger.Error(ex.ToString());
+
+ if (File.Exists(destination))
+ File.Delete(destination);
+
+ return false;
+ }
+
+ return true;
+ }
+
+ internal static bool Process(string filepath, string destination, string targetName = null)
+ {
+ if (string.IsNullOrEmpty(filepath))
+ {
+ AssemblyGenerator.Logger.Error($"filepath cannot be Null or Empty!");
+ return false;
+ }
+
+ if (string.IsNullOrEmpty(destination))
+ {
+ AssemblyGenerator.Logger.Error($"destination cannot be Null or Empty!");
+ return false;
+ }
+
+ if (filepath.Equals(destination))
+ return true;
+
+ if (!File.Exists(filepath))
+ {
+ AssemblyGenerator.Logger.Error($"{filepath} does not Exist!");
+ return false;
+ }
+
+ if (Path.HasExtension(destination))
+ {
+ if (File.Exists(destination))
+ File.Delete(destination);
+ }
+ else
+ {
+ if (Directory.Exists(destination))
+ {
+ AssemblyGenerator.Logger.Msg($"Cleaning {destination}");
+ foreach (var entry in Directory.EnumerateFileSystemEntries(destination))
+ {
+ if (Directory.Exists(entry))
+ Directory.Delete(entry, true);
+ else
+ File.Delete(entry);
+ }
+ }
+ else
+ {
+ AssemblyGenerator.Logger.Msg($"Creating Directory {destination}");
+ Directory.CreateDirectory(destination);
+ }
+ }
+
+ string filename = Path.GetFileName(filepath);
+ if (!filename.EndsWith(".zip"))
+ {
+ AssemblyGenerator.Logger.Msg($"Moving {filepath} to {destination}");
+
+ if (!string.IsNullOrEmpty(targetName))
+ destination = Path.Combine(destination, targetName);
+
+ File.Move(filepath, destination);
+ return true;
+ }
+
+ AssemblyGenerator.Logger.Msg($"Extracting {filepath} to {destination}");
+ try { ZipFile.ExtractToDirectory(filepath, destination); }
+ catch (Exception ex)
+ {
+ AssemblyGenerator.Logger.Error(ex.ToString());
+
+ if (File.Exists(filepath))
+ File.Delete(filepath);
+
+ if (Directory.Exists(destination))
+ {
+ foreach (var entry in Directory.EnumerateFileSystemEntries(destination))
+ {
+ if (Directory.Exists(entry))
+ Directory.Delete(entry, true);
+ else
+ File.Delete(entry);
+ }
+ }
+
+ return false;
+ }
+
+ if (File.Exists(filepath))
+ File.Delete(filepath);
+
+ return true;
+ }
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL.cs
new file mode 100644
index 000000000..ed4785651
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL.cs
@@ -0,0 +1,88 @@
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using MelonLoader.Utils;
+using Semver;
+
+namespace MelonLoader.Engine.Unity.Packages
+{
+ internal class Cpp2IL : Models.ExecutablePackage
+ {
+ internal static SemVersion NetCoreMinVersion = SemVersion.Parse("2022.1.0-pre-release.18");
+ internal SemVersion VersionSem;
+ private string BaseFolder;
+
+ private static string ReleaseName =>
+ OsUtils.IsWindows ? "Windows" : OsUtils.IsUnix ? "Linux" : "OSX";
+
+ internal Cpp2IL() { }
+ internal Cpp2IL(string BasePath)
+ {
+ //Version = LoaderConfig.Current.UnityEngine.ForceIl2CppDumperVersion;
+#if !DEBUG
+ if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
+ Version = RemoteAPI.Info.ForceDumperVersion;
+#endif
+ if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
+ Version = $"2022.1.0-pre-release.19";
+ VersionSem = SemVersion.Parse(Version);
+
+ Name = nameof(Cpp2IL);
+
+ var filename = Name;
+#if WINDOWS
+ filename += ".exe";
+#endif
+
+ BaseFolder = Path.Combine(BasePath, Name);
+ if (!Directory.Exists(BaseFolder))
+ Directory.CreateDirectory(BaseFolder);
+
+ FilePath =
+ ExeFilePath =
+ Destination =
+ Path.Combine(BaseFolder, filename);
+
+ OutputFolder = Path.Combine(BaseFolder, "cpp2il_out");
+
+ URL = $"https://github.com/SamboyCoding/{Name}/releases/download/{Version}/{Name}-{Version}-{ReleaseName}";
+#if WINDOWS
+ URL += ".exe";
+#endif
+ }
+
+ internal override bool ShouldSetup()
+ => string.IsNullOrEmpty(Config.Values.DumperVersion)
+ || !Config.Values.DumperVersion.Equals(Version);
+
+ internal override void Cleanup() { }
+
+ internal override void Save()
+ => Save(ref Config.Values.DumperVersion);
+
+ internal virtual bool Execute(string GameAssemblyPath)
+ => Execute([
+ MelonDebug.IsEnabled() ? "--verbose" : string.Empty,
+
+ "--game-path",
+ "\"" + Path.GetDirectoryName(GameAssemblyPath) + "\"",
+
+ "--exe-name",
+ "\"" + Process.GetCurrentProcess().ProcessName + "\"",
+
+ "--output-as",
+ "dummydll",
+
+ "--use-processor",
+ "attributeanalyzer",
+ "attributeinjector",
+ //LoaderConfig.Current.UnityEngine.EnableCpp2ILCallAnalyzer ? "callanalyzer" : string.Empty,
+ //LoaderConfig.Current.UnityEngine.EnableCpp2ILNativeMethodDetector ? "nativemethoddetector" : string.Empty,
+ //"deobfmap",
+ //"stablenamer",
+
+ ], false, new Dictionary() {
+ {"NO_COLOR", "1"},
+ });
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL_NetFramework.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL_NetFramework.cs
new file mode 100644
index 000000000..123fc1c41
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL_NetFramework.cs
@@ -0,0 +1,101 @@
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using Semver;
+
+namespace MelonLoader.Engine.Unity.Packages
+{
+ internal class Cpp2IL_NetFramework : Cpp2IL
+ {
+ private static string ReleaseName => "Windows-Netframework472";
+ internal Cpp2IL_NetFramework(string BasePath)
+ {
+ //Version = LoaderConfig.Current.UnityEngine.ForceIl2CppDumperVersion;
+#if !DEBUG
+ if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
+ Version = RemoteAPI.Info.ForceDumperVersion;
+#endif
+ if (string.IsNullOrEmpty(Version) || Version.Equals("0.0.0.0"))
+ Version = $"2022.1.0-pre-release.15";
+
+ Name = nameof(Cpp2IL);
+ Destination = Path.Combine(BasePath, Name);
+ if (!Directory.Exists(Destination))
+ Directory.CreateDirectory(Destination);
+ OutputFolder = Path.Combine(Destination, "cpp2il_out");
+
+ URL = $"https://github.com/SamboyCoding/{Name}/releases/download/{Version}/{Name}-{Version}-{ReleaseName}.zip";
+ ExeFilePath = Path.Combine(Destination, $"{Name}.exe");
+ FilePath = Path.Combine(BasePath, $"{Name}_{Version}.zip");
+ }
+
+ internal override bool ShouldSetup()
+ => string.IsNullOrEmpty(Config.Values.DumperVersion)
+ || !Config.Values.DumperVersion.Equals(Version);
+
+ internal override void Cleanup() { }
+
+ internal override void Save()
+ => Save(ref Config.Values.DumperVersion);
+
+ internal override bool Execute(string GameAssemblyPath)
+ {
+ if (SemVersion.Parse(Version) <= SemVersion.Parse("2022.0.999"))
+ return ExecuteOld(GameAssemblyPath);
+ return ExecuteNew(GameAssemblyPath);
+ }
+
+ private bool ExecuteNew(string GameAssemblyPath)
+ {
+ if (Execute([
+ MelonDebug.IsEnabled() ? "--verbose" : string.Empty,
+
+ "--game-path",
+ "\"" + Path.GetDirectoryName(GameAssemblyPath) + "\"",
+
+ "--exe-name",
+ "\"" + Process.GetCurrentProcess().ProcessName + "\"",
+
+ "--output-as",
+ "dummydll",
+
+ "--use-processor",
+ "attributeanalyzer",
+ "attributeinjector",
+ //LoaderConfig.Current.UnityEngine.EnableCpp2ILCallAnalyzer ? "callanalyzer" : string.Empty,
+ //LoaderConfig.Current.UnityEngine.EnableCpp2ILNativeMethodDetector ? "nativemethoddetector" : string.Empty,
+ //"deobfmap",
+ //"stablenamer",
+
+ ], false, new Dictionary() {
+ {"NO_COLOR", "1"}
+ }))
+ return true;
+
+ return false;
+ }
+
+ private bool ExecuteOld(string GameAssemblyPath)
+ {
+ if (Execute([
+ MelonDebug.IsEnabled() ? "--verbose" : string.Empty,
+
+ "--game-path",
+ "\"" + Path.GetDirectoryName(GameAssemblyPath) + "\"",
+
+ "--exe-name",
+ "\"" + Process.GetCurrentProcess().ProcessName + "\"",
+
+ "--skip-analysis",
+ "--skip-metadata-txts",
+ "--disable-registration-prompts"
+
+ ], false, new Dictionary() {
+ {"NO_COLOR", "1"}
+ }))
+ return true;
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL_StrippedCodeRegSupport.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL_StrippedCodeRegSupport.cs
similarity index 88%
rename from Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL_StrippedCodeRegSupport.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL_StrippedCodeRegSupport.cs
index 4492b30ba..8f4c11912 100644
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/Cpp2IL_StrippedCodeRegSupport.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Cpp2IL_StrippedCodeRegSupport.cs
@@ -1,8 +1,8 @@
-using MelonLoader.Il2CppAssemblyGenerator.Packages.Models;
+using MelonLoader.Engine.Unity.Packages.Models;
using Semver;
using System.IO;
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
+namespace MelonLoader.Engine.Unity.Packages
{
internal class Cpp2IL_StrippedCodeRegSupport : PackageBase
{
@@ -10,15 +10,17 @@ internal class Cpp2IL_StrippedCodeRegSupport : PackageBase
private string _pluginsFolder;
private SemVersion VersionSem;
- internal Cpp2IL_StrippedCodeRegSupport(ExecutablePackage cpp2IL)
+ internal Cpp2IL_StrippedCodeRegSupport(ExecutablePackage cpp2IL, string BasePath)
{
Name = $"{cpp2IL.Name}.Plugin.StrippedCodeRegSupport";
Version = cpp2IL.Version;
VersionSem = SemVersion.Parse(Version);
- string folderpath = Path.Combine(Core.BasePath, cpp2IL.Name);
+ string folderpath = Path.Combine(BasePath, cpp2IL.Name);
string fileName = $"{Name}.dll";
_pluginsFolder = Path.Combine(folderpath, "Plugins");
+ if (!Directory.Exists(_pluginsFolder))
+ Directory.CreateDirectory(_pluginsFolder);
FilePath =
Destination =
@@ -41,9 +43,6 @@ internal override bool Setup()
if (VersionSem < Cpp2IL.NetCoreMinVersion)
return true;
- if (!Directory.Exists(_pluginsFolder))
- Directory.CreateDirectory(_pluginsFolder);
-
return base.Setup();
}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/DeobfuscationMap.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/DeobfuscationMap.cs
similarity index 88%
rename from Dependencies/Il2CppAssemblyGenerator/Packages/DeobfuscationMap.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/DeobfuscationMap.cs
index 9ce74b3a3..db2941a4f 100644
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/DeobfuscationMap.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/DeobfuscationMap.cs
@@ -3,16 +3,16 @@
using System.Text;
using MelonLoader.Lemons.Cryptography;
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages
+namespace MelonLoader.Engine.Unity.Packages
{
internal class DeobfuscationMap : Models.PackageBase
{
private static LemonSHA512 lemonSHA512 = new LemonSHA512();
- internal DeobfuscationMap()
+ internal DeobfuscationMap(string BasePath)
{
Name = nameof(DeobfuscationMap);
- FilePath = Path.Combine(Core.BasePath, $"{Name}.csv.gz");
+ FilePath = Path.Combine(BasePath, $"{Name}.csv.gz");
Destination = FilePath;
URL = RemoteAPI.Info.MappingURL;
Version = RemoteAPI.Info.MappingFileSHA512;
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/DeobfuscationRegex.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/DeobfuscationRegex.cs
new file mode 100644
index 000000000..3f3cc4588
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/DeobfuscationRegex.cs
@@ -0,0 +1,45 @@
+namespace MelonLoader.Engine.Unity.Packages
+{
+ internal class DeobfuscationRegex
+ {
+ internal string Regex = null;
+
+ internal DeobfuscationRegex()
+ {
+ //Regex = LoaderConfig.Current.UnityEngine.ForceGeneratorRegex;
+ if (string.IsNullOrEmpty(Regex))
+ Regex = RemoteAPI.Info.ObfuscationRegex;
+ }
+
+ internal void Setup()
+ {
+ if (string.IsNullOrEmpty(Regex))
+ {
+ if (!string.IsNullOrEmpty(Config.Values.DeobfuscationRegex))
+ {
+ AssemblyGenerator.AssemblyGenerationNeeded = true;
+ return;
+ }
+ }
+ else
+ {
+ if (string.IsNullOrEmpty(Config.Values.DeobfuscationRegex))
+ {
+ AssemblyGenerator.AssemblyGenerationNeeded = true;
+ return;
+ }
+ if (!Config.Values.DeobfuscationRegex.Equals(Regex))
+ {
+ AssemblyGenerator.AssemblyGenerationNeeded = true;
+ return;
+ }
+ }
+ }
+
+ internal void Save()
+ {
+ Config.Values.DeobfuscationRegex = Regex;
+ Config.Save();
+ }
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Il2CppInterop.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Il2CppInterop.cs
new file mode 100644
index 000000000..8cb848a31
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Il2CppInterop.cs
@@ -0,0 +1,142 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+using Il2CppInterop.Common;
+using Il2CppInterop.Generator;
+using Il2CppInterop.Generator.Runners;
+using Microsoft.Extensions.Logging;
+using AsmResolver.DotNet;
+using AsmResolver.DotNet.Serialized;
+
+namespace MelonLoader.Engine.Unity.Packages
+{
+ internal class Il2CppInterop : Models.ExecutablePackage
+ {
+ internal Il2CppInterop(string BasePath)
+ {
+ Version = typeof(Il2CppInteropGenerator).Assembly.CustomAttributes
+ .Where(x => x.AttributeType.Name == "AssemblyInformationalVersionAttribute")
+ .Select(x => x.ConstructorArguments[0].Value.ToString())
+ .FirstOrDefault();
+
+ Name = nameof(Il2CppInterop);
+ Destination = Path.Combine(BasePath, Name);
+ OutputFolder = Path.Combine(Destination, "Il2CppAssemblies");
+ }
+
+ internal override bool ShouldSetup()
+ => false;
+
+ internal bool Execute(string GameAssemblyPath)
+ {
+ AssemblyGenerator.Logger.Msg("Reading dumped assemblies for interop generation...");
+
+ var resolver = new InteropResolver();
+ var inputAssemblies = Directory.GetFiles(AssemblyGenerator.cpp2il.OutputFolder)
+ .Where(f => f.EndsWith(".dll"))
+ .Select(f => ModuleDefinition.FromFile(f, new ModuleReaderParameters() { ModuleResolver = resolver }))
+ .Select(f => { resolver.Add(f); return f; })
+ .Select(f => f.Assembly)
+ .ToList();
+
+ var opts = new GeneratorOptions()
+ {
+ GameAssemblyPath = GameAssemblyPath,
+ Source = inputAssemblies,
+ OutputDir = OutputFolder,
+ UnityBaseLibsDir = AssemblyGenerator.unitydependencies.Destination,
+ ObfuscatedNamesRegex = string.IsNullOrEmpty(AssemblyGenerator.deobfuscationRegex.Regex) ? null : new Regex(AssemblyGenerator.deobfuscationRegex.Regex),
+ Parallel = true,
+ Il2CppPrefixMode = GeneratorOptions.PrefixMode.OptOut,
+ };
+
+ //Inform cecil of the unity base libs
+ var trusted = (string)AppDomain.CurrentDomain.GetData("TRUSTED_PLATFORM_ASSEMBLIES");
+ var allUnityDlls = string.Join(Path.PathSeparator, Directory.GetFiles(AssemblyGenerator.unitydependencies.Destination, "*.dll", SearchOption.TopDirectoryOnly));
+ // var allDumpedDlls = string.Join(Path.PathSeparator, Directory.GetFiles(AssemblyGenerator.dumper.OutputFolder, "*.dll", SearchOption.TopDirectoryOnly));
+ AppDomain.CurrentDomain.SetData("TRUSTED_PLATFORM_ASSEMBLIES", trusted + Path.PathSeparator + allUnityDlls);
+
+ if (!string.IsNullOrEmpty(AssemblyGenerator.deobfuscationMap.Version))
+ {
+ AssemblyGenerator.Logger.Msg("Loading Deobfuscation Map...");
+ opts.ReadRenameMap(AssemblyGenerator.deobfuscationMap.Destination);
+ }
+
+ AssemblyGenerator.Logger.Msg("Generating Interop Assemblies...");
+
+#if !DEBUG
+ try
+#endif
+ {
+ Il2CppInteropGenerator.Create(opts)
+ .AddLogger(new InteropLogger())
+ .AddInteropAssemblyGenerator()
+ .Run();
+ }
+#if !DEBUG
+ catch (Exception e)
+ {
+ AssemblyGenerator.Logger.Error("Error Generating Interop Assemblies!", e);
+ return false;
+ }
+#endif
+
+ AssemblyGenerator.Logger.Msg("Cleaning up...");
+ AppDomain.CurrentDomain.SetData("TRUSTED_PLATFORM_ASSEMBLIES", trusted);
+ //inputAssemblies.ForEach(a => a.Dispose());
+
+ AssemblyGenerator.Logger.Msg("Interop Generation Complete!");
+ return true;
+ }
+ }
+
+ internal class InteropLogger : ILogger
+ {
+ public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter)
+ {
+ if (logLevel is LogLevel.Debug or LogLevel.Trace)
+ {
+ MelonDebug.Msg(formatter(state, exception));
+ return;
+ }
+
+ AssemblyGenerator.Logger.Msg(formatter(state, exception));
+ }
+
+ public bool IsEnabled(LogLevel logLevel)
+ {
+ return logLevel switch
+ {
+ LogLevel.Debug or LogLevel.Trace => MelonDebug.IsEnabled(),
+ _ => true
+ };
+ }
+
+ public IDisposable BeginScope(TState state)
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ internal class InteropResolver : INetModuleResolver
+ {
+ private readonly Dictionary _cache = new();
+
+ public void Dispose()
+ {
+ _cache.Clear();
+ }
+
+ internal void Add(ModuleDefinition module)
+ {
+ _cache[module.Name] = module;
+ }
+
+ public ModuleDefinition Resolve(string name)
+ {
+ return _cache.GetValueOrDefault(name);
+ }
+ }
+}
diff --git a/Dependencies/Il2CppAssemblyGenerator/Packages/Models/ExecutablePackage.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Models/ExecutablePackage.cs
similarity index 90%
rename from Dependencies/Il2CppAssemblyGenerator/Packages/Models/ExecutablePackage.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Models/ExecutablePackage.cs
index aaa2ad8be..00741c198 100644
--- a/Dependencies/Il2CppAssemblyGenerator/Packages/Models/ExecutablePackage.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/Models/ExecutablePackage.cs
@@ -7,7 +7,7 @@
using System.Text.RegularExpressions;
using System.Threading;
-namespace MelonLoader.Il2CppAssemblyGenerator.Packages.Models
+namespace MelonLoader.Engine.Unity.Packages.Models
{
internal class ExecutablePackage : PackageBase
{
@@ -23,19 +23,18 @@ internal virtual void Cleanup()
Directory.Delete(OutputFolder, true);
}
- internal virtual bool Execute() => true;
internal bool Execute(string[] args, bool parenthesize_args = true, Dictionary environment = null)
{
Cleanup();
if (!File.Exists(ExeFilePath))
{
- Core.Logger.Error($"{ExeFilePath} does not Exist!");
+ AssemblyGenerator.Logger.Error($"{ExeFilePath} does not Exist!");
ThrowInternalFailure($"Failed to Execute {Name}!");
return false;
}
- Core.Logger.Msg($"Executing {Name}...");
+ AssemblyGenerator.Logger.Msg($"Executing {Name}...");
try
{
#if LINUX
@@ -70,7 +69,7 @@ internal bool Execute(string[] args, bool parenthesize_args = true, Dictionary true;
+
+ internal virtual bool OnProcess()
+ => FileHandler.Process(FilePath, Destination, OsUtils.IsWindows ? null : Name);
+
+ internal virtual bool Setup()
+ {
+ if (string.IsNullOrEmpty(Version) || string.IsNullOrEmpty(URL))
+ return true;
+
+ if (!ShouldSetup())
+ {
+ AssemblyGenerator.Logger.Msg($"{Name} is up to date.");
+ return true;
+ }
+
+ AssemblyGenerator.AssemblyGenerationNeeded = true;
+
+ if (//!LoaderConfig.Current.UnityEngine.ForceOfflineGeneration &&
+ ((this is DeobfuscationMap) || !File.Exists(FilePath)))
+ {
+ AssemblyGenerator.Logger.Msg($"Downloading {Name}...");
+ if (!FileHandler.Download(URL, FilePath))
+ {
+ ThrowInternalFailure($"Failed to Download {Name}!");
+ return false;
+ }
+ }
+
+ AssemblyGenerator.Logger.Msg($"Processing {Name}...");
+ if (!OnProcess())
+ {
+ ThrowInternalFailure($"Failed to Process {Name}!");
+ return false;
+ }
+
+ Save();
+ return true;
+ }
+
+ internal virtual void Save() { }
+ internal void Save(ref string configPref)
+ {
+ configPref = Version;
+ Config.Save();
+ }
+
+ internal static void ThrowInternalFailure(string txt) => MelonLogger.ThrowInternalFailure(txt);
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/UnityDependencies.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/UnityDependencies.cs
new file mode 100644
index 000000000..c96679b3c
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Packages/UnityDependencies.cs
@@ -0,0 +1,23 @@
+using System.IO;
+
+namespace MelonLoader.Engine.Unity.Packages
+{
+ internal class UnityDependencies : Models.PackageBase
+ {
+ internal UnityDependencies(string BasePath)
+ {
+ Name = nameof(UnityDependencies);
+ Version = UnityInformationHandler.EngineVersion.ToStringWithoutType();
+ URL = $"https://github.com/LavaGang/MelonLoader.UnityDependencies/releases/download/{Version}/Managed.zip";
+ Destination = Path.Combine(BasePath, Name);
+ FilePath = Path.Combine(BasePath, $"{Name}_{Version}.zip");
+ }
+
+ internal override bool ShouldSetup()
+ => string.IsNullOrEmpty(Config.Values.UnityVersion)
+ || !Config.Values.UnityVersion.Equals(Version);
+
+ internal override void Save()
+ => Save(ref Config.Values.UnityVersion);
+ }
+}
diff --git a/Dependencies/Il2CppAssemblyGenerator/RemoteAPI.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/RemoteAPI.cs
similarity index 81%
rename from Dependencies/Il2CppAssemblyGenerator/RemoteAPI.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/RemoteAPI.cs
index f22b23b51..afced1b61 100644
--- a/Dependencies/Il2CppAssemblyGenerator/RemoteAPI.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/RemoteAPI.cs
@@ -4,9 +4,10 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
+using MelonLoader.Properties;
using Semver;
-namespace MelonLoader.Il2CppAssemblyGenerator
+namespace MelonLoader.Engine.Unity
{
internal static class RemoteAPI
{
@@ -33,7 +34,7 @@ internal HostInfo(string url, LemonFunc func)
static RemoteAPI()
{
- string gamename = Regex.Replace(InternalUtils.UnityInformationHandler.GameName, "[^a-zA-Z0-9_.]+", "-", RegexOptions.Compiled).ToLowerInvariant();
+ string gamename = Regex.Replace(UnityInformationHandler.GameName, "[^a-zA-Z0-9_.]+", "-", RegexOptions.Compiled).ToLowerInvariant();
HostList = new List {
new HostInfo($"{DefaultHostInfo.Melon.API_URL}{gamename}", DefaultHostInfo.Melon.Contact),
@@ -46,14 +47,14 @@ static RemoteAPI()
internal static void Contact()
{
- Core.Logger.Msg("Contacting RemoteAPI...");
+ AssemblyGenerator.Logger.Msg("Contacting RemoteAPI...");
ContactHosts();
- Core.Logger.Msg($"RemoteAPI.DumperVersion = {(string.IsNullOrEmpty(Info.ForceDumperVersion) ? "null" : Info.ForceDumperVersion)}");
- Core.Logger.Msg($"RemoteAPI.ObfuscationRegex = {(string.IsNullOrEmpty(Info.ObfuscationRegex) ? "null" : Info.ObfuscationRegex)}");
- Core.Logger.Msg($"RemoteAPI.MappingURL = {(string.IsNullOrEmpty(Info.MappingURL) ? "null" : Info.MappingURL)}");
- Core.Logger.Msg($"RemoteAPI.MappingFileSHA512 = {(string.IsNullOrEmpty(Info.MappingFileSHA512) ? "null" : Info.MappingFileSHA512)}");
+ AssemblyGenerator.Logger.Msg($"RemoteAPI.DumperVersion = {(string.IsNullOrEmpty(Info.ForceDumperVersion) ? "null" : Info.ForceDumperVersion)}");
+ AssemblyGenerator.Logger.Msg($"RemoteAPI.ObfuscationRegex = {(string.IsNullOrEmpty(Info.ObfuscationRegex) ? "null" : Info.ObfuscationRegex)}");
+ AssemblyGenerator.Logger.Msg($"RemoteAPI.MappingURL = {(string.IsNullOrEmpty(Info.MappingURL) ? "null" : Info.MappingURL)}");
+ AssemblyGenerator.Logger.Msg($"RemoteAPI.MappingFileSHA512 = {(string.IsNullOrEmpty(Info.MappingFileSHA512) ? "null" : Info.MappingFileSHA512)}");
}
private static void ContactHosts()
@@ -70,7 +71,7 @@ private static void ContactHosts()
string Response = null;
try
{
- var result = Core.webClient.GetAsync(info.URL).Result;
+ var result = AssemblyGenerator.webClient.GetAsync(info.URL).Result;
result.EnsureSuccessStatusCode();
Response = result.Content.ReadAsStringAsync().Result;
}
@@ -78,17 +79,17 @@ private static void ContactHosts()
{
if (ex is not HttpRequestException {StatusCode: {}} hre)
{
- Core.Logger.Error($"Exception while Contacting RemoteAPI Host ({info.URL}): {ex}");
+ AssemblyGenerator.Logger.Error($"Exception while Contacting RemoteAPI Host ({info.URL}): {ex}");
continue;
}
if (hre.StatusCode == System.Net.HttpStatusCode.NotFound)
{
- Core.Logger.Msg($"Game Not Found on RemoteAPI Host ({info.URL})");
+ AssemblyGenerator.Logger.Msg($"Game Not Found on RemoteAPI Host ({info.URL})");
break;
}
- Core.Logger.Error($"WebException ({hre.StatusCode}) while Contacting RemoteAPI Host ({info.URL}): {ex}");
+ AssemblyGenerator.Logger.Error($"WebException ({hre.StatusCode}) while Contacting RemoteAPI Host ({info.URL}): {ex}");
continue;
}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Unity.Il2Cpp.AssemblyGenerator.csproj b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Unity.Il2Cpp.AssemblyGenerator.csproj
new file mode 100644
index 000000000..3a11fd251
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.AssemblyGenerator/Unity.Il2Cpp.AssemblyGenerator.csproj
@@ -0,0 +1,31 @@
+
+
+ MelonLoader.Unity.Il2Cpp
+ net6
+ Latest
+ true
+ $(MLOutDir)/MelonLoader/Dependencies/Engines/Unity/
+ true
+ embedded
+ MelonLoader.Unity.Il2Cpp.AssemblyGenerator
+
+
+
+ False
+ all
+
+
+ False
+ False
+ all
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundle.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundle.cs
similarity index 97%
rename from UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundle.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundle.cs
index 366dfb888..3f1cf7abc 100644
--- a/UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundle.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundle.cs
@@ -2,6 +2,7 @@
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using MelonLoader;
using System;
+using MelonLoader.Engine.Unity.Il2Cpp;
namespace UnityEngine;
@@ -93,10 +94,10 @@ public Il2CppStringArray GetAllScenePaths()
public T LoadAsset(string name) where T : Object
{
- if (!InteropSupport.IsGeneratedAssemblyType(typeof(T)))
+ if (!typeof(T).IsGeneratedAssemblyType())
throw new NullReferenceException("The type must be a Generated Assembly Type.");
var intptr = LoadAsset(name, Il2CppType.Of().Pointer);
- return ((intptr != IntPtr.Zero) ? InteropSupport.Il2CppObjectPtrToIl2CppObject(intptr) : null);
+ return ((intptr != IntPtr.Zero) ? intptr.Il2CppObjectPtrToIl2CppObject() : null);
}
public Object Load(string name, Il2CppSystem.Type type) => LoadAsset(name, type);
@@ -128,7 +129,7 @@ public IntPtr LoadAsset(string name, IntPtr typeptr)
public Il2CppAssetBundleRequest LoadAssetAsync(string name) where T : Object
{
- if (!InteropSupport.IsGeneratedAssemblyType(typeof(T)))
+ if (!typeof(T).IsGeneratedAssemblyType())
throw new NullReferenceException("The type must be a Generated Assembly Type.");
var intptr = LoadAssetAsync(name, Il2CppType.Of().Pointer);
return ((intptr != IntPtr.Zero) ? new Il2CppAssetBundleRequest(intptr) : null);
@@ -163,7 +164,7 @@ public IntPtr LoadAssetAsync(string name, IntPtr typeptr)
public Il2CppReferenceArray LoadAllAssets() where T : Object
{
- if (!InteropSupport.IsGeneratedAssemblyType(typeof(T)))
+ if (!typeof(T).IsGeneratedAssemblyType())
throw new NullReferenceException("The type must be a Generated Assembly Type.");
var intptr = LoadAllAssets(Il2CppType.Of().Pointer);
return ((intptr != IntPtr.Zero) ? new Il2CppReferenceArray(intptr) : null);
@@ -194,7 +195,7 @@ public IntPtr LoadAllAssets(IntPtr typeptr)
public Il2CppReferenceArray LoadAssetWithSubAssets(string name) where T : Object
{
- if (!InteropSupport.IsGeneratedAssemblyType(typeof(T)))
+ if (!typeof(T).IsGeneratedAssemblyType())
throw new NullReferenceException("The type must be a Generated Assembly Type.");
var intptr = LoadAssetWithSubAssets(name, Il2CppType.Of().Pointer);
return ((intptr != IntPtr.Zero) ? new Il2CppReferenceArray(intptr) : null);
@@ -224,7 +225,7 @@ public IntPtr LoadAssetWithSubAssets(string name, IntPtr typeptr)
public Il2CppAssetBundleRequest LoadAssetWithSubAssetsAsync(string name) where T : Object
{
- if (!InteropSupport.IsGeneratedAssemblyType(typeof(T)))
+ if (!typeof(T).IsGeneratedAssemblyType())
throw new NullReferenceException("The type must be a Generated Assembly Type.");
var intptr = LoadAssetWithSubAssetsAsync(name, Il2CppType.Of().Pointer);
return ((intptr != IntPtr.Zero) ? new Il2CppAssetBundleRequest(intptr) : null);
diff --git a/UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundleManager.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundleManager.cs
similarity index 100%
rename from UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundleManager.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundleManager.cs
diff --git a/UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundleRequest.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundleRequest.cs
similarity index 100%
rename from UnityUtilities/UnityEngine.Il2CppAssetBundleManager/Il2CppAssetBundleRequest.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppAssetBundleRequest.cs
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppEnumeratorWrapper.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppEnumeratorWrapper.cs
new file mode 100644
index 000000000..bf696a28d
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppEnumeratorWrapper.cs
@@ -0,0 +1,55 @@
+using Il2CppInterop.Runtime.Injection;
+using System;
+using System.Collections;
+
+namespace MelonLoader.Engine.Unity.Il2Cpp
+{
+ public class Il2CppEnumeratorWrapper : Il2CppSystem.Object /*, IEnumerator */
+ {
+ internal unsafe static void Register()
+ => ClassInjector.RegisterTypeInIl2Cpp(new()
+ {
+ LogSuccess = true,
+ Interfaces = new Type[] { typeof(Il2CppSystem.Collections.IEnumerator) }
+ });
+
+ private readonly IEnumerator enumerator;
+ public Il2CppEnumeratorWrapper(IntPtr ptr) : base(ptr) { }
+ public Il2CppEnumeratorWrapper(IEnumerator _enumerator) : base(ClassInjector.DerivedConstructorPointer())
+ {
+ ClassInjector.DerivedConstructorBody(this);
+ enumerator = _enumerator ?? throw new NullReferenceException("routine is null");
+ }
+
+ public Il2CppSystem.Object /*IEnumerator.*/Current
+ {
+ get => enumerator.Current switch
+ {
+ IEnumerator next => new Il2CppEnumeratorWrapper(next),
+ Il2CppSystem.Object il2cppObject => il2cppObject,
+ null => null,
+ _ => throw new NotSupportedException($"{enumerator.GetType()}: Unsupported type {enumerator.Current.GetType()}"),
+ };
+ }
+
+ public bool MoveNext()
+ {
+ try
+ {
+ return enumerator.MoveNext();
+ } catch(Exception e)
+ {
+ var melon = MelonUtils.GetMelonFromStackTrace(new System.Diagnostics.StackTrace(e), true);
+
+ if (melon != null)
+ melon.LoggerInstance.Error("Unhandled exception in coroutine. It will not continue executing.", e);
+ else
+ MelonLogger.Error("[Error: Could not identify source] Unhandled exception in coroutine. It will not continue executing.", e);
+
+ return false;
+ }
+ }
+
+ public void Reset() => enumerator.Reset();
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppExtensions.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppExtensions.cs
new file mode 100644
index 000000000..40343971c
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppExtensions.cs
@@ -0,0 +1,81 @@
+using Il2CppInterop.Common;
+using Il2CppInterop.Common.Attributes;
+using Il2CppInterop.Runtime;
+using Il2CppInterop.Runtime.Injection;
+using Il2CppInterop.Runtime.InteropTypes;
+using System;
+using System.Collections;
+using System.Reflection;
+using UnityEngine;
+
+namespace MelonLoader.Engine.Unity.Il2Cpp
+{
+ public static class Il2CppExtensions
+ {
+ #region Coroutine
+
+ public static Coroutine StartCoroutine(this T behaviour, IEnumerator enumerator)
+ where T : MonoBehaviour
+ => behaviour.StartCoroutine(
+ new Il2CppSystem.Collections.IEnumerator(
+ new Il2CppEnumeratorWrapper(enumerator).Pointer));
+
+ public static void StopCoroutine(this T behaviour, Coroutine routine)
+ where T : MonoBehaviour
+ => behaviour.StopCoroutine(routine);
+
+ #endregion
+
+ #region Interop
+
+ public static int? GetIl2CppMethodCallerCount(this MethodBase method)
+ {
+ CallerCountAttribute att = method.GetCustomAttribute();
+ if (att == null)
+ return null;
+ return att.Count;
+ }
+
+ public static FieldInfo MethodBaseToIl2CppFieldInfo(this MethodBase method)
+ => Il2CppInteropUtils.GetIl2CppMethodInfoPointerFieldForGeneratedMethod(method);
+
+ public static void RegisterTypeInIl2CppDomain(this Type type, bool logSuccess)
+ => ClassInjector.RegisterTypeInIl2Cpp(type, new() { LogSuccess = logSuccess });
+ public static void RegisterTypeInIl2CppDomainWithInterfaces(this Type type, Type[] interfaces, bool logSuccess)
+ => ClassInjector.RegisterTypeInIl2Cpp(type, new() { LogSuccess = logSuccess, Interfaces = interfaces });
+
+ public static bool IsGeneratedAssemblyType(this Type type)
+ => type.IsInheritedFromIl2CppObjectBase() && !type.IsInjectedType();
+
+ public static bool IsInheritedFromIl2CppObjectBase(this Type type)
+ => (type != null) && type.IsSubclassOf(typeof(Il2CppObjectBase));
+
+ public static bool IsInjectedType(this Type type)
+ {
+ IntPtr ptr = GetClassPointerForType(type);
+ return ptr != IntPtr.Zero && RuntimeSpecificsStore.IsInjected(ptr);
+ }
+
+ public static IntPtr GetClassPointerForType(this Type type)
+ {
+ if (type == typeof(void)) return Il2CppClassPointerStore.NativeClassPtr;
+ return (IntPtr)typeof(Il2CppClassPointerStore<>).MakeGenericType(type)
+ .GetField(nameof(Il2CppClassPointerStore.NativeClassPtr)).GetValue(null);
+ }
+
+ public static T Il2CppObjectPtrToIl2CppObject(this IntPtr ptr)
+ {
+ if (ptr == IntPtr.Zero)
+ throw new NullReferenceException("The ptr cannot be IntPtr.Zero.");
+ if (!IsGeneratedAssemblyType(typeof(T)))
+ throw new NullReferenceException("The type must be a Generated Assembly Type.");
+ return (T)typeof(T).GetConstructor(BindingFlags.Public | BindingFlags.Instance,
+ null,
+ [typeof(IntPtr)],
+ Array.Empty())
+ .Invoke([ptr]);
+ }
+
+ #endregion
+ }
+}
diff --git a/UnityUtilities/UnityEngine.Il2CppImageConversionManager/Il2CppImageConversionManager.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppImageConversionManager.cs
similarity index 100%
rename from UnityUtilities/UnityEngine.Il2CppImageConversionManager/Il2CppImageConversionManager.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Il2CppImageConversionManager.cs
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Unity.Il2Cpp.Shared.csproj b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Unity.Il2Cpp.Shared.csproj
new file mode 100644
index 000000000..38baba2af
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp.Shared/Unity.Il2Cpp.Shared.csproj
@@ -0,0 +1,48 @@
+
+
+ MelonLoader.Unity.Il2Cpp
+ net6
+ Latest
+ true
+ $(MLOutDir)/MelonLoader/Dependencies/Engines/Unity/
+ true
+ embedded
+ true
+ MelonLoader.Unity.Il2Cpp.Shared
+
+
+
+
+
+
+
+ ..\Libs\Il2Cppmscorlib.dll
+ false
+
+
+ ..\Libs\Il2CppSystem.dll
+ false
+
+
+ ..\Libs\UnityEngine.CoreModule.dll
+ false
+
+
+
+
+ False
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppCoroutineInterop.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppCoroutineInterop.cs
new file mode 100644
index 000000000..22324ea26
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppCoroutineInterop.cs
@@ -0,0 +1,30 @@
+using System.Collections;
+using UnityEngine;
+
+namespace MelonLoader.Engine.Unity.Il2Cpp
+{
+ internal class Il2CppCoroutineInterop : MelonCoroutineInterop
+ {
+ private Il2CppSupportComponent Component;
+
+ internal Il2CppCoroutineInterop(Il2CppSupportComponent component)
+ => Component = component;
+
+ public override object Start(IEnumerator coroutine)
+ {
+ if (Component != null)
+ return Component.StartCoroutine(new Il2CppSystem.Collections.IEnumerator(new Il2CppEnumeratorWrapper(coroutine).Pointer));
+
+ MelonCoroutines.Queue(coroutine);
+ return coroutine;
+ }
+
+ public override void Stop(object coroutineToken)
+ {
+ if (Component != null)
+ Component.StopCoroutine(coroutineToken as Coroutine);
+ else
+ MelonCoroutines.Dequeue(coroutineToken);
+ }
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppDetourProvider.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppDetourProvider.cs
new file mode 100644
index 000000000..dbf159d68
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppDetourProvider.cs
@@ -0,0 +1,80 @@
+using Il2CppInterop.Runtime.Injection;
+using MelonLoader.CoreClrUtils;
+using MelonLoader.InternalUtils;
+using System;
+using System.Runtime.InteropServices;
+
+namespace MelonLoader.Engine.Unity.Il2Cpp
+{
+ internal sealed class Il2CppDetourProvider : IDetourProvider
+ {
+ public IDetour Create(nint original, TDelegate target) where TDelegate : Delegate
+ {
+ return new MelonDetour(original, target);
+ }
+
+ private sealed class MelonDetour : IDetour
+ {
+ private nint _detourFrom;
+ private nint _originalPtr;
+
+ private Delegate _target;
+ private IntPtr _targetPtr;
+
+ ///
+ /// Original method
+ ///
+ public nint Target => _detourFrom;
+
+ public nint Detour => _targetPtr;
+ public nint OriginalTrampoline => _originalPtr;
+
+ public MelonDetour(nint detourFrom, Delegate target)
+ {
+ _detourFrom = detourFrom;
+ _target = target;
+
+ // We have to apply immediately because we're gonna be asked for a trampoline right away
+ Apply();
+ }
+
+ public unsafe void Apply()
+ {
+ if (_targetPtr != IntPtr.Zero)
+ return;
+
+ _targetPtr = Marshal.GetFunctionPointerForDelegate(_target);
+
+ var addr = _detourFrom;
+ nint addrPtr = (nint)(&addr);
+ BootstrapInterop.NativeHookAttachDirect(addrPtr, _targetPtr);
+ NativeStackWalk.RegisterHookAddr((ulong)addrPtr, $"Il2CppInterop detour of 0x{addrPtr:X} -> 0x{_targetPtr:X}");
+
+ _originalPtr = addr;
+ }
+
+ public unsafe void Dispose()
+ {
+ if (_targetPtr == IntPtr.Zero)
+ return;
+
+ var addr = _detourFrom;
+ nint addrPtr = (nint)(&addr);
+
+ BootstrapInterop.NativeHookDetach(addrPtr, _targetPtr);
+ NativeStackWalk.UnregisterHookAddr((ulong)addrPtr);
+
+ _targetPtr = IntPtr.Zero;
+ _originalPtr = IntPtr.Zero;
+ }
+
+ public T GenerateTrampoline()
+ where T : Delegate
+ {
+ if (_originalPtr == IntPtr.Zero)
+ return null;
+ return Marshal.GetDelegateForFunctionPointer(_originalPtr);
+ }
+ }
+ }
+}
diff --git a/MelonLoader/Fixes/Il2CppICallInjector.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppICallInjector.cs
similarity index 84%
rename from MelonLoader/Fixes/Il2CppICallInjector.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppICallInjector.cs
index 7c4e00a4f..9b08df113 100644
--- a/MelonLoader/Fixes/Il2CppICallInjector.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppICallInjector.cs
@@ -9,20 +9,17 @@
using System.Runtime.InteropServices;
using Il2CppInterop.HarmonySupport;
using HarmonyLib;
+using MelonLoader.Runtime.Il2Cpp;
#pragma warning disable 0649
-namespace MelonLoader.Fixes
+namespace MelonLoader.Engine.Unity.Il2Cpp
{
- internal static class Il2CppICallInjector
+ public static class Il2CppICallInjector
{
private static Dictionary _lookup = new();
- private delegate IntPtr dil2cpp_resolve_icall(IntPtr signature);
- private static NativeHook il2cpp_resolve_icall_hook;
-
- private delegate void dil2cpp_add_internal_call(IntPtr signature, IntPtr funcPtr);
- private static dil2cpp_add_internal_call il2cpp_add_internal_call;
+ private static MelonNativeHook il2cpp_resolve_icall_hook;
private static Type _il2CppDetourMethodPatcher;
private static MethodInfo _generateNativeToManagedTrampoline;
@@ -30,7 +27,7 @@ internal static class Il2CppICallInjector
private static bool _extendedDebug;
private static MelonLogger.Instance _logger;
- internal static unsafe void Install()
+ public static unsafe void Install()
{
try
{
@@ -44,22 +41,9 @@ internal static unsafe void Install()
if (_generateNativeToManagedTrampoline == null)
throw new Exception("Failed to get Il2CppDetourMethodPatcher.GenerateNativeToManagedTrampoline");
- string gameAssemblyName = "GameAssembly";
- NativeLibrary gameAssemblyLib = NativeLibrary.Load(gameAssemblyName);
- if (gameAssemblyLib == null)
- throw new Exception($"Failed to load {gameAssemblyName} Native Library");
-
- IntPtr il2cpp_resolve_icall = gameAssemblyLib.GetExport(nameof(il2cpp_resolve_icall));
- if (il2cpp_resolve_icall == IntPtr.Zero)
- throw new Exception($"Failed to get {nameof(il2cpp_resolve_icall)} Native Export");
-
- il2cpp_add_internal_call = gameAssemblyLib.GetExport(nameof(il2cpp_add_internal_call));
- if (il2cpp_add_internal_call == null)
- throw new Exception($"Failed to get {nameof(il2cpp_add_internal_call)} Native Export");
-
MelonDebug.Msg("Patching il2cpp_resolve_icall...");
- IntPtr detourPtr = Marshal.GetFunctionPointerForDelegate((dil2cpp_resolve_icall)il2cpp_resolve_icall_Detour);
- il2cpp_resolve_icall_hook = new NativeHook(il2cpp_resolve_icall, detourPtr);
+ IntPtr detourPtr = Marshal.GetFunctionPointerForDelegate((Il2CppLibrary.dil2cpp_resolve_icall)il2cpp_resolve_icall_Detour);
+ il2cpp_resolve_icall_hook = new MelonNativeHook(Marshal.GetFunctionPointerForDelegate(Il2CppLibrary.Instance.il2cpp_resolve_icall), detourPtr);
il2cpp_resolve_icall_hook.Attach();
}
catch (Exception e)
@@ -68,7 +52,7 @@ internal static unsafe void Install()
}
}
- internal static void Shutdown()
+ public static void Shutdown()
{
if (il2cpp_resolve_icall_hook != null)
{
@@ -146,7 +130,7 @@ private static IntPtr il2cpp_resolve_icall_Detour(IntPtr signature)
// Add New ICall to Il2Cpp Domain
_lookup[signatureStr] = pair;
- il2cpp_add_internal_call(signature, pair.Item4);
+ Il2CppLibrary.Instance.il2cpp_add_internal_call(signature, pair.Item4);
LogMsg($"Registered mono icall {signatureStr} in il2cpp domain");
// Return New Function Pointer
diff --git a/MelonLoader/Fixes/Il2CppInteropFixes.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppInteropFixes.cs
similarity index 98%
rename from MelonLoader/Fixes/Il2CppInteropFixes.cs
rename to Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppInteropFixes.cs
index c94fc0351..7684193db 100644
--- a/MelonLoader/Fixes/Il2CppInteropFixes.cs
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppInteropFixes.cs
@@ -21,16 +21,18 @@
#pragma warning disable CS8632
-namespace MelonLoader.Fixes
+namespace MelonLoader.Engine.Unity.Il2Cpp
{
// fixes: https://github.com/BepInEx/Il2CppInterop/pull/103
// fixes: https://github.com/BepInEx/Il2CppInterop/issues/135
// reverts: https://github.com/BepInEx/Il2CppInterop/commit/18e58ef5db42a71d6012ab0387b107a4132101eb
// fixes the rest of: https://github.com/BepInEx/Il2CppInterop/pull/134
- internal unsafe static class Il2CppInteropFixes
+ public unsafe static class Il2CppInteropFixes
{
private static MelonLogger.Instance _logger = new("Il2CppInterop");
+ private static string _asmFolder;
+
private static Dictionary> _assemblyLookup = new();
private static Dictionary _typeLookup = new();
private static Dictionary _typeNameLookup = new();
@@ -80,8 +82,10 @@ private static void LogDebugMsg(string msg)
_logger.Msg(msg);
}
- internal static void Install()
+ public static void Install(string assembliesPath)
{
+ _asmFolder = assembliesPath;
+
try
{
Type typeType = typeof(Type);
@@ -488,9 +492,9 @@ private static bool SystemTypeFromIl2CppType_Prefix(Il2CppTypeStruct* __0, ref T
if (string.IsNullOrEmpty(fileNameStr))
return true;
- string il2cppAssemblyPath = Path.Combine(MelonEnvironment.Il2CppAssembliesDirectory, fileNameStr);
+ string il2cppAssemblyPath = Path.Combine(_asmFolder, fileNameStr);
if (!File.Exists(il2cppAssemblyPath))
- il2cppAssemblyPath = Path.Combine(MelonEnvironment.Il2CppAssembliesDirectory, $"Il2Cpp{fileNameStr}");
+ il2cppAssemblyPath = Path.Combine(_asmFolder, $"Il2Cpp{fileNameStr}");
if (File.Exists(il2cppAssemblyPath))
{
Assembly asm = Assembly.LoadFrom(il2cppAssemblyPath);
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppLogProvider.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppLogProvider.cs
new file mode 100644
index 000000000..08b6ea263
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppLogProvider.cs
@@ -0,0 +1,46 @@
+using Microsoft.Extensions.Logging;
+using System;
+
+namespace MelonLoader.Engine.Unity.Il2Cpp
+{
+ internal class Il2CppLogProvider : ILogger
+ {
+ private MelonLogger.Instance _logger = new("Il2CppInterop");
+
+ public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception,
+ Func formatter)
+ {
+ string formattedTxt = formatter(state, exception);
+ switch (logLevel)
+ {
+ case LogLevel.Debug:
+ case LogLevel.Trace:
+ MelonDebug.Msg(formattedTxt);
+ break;
+
+ case LogLevel.Error:
+ _logger.Error(formattedTxt);
+ break;
+
+ case LogLevel.Warning:
+ _logger.Warning(formattedTxt);
+ break;
+
+ case LogLevel.Information:
+ default:
+ _logger.Msg(formattedTxt);
+ break;
+ }
+ }
+
+ public bool IsEnabled(LogLevel logLevel)
+ => logLevel switch
+ {
+ LogLevel.Debug or LogLevel.Trace => MelonDebug.IsEnabled(),
+ _ => true
+ };
+
+ public IDisposable BeginScope(TState state)
+ => throw new NotImplementedException();
+ }
+}
diff --git a/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppSceneHandler.cs b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppSceneHandler.cs
new file mode 100644
index 000000000..c9e8e9dbd
--- /dev/null
+++ b/Dependencies/Modules/Engines/Unity/Il2Cpp/Unity.Il2Cpp/Il2CppSceneHandler.cs
@@ -0,0 +1,117 @@
+using System;
+using UnityEngine.SceneManagement;
+using System.Collections.Generic;
+using UnityEngine.Events;
+
+namespace MelonLoader.Engine.Unity.Il2Cpp
+{
+ internal class Il2CppSceneHandler : IDisposable
+ {
+ private Il2CppSupportModule SupportModule;
+
+ internal class SceneInitEvent
+ {
+ internal int buildIndex;
+ internal string name;
+ internal bool wasLoadedThisTick;
+ }
+ private Queue scenesLoaded = new Queue();
+
+ internal Il2CppSceneHandler(Il2CppSupportModule supportModule)
+ {
+ SupportModule = supportModule;
+
+ try
+ {
+ SceneManager.sceneLoaded = (
+ (ReferenceEquals(SceneManager.sceneLoaded, null))
+ ? new Action