game: Implement functional supersampling (game > 1x)
This commit is contained in:
parent
5bf237ce57
commit
f2b6466fc2
9 changed files with 1359 additions and 147 deletions
|
@ -63,6 +63,17 @@
|
|||
<HintPath>$(DalamudLibPath)Serilog.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="SharpDX">
|
||||
<HintPath>$(DalamudLibPath)SharpDX.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<Reference Include="SharpDX.Mathematics">
|
||||
<HintPath>$(DalamudLibPath)SharpDX.Mathematics.dll</HintPath>
|
||||
<Private>false</Private>
|
||||
</Reference>
|
||||
<PackageReference Include="SharpDX.D3DCompiler" Version="4.2.0" />
|
||||
<PackageReference Include="SharpDX.Direct3D11" Version="4.2.0" />
|
||||
<PackageReference Include="SharpDX.Direct2D1" Version="4.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -7,11 +7,13 @@ using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
|||
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
||||
using FFXIVClientStructs.Interop;
|
||||
using FloppyUtils;
|
||||
using ImGuiNET;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using TerraFX.Interop.Windows;
|
||||
using static TerraFX.Interop.Windows.Windows;
|
||||
|
||||
|
@ -19,6 +21,8 @@ namespace CustomResolution;
|
|||
|
||||
public unsafe class DisplaySizeState : IDisposable
|
||||
{
|
||||
private StringBuilder _dbg = new();
|
||||
private bool _dbgLog = false;
|
||||
private bool _wasEnabled = false;
|
||||
private HWND _currentHwnd;
|
||||
private bool _currentHwndMismatch = false;
|
||||
|
@ -36,6 +40,8 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
|
||||
public bool CurrentBorderlessFullscreen { get; private set; }
|
||||
|
||||
public string DebugInfo => _dbg.ToString();
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Service.Framework.RunOnFrameworkThread(Update);
|
||||
|
@ -117,6 +123,9 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
|
||||
public void Update()
|
||||
{
|
||||
_dbg.Clear();
|
||||
_dbgLog = false;
|
||||
|
||||
bool unloading = Service.Plugin.Unloading;
|
||||
|
||||
ref var cfg = ref Service.Config._.Display;
|
||||
|
@ -134,8 +143,8 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
if (!_currentHwndMismatch)
|
||||
{
|
||||
_currentHwndMismatch = true;
|
||||
Service.PluginLog.Error($"HWND MISMATCH between GameWindow and Device: 0x{(long) (IntPtr) (_currentHwnd):X16} vs 0x{(long) dev->hWnd:X16}");
|
||||
Service.PluginLog.Info($"dev is at: 0x{(long) (IntPtr) dev:X16}");
|
||||
Service.PluginLog.Error($"HWND MISMATCH between GameWindow and Device: 0x{(long) (nint) _currentHwnd:X16} vs 0x{(long) (nint) dev->hWnd:X16}");
|
||||
Service.PluginLog.Info($"dev is at: 0x{(long) (nint) dev:X16}");
|
||||
CheckHWND("GameWindow", _currentHwnd);
|
||||
CheckHWND("Device", (HWND) dev->hWnd);
|
||||
}
|
||||
|
@ -242,8 +251,8 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
_wasEnabled = enabled;
|
||||
}
|
||||
|
||||
//Service.PluginLog.Debug($"NewWidth 0x{(long) (IntPtr) (&dev->NewWidth):X16}");
|
||||
//Service.PluginLog.Debug($"GameWindow->Width 0x{(long) (IntPtr) (&win->WindowWidth):X16}");
|
||||
//Service.PluginLog.Debug($"NewWidth 0x{(long) (nint) (&dev->NewWidth):X16}");
|
||||
//Service.PluginLog.Debug($"GameWindow->Width 0x{(long) (nint) (&win->WindowWidth):X16}");
|
||||
|
||||
//Service.PluginLog.Info($"Game window at {win->WindowWidth} x {win->WindowHeight}");
|
||||
|
||||
|
@ -264,6 +273,20 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
CurrentHeight = height;
|
||||
CurrentWindowWidth = (uint) rectWidth;
|
||||
CurrentWindowHeight = (uint) rectHeight;
|
||||
|
||||
if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
_dbg.AppendLine(@$"RESIZE {dev->RequestResolutionChange} {dev->RequestResolutionChangeUnk1} {dev->RequestResolutionChangeUnk2} {dev->RequestResolutionChangeUnk3}");
|
||||
_dbgLog |= dev->RequestResolutionChange != 0;
|
||||
_dbgLog |= dev->RequestResolutionChangeUnk1 != 0;
|
||||
_dbgLog |= dev->RequestResolutionChangeUnk2 != 0;
|
||||
_dbgLog |= dev->RequestResolutionChangeUnk3 != 0;
|
||||
}
|
||||
|
||||
if (_dbgLog)
|
||||
{
|
||||
Service.PluginLog.Debug(_dbg.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
private void SetDXVKDWMHack(DXVKDWMHackMode mode)
|
||||
|
@ -281,19 +304,19 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
|
||||
var fullscreen = (style & WS.WS_SYSMENU) == 0;
|
||||
|
||||
_dbg.Clear();
|
||||
if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
Service.PluginLog.Info("--------");
|
||||
Service.PluginLog.Info($"STYLE: 0x{style:X8}");
|
||||
Service.PluginLog.Info($"EXSTYLE: 0x{GetWindowLong(_currentHwnd, GWL.GWL_EXSTYLE):X8}");
|
||||
_dbg.AppendLine($"STYLE: 0x{style:X8}");
|
||||
_dbg.AppendLine($"EXSTYLE: 0x{GetWindowLong(_currentHwnd, GWL.GWL_EXSTYLE):X8}");
|
||||
|
||||
Span<ushort> name = stackalloc ushort[256];
|
||||
GetClassName(_currentHwnd, name.GetPointer(0), name.Length);
|
||||
WNDCLASSEXW wce;
|
||||
GetClassInfoEx(GetModuleHandle(null), name.GetPointer(0), &wce);
|
||||
|
||||
Service.PluginLog.Info($"CLASS: {new string((char*) name.GetPointer(0))}");
|
||||
Service.PluginLog.Info($"CLASS.style: 0x{wce.style:X8}");
|
||||
_dbg.AppendLine($"CLASS: {new string((char*) name.GetPointer(0))}");
|
||||
_dbg.AppendLine($"CLASS.style: 0x{wce.style:X8}");
|
||||
}
|
||||
|
||||
if (fullscreen)
|
||||
|
@ -321,15 +344,16 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
|
||||
if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
Service.PluginLog.Info($"NEWSTYLE: 0x{style:X8}");
|
||||
Service.PluginLog.Info($"NEWEXSTYLE: 0x{exstyle:X8}");
|
||||
_dbg.AppendLine($"NEWSTYLE: 0x{style:X8}");
|
||||
_dbg.AppendLine($"NEWEXSTYLE: 0x{exstyle:X8}");
|
||||
}
|
||||
|
||||
if (style != styleOrig || exstyle != exstyleOrig || _currentDXVKDWMHackMode != mode)
|
||||
{
|
||||
if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
Service.PluginLog.Info("UPDATE");
|
||||
_dbg.AppendLine("UPDATE");
|
||||
_dbgLog = true;
|
||||
}
|
||||
|
||||
SetWindowLong(_currentHwnd, GWL.GWL_STYLE, (int) style);
|
||||
|
@ -340,7 +364,7 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
}
|
||||
else if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
Service.PluginLog.Info("SAME");
|
||||
_dbg.AppendLine("SAME");
|
||||
}
|
||||
|
||||
_currentDXVKDWMHackMode = mode;
|
||||
|
@ -354,37 +378,6 @@ public unsafe class DisplaySizeState : IDisposable
|
|||
Service.PluginLog.Info($"{from} is sus: {Marshal.GetLastPInvokeErrorMessage()}");
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
private struct DeviceEx
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public Device _;
|
||||
|
||||
public ref byte RequestResolutionChange => ref _.RequestResolutionChange;
|
||||
|
||||
public ref uint Width => ref _.Width;
|
||||
|
||||
public ref uint Height => ref _.Height;
|
||||
|
||||
#if CRES_CLEAN || true
|
||||
public ref void* hWnd => ref _.hWnd;
|
||||
|
||||
public ref uint NewWidth => ref _.NewWidth;
|
||||
|
||||
public ref uint NewHeight => ref _.NewHeight;
|
||||
#else
|
||||
// 7.2 adds 1B8 before hWnd (previously 820, now 9D8)
|
||||
[FieldOffset(0x9D8)]
|
||||
public unsafe void* hWnd;
|
||||
|
||||
[FieldOffset(0x9D8 + 0x10)]
|
||||
public uint NewWidth;
|
||||
|
||||
[FieldOffset(0x9D8 + 0x14)]
|
||||
public uint NewHeight;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
public enum ForceSizeMode
|
||||
|
@ -405,3 +398,38 @@ public enum ForceSizeMode
|
|||
/// </summary>
|
||||
LegacyRequestResolutionChange = 1
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public unsafe struct DeviceEx
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public Device _;
|
||||
|
||||
public ref byte RequestResolutionChange => ref _.RequestResolutionChange;
|
||||
|
||||
public ref byte RequestResolutionChangeUnk1 => ref RefPtr.For(ref _.RequestResolutionChange).Offs<byte>(0x1).Ref;
|
||||
public ref byte RequestResolutionChangeUnk2 => ref RefPtr.For(ref _.RequestResolutionChange).Offs<byte>(0x2).Ref;
|
||||
public ref byte RequestResolutionChangeUnk3 => ref RefPtr.For(ref _.RequestResolutionChange).Offs<byte>(0x3).Ref;
|
||||
|
||||
public ref uint Width => ref _.Width;
|
||||
|
||||
public ref uint Height => ref _.Height;
|
||||
|
||||
#if CRES_CLEAN || true
|
||||
public ref void* hWnd => ref _.hWnd;
|
||||
|
||||
public ref uint NewWidth => ref _.NewWidth;
|
||||
|
||||
public ref uint NewHeight => ref _.NewHeight;
|
||||
#else
|
||||
// 7.2 adds 1B8 before hWnd (previously 820, now 9D8)
|
||||
[FieldOffset(0x9D8)]
|
||||
public unsafe void* hWnd;
|
||||
|
||||
[FieldOffset(0x9D8 + 0x10)]
|
||||
public uint NewWidth;
|
||||
|
||||
[FieldOffset(0x9D8 + 0x14)]
|
||||
public uint NewHeight;
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -1,18 +1,31 @@
|
|||
using CustomResolution.Hooks;
|
||||
using Dalamud.Game.ClientState.Keys;
|
||||
using Dalamud.Game.Config;
|
||||
using Dalamud.Hooking;
|
||||
using Dalamud.Plugin;
|
||||
using Dalamud.Plugin.Services;
|
||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Kernel;
|
||||
using FFXIVClientStructs.FFXIV.Client.Graphics.Render;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.Framework;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.Input;
|
||||
using FFXIVClientStructs.FFXIV.Client.System.String;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI;
|
||||
using FFXIVClientStructs.FFXIV.Client.UI.Misc;
|
||||
using FFXIVClientStructs.FFXIV.Common.Math;
|
||||
using FFXIVClientStructs.FFXIV.Component.GUI;
|
||||
using FFXIVClientStructs.FFXIV.Component.Text;
|
||||
using FFXIVClientStructs.Interop;
|
||||
using FFXIVClientStructs.STD;
|
||||
using FloppyUtils;
|
||||
using ImGuiNET;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Xml.Linq;
|
||||
using TerraFX.Interop.DirectX;
|
||||
using TerraFX.Interop.Windows;
|
||||
using static TerraFX.Interop.Windows.Windows;
|
||||
|
||||
|
@ -20,54 +33,107 @@ namespace CustomResolution;
|
|||
|
||||
public unsafe class GameSizeState : IDisposable
|
||||
{
|
||||
private StringBuilder _dbg = new();
|
||||
private Hook<RTMApplyScaling> _rtmApplyScalingHook;
|
||||
private Hook<RTMDestroyAfterResize> _rtmDestroyAfterResizeHook;
|
||||
private Hook<RTMRegenAfterResize> _rtmRegenAfterResizeHook;
|
||||
|
||||
private bool _wasEnabled = false;
|
||||
|
||||
private bool? _forceDynRezoConfig;
|
||||
private bool _resetSuperSampling = false;
|
||||
|
||||
public GameSizeState()
|
||||
{
|
||||
/* Writes DynamicResolutionTargetHeight to size[1] near the end,
|
||||
* but only if in (gpose || main menu), only scale < 1??
|
||||
*
|
||||
* RVAs:
|
||||
* 7.2: 140470150
|
||||
*/
|
||||
_rtmApplyScalingHook = Service.GameInteropProvider.HookFromAddress<RTMApplyScaling>(
|
||||
Service.SigScanner.ScanText("48 89 5C 24 18 55 56 57 41 56 41 57 48 83 EC 20 8B 42 04 0F 57 C0 48 8B"),
|
||||
RTMApplyScalingDetour
|
||||
);
|
||||
_rtmApplyScalingHook.Enable();
|
||||
|
||||
/* Device.RequestResolutionChange and other triggers run some callbacks, namely
|
||||
* (at the time of 7.2) 0x40 for RTM destruction and 0x48 for RTM reconstruction,
|
||||
* registered in RTM init and run in PostTick.
|
||||
*
|
||||
* We don't care about destruction as much because its behavior is unchanged, but
|
||||
* we do want to call it instead of triggering a slow full game resize,
|
||||
* which causes some annoyances with ReShade and possibly other external factors too.
|
||||
*
|
||||
* We care about reconstruction so that we can force the game to create larger RTs.
|
||||
* It's most notable for not being called directly (only via a shim that gets icalled),
|
||||
* and for being in the stack trace when dxgi updates the RT ptrs.
|
||||
*/
|
||||
_rtmDestroyAfterResizeHook = Service.GameInteropProvider.HookFromAddress<RTMDestroyAfterResize>(
|
||||
Service.SigScanner.ScanText("40 53 48 83 EC 20 48 8B 05 ?? ?? ?? ?? 48 8B D9 80 78 7A 00 ?? ?? ?? ?? ?? ?? 48 89 6C 24"),
|
||||
RTMDestroyAfterResizeDetour
|
||||
);
|
||||
_rtmDestroyAfterResizeHook.Enable();
|
||||
_rtmRegenAfterResizeHook = Service.GameInteropProvider.HookFromAddress<RTMRegenAfterResize>(
|
||||
Service.SigScanner.ScanText("40 55 57 41 55 48 8D 6C 24 B9 48 81 EC A0 00 00 00 48 8B 05 50 10 2C 02 48 33 C4 48 89 45 27 4C"),
|
||||
RTMRegenAfterResizeDetour
|
||||
);
|
||||
_rtmRegenAfterResizeHook.Enable();
|
||||
}
|
||||
|
||||
public bool ConfigDynRezo { get; private set; }
|
||||
public ResolutionScalingMode ConfigGraphicsRezoType { get; private set; }
|
||||
public float ConfigGraphicsRezoScale { get; private set; }
|
||||
|
||||
public string DebugInfo { get; private set; } = "";
|
||||
public uint CurrentWidth { get; private set; }
|
||||
public uint CurrentHeight { get; private set; }
|
||||
|
||||
public string DebugInfo => _dbg.ToString();
|
||||
|
||||
// [UnmanagedFunctionPointer(CallingConvention.FastCall)]
|
||||
private delegate void RTMApplyScaling(RenderTargetManagerEx* rtm, uint* size, byte unk1);
|
||||
|
||||
// [UnmanagedFunctionPointer(CallingConvention.FastCall)]
|
||||
private delegate void RTMDestroyAfterResize(RenderTargetManagerEx* rtm);
|
||||
|
||||
// [UnmanagedFunctionPointer(CallingConvention.FastCall)]
|
||||
private delegate void RTMRegenAfterResize(RenderTargetManagerEx* rtm);
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_rtmApplyScalingHook.Dispose();
|
||||
_rtmDestroyAfterResizeHook.Dispose();
|
||||
_rtmRegenAfterResizeHook.Dispose();
|
||||
Service.Framework.RunOnFrameworkThread(Update);
|
||||
}
|
||||
|
||||
public void ForceDynRezoConfig(bool value)
|
||||
{
|
||||
_forceDynRezoConfig = value;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
ref var cfg = ref Service.Config._.Game;
|
||||
_dbg.Clear();
|
||||
|
||||
if (_forceDynRezoConfig.HasValue)
|
||||
{
|
||||
Service.GameConfig.System.Set(SystemConfigOption.DynamicRezoType.ToString(), _forceDynRezoConfig.Value ? 1U : 0U);
|
||||
_forceDynRezoConfig = null;
|
||||
}
|
||||
ref var cfg = ref Service.Config._.Game;
|
||||
|
||||
ConfigDynRezo = Service.GameConfig.System.GetUInt(SystemConfigOption.DynamicRezoType.ToString()) != 0U;
|
||||
// GameConfig starts with FSR at 0; GraphicsConfig starts with FSR at 1
|
||||
ConfigGraphicsRezoType = (ResolutionScalingMode) (Service.GameConfig.System.GetUInt(SystemConfigOption.GraphicsRezoUpscaleType.ToString()) + 1);
|
||||
ConfigGraphicsRezoScale = Service.GameConfig.System.GetUInt(SystemConfigOption.GraphicsRezoScale.ToString()) / 100f;
|
||||
|
||||
var dev = Device.Instance();
|
||||
var gfx = GraphicsConfig.Instance();
|
||||
var dev = (DeviceEx*) Device.Instance();
|
||||
var gfx = (GraphicsConfigEx*) GraphicsConfig.Instance();
|
||||
var rtm = (RenderTargetManagerEx*) RenderTargetManager.Instance();
|
||||
|
||||
//Service.PluginLog.Debug($"GraphicsRezoScale 0x{(long) (IntPtr) (&gfx->GraphicsRezoScale):X16}");
|
||||
//Service.PluginLog.Debug($"RTM 0x{(long) (IntPtr) rtm:X16}");
|
||||
|
||||
if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
DebugInfo = @$"DR {gfx->DynamicRezoEnable}
|
||||
_dbg.Append(@$"RTMApplyScaling 0x{(_rtmApplyScalingHook.IsDisposed ? null : _rtmApplyScalingHook.Address):X16}
|
||||
RTMRegenAfterResize 0x{(_rtmRegenAfterResizeHook.IsDisposed ? null : _rtmRegenAfterResizeHook.Address):X16}
|
||||
DR !{gfx->DynamicRezoEnable} ?{gfx->DynamicRezoEnableBeyond1} _{gfx->DynamicRezoEnableCutScene} ?{gfx->DynamicRezoEnableUnkx47} ?{gfx->DynamicRezoEnableUnkx48}
|
||||
GR x{gfx->GraphicsRezoScale} ?{gfx->GraphicsRezoUnk1} _{gfx->GraphicsRezoUpscaleType} ?{gfx->GraphicsRezoUnk2}
|
||||
DEV 0x{(long) (nint) dev:X16}
|
||||
GFX 0x{(long) (nint) gfx:X16}
|
||||
RTM 0x{(long) (nint) rtm:X16}
|
||||
RTM {rtm->Resolution_Width} x {rtm->Resolution_Height}
|
||||
RTM H {rtm->DynamicResolutionActualTargetHeight} {rtm->DynamicResolutionTargetHeight} {rtm->DynamicResolutionMaximumHeight} {rtm->DynamicResolutionMinimumHeight}
|
||||
RTM S {rtm->GraphicsRezoScalePrev} {rtm->GraphicsRezoScaleGlassWidth} {rtm->GraphicsRezoScaleGlassHeight} {rtm->GraphicsRezoScaleGlassWidth} {rtm->GraphicsRezoScaleGlassHeight}";
|
||||
RTM S {rtm->GraphicsRezoScalePrev} {rtm->GraphicsRezoScaleGlassX} {rtm->GraphicsRezoScaleGlassY} {rtm->GraphicsRezoScaleGlassX} {rtm->GraphicsRezoScaleGlassY}
|
||||
");
|
||||
}
|
||||
|
||||
bool unloading = Service.Plugin.Unloading;
|
||||
|
@ -80,6 +146,7 @@ RTM S {rtm->GraphicsRezoScalePrev} {rtm->GraphicsRezoScaleGlassWidth} {rtm->Grap
|
|||
if (enabled)
|
||||
{
|
||||
gfx->GraphicsRezoUpscaleType = (byte) (cfg.Scale <= 1f ? Service.Config._.ResolutionScalingMode : ResolutionScalingMode.Fast);
|
||||
rtm->DynamicResolutionMinimumHeight = rtm->DynamicResolutionMaximumHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -88,28 +155,144 @@ RTM S {rtm->GraphicsRezoScalePrev} {rtm->GraphicsRezoScaleGlassWidth} {rtm->Grap
|
|||
_wasEnabled = enabled;
|
||||
}
|
||||
|
||||
if (enabled)
|
||||
var scale = MathF.Max(1f, enabled ? cfg.Scale : 1f);
|
||||
var widthS = (ushort) MathF.Round(dev->Width * scale);
|
||||
var heightS = (ushort) MathF.Round(dev->Height * scale);
|
||||
|
||||
// TODO: Figure out a more consistent way to get to the currently allocated size.
|
||||
// Check if the backing RTs are the expected size.
|
||||
var tex = rtm->_.Unk20[0].Value;
|
||||
if (tex->AllocatedWidth != widthS || tex->AllocatedHeight != heightS)
|
||||
{
|
||||
rtm->DynamicResolutionMinimumHeight = rtm->DynamicResolutionMaximumHeight;
|
||||
// TODO: Figure out why this is causing sporadic crashes.
|
||||
#if CRES_WIP
|
||||
if (dev->RequestResolutionChange == 0 && !_rtmDestroyAfterResizeHook.IsDisposed && !_rtmRegenAfterResizeHook.IsDisposed)
|
||||
{
|
||||
dev->RequestResolutionChange = 1;
|
||||
RTMDestroyAfterResizeDetour(rtm);
|
||||
RTMRegenAfterResizeDetour(rtm);
|
||||
dev->RequestResolutionChange = 0;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
dev->RequestResolutionChange = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
rtm->Resolution_Width = (ushort) (dev->Width * gfx->GraphicsRezoScale);
|
||||
rtm->Resolution_Height = (ushort) (dev->Height * gfx->GraphicsRezoScale);
|
||||
rtm->DynamicResolutionActualTargetHeight = (ushort) (dev->Height * gfx->GraphicsRezoScale);
|
||||
rtm->DynamicResolutionTargetHeight = (ushort) (dev->Height * gfx->GraphicsRezoScale);
|
||||
rtm->DynamicResolutionMaximumHeight = (ushort) (dev->Height * gfx->GraphicsRezoScale);
|
||||
rtm->DynamicResolutionMinimumHeight = (ushort) (dev->Height * gfx->GraphicsRezoScale);
|
||||
*/
|
||||
// Check if the RTM size didn't go back to the screen size when switching f.e. in / out of gpose.
|
||||
if (scale > 1f)
|
||||
{
|
||||
if (rtm->Resolution_Width != widthS || rtm->Resolution_Height != heightS)
|
||||
{
|
||||
// TODO: Forcing a resolution change via Device in this scenario is annoying, but this feels disgusting.
|
||||
if (!_resetSuperSampling)
|
||||
{
|
||||
gfx->DynamicRezoEnable = 0;
|
||||
gfx->GraphicsRezoScale = 0.5f;
|
||||
_resetSuperSampling = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
gfx->DynamicRezoEnable = 1;
|
||||
gfx->GraphicsRezoScale = scale;
|
||||
_resetSuperSampling = false;
|
||||
}
|
||||
}
|
||||
// TODO: Figure out what's going on with GraphicsRezoScaleGlassXY and GraphicsRezoUnk1
|
||||
}
|
||||
|
||||
CurrentWidth = rtm->Resolution_Width;
|
||||
CurrentHeight = rtm->Resolution_Height;
|
||||
}
|
||||
|
||||
// RenderTargetManager is updated very sporadically, and some fields we need flew out
|
||||
// https://github.com/aers/FFXIVClientStructs/commit/589df2aa5cd9c98b4d62269034cd6da903f49b5f#diff-8e7d9b03cb91cb07a8d7b463b5be4672793a328703bde393e7acd890822a72cf
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
private struct RenderTargetManagerEx
|
||||
private void RTMApplyScalingDetour(RenderTargetManagerEx* rtm, uint* size, byte unk1)
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public RenderTargetManager _;
|
||||
ref var cfg = ref Service.Config._.Game;
|
||||
if (Service.Plugin.Unloading || !cfg.IsEnabled)
|
||||
{
|
||||
_rtmApplyScalingHook.Original(rtm, size, unk1);
|
||||
return;
|
||||
}
|
||||
|
||||
var gfx = (GraphicsConfigEx*) GraphicsConfig.Instance();
|
||||
var _DynamicRezoEnableBeyond1 = gfx->DynamicRezoEnableBeyond1;
|
||||
gfx->DynamicRezoEnableBeyond1 = 1;
|
||||
|
||||
Service.PluginLog.Info($"Applying scaling, before: {size[0]} {size[1]} {unk1}");
|
||||
_rtmApplyScalingHook.Original(rtm, size, unk1);
|
||||
Service.PluginLog.Info($"Applying scaling, after: {size[0]} {size[1]} {unk1}");
|
||||
|
||||
gfx->DynamicRezoEnableBeyond1 = _DynamicRezoEnableBeyond1;
|
||||
}
|
||||
|
||||
private void RTMDestroyAfterResizeDetour(RenderTargetManagerEx* rtm)
|
||||
{
|
||||
ref var cfg = ref Service.Config._.Game;
|
||||
if (Service.Plugin.Unloading || !cfg.IsEnabled)
|
||||
{
|
||||
_rtmDestroyAfterResizeHook.Original(rtm);
|
||||
return;
|
||||
}
|
||||
|
||||
Service.PluginLog.Info($"Destroying RTM resources");
|
||||
_rtmDestroyAfterResizeHook.Original(rtm);
|
||||
}
|
||||
|
||||
private void RTMRegenAfterResizeDetour(RenderTargetManagerEx* rtm)
|
||||
{
|
||||
ref var cfg = ref Service.Config._.Game;
|
||||
if (Service.Plugin.Unloading || !cfg.IsEnabled)
|
||||
{
|
||||
_rtmRegenAfterResizeHook.Original(rtm);
|
||||
return;
|
||||
}
|
||||
|
||||
var dev = (DeviceEx*) Device.Instance();
|
||||
|
||||
var _Width = dev->Width;
|
||||
var _Height = dev->Height;
|
||||
|
||||
var scale = MathF.Max(1f, cfg.Scale);
|
||||
dev->Width = (ushort) MathF.Round(_Width * scale);
|
||||
dev->Height = (ushort) MathF.Round(_Height * scale);
|
||||
|
||||
Service.PluginLog.Info($"Regenerating RTM resources: {dev->Width} x {dev->Height}");
|
||||
_rtmRegenAfterResizeHook.Original(rtm);
|
||||
|
||||
dev->Width = _Width;
|
||||
dev->Height = _Height;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public unsafe struct GraphicsConfigEx
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public GraphicsConfig _;
|
||||
|
||||
// CRES_CLEAN never
|
||||
public ref byte DynamicRezoEnable => ref _.DynamicRezoEnable;
|
||||
// Set to 0 in main menu and gpose, preventing scaling beyond 1.
|
||||
public ref byte DynamicRezoEnableBeyond1 => ref RefPtr.For(ref DynamicRezoEnable).Offs<byte>(0x1).Ref;
|
||||
public ref byte DynamicRezoEnableCutScene => ref RefPtr.For(ref DynamicRezoEnable).Offs<byte>(0x2).Ref;
|
||||
public ref byte DynamicRezoEnableUnkx47 => ref RefPtr.For(ref DynamicRezoEnable).Offs<byte>(0x3).Ref;
|
||||
public ref byte DynamicRezoEnableUnkx48 => ref RefPtr.For(ref DynamicRezoEnable).Offs<byte>(0x4).Ref;
|
||||
|
||||
public ref float GraphicsRezoScale => ref _.GraphicsRezoScale;
|
||||
public ref float GraphicsRezoUnk1 => ref RefPtr.For(ref GraphicsRezoScale).Offs<float>(0x4).Ref;
|
||||
public ref byte GraphicsRezoUpscaleType => ref _.GraphicsRezoUpscaleType;
|
||||
public ref byte GraphicsRezoUnk2 => ref RefPtr.For(ref GraphicsRezoUpscaleType).Offs<byte>(0x1).Ref;
|
||||
}
|
||||
|
||||
// RenderTargetManager is updated very sporadically, and some fields we need flew out
|
||||
// https://github.com/aers/FFXIVClientStructs/commit/589df2aa5cd9c98b4d62269034cd6da903f49b5f#diff-8e7d9b03cb91cb07a8d7b463b5be4672793a328703bde393e7acd890822a72cf
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public unsafe struct RenderTargetManagerEx
|
||||
{
|
||||
[FieldOffset(0)]
|
||||
public RenderTargetManager _;
|
||||
|
||||
#if CRES_CLEAN || false
|
||||
public ref uint Resolution_Width => ref _.Resolution_Width;
|
||||
|
@ -120,30 +303,29 @@ RTM S {rtm->GraphicsRezoScalePrev} {rtm->GraphicsRezoScaleGlassWidth} {rtm->Grap
|
|||
public ref ushort DynamicResolutionMinimumHeight => ref _.DynamicResolutionMinimumHeight;
|
||||
public ref float GraphicsRezoScale => ref _.GraphicsRezoScale;
|
||||
#else
|
||||
[FieldOffset(0x428)]
|
||||
public uint Resolution_Width;
|
||||
[FieldOffset(0x428 + 0x4)]
|
||||
public uint Resolution_Height;
|
||||
[FieldOffset(0x428)]
|
||||
public uint Resolution_Width;
|
||||
[FieldOffset(0x428 + 0x4)]
|
||||
public uint Resolution_Height;
|
||||
|
||||
[FieldOffset(0x6F0 + 2 * 0)]
|
||||
public ushort DynamicResolutionActualTargetHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 1)]
|
||||
public ushort DynamicResolutionTargetHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 2)]
|
||||
public ushort DynamicResolutionMaximumHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 3)]
|
||||
public ushort DynamicResolutionMinimumHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 0)]
|
||||
public ushort DynamicResolutionActualTargetHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 1)]
|
||||
public ushort DynamicResolutionTargetHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 2)]
|
||||
public ushort DynamicResolutionMaximumHeight;
|
||||
[FieldOffset(0x6F0 + 2 * 3)]
|
||||
public ushort DynamicResolutionMinimumHeight;
|
||||
|
||||
[FieldOffset(0x70C + 4 * 0)]
|
||||
public float GraphicsRezoScalePrev;
|
||||
[FieldOffset(0x70C + 4 * 1)]
|
||||
public float GraphicsRezoScaleGlassWidth;
|
||||
[FieldOffset(0x70C + 4 * 2)]
|
||||
public float GraphicsRezoScaleGlassHeight;
|
||||
[FieldOffset(0x70C + 4 * 3)]
|
||||
public float GraphicsRezoScaleUnk1;
|
||||
[FieldOffset(0x70C + 4 * 4)]
|
||||
public float GraphicsRezoScaleUnk2;
|
||||
[FieldOffset(0x70C + 4 * 0)]
|
||||
public float GraphicsRezoScalePrev;
|
||||
[FieldOffset(0x70C + 4 * 1)]
|
||||
public float GraphicsRezoScaleGlassX;
|
||||
[FieldOffset(0x70C + 4 * 2)]
|
||||
public float GraphicsRezoScaleGlassY;
|
||||
[FieldOffset(0x70C + 4 * 3)]
|
||||
public float GraphicsRezoScaleUnk1;
|
||||
[FieldOffset(0x70C + 4 * 4)]
|
||||
public float GraphicsRezoScaleUnk2;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ public sealed unsafe class WndProcHook : IDisposable
|
|||
|
||||
private void InvokePre(WndProcEventArgs args)
|
||||
{
|
||||
if (Service.Plugin is not { } plugin)
|
||||
if (Service.Plugin.Unloading)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
@ -185,7 +185,7 @@ public sealed unsafe class WndProcHook : IDisposable
|
|||
|
||||
private void InvokePost(WndProcEventArgs args)
|
||||
{
|
||||
if (Service.Plugin is not { } plugin)
|
||||
if (Service.Plugin.Unloading)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -84,8 +84,6 @@ public sealed unsafe class Plugin : IDalamudPlugin
|
|||
Service.WndProcHook.Dispose();
|
||||
|
||||
Service.PluginUI.Dispose();
|
||||
|
||||
Service.Plugin = null!;
|
||||
}
|
||||
|
||||
private void OnFrameworkUpdateForSize(ref ConfigurationV1.SizeConfig size)
|
||||
|
|
35
CustomResolution2782/RefPtr.cs
Normal file
35
CustomResolution2782/RefPtr.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace FloppyUtils;
|
||||
|
||||
public static unsafe class RefPtr
|
||||
{
|
||||
public static RefPtr<T> For<T>(ref T at) where T : unmanaged
|
||||
{
|
||||
return new()
|
||||
{
|
||||
Ref = ref at
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public unsafe ref struct RefPtr<TAt> where TAt : unmanaged
|
||||
{
|
||||
public ref TAt Ref;
|
||||
|
||||
public TAt* Ptr
|
||||
{
|
||||
get => (TAt*) Unsafe.AsPointer(ref Ref);
|
||||
set => Ref = ref Unsafe.AsRef<TAt>(value);
|
||||
}
|
||||
|
||||
public RefPtr<T> Offs<T>(int offs) where T : unmanaged => new()
|
||||
{
|
||||
Ptr = (T*) ((nint) Ptr + offs)
|
||||
};
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using CustomResolution.Hooks;
|
||||
using Dalamud.Game;
|
||||
using Dalamud.Game.Text;
|
||||
using Dalamud.IoC;
|
||||
using Dalamud.Plugin;
|
||||
|
@ -38,6 +39,9 @@ public sealed class Service
|
|||
[PluginService]
|
||||
public static IGameInteropProvider GameInteropProvider { get; private set; } = null!;
|
||||
|
||||
[PluginService]
|
||||
public static ISigScanner SigScanner { get; private set; } = null!;
|
||||
|
||||
[PluginService]
|
||||
public static IPluginLog PluginLog { get; private set; } = null!;
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ public class ConfigWindow : Window, IDisposable
|
|||
|
||||
private readonly int[] _displayCurrentWH = new int[2];
|
||||
private readonly int[] _displayCurrentWindowWH = new int[2];
|
||||
private readonly int[] _displayCurrentGameWH = new int[2];
|
||||
|
||||
private ConfigurationV1 _;
|
||||
|
||||
|
@ -49,18 +50,18 @@ public class ConfigWindow : Window, IDisposable
|
|||
_displayCurrentWH[1] = (int) Service.DisplaySize.CurrentHeight;
|
||||
_displayCurrentWindowWH[0] = (int) Service.DisplaySize.CurrentWindowWidth;
|
||||
_displayCurrentWindowWH[1] = (int) Service.DisplaySize.CurrentWindowHeight;
|
||||
_displayCurrentGameWH[0] = (int) Service.GameSize.CurrentWidth;
|
||||
_displayCurrentGameWH[1] = (int) Service.GameSize.CurrentHeight;
|
||||
|
||||
ImGui.BeginDisabled();
|
||||
ImGui.InputInt2("Current window size", ref _displayCurrentWindowWH[0]);
|
||||
ImGui.InputInt2("Current display size", ref _displayCurrentWH[0]);
|
||||
ImGui.EndDisabled();
|
||||
using (ImRaii.Disabled())
|
||||
{
|
||||
ImGui.InputInt2("Window size", ref _displayCurrentWindowWH[0]);
|
||||
}
|
||||
|
||||
using (var imTabBar = ImRaii.TabBar("MalfunctionMainTabs"))
|
||||
{
|
||||
DrawDisplayTab();
|
||||
|
||||
DrawGameTab();
|
||||
|
||||
DrawCommonTab();
|
||||
}
|
||||
|
||||
|
@ -97,7 +98,31 @@ Changed via /cres");
|
|||
return;
|
||||
}
|
||||
|
||||
DrawSizeTabContents(ref _.Display, "Display");
|
||||
using (ImRaii.Disabled())
|
||||
{
|
||||
ImGui.InputInt2("Current size", ref _displayCurrentWH[0]);
|
||||
}
|
||||
|
||||
DrawSizeTabShared(ref _.Display, "Display");
|
||||
|
||||
ImGui.Checkbox("Use scale", ref _.Display.IsScale);
|
||||
|
||||
if (_.Display.IsScale)
|
||||
{
|
||||
ImGui.InputFloat("Scale", ref _.Display.Scale, 0.01f, 0.1f, "%.3f", ImGuiInputTextFlags.None);
|
||||
}
|
||||
else
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
ImGui.InputInt2("Size in pixels", ref _.Display.WH[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (Service.DebugConfig.IsDebug)
|
||||
{
|
||||
ImGui.Text(Service.DisplaySize.DebugInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawGameTab()
|
||||
|
@ -124,23 +149,23 @@ Changed via /gres");
|
|||
return;
|
||||
}
|
||||
|
||||
#if false
|
||||
if (Service.GameSize.CurrentDynRezoConfig)
|
||||
using (ImRaii.Disabled())
|
||||
{
|
||||
using (ImRaii.PushColor(ImGuiCol.Border, 0xff00ffff))
|
||||
{
|
||||
if (ImGui.Button(@"This might not work properly while in-game dynamic resolution is enabled!
|
||||
Click here to disable it."))
|
||||
{
|
||||
Service.GameSize.ForceDynRezoConfig(false);
|
||||
}
|
||||
|
||||
ImGui.Dummy(new Vector2(0, ImGui.GetTextLineHeight() * 0.1f));
|
||||
}
|
||||
ImGui.InputInt2("Current size", ref _displayCurrentGameWH[0]);
|
||||
}
|
||||
#endif
|
||||
|
||||
DrawSizeTabContents(ref _.Game, "Game", scaleOnly: true);
|
||||
DrawSizeTabShared(ref _.Game, "Game", scaleOnly: true);
|
||||
|
||||
using (_.Game.Scale > 2f ? ImRaii.PushColor(ImGuiCol.Border, 0xff00ffff) : null)
|
||||
{
|
||||
ImGui.InputFloat("Scale", ref _.Game.Scale, 0.01f, 0.1f, "%.3f", ImGuiInputTextFlags.None);
|
||||
}
|
||||
|
||||
if (_.Game.Scale > 2f && ImGui.IsItemHovered())
|
||||
{
|
||||
ImGui.SetTooltip(@"Scaling larger than 2x currently doesn't improve antialiasing!
|
||||
This is still being worked on before the v1.0 release.");
|
||||
}
|
||||
|
||||
if (ImGui.BeginCombo("Graphics Upscaling", _.ResolutionScalingMode.ToHumanNameString()))
|
||||
{
|
||||
|
@ -167,7 +192,7 @@ Click here to disable it."))
|
|||
}
|
||||
|
||||
|
||||
private void DrawSizeTabContents(ref ConfigurationV1.SizeConfig size, string name, bool scaleOnly = false)
|
||||
private void DrawSizeTabShared(ref ConfigurationV1.SizeConfig size, string name, bool scaleOnly = false)
|
||||
{
|
||||
ImGui.Checkbox("Enabled", ref size.IsEnabled);
|
||||
|
||||
|
@ -216,24 +241,6 @@ Click here to disable it."))
|
|||
|
||||
ImGui.SameLine();
|
||||
ImGui.Text("Hotkey");
|
||||
|
||||
|
||||
if (!scaleOnly)
|
||||
{
|
||||
ImGui.Checkbox("Use scale", ref size.IsScale);
|
||||
}
|
||||
|
||||
if (size.IsScale || scaleOnly)
|
||||
{
|
||||
ImGui.InputFloat("Scale", ref size.Scale, 0.01f, 0.1f, "%.3f", ImGuiInputTextFlags.EnterReturnsTrue);
|
||||
}
|
||||
else
|
||||
{
|
||||
unsafe
|
||||
{
|
||||
ImGui.InputInt2("Size in pixels", ref size.WH[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawCommonTab()
|
||||
|
|
|
@ -8,11 +8,958 @@
|
|||
"resolved": "12.0.0",
|
||||
"contentHash": "J5TJLV3f16T/E2H2P17ClWjtfEBPpq3yxvqW46eN36JCm6wR+EaoaYkqG9Rm5sHqs3/nK/vKjWWyvEs/jhKoXw=="
|
||||
},
|
||||
"SharpDX.D3DCompiler": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.2.0, )",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "Rnsd6Ilp127xbXqhTit8WKFQUrXwWxqVGpglyWDNkIBCk0tWXNQEjrJpsl0KAObzyZaa33+EXAikLVt5fnd3GA==",
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "1.6.1",
|
||||
"SharpDX": "4.2.0"
|
||||
}
|
||||
},
|
||||
"SharpDX.Direct2D1": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.2.0, )",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "Qs8LzDMaQf1u3KB8ArHu9pDv6itZ++QXs99a/bVAG+nKr0Hx5NG4mcN5vsfE0mVR2TkeHfeUm4PksRah6VUPtA==",
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "1.6.1",
|
||||
"SharpDX": "4.2.0",
|
||||
"SharpDX.DXGI": "4.2.0"
|
||||
}
|
||||
},
|
||||
"SharpDX.Direct3D11": {
|
||||
"type": "Direct",
|
||||
"requested": "[4.2.0, )",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "oTm/iT5X/IIuJ8kNYP+DTC/MhBhqtRF5dbgPPFgLBdQv0BKzNTzXQQXd7SveBFjQg6hXEAJ2jGCAzNYvGFc9LA==",
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "1.6.1",
|
||||
"SharpDX": "4.2.0",
|
||||
"SharpDX.DXGI": "4.2.0"
|
||||
}
|
||||
},
|
||||
"TerraFX.Interop.Windows": {
|
||||
"type": "Direct",
|
||||
"requested": "[10.0.22621.2, )",
|
||||
"resolved": "10.0.22621.2",
|
||||
"contentHash": "lORoYCoURS33Vi7PDvubRugLF2+l5v3rX2oVEqNhpBLjs3aZpqapRvTHPKVwsC+dGrsGuqJ/3yXuxVUb0vl3vg=="
|
||||
},
|
||||
"Microsoft.NETCore.Platforms": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.0",
|
||||
"contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
|
||||
},
|
||||
"Microsoft.NETCore.Targets": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.1.0",
|
||||
"contentHash": "aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg=="
|
||||
},
|
||||
"Microsoft.Win32.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"NETStandard.Library": {
|
||||
"type": "Transitive",
|
||||
"resolved": "1.6.1",
|
||||
"contentHash": "WcSp3+vP+yHNgS8EV5J7pZ9IRpeDuARBPN28by8zqff1wJQXm26PVU8L3/fYLBJVU7BtDyqNVWq2KlCVvSSR4A==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.Win32.Primitives": "4.3.0",
|
||||
"System.AppContext": "4.3.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Collections.Concurrent": "4.3.0",
|
||||
"System.Console": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Diagnostics.Tools": "4.3.0",
|
||||
"System.Diagnostics.Tracing": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Globalization.Calendars": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.IO.Compression": "4.3.0",
|
||||
"System.IO.Compression.ZipFile": "4.3.0",
|
||||
"System.IO.FileSystem": "4.3.0",
|
||||
"System.IO.FileSystem.Primitives": "4.3.0",
|
||||
"System.Linq": "4.3.0",
|
||||
"System.Linq.Expressions": "4.3.0",
|
||||
"System.Net.Http": "4.3.0",
|
||||
"System.Net.Primitives": "4.3.0",
|
||||
"System.Net.Sockets": "4.3.0",
|
||||
"System.ObjectModel": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Extensions": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Runtime.InteropServices.RuntimeInformation": "4.3.0",
|
||||
"System.Runtime.Numerics": "4.3.0",
|
||||
"System.Security.Cryptography.Algorithms": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Security.Cryptography.X509Certificates": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Text.Encoding.Extensions": "4.3.0",
|
||||
"System.Text.RegularExpressions": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0",
|
||||
"System.Threading.Timer": "4.3.0",
|
||||
"System.Xml.ReaderWriter": "4.3.0",
|
||||
"System.Xml.XDocument": "4.3.0"
|
||||
}
|
||||
},
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q=="
|
||||
},
|
||||
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA=="
|
||||
},
|
||||
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw=="
|
||||
},
|
||||
"runtime.native.System": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0"
|
||||
}
|
||||
},
|
||||
"runtime.native.System.IO.Compression": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0"
|
||||
}
|
||||
},
|
||||
"runtime.native.System.Net.Http": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0"
|
||||
}
|
||||
},
|
||||
"runtime.native.System.Security.Cryptography.Apple": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
|
||||
"dependencies": {
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
|
||||
}
|
||||
},
|
||||
"runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==",
|
||||
"dependencies": {
|
||||
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
|
||||
}
|
||||
},
|
||||
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A=="
|
||||
},
|
||||
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ=="
|
||||
},
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ=="
|
||||
},
|
||||
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g=="
|
||||
},
|
||||
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg=="
|
||||
},
|
||||
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ=="
|
||||
},
|
||||
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A=="
|
||||
},
|
||||
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg=="
|
||||
},
|
||||
"SharpDX": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "3pv0LFMvfK/dv1qISJnn8xBeeT6R/FRvr0EV4KI2DGsL84Qlv6P7isWqxGyU0LCwlSVCJN3jgHJ4Bl0KI2PJww==",
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "1.6.1"
|
||||
}
|
||||
},
|
||||
"SharpDX.DXGI": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.2.0",
|
||||
"contentHash": "UjKqkgWc8U+SP+j3LBzFP6OB6Ntapjih7Xo+g1rLcsGbIb5KwewBrBChaUu7sil8rWoeVU/k0EJd3SMN4VqNZw==",
|
||||
"dependencies": {
|
||||
"NETStandard.Library": "1.6.1",
|
||||
"SharpDX": "4.2.0"
|
||||
}
|
||||
},
|
||||
"System.AppContext": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "fKC+rmaLfeIzUhagxY17Q9siv/sPrjjKcfNg1Ic8IlQkZLipo8ljcaZQu4VtI4Jqbzjc2VTjzGLF6WmsRXAEgA==",
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Buffers": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
|
||||
"dependencies": {
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Diagnostics.Tracing": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Collections": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Collections.Concurrent": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Diagnostics.Tracing": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Console": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.Debug": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.DiagnosticSource": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Tracing": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.Tools": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Diagnostics.Tracing": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Globalization": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Globalization.Calendars": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Globalization.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO.Compression": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Buffers": "4.3.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0",
|
||||
"runtime.native.System": "4.3.0",
|
||||
"runtime.native.System.IO.Compression": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO.Compression.ZipFile": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "G4HwjEsgIwy3JFBduZ9quBkAu+eUwjIdJleuNSgmUojbH6O3mlvEIme+GHx/cLlTAPcrnnL7GqvB9pTlWRfhOg==",
|
||||
"dependencies": {
|
||||
"System.Buffers": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.IO.Compression": "4.3.0",
|
||||
"System.IO.FileSystem": "4.3.0",
|
||||
"System.IO.FileSystem.Primitives": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO.FileSystem": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.IO.FileSystem.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.IO.FileSystem.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Linq": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Linq.Expressions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Linq": "4.3.0",
|
||||
"System.ObjectModel": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Emit": "4.3.0",
|
||||
"System.Reflection.Emit.ILGeneration": "4.3.0",
|
||||
"System.Reflection.Emit.Lightweight": "4.3.0",
|
||||
"System.Reflection.Extensions": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Reflection.TypeExtensions": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Threading": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Net.Http": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "sYg+FtILtRQuYWSIAuNOELwVuVsxVyJGWQyOnlAzhV4xvhyFnON1bAzYYC+jjRW8JREM45R0R5Dgi8MTC5sEwA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Diagnostics.DiagnosticSource": "4.3.0",
|
||||
"System.Diagnostics.Tracing": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Globalization.Extensions": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.IO.FileSystem": "4.3.0",
|
||||
"System.Net.Primitives": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Security.Cryptography.Algorithms": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Security.Cryptography.X509Certificates": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0",
|
||||
"runtime.native.System": "4.3.0",
|
||||
"runtime.native.System.Net.Http": "4.3.0",
|
||||
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Net.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Net.Sockets": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "m6icV6TqQOAdgt5N/9I5KNpjom/5NFtkmGseEH+AK/hny8XrytLH3+b5M8zL/Ycg3fhIocFpUMyl/wpFnVRvdw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Net.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.ObjectModel": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.Emit": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
|
||||
"dependencies": {
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Emit.ILGeneration": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.Emit.ILGeneration": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
|
||||
"dependencies": {
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.Emit.Lightweight": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
|
||||
"dependencies": {
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Emit.ILGeneration": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Reflection.TypeExtensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
|
||||
"dependencies": {
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Resources.ResourceManager": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Handles": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.InteropServices": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Primitives": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.InteropServices.RuntimeInformation": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
|
||||
"dependencies": {
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Reflection.Extensions": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"runtime.native.System": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Runtime.Numerics": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
|
||||
"dependencies": {
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Algorithms": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Runtime.Numerics": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"runtime.native.System.Security.Cryptography.Apple": "4.3.0",
|
||||
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Cng": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Security.Cryptography.Algorithms": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Csp": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Security.Cryptography.Algorithms": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Encoding": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Collections.Concurrent": "4.3.0",
|
||||
"System.Linq": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.OpenSsl": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Runtime.Numerics": "4.3.0",
|
||||
"System.Security.Cryptography.Algorithms": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.Primitives": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
|
||||
"dependencies": {
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Security.Cryptography.X509Certificates": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.Globalization.Calendars": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.IO.FileSystem": "4.3.0",
|
||||
"System.IO.FileSystem.Primitives": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.Handles": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Runtime.Numerics": "4.3.0",
|
||||
"System.Security.Cryptography.Algorithms": "4.3.0",
|
||||
"System.Security.Cryptography.Cng": "4.3.0",
|
||||
"System.Security.Cryptography.Csp": "4.3.0",
|
||||
"System.Security.Cryptography.Encoding": "4.3.0",
|
||||
"System.Security.Cryptography.OpenSsl": "4.3.0",
|
||||
"System.Security.Cryptography.Primitives": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"runtime.native.System": "4.3.0",
|
||||
"runtime.native.System.Net.Http": "4.3.0",
|
||||
"runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Text.Encoding.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Text.RegularExpressions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==",
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
|
||||
"dependencies": {
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Tasks.Extensions": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "npvJkVKl5rKXrtl1Kkm6OhOUaYGEiF9wFbppFRWSMoApKzt2PiPHT2Bb8a5sAWxprvdOAtvaARS9QYMznEUtug==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Threading.Timer": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "Z6YfyYTCg7lOZjJzBjONJTFKGN9/NIYKSxhU5GRd+DTwHSZyvWp1xuI5aR+dLg+ayyC5Xv57KiY4oJ0tMO89fQ==",
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.Platforms": "1.1.0",
|
||||
"Microsoft.NETCore.Targets": "1.1.0",
|
||||
"System.Runtime": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Xml.ReaderWriter": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.IO.FileSystem": "4.3.0",
|
||||
"System.IO.FileSystem.Primitives": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Runtime.InteropServices": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Text.Encoding.Extensions": "4.3.0",
|
||||
"System.Text.RegularExpressions": "4.3.0",
|
||||
"System.Threading.Tasks": "4.3.0",
|
||||
"System.Threading.Tasks.Extensions": "4.3.0"
|
||||
}
|
||||
},
|
||||
"System.Xml.XDocument": {
|
||||
"type": "Transitive",
|
||||
"resolved": "4.3.0",
|
||||
"contentHash": "5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==",
|
||||
"dependencies": {
|
||||
"System.Collections": "4.3.0",
|
||||
"System.Diagnostics.Debug": "4.3.0",
|
||||
"System.Diagnostics.Tools": "4.3.0",
|
||||
"System.Globalization": "4.3.0",
|
||||
"System.IO": "4.3.0",
|
||||
"System.Reflection": "4.3.0",
|
||||
"System.Resources.ResourceManager": "4.3.0",
|
||||
"System.Runtime": "4.3.0",
|
||||
"System.Runtime.Extensions": "4.3.0",
|
||||
"System.Text.Encoding": "4.3.0",
|
||||
"System.Threading": "4.3.0",
|
||||
"System.Xml.ReaderWriter": "4.3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue