mirror of
https://github.com/crskycode/GARbro.git
synced 2026-07-08 01:30:18 +08:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -54,6 +54,7 @@
|
||||
</Reference>
|
||||
<Reference Include="Concentus.Oggfile, Version=1.0.4.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Concentus.Oggfile.1.0.4\lib\net45\Concentus.Oggfile.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Deployment.Compression, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ce35f76fcda82bad, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MSFTCompressionCab.1.0.0\lib\Microsoft.Deployment.Compression.dll</HintPath>
|
||||
@@ -68,6 +69,8 @@
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll</HintPath>
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Buffers.4.5.1\lib\netstandard1.1\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Console, Version=4.0.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
@@ -116,6 +119,23 @@
|
||||
</Reference>
|
||||
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
|
||||
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Memory.4.5.4\lib\netstandard1.1\System.Memory.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Numerics" />
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.6.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.Serialization" />
|
||||
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net46\System.Security.Cryptography.X509Certificates.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Xaml" />
|
||||
@@ -128,6 +148,9 @@
|
||||
<HintPath>..\packages\System.Xml.ReaderWriter.4.3.1\lib\net46\System.Xml.ReaderWriter.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WindowsBase" />
|
||||
<Reference Include="ZstdNet, Version=1.4.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\ZstdNet.1.4.5\lib\net45\ZstdNet.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Artemis\ImageIPT.cs" />
|
||||
@@ -140,6 +163,7 @@
|
||||
<Compile Include="RPGMaker\AudioRPGMV.cs" />
|
||||
<Compile Include="RPGMaker\ImageRPGMV.cs" />
|
||||
<Compile Include="Artemis\ShiftReduceParserCode.cs" />
|
||||
<Compile Include="SakanaGL\ArcSX.cs" />
|
||||
<Compile Include="WebP\ImageWEBP.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
@@ -188,6 +212,16 @@
|
||||
</None>
|
||||
<None Include="Artemis\IPT.parser" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="x64\libzstd.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="x86\libzstd.dll">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="YltParsers">
|
||||
<Names>ipt</Names>
|
||||
</PropertyGroup>
|
||||
@@ -204,6 +238,15 @@ exit 0</PreBuildEvent>
|
||||
<PropertyGroup Label="GenerateIPTProperties">
|
||||
<IPTParser>$(ProjectDir)Artemis\IPT</IPTParser>
|
||||
</PropertyGroup>
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\ZstdNet.1.4.5\build\ZstdNet.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\ZstdNet.1.4.5\build\ZstdNet.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
||||
</Target>
|
||||
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
|
||||
<Target Name="BeforeBuild" DependsOnTargets="YltBuildGen" />
|
||||
<Target Name="YltBuildGen" DependsOnTargets="GenerateIPT" />
|
||||
<Target Name="GenerateIPT" Inputs="$(IPTParser).Language.analyzer.lex;$(IPTParser).Language.grammar.y" Outputs="$(IPTParser).Scanner.Generated.cs;$(IPTParser).Parser.Generated.cs">
|
||||
@@ -224,6 +267,7 @@ exit 0</PreBuildEvent>
|
||||
<Error Condition="!Exists('..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NETStandard.Library.2.0.3\build\netstandard2.0\NETStandard.Library.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\ZstdNet.1.4.5\build\ZstdNet.targets" Condition="Exists('..\packages\ZstdNet.1.4.5\build\ZstdNet.targets')" />
|
||||
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.115.5\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
|
||||
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion ("1.0.16.39")]
|
||||
[assembly: AssemblyFileVersion ("1.0.16.39")]
|
||||
[assembly: AssemblyVersion ("1.0.16.40")]
|
||||
[assembly: AssemblyFileVersion ("1.0.16.40")]
|
||||
|
||||
226
Experimental/SakanaGL/ArcSX.cs
Normal file
226
Experimental/SakanaGL/ArcSX.cs
Normal file
@@ -0,0 +1,226 @@
|
||||
//! \file ArcSX.cs
|
||||
//! \date 2022 Apr 29
|
||||
//! \brief SakanaGL resource archive implementation.
|
||||
//
|
||||
// Copyright (C) 2022 by morkt
|
||||
//
|
||||
// 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.
|
||||
//
|
||||
|
||||
using GameRes.Utility;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.Composition;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
|
||||
namespace GameRes.Formats.Sakana
|
||||
{
|
||||
internal class SxEntry : PackedEntry
|
||||
{
|
||||
public ushort Flags;
|
||||
|
||||
public bool IsEncrypted { get { return 0 == (Flags & 0x10); } }
|
||||
}
|
||||
|
||||
[Export(typeof(ArchiveFormat))]
|
||||
public class SxOpener : ArchiveFormat
|
||||
{
|
||||
public override string Tag { get { return "SXSTORAGE"; } }
|
||||
public override string Description { get { return "SakanaGL engine resource archive"; } }
|
||||
public override uint Signature { get { return 0; } }
|
||||
public override bool IsHierarchic { get { return true; } }
|
||||
public override bool CanWrite { get { return false; } }
|
||||
|
||||
const uint DefaultKey = 0x2E76034B;
|
||||
|
||||
public override ArcFile TryOpen (ArcView file)
|
||||
{
|
||||
var base_name = Path.GetFileName (file.Name);
|
||||
var sx_name = base_name.Substring (0, 4) + "(00).sx";
|
||||
sx_name = VFS.ChangeFileName (file.Name, sx_name);
|
||||
if (!VFS.FileExists (sx_name) || file.Name.Equals (sx_name, StringComparison.InvariantCultureIgnoreCase))
|
||||
return null;
|
||||
byte[] index_data;
|
||||
using (var sx = VFS.OpenView (sx_name))
|
||||
{
|
||||
if (sx.MaxOffset <= 0x10)
|
||||
return null;
|
||||
if (!sx.View.AsciiEqual (0, "SSXXDEFL"))
|
||||
return null;
|
||||
int key = Binary.BigEndian (sx.View.ReadInt32 (8));
|
||||
int length = (int)(sx.MaxOffset - 0x10);
|
||||
var index_packed = sx.View.ReadBytes (0x10, (uint)length);
|
||||
|
||||
long lkey = (long)key + length;
|
||||
lkey = key ^ (961 * lkey - 124789) ^ DefaultKey;
|
||||
uint key_lo = (uint)lkey;
|
||||
uint key_hi = (uint)(lkey >> 32) ^ 0x2E6;
|
||||
DecryptData (index_packed, key_lo, key_hi);
|
||||
|
||||
index_data = UnpackZstd (index_packed);
|
||||
}
|
||||
using (var index = new BinMemoryStream (index_data))
|
||||
{
|
||||
var reader = new SxIndexDeserializer (index, file.MaxOffset);
|
||||
var dir = reader.Deserialize();
|
||||
return new ArcFile (file, this, dir);
|
||||
}
|
||||
}
|
||||
|
||||
public override Stream OpenEntry (ArcFile arc, Entry entry)
|
||||
{
|
||||
var sx_entry = entry as SxEntry;
|
||||
if (null == sx_entry || (!sx_entry.IsEncrypted && !sx_entry.IsPacked))
|
||||
return base.OpenEntry (arc, entry);
|
||||
var input = arc.File.View.ReadBytes (entry.Offset, entry.Size);
|
||||
if (sx_entry.IsEncrypted)
|
||||
{
|
||||
uint key_lo = (uint)(entry.Offset >> 4) ^ (entry.Size << 16) ^ DefaultKey;
|
||||
uint key_hi = (entry.Size >> 16) ^ 0x2E6;
|
||||
DecryptData (input, key_lo, key_hi);
|
||||
}
|
||||
if (sx_entry.IsPacked)
|
||||
input = UnpackZstd (input);
|
||||
return new BinMemoryStream (input, entry.Name);
|
||||
}
|
||||
|
||||
internal static byte[] UnpackZstd (byte[] data)
|
||||
{
|
||||
int unpacked_size = BigEndian.ToInt32 (data, 0);
|
||||
using (var dec = new ZstdNet.Decompressor())
|
||||
{
|
||||
var packed = new ArraySegment<byte> (data, 4, data.Length - 4);
|
||||
return dec.Unwrap (packed, unpacked_size);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void DecryptData (byte[] data, uint key_lo, uint key_hi)
|
||||
{
|
||||
if (data.Length < 4)
|
||||
return;
|
||||
key_lo ^= 0x159A55E5;
|
||||
key_hi ^= 0x075BCD15;
|
||||
uint v1 = key_hi ^ (key_hi << 11) ^ ((key_hi ^ (key_hi << 11)) >> 8) ^ 0x549139A;
|
||||
uint v2 = v1 ^ key_lo ^ (key_lo << 11) ^ ((key_lo ^ (key_lo << 11) ^ (v1 >> 11)) >> 8);
|
||||
uint v3 = v2 ^ (v2 >> 19) ^ 0x8E415C26;
|
||||
uint v4 = v3 ^ (v3 >> 19) ^ 0x4D9D5BB8;
|
||||
int count = data.Length / 4;
|
||||
unsafe
|
||||
{
|
||||
fixed (byte* data_raw = data)
|
||||
{
|
||||
uint* data32 = (uint*)&data_raw[0];
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
uint t1 = v4 ^ v1 ^ (v1 << 11) ^ ((v1 ^ (v1 << 11) ^ (v4 >> 11)) >> 8);
|
||||
uint t2 = v2 ^ (v2 << 11);
|
||||
v2 = v4;
|
||||
v4 = t1 ^ t2 ^ ((t2 ^ (t1 >> 11)) >> 8);
|
||||
data32[i] ^= (t1 >> 4) ^ (v4 << 12);
|
||||
v1 = v3;
|
||||
v3 = t1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal class SxIndexDeserializer
|
||||
{
|
||||
IBinaryStream m_index;
|
||||
long m_max_offset;
|
||||
string[] m_name_list;
|
||||
List<Entry> m_dir;
|
||||
|
||||
public SxIndexDeserializer (IBinaryStream index, long max_offset)
|
||||
{
|
||||
m_index = index;
|
||||
m_max_offset = max_offset;
|
||||
}
|
||||
|
||||
public List<Entry> Deserialize ()
|
||||
{
|
||||
m_index.Position = 8;
|
||||
int count = Binary.BigEndian (m_index.ReadInt32());
|
||||
m_name_list = new string[count];
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
int length = m_index.ReadUInt8();
|
||||
m_name_list[i] = m_index.ReadCString (length, Encoding.UTF8);
|
||||
}
|
||||
|
||||
count = Binary.BigEndian (m_index.ReadInt32());
|
||||
m_dir = new List<Entry> (count);
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
m_index.ReadUInt16();
|
||||
ushort flags = Binary.BigEndian (m_index.ReadUInt16());
|
||||
uint offset = Binary.BigEndian (m_index.ReadUInt32());
|
||||
uint size = Binary.BigEndian (m_index.ReadUInt32());
|
||||
var entry = new SxEntry {
|
||||
Flags = flags,
|
||||
Offset = (long)offset << 4,
|
||||
Size = size,
|
||||
IsPacked = 0 != (flags & 0x03),
|
||||
};
|
||||
if (!entry.CheckPlacement (m_max_offset))
|
||||
return null;
|
||||
m_dir.Add (entry);
|
||||
}
|
||||
|
||||
count = Binary.BigEndian (m_index.ReadUInt16());
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
m_index.ReadUInt32();
|
||||
m_index.ReadUInt32();
|
||||
m_index.ReadUInt32();
|
||||
Binary.BigEndian (m_index.ReadUInt32()); // archive body length
|
||||
m_index.ReadUInt64();
|
||||
m_index.Seek (16, SeekOrigin.Current); // MD5 sum
|
||||
}
|
||||
|
||||
count = Binary.BigEndian (m_index.ReadUInt16());
|
||||
if (count > 0)
|
||||
m_index.Seek (count * 24, SeekOrigin.Current);
|
||||
DeserializeTree();
|
||||
return m_dir;
|
||||
}
|
||||
|
||||
void DeserializeTree (string path = "")
|
||||
{
|
||||
int count = Binary.BigEndian (m_index.ReadUInt16());
|
||||
int name_index = Binary.BigEndian (m_index.ReadInt32());
|
||||
int file_index = Binary.BigEndian (m_index.ReadInt32());
|
||||
var name = Path.Combine (path, m_name_list[name_index]);
|
||||
if (-1 == file_index)
|
||||
{
|
||||
for (int i = 0; i < count; ++i)
|
||||
{
|
||||
DeserializeTree (name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dir[file_index].Name = name;
|
||||
m_dir[file_index].Type = FormatCatalog.Instance.GetTypeFromName (name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,8 +8,8 @@
|
||||
</dependentAssembly>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /></startup></configuration>
|
||||
</configuration>
|
||||
@@ -1,27 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Concentus" version="1.1.7" targetFramework="net461" />
|
||||
<package id="Concentus.Oggfile" version="1.0.4" targetFramework="net461" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="6.0.1" targetFramework="net461" />
|
||||
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" />
|
||||
<package id="MSFTCompressionCab" version="1.0.0" targetFramework="net461" />
|
||||
<package id="NETStandard.Library" version="2.0.3" targetFramework="net461" />
|
||||
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.115.5" targetFramework="net461" />
|
||||
<package id="System.AppContext" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.Console" version="4.3.1" targetFramework="net461" />
|
||||
<package id="System.Data.SQLite.Core" version="1.0.115.5" targetFramework="net461" />
|
||||
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.Net.Http" version="4.3.4" targetFramework="net461" />
|
||||
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net461" />
|
||||
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />
|
||||
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net461" />
|
||||
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net461" />
|
||||
<package id="YaccLexTools" version="0.2.2" targetFramework="net461" />
|
||||
<package id="Concentus" version="1.1.7" targetFramework="net46" />
|
||||
<package id="Concentus.Oggfile" version="1.0.4" targetFramework="net46" />
|
||||
<package id="Microsoft.NETCore.Platforms" version="6.0.3" targetFramework="net46" />
|
||||
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net46" />
|
||||
<package id="MSFTCompressionCab" version="1.0.0" targetFramework="net46" />
|
||||
<package id="NETStandard.Library" version="2.0.3" targetFramework="net46" />
|
||||
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.115.5" targetFramework="net46" />
|
||||
<package id="System.AppContext" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.Buffers" version="4.5.1" targetFramework="net46" />
|
||||
<package id="System.Console" version="4.3.1" targetFramework="net46" />
|
||||
<package id="System.Data.SQLite.Core" version="1.0.115.5" targetFramework="net46" />
|
||||
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.IO.Compression" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.Memory" version="4.5.4" targetFramework="net46" />
|
||||
<package id="System.Net.Http" version="4.3.4" targetFramework="net46" />
|
||||
<package id="System.Net.Sockets" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net46" />
|
||||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net46" />
|
||||
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net46" />
|
||||
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net46" />
|
||||
<package id="System.Xml.ReaderWriter" version="4.3.1" targetFramework="net46" />
|
||||
<package id="YaccLexTools" version="0.2.2" targetFramework="net46" />
|
||||
<package id="ZstdNet" version="1.4.5" targetFramework="net46" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user