├── .vs
└── RDR Explorer
│ └── v14
│ └── .suo
├── LICENSE
├── RDR Explorer.sln
└── RDR Explorer
├── About.Designer.cs
├── About.cs
├── About.de.resx
├── About.resx
├── About.zh.resx
├── App.config
├── Inc
├── Compression
│ ├── BZip2
│ │ ├── BZip2.cs
│ │ ├── BZip2Constants.cs
│ │ ├── BZip2Exception.cs
│ │ ├── BZip2InputStream.cs
│ │ └── BZip2OutputStream.cs
│ ├── Checksums
│ │ ├── Adler32.cs
│ │ ├── CRC32.cs
│ │ ├── IChecksum.cs
│ │ └── StrangeCRC.cs
│ ├── Core
│ │ ├── FileSystemScanner.cs
│ │ ├── INameTransform.cs
│ │ ├── IScanFilter.cs
│ │ ├── NameFilter.cs
│ │ ├── PathFilter.cs
│ │ ├── StreamUtils.cs
│ │ └── WindowsPathUtils.cs
│ ├── Encryption
│ │ ├── PkzipClassic.cs
│ │ ├── ZipAESStream.cs
│ │ └── ZipAESTransform.cs
│ ├── GZip
│ │ ├── GZIPConstants.cs
│ │ ├── GZipException.cs
│ │ ├── GzipInputStream.cs
│ │ └── GzipOutputStream.cs
│ ├── LZX
│ │ ├── EndianStream.cs
│ │ └── LZX.cs
│ ├── Lzw
│ │ ├── LzwConstants.cs
│ │ ├── LzwException.cs
│ │ └── LzwInputStream.cs
│ ├── SharpZipBaseException.cs
│ ├── Tar
│ │ ├── InvalidHeaderException.cs
│ │ ├── TarArchive.cs
│ │ ├── TarBuffer.cs
│ │ ├── TarEntry.cs
│ │ ├── TarException.cs
│ │ ├── TarHeader.cs
│ │ ├── TarInputStream.cs
│ │ └── TarOutputStream.cs
│ ├── Zip
│ │ ├── Comp
│ │ │ ├── Deflater.cs
│ │ │ ├── DeflaterConstants.cs
│ │ │ ├── DeflaterEngine.cs
│ │ │ ├── DeflaterHuffman.cs
│ │ │ ├── DeflaterPending.cs
│ │ │ ├── Inflater.cs
│ │ │ ├── InflaterDynHeader.cs
│ │ │ ├── InflaterHuffmanTree.cs
│ │ │ ├── PendingBuffer.cs
│ │ │ └── Streams
│ │ │ │ ├── DeflaterOutputStream.cs
│ │ │ │ ├── InflaterInputStream.cs
│ │ │ │ ├── OutputWindow.cs
│ │ │ │ └── StreamManipulator.cs
│ │ ├── Compression
│ │ │ ├── Deflater.cs
│ │ │ ├── DeflaterConstants.cs
│ │ │ ├── DeflaterEngine.cs
│ │ │ ├── DeflaterHuffman.cs
│ │ │ ├── DeflaterPending.cs
│ │ │ ├── Inflater.cs
│ │ │ ├── InflaterDynHeader.cs
│ │ │ ├── InflaterHuffmanTree.cs
│ │ │ ├── PendingBuffer.cs
│ │ │ └── Streams
│ │ │ │ ├── DeflaterOutputStream.cs
│ │ │ │ ├── InflaterInputStream.cs
│ │ │ │ ├── OutputWindow.cs
│ │ │ │ └── StreamManipulator.cs
│ │ ├── FastZip.cs
│ │ ├── IEntryFactory.cs
│ │ ├── WindowsNameTransform.cs
│ │ ├── ZipConstants.cs
│ │ ├── ZipEntry.cs
│ │ ├── ZipEntryFactory.cs
│ │ ├── ZipException.cs
│ │ ├── ZipExtraData.cs
│ │ ├── ZipFile.cs
│ │ ├── ZipHelperStream.cs
│ │ ├── ZipInputStream.cs
│ │ ├── ZipNameTransform.cs
│ │ └── ZipOutputStream.cs
│ └── zlib
│ │ ├── Adler32.cs
│ │ ├── Deflate.cs
│ │ ├── InfBlocks.cs
│ │ ├── InfCodes.cs
│ │ ├── InfTree.cs
│ │ ├── Inflate.cs
│ │ ├── StaticTree.cs
│ │ ├── SupportClass.cs
│ │ ├── Tree.cs
│ │ ├── ZInputStream.cs
│ │ ├── ZOutputStream.cs
│ │ ├── ZStream.cs
│ │ ├── ZStreamException.cs
│ │ └── Zlib.cs
├── IniFile.cs
└── RageLIB
│ ├── KeyStore.cs
│ ├── KeyUtil.cs
│ ├── KeyUtilRDR.cs
│ └── RPF
│ ├── Archive.cs
│ ├── Common
│ ├── BigEndianBinaryReader.cs
│ ├── BigEndianBinaryWriter.cs
│ ├── BitsStream.cs
│ ├── DataUtil.cs
│ ├── Directory.cs
│ ├── Entry.cs
│ ├── File.cs
│ ├── Hasher.cs
│ └── fileSystemObject.cs
│ ├── RPF6
│ ├── DirectoryEntry.cs
│ ├── File.cs
│ ├── FileEntry.cs
│ ├── Header.cs
│ ├── MagicId.cs
│ ├── TOC.cs
│ └── TOCEntry.cs
│ ├── RSCTypes.cs
│ └── Version6.cs
├── KnownFilenames.txt
├── Main.Designer.cs
├── Main.cs
├── Main.de.resx
├── Main.resx
├── Main.zh.resx
├── Program.cs
├── Properties
├── AssemblyInfo.cs
├── Resources.Designer.cs
├── Resources.de.resx
├── Resources.resx
├── Resources.zh.resx
├── Settings.Designer.cs
└── Settings.settings
├── PropertiesLoader.cs
├── RDR Explorer.csproj
├── RPFviewer.Designer.cs
├── RPFviewer.cs
├── RPFviewer.de.resx
├── RPFviewer.resx
├── RPFviewer.zh.resx
├── RSCUnpacker.exe
├── Resources
├── Icon1.ico
├── icon_RPF.ico
├── red_dead_redemption_icon_by_flitskikker-d315kze (1).ico
├── shell32_1.ico
├── shell32_235.ico
└── shell32_4.ico
├── Saving.Designer.cs
├── Saving.cs
├── Saving.de.resx
├── Saving.resx
├── Saving.zh.resx
├── logo.png
├── logo_smll.png
├── obj
├── Debug
│ ├── DesignTimeResolveAssemblyReferences.cache
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── RDR Explorer.csproj.FileListAbsolute.txt
│ ├── RDR Explorer.csproj.GenerateResource.Cache
│ ├── RDR Explorer.csprojResolveAssemblyReference.cache
│ ├── RDR Explorer.exe
│ ├── RDR Explorer.pdb
│ ├── RDR_Explorer.About.de.resources
│ ├── RDR_Explorer.About.resources
│ ├── RDR_Explorer.About.zh.resources
│ ├── RDR_Explorer.Main.de.resources
│ ├── RDR_Explorer.Main.resources
│ ├── RDR_Explorer.Main.zh.resources
│ ├── RDR_Explorer.Properties.Resources.de.resources
│ ├── RDR_Explorer.Properties.Resources.resources
│ ├── RDR_Explorer.Properties.Resources.zh.resources
│ ├── RDR_Explorer.RPFviewer.de.resources
│ ├── RDR_Explorer.RPFviewer.resources
│ ├── RDR_Explorer.RPFviewer.zh.resources
│ ├── RDR_Explorer.Saving.de.resources
│ ├── RDR_Explorer.Saving.resources
│ ├── RDR_Explorer.Saving.zh.resources
│ ├── TempPE
│ │ └── Properties.Resources.Designer.cs.dll
│ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
│ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
│ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
│ ├── de
│ │ └── RDR Explorer.resources.dll
│ └── zh
│ │ └── RDR Explorer.resources.dll
└── Release
│ ├── DesignTimeResolveAssemblyReferences.cache
│ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ ├── RDR Explorer.csproj.FileListAbsolute.txt
│ ├── RDR Explorer.csproj.GenerateResource.Cache
│ ├── RDR Explorer.csprojResolveAssemblyReference.cache
│ ├── RDR Explorer.exe
│ ├── RDR Explorer.pdb
│ ├── RDR_Explorer.About.de.resources
│ ├── RDR_Explorer.About.resources
│ ├── RDR_Explorer.About.zh.resources
│ ├── RDR_Explorer.Main.de.resources
│ ├── RDR_Explorer.Main.resources
│ ├── RDR_Explorer.Main.zh.resources
│ ├── RDR_Explorer.Properties.Resources.de.resources
│ ├── RDR_Explorer.Properties.Resources.resources
│ ├── RDR_Explorer.Properties.Resources.zh.resources
│ ├── RDR_Explorer.RPFviewer.de.resources
│ ├── RDR_Explorer.RPFviewer.resources
│ ├── RDR_Explorer.RPFviewer.zh.resources
│ ├── RDR_Explorer.Saving.de.resources
│ ├── RDR_Explorer.Saving.resources
│ ├── RDR_Explorer.Saving.zh.resources
│ ├── TempPE
│ └── Properties.Resources.Designer.cs.dll
│ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
│ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
│ ├── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
│ ├── de
│ └── RDR Explorer.resources.dll
│ └── zh
│ └── RDR Explorer.resources.dll
├── red_dead_redemption_icon_by_flitskikker-d315kze (1).ico
├── xcompress.dll
└── xextool.exe
/.vs/RDR Explorer/v14/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/.vs/RDR Explorer/v14/.suo
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 reditec
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/RDR Explorer.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 14
4 | VisualStudioVersion = 14.0.23107.0
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RDR Explorer", "RDR Explorer\RDR Explorer.csproj", "{719C60A7-787E-4ED2-BABA-1C1F25FE7294}"
7 | EndProject
8 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E8E42E4F-8740-4914-B5BA-2BEF73307EAF}"
9 | EndProject
10 | Global
11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
12 | Debug|Any CPU = Debug|Any CPU
13 | Release|Any CPU = Release|Any CPU
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {719C60A7-787E-4ED2-BABA-1C1F25FE7294}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17 | {719C60A7-787E-4ED2-BABA-1C1F25FE7294}.Debug|Any CPU.Build.0 = Debug|Any CPU
18 | {719C60A7-787E-4ED2-BABA-1C1F25FE7294}.Release|Any CPU.ActiveCfg = Release|Any CPU
19 | {719C60A7-787E-4ED2-BABA-1C1F25FE7294}.Release|Any CPU.Build.0 = Release|Any CPU
20 | EndGlobalSection
21 | GlobalSection(SolutionProperties) = preSolution
22 | HideSolutionNode = FALSE
23 | EndGlobalSection
24 | EndGlobal
25 |
--------------------------------------------------------------------------------
/RDR Explorer/About.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace RDR_Explorer
2 | {
3 | partial class About
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
32 | this.label1 = new System.Windows.Forms.Label();
33 | this.label2 = new System.Windows.Forms.Label();
34 | this.textBox1 = new System.Windows.Forms.TextBox();
35 | this.pictureBox1 = new System.Windows.Forms.PictureBox();
36 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
37 | this.SuspendLayout();
38 | //
39 | // label1
40 | //
41 | resources.ApplyResources(this.label1, "label1");
42 | this.label1.Name = "label1";
43 | //
44 | // label2
45 | //
46 | resources.ApplyResources(this.label2, "label2");
47 | this.label2.Name = "label2";
48 | //
49 | // textBox1
50 | //
51 | this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
52 | resources.ApplyResources(this.textBox1, "textBox1");
53 | this.textBox1.Name = "textBox1";
54 | this.textBox1.ReadOnly = true;
55 | //
56 | // pictureBox1
57 | //
58 | resources.ApplyResources(this.pictureBox1, "pictureBox1");
59 | this.pictureBox1.Name = "pictureBox1";
60 | this.pictureBox1.TabStop = false;
61 | //
62 | // About
63 | //
64 | resources.ApplyResources(this, "$this");
65 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
66 | this.Controls.Add(this.pictureBox1);
67 | this.Controls.Add(this.textBox1);
68 | this.Controls.Add(this.label2);
69 | this.Controls.Add(this.label1);
70 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
71 | this.Name = "About";
72 | this.Load += new System.EventHandler(this.About_Load);
73 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
74 | this.ResumeLayout(false);
75 | this.PerformLayout();
76 |
77 | }
78 |
79 | #endregion
80 |
81 | private System.Windows.Forms.Label label1;
82 | private System.Windows.Forms.Label label2;
83 | private System.Windows.Forms.TextBox textBox1;
84 | private System.Windows.Forms.PictureBox pictureBox1;
85 | }
86 | }
--------------------------------------------------------------------------------
/RDR Explorer/About.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.ComponentModel;
4 | using System.Data;
5 | using System.Drawing;
6 | using System.Linq;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Forms;
10 |
11 | namespace RDR_Explorer
12 | {
13 | public partial class About : Form
14 | {
15 | public About()
16 | {
17 | InitializeComponent();
18 | }
19 |
20 | private void About_Load(object sender, EventArgs e)
21 | {
22 | textBox1.Select(0,0);
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/RDR Explorer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/BZip2/BZip2.cs:
--------------------------------------------------------------------------------
1 | // BZip2.cs
2 | //
3 | // Copyright (C) 2010 David Pierson
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | // Suppress this in CF and 1.1, not needed. Static classes introduced in C# version 2.0
37 | #if !NETCF_2_0 && !NET_1_1
38 |
39 | using System;
40 | using System.IO;
41 |
42 | namespace ICSharpCode.SharpZipLib.BZip2 {
43 |
44 | ///
45 | /// An example class to demonstrate compression and decompression of BZip2 streams.
46 | ///
47 | public static class BZip2
48 | {
49 | ///
50 | /// Decompress the input writing
51 | /// uncompressed data to the output stream
52 | ///
53 | /// The readable stream containing data to decompress.
54 | /// The output stream to receive the decompressed data.
55 | /// Both streams are closed on completion if true.
56 | public static void Decompress(Stream inStream, Stream outStream, bool isStreamOwner)
57 | {
58 | if (inStream == null || outStream == null) {
59 | throw new Exception("Null Stream");
60 | }
61 |
62 | try {
63 | using (BZip2InputStream bzipInput = new BZip2InputStream(inStream)) {
64 | bzipInput.IsStreamOwner = isStreamOwner;
65 | Core.StreamUtils.Copy(bzipInput, outStream, new byte[4096]);
66 | }
67 | } finally {
68 | if (isStreamOwner) {
69 | // inStream is closed by the BZip2InputStream if stream owner
70 | outStream.Close();
71 | }
72 | }
73 | }
74 |
75 | ///
76 | /// Compress the input stream sending
77 | /// result data to output stream
78 | ///
79 | /// The readable stream to compress.
80 | /// The output stream to receive the compressed data.
81 | /// Both streams are closed on completion if true.
82 | /// Block size acts as compression level (1 to 9) with 1 giving
83 | /// the lowest compression and 9 the highest.
84 | public static void Compress(Stream inStream, Stream outStream, bool isStreamOwner, int level)
85 | {
86 | if (inStream == null || outStream == null) {
87 | throw new Exception("Null Stream");
88 | }
89 |
90 | try {
91 | using (BZip2OutputStream bzipOutput = new BZip2OutputStream(outStream, level)) {
92 | bzipOutput.IsStreamOwner = isStreamOwner;
93 | Core.StreamUtils.Copy(inStream, bzipOutput, new byte[4096]);
94 | }
95 | } finally {
96 | if (isStreamOwner) {
97 | // outStream is closed by the BZip2OutputStream if stream owner
98 | inStream.Close();
99 | }
100 | }
101 | }
102 |
103 | }
104 | }
105 | #endif
106 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/BZip2/BZip2Exception.cs:
--------------------------------------------------------------------------------
1 | // BZip2.cs
2 | //
3 | // Copyright 2004 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | using System;
37 |
38 | #if !NETCF_1_0 && !NETCF_2_0
39 | using System.Runtime.Serialization;
40 | #endif
41 |
42 | namespace ICSharpCode.SharpZipLib.BZip2
43 | {
44 | ///
45 | /// BZip2Exception represents exceptions specific to Bzip2 algorithm
46 | ///
47 | #if !NETCF_1_0 && !NETCF_2_0
48 | [Serializable]
49 | #endif
50 | public class BZip2Exception : SharpZipBaseException
51 | {
52 |
53 | #if !NETCF_1_0 && !NETCF_2_0
54 | ///
55 | /// Deserialization constructor
56 | ///
57 | /// for this constructor
58 | /// for this constructor
59 | protected BZip2Exception(SerializationInfo info, StreamingContext context)
60 | : base(info, context)
61 |
62 | {
63 | }
64 | #endif
65 | ///
66 | /// Initialise a new instance of BZip2Exception.
67 | ///
68 | public BZip2Exception()
69 | {
70 | }
71 |
72 | ///
73 | /// Initialise a new instance of BZip2Exception with its message set to message.
74 | ///
75 | /// The message describing the error.
76 | public BZip2Exception(string message) : base(message)
77 | {
78 | }
79 |
80 | ///
81 | /// Initialise an instance of BZip2Exception
82 | ///
83 | /// A message describing the error.
84 | /// The exception that is the cause of the current exception.
85 | public BZip2Exception(string message, Exception exception)
86 | : base(message, exception)
87 | {
88 | }
89 | }
90 | }
91 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Checksums/IChecksum.cs:
--------------------------------------------------------------------------------
1 | // IChecksum.cs - Interface to compute a data checksum
2 | // Copyright (C) 2001 Mike Krueger
3 | //
4 | // This file was translated from java, it was part of the GNU Classpath
5 | // Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | // Linking this library statically or dynamically with other modules is
22 | // making a combined work based on this library. Thus, the terms and
23 | // conditions of the GNU General Public License cover the whole
24 | // combination.
25 | //
26 | // As a special exception, the copyright holders of this library give you
27 | // permission to link this library with independent modules to produce an
28 | // executable, regardless of the license terms of these independent
29 | // modules, and to copy and distribute the resulting executable under
30 | // terms of your choice, provided that you also meet, for each linked
31 | // independent module, the terms and conditions of the license of that
32 | // module. An independent module is a module which is not derived from
33 | // or based on this library. If you modify this library, you may extend
34 | // this exception to your version of the library, but you are not
35 | // obligated to do so. If you do not wish to do so, delete this
36 | // exception statement from your version.
37 |
38 | namespace ICSharpCode.SharpZipLib.Checksums
39 | {
40 |
41 | ///
42 | /// Interface to compute a data checksum used by checked input/output streams.
43 | /// A data checksum can be updated by one byte or with a byte array. After each
44 | /// update the value of the current checksum can be returned by calling
45 | /// getValue
. The complete checksum object can also be reset
46 | /// so it can be used again with new data.
47 | ///
48 | public interface IChecksum
49 | {
50 | ///
51 | /// Returns the data checksum computed so far.
52 | ///
53 | long Value
54 | {
55 | get;
56 | }
57 |
58 | ///
59 | /// Resets the data checksum as if no update was ever called.
60 | ///
61 | void Reset();
62 |
63 | ///
64 | /// Adds one byte to the data checksum.
65 | ///
66 | ///
67 | /// the data value to add. The high byte of the int is ignored.
68 | ///
69 | void Update(int value);
70 |
71 | ///
72 | /// Updates the data checksum with the bytes taken from the array.
73 | ///
74 | ///
75 | /// buffer an array of bytes
76 | ///
77 | void Update(byte[] buffer);
78 |
79 | ///
80 | /// Adds the byte array to the data checksum.
81 | ///
82 | ///
83 | /// The buffer which contains the data
84 | ///
85 | ///
86 | /// The offset in the buffer where the data starts
87 | ///
88 | ///
89 | /// the number of data bytes to add.
90 | ///
91 | void Update(byte[] buffer, int offset, int count);
92 | }
93 | }
94 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Core/INameTransform.cs:
--------------------------------------------------------------------------------
1 | // INameTransform.cs
2 | //
3 | // Copyright 2005 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | namespace ICSharpCode.SharpZipLib.Core
37 | {
38 | ///
39 | /// INameTransform defines how file system names are transformed for use with archives, or vice versa.
40 | ///
41 | public interface INameTransform
42 | {
43 | ///
44 | /// Given a file name determine the transformed value.
45 | ///
46 | /// The name to transform.
47 | /// The transformed file name.
48 | string TransformFile(string name);
49 |
50 | ///
51 | /// Given a directory name determine the transformed value.
52 | ///
53 | /// The name to transform.
54 | /// The transformed directory name
55 | string TransformDirectory(string name);
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Core/IScanFilter.cs:
--------------------------------------------------------------------------------
1 | // IScanFilter.cs
2 | //
3 | // Copyright 2006 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | namespace ICSharpCode.SharpZipLib.Core
37 | {
38 | ///
39 | /// Scanning filters support filtering of names.
40 | ///
41 | public interface IScanFilter
42 | {
43 | ///
44 | /// Test a name to see if it 'matches' the filter.
45 | ///
46 | /// The name to test.
47 | /// Returns true if the name matches the filter, false if it does not match.
48 | bool IsMatch(string name);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Core/WindowsPathUtils.cs:
--------------------------------------------------------------------------------
1 | // WindowsPathUtils.cs
2 | //
3 | // Copyright 2007 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | namespace ICSharpCode.SharpZipLib.Core
37 | {
38 | ///
39 | /// WindowsPathUtils provides simple utilities for handling windows paths.
40 | ///
41 | public abstract class WindowsPathUtils
42 | {
43 | ///
44 | /// Initializes a new instance of the class.
45 | ///
46 | internal WindowsPathUtils()
47 | {
48 | }
49 |
50 | ///
51 | /// Remove any path root present in the path
52 | ///
53 | /// A containing path information.
54 | /// The path with the root removed if it was present; path otherwise.
55 | /// Unlike the class the path isnt otherwise checked for validity.
56 | public static string DropPathRoot(string path)
57 | {
58 | string result = path;
59 |
60 | if ( (path != null) && (path.Length > 0) ) {
61 | if ((path[0] == '\\') || (path[0] == '/')) {
62 | // UNC name ?
63 | if ((path.Length > 1) && ((path[1] == '\\') || (path[1] == '/'))) {
64 | int index = 2;
65 | int elements = 2;
66 |
67 | // Scan for two separate elements \\machine\share\restofpath
68 | while ((index <= path.Length) &&
69 | (((path[index] != '\\') && (path[index] != '/')) || (--elements > 0))) {
70 | index++;
71 | }
72 |
73 | index++;
74 |
75 | if (index < path.Length) {
76 | result = path.Substring(index);
77 | }
78 | else {
79 | result = "";
80 | }
81 | }
82 | }
83 | else if ((path.Length > 1) && (path[1] == ':')) {
84 | int dropCount = 2;
85 | if ((path.Length > 2) && ((path[2] == '\\') || (path[2] == '/'))) {
86 | dropCount = 3;
87 | }
88 | result = result.Remove(0, dropCount);
89 | }
90 | }
91 | return result;
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Encryption/ZipAESStream.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ZipAESStream.cs
3 | //
4 | // Copyright 2009 David Pierson
5 | //
6 | // This program is free software; you can redistribute it and/or
7 | // modify it under the terms of the GNU General Public License
8 | // as published by the Free Software Foundation; either version 2
9 | // of the License, or (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program; if not, write to the Free Software
18 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 | //
20 | // Linking this library statically or dynamically with other modules is
21 | // making a combined work based on this library. Thus, the terms and
22 | // conditions of the GNU General Public License cover the whole
23 | // combination.
24 | //
25 | // As a special exception, the copyright holders of this library give you
26 | // permission to link this library with independent modules to produce an
27 | // executable, regardless of the license terms of these independent
28 | // modules, and to copy and distribute the resulting executable under
29 | // terms of your choice, provided that you also meet, for each linked
30 | // independent module, the terms and conditions of the license of that
31 | // module. An independent module is a module which is not derived from
32 | // or based on this library. If you modify this library, you may extend
33 | // this exception to your version of the library, but you are not
34 | // obligated to do so. If you do not wish to do so, delete this
35 | // exception statement from your version.
36 | //
37 |
38 | #if !NET_1_1 && !NETCF_2_0
39 |
40 | using System;
41 | using System.IO;
42 | using System.Security.Cryptography;
43 |
44 | namespace ICSharpCode.SharpZipLib.Encryption {
45 |
46 | // Based on information from http://www.winzip.com/aes_info.htm
47 | // and http://www.gladman.me.uk/cryptography_technology/fileencrypt/
48 |
49 | ///
50 | /// Encrypts and decrypts AES ZIP
51 | ///
52 | internal class ZipAESStream : CryptoStream {
53 |
54 | ///
55 | /// Constructor
56 | ///
57 | /// The stream on which to perform the cryptographic transformation.
58 | /// Instance of ZipAESTransform
59 | /// Read or Write
60 | public ZipAESStream(Stream stream, ZipAESTransform transform, CryptoStreamMode mode)
61 | : base(stream, transform, mode) {
62 |
63 | _stream = stream;
64 | _transform = transform;
65 | _slideBuffer = new byte[1024];
66 |
67 | _blockAndAuth = CRYPTO_BLOCK_SIZE + AUTH_CODE_LENGTH;
68 |
69 | // mode:
70 | // CryptoStreamMode.Read means we read from "stream" and pass decrypted to our Read() method.
71 | // Write bypasses this stream and uses the Transform directly.
72 | if (mode != CryptoStreamMode.Read) {
73 | throw new Exception("ZipAESStream only for read");
74 | }
75 | }
76 |
77 | // The final n bytes of the AES stream contain the Auth Code.
78 | private const int AUTH_CODE_LENGTH = 10;
79 |
80 | private Stream _stream;
81 | private ZipAESTransform _transform;
82 | private byte[] _slideBuffer;
83 | private int _slideBufStartPos;
84 | private int _slideBufFreePos;
85 | // Blocksize is always 16 here, even for AES-256 which has transform.InputBlockSize of 32.
86 | private const int CRYPTO_BLOCK_SIZE = 16;
87 | private int _blockAndAuth;
88 |
89 | ///
90 | /// Reads a sequence of bytes from the current CryptoStream into buffer,
91 | /// and advances the position within the stream by the number of bytes read.
92 | ///
93 | public override int Read(byte[] outBuffer, int offset, int count) {
94 | int nBytes = 0;
95 | while (nBytes < count) {
96 | // Calculate buffer quantities vs read-ahead size, and check for sufficient free space
97 | int byteCount = _slideBufFreePos - _slideBufStartPos;
98 |
99 | // Need to handle final block and Auth Code specially, but don't know total data length.
100 | // Maintain a read-ahead equal to the length of (crypto block + Auth Code).
101 | // When that runs out we can detect these final sections.
102 | int lengthToRead = _blockAndAuth - byteCount;
103 | if (_slideBuffer.Length - _slideBufFreePos < lengthToRead) {
104 | // Shift the data to the beginning of the buffer
105 | int iTo = 0;
106 | for (int iFrom = _slideBufStartPos; iFrom < _slideBufFreePos; iFrom++, iTo++) {
107 | _slideBuffer[iTo] = _slideBuffer[iFrom];
108 | }
109 | _slideBufFreePos -= _slideBufStartPos; // Note the -=
110 | _slideBufStartPos = 0;
111 | }
112 | int obtained = _stream.Read(_slideBuffer, _slideBufFreePos, lengthToRead);
113 | _slideBufFreePos += obtained;
114 |
115 | // Recalculate how much data we now have
116 | byteCount = _slideBufFreePos - _slideBufStartPos;
117 | if (byteCount >= _blockAndAuth) {
118 | // At least a 16 byte block and an auth code remains.
119 | _transform.TransformBlock(_slideBuffer,
120 | _slideBufStartPos,
121 | CRYPTO_BLOCK_SIZE,
122 | outBuffer,
123 | offset);
124 | nBytes += CRYPTO_BLOCK_SIZE;
125 | offset += CRYPTO_BLOCK_SIZE;
126 | _slideBufStartPos += CRYPTO_BLOCK_SIZE;
127 | } else {
128 | // Last round.
129 | if (byteCount > AUTH_CODE_LENGTH) {
130 | // At least one byte of data plus auth code
131 | int finalBlock = byteCount - AUTH_CODE_LENGTH;
132 | _transform.TransformBlock(_slideBuffer,
133 | _slideBufStartPos,
134 | finalBlock,
135 | outBuffer,
136 | offset);
137 |
138 | nBytes += finalBlock;
139 | _slideBufStartPos += finalBlock;
140 | }
141 | else if (byteCount < AUTH_CODE_LENGTH)
142 | throw new Exception("Internal error missed auth code"); // Coding bug
143 | // Final block done. Check Auth code.
144 | byte[] calcAuthCode = _transform.GetAuthCode();
145 | for (int i = 0; i < AUTH_CODE_LENGTH; i++) {
146 | if (calcAuthCode[i] != _slideBuffer[_slideBufStartPos + i]) {
147 | throw new Exception("AES Authentication Code does not match. This is a super-CRC check on the data in the file after compression and encryption. \r\n"
148 | + "The file may be damaged.");
149 | }
150 | }
151 |
152 | break; // Reached the auth code
153 | }
154 | }
155 | return nBytes;
156 | }
157 |
158 | ///
159 | /// Writes a sequence of bytes to the current stream and advances the current position within this stream by the number of bytes written.
160 | ///
161 | /// An array of bytes. This method copies count bytes from buffer to the current stream.
162 | /// The byte offset in buffer at which to begin copying bytes to the current stream.
163 | /// The number of bytes to be written to the current stream.
164 | public override void Write(byte[] buffer, int offset, int count) {
165 | // ZipAESStream is used for reading but not for writing. Writing uses the ZipAESTransform directly.
166 | throw new NotImplementedException();
167 | }
168 | }
169 | }
170 | #endif
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/GZip/GZIPConstants.cs:
--------------------------------------------------------------------------------
1 | // GZipConstants.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | //
5 | // This file was translated from java, it was part of the GNU Classpath
6 | // Copyright (C) 2001 Free Software Foundation, Inc.
7 | //
8 | // This program is free software; you can redistribute it and/or
9 | // modify it under the terms of the GNU General Public License
10 | // as published by the Free Software Foundation; either version 2
11 | // of the License, or (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program; if not, write to the Free Software
20 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 | //
22 | // Linking this library statically or dynamically with other modules is
23 | // making a combined work based on this library. Thus, the terms and
24 | // conditions of the GNU General Public License cover the whole
25 | // combination.
26 | //
27 | // As a special exception, the copyright holders of this library give you
28 | // permission to link this library with independent modules to produce an
29 | // executable, regardless of the license terms of these independent
30 | // modules, and to copy and distribute the resulting executable under
31 | // terms of your choice, provided that you also meet, for each linked
32 | // independent module, the terms and conditions of the license of that
33 | // module. An independent module is a module which is not derived from
34 | // or based on this library. If you modify this library, you may extend
35 | // this exception to your version of the library, but you are not
36 | // obligated to do so. If you do not wish to do so, delete this
37 | // exception statement from your version.
38 |
39 | namespace ICSharpCode.SharpZipLib.GZip
40 | {
41 |
42 | ///
43 | /// This class contains constants used for gzip.
44 | ///
45 | sealed public class GZipConstants
46 | {
47 | ///
48 | /// Magic number found at start of GZIP header
49 | ///
50 | public const int GZIP_MAGIC = 0x1F8B;
51 |
52 | /* The flag byte is divided into individual bits as follows:
53 |
54 | bit 0 FTEXT
55 | bit 1 FHCRC
56 | bit 2 FEXTRA
57 | bit 3 FNAME
58 | bit 4 FCOMMENT
59 | bit 5 reserved
60 | bit 6 reserved
61 | bit 7 reserved
62 | */
63 |
64 | ///
65 | /// Flag bit mask for text
66 | ///
67 | public const int FTEXT = 0x1;
68 |
69 | ///
70 | /// Flag bitmask for Crc
71 | ///
72 | public const int FHCRC = 0x2;
73 |
74 | ///
75 | /// Flag bit mask for extra
76 | ///
77 | public const int FEXTRA = 0x4;
78 |
79 | ///
80 | /// flag bitmask for name
81 | ///
82 | public const int FNAME = 0x8;
83 |
84 | ///
85 | /// flag bit mask indicating comment is present
86 | ///
87 | public const int FCOMMENT = 0x10;
88 |
89 | ///
90 | /// Initialise default instance.
91 | ///
92 | /// Constructor is private to prevent instances being created.
93 | GZipConstants()
94 | {
95 | }
96 | }
97 | }
98 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/GZip/GZipException.cs:
--------------------------------------------------------------------------------
1 | // GZipException.cs
2 | //
3 | // Copyright 2004 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | using System;
37 |
38 | #if !NETCF_1_0 && !NETCF_2_0
39 | using System.Runtime.Serialization;
40 | #endif
41 |
42 | namespace ICSharpCode.SharpZipLib.GZip
43 | {
44 | ///
45 | /// GZipException represents a Gzip specific exception
46 | ///
47 | #if !NETCF_1_0 && !NETCF_2_0
48 | [Serializable]
49 | #endif
50 | public class GZipException : SharpZipBaseException
51 | {
52 | #if !NETCF_1_0 && !NETCF_2_0
53 | ///
54 | /// Deserialization constructor
55 | ///
56 | /// for this constructor
57 | /// for this constructor
58 | protected GZipException(SerializationInfo info, StreamingContext context)
59 | : base(info, context)
60 |
61 | {
62 | }
63 | #endif
64 |
65 | ///
66 | /// Initialise a new instance of GZipException
67 | ///
68 | public GZipException()
69 | {
70 | }
71 |
72 | ///
73 | /// Initialise a new instance of GZipException with its message string.
74 | ///
75 | /// A that describes the error.
76 | public GZipException(string message)
77 | : base(message)
78 | {
79 | }
80 |
81 | ///
82 | /// Initialise a new instance of .
83 | ///
84 | /// A that describes the error.
85 | /// The that caused this exception.
86 | public GZipException(string message, Exception innerException)
87 | : base (message, innerException)
88 | {
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Lzw/LzwConstants.cs:
--------------------------------------------------------------------------------
1 | // LzwConstants.cs
2 | //
3 | // Copyright (C) 2009 Gabriel Burca
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | namespace ICSharpCode.SharpZipLib.LZW {
37 |
38 | ///
39 | /// This class contains constants used for LZW
40 | ///
41 | sealed public class LzwConstants {
42 | ///
43 | /// Magic number found at start of LZW header: 0x1f 0x9d
44 | ///
45 | public const int MAGIC = 0x1f9d;
46 |
47 | ///
48 | /// Maximum number of bits per code
49 | ///
50 | public const int MAX_BITS = 16;
51 |
52 | /* 3rd header byte:
53 | * bit 0..4 Number of compression bits
54 | * bit 5 Extended header
55 | * bit 6 Free
56 | * bit 7 Block mode
57 | */
58 |
59 | ///
60 | /// Mask for 'number of compression bits'
61 | ///
62 | public const int BIT_MASK = 0x1f;
63 |
64 | ///
65 | /// Indicates the presence of a fourth header byte
66 | ///
67 | public const int EXTENDED_MASK = 0x20;
68 | //public const int FREE_MASK = 0x40;
69 |
70 | ///
71 | /// Reserved bits
72 | ///
73 | public const int RESERVED_MASK = 0x60;
74 |
75 | ///
76 | /// Block compression: if table is full and compression rate is dropping,
77 | /// clear the dictionary.
78 | ///
79 | public const int BLOCK_MODE_MASK = 0x80;
80 |
81 | ///
82 | /// LZW file header size (in bytes)
83 | ///
84 | public const int HDR_SIZE = 3;
85 |
86 | ///
87 | /// Initial number of bits per code
88 | ///
89 | public const int INIT_BITS = 9;
90 |
91 | LzwConstants() {
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Lzw/LzwException.cs:
--------------------------------------------------------------------------------
1 | // LzwException.cs
2 | //
3 | // Copyright (C) 2009 Gabriel Burca
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | using System;
37 |
38 | #if !NETCF_1_0 && !NETCF_2_0
39 | using System.Runtime.Serialization;
40 | #endif
41 |
42 | namespace ICSharpCode.SharpZipLib.LZW
43 | {
44 |
45 | ///
46 | /// LzwException represents a LZW specific exception
47 | ///
48 | #if !NETCF_1_0 && !NETCF_2_0
49 | [Serializable]
50 | #endif
51 | public class LzwException : SharpZipBaseException
52 | {
53 |
54 | #if !NETCF_1_0 && !NETCF_2_0
55 | ///
56 | /// Deserialization constructor
57 | ///
58 | /// for this constructor
59 | /// for this constructor
60 | protected LzwException(SerializationInfo info, StreamingContext context)
61 | : base(info, context) {
62 | }
63 | #endif
64 |
65 | ///
66 | /// Initialise a new instance of LzwException
67 | ///
68 | public LzwException() {
69 | }
70 |
71 | ///
72 | /// Initialise a new instance of LzwException with its message string.
73 | ///
74 | /// A that describes the error.
75 | public LzwException(string message)
76 | : base(message) {
77 | }
78 |
79 | ///
80 | /// Initialise a new instance of .
81 | ///
82 | /// A that describes the error.
83 | /// The that caused this exception.
84 | public LzwException(string message, Exception innerException)
85 | : base(message, innerException) {
86 | }
87 | }
88 | }
89 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/SharpZipBaseException.cs:
--------------------------------------------------------------------------------
1 | // SharpZipBaseException.cs
2 | //
3 | // Copyright 2004 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | using System;
37 |
38 | #if !NETCF_1_0 && !NETCF_2_0
39 | using System.Runtime.Serialization;
40 | #endif
41 |
42 | namespace ICSharpCode.SharpZipLib
43 | {
44 | ///
45 | /// SharpZipBaseException is the base exception class for the SharpZipLibrary.
46 | /// All library exceptions are derived from this.
47 | ///
48 | /// NOTE: Not all exceptions thrown will be derived from this class.
49 | /// A variety of other exceptions are possible for example
50 | #if !NETCF_1_0 && !NETCF_2_0
51 | [Serializable]
52 | #endif
53 | public class SharpZipBaseException : ApplicationException
54 | {
55 | #if !NETCF_1_0 && !NETCF_2_0
56 | ///
57 | /// Deserialization constructor
58 | ///
59 | /// for this constructor
60 | /// for this constructor
61 | protected SharpZipBaseException(SerializationInfo info, StreamingContext context )
62 | : base( info, context )
63 | {
64 | }
65 | #endif
66 |
67 | ///
68 | /// Initializes a new instance of the SharpZipBaseException class.
69 | ///
70 | public SharpZipBaseException()
71 | {
72 | }
73 |
74 | ///
75 | /// Initializes a new instance of the SharpZipBaseException class with a specified error message.
76 | ///
77 | /// A message describing the exception.
78 | public SharpZipBaseException(string message)
79 | : base(message)
80 | {
81 | }
82 |
83 | ///
84 | /// Initializes a new instance of the SharpZipBaseException class with a specified
85 | /// error message and a reference to the inner exception that is the cause of this exception.
86 | ///
87 | /// A message describing the exception.
88 | /// The inner exception
89 | public SharpZipBaseException(string message, Exception innerException)
90 | : base(message, innerException)
91 | {
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Tar/InvalidHeaderException.cs:
--------------------------------------------------------------------------------
1 | // InvalidHeaderException.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | using System;
37 |
38 | #if !NETCF_1_0 && !NETCF_2_0
39 | using System.Runtime.Serialization;
40 | #endif
41 |
42 | namespace ICSharpCode.SharpZipLib.Tar {
43 |
44 | ///
45 | /// This exception is used to indicate that there is a problem
46 | /// with a TAR archive header.
47 | ///
48 | #if !NETCF_1_0 && !NETCF_2_0
49 | [Serializable]
50 | #endif
51 | public class InvalidHeaderException : TarException
52 | {
53 |
54 | #if !NETCF_1_0 && !NETCF_2_0
55 | ///
56 | /// Deserialization constructor
57 | ///
58 | /// for this constructor
59 | /// for this constructor
60 | protected InvalidHeaderException(SerializationInfo information, StreamingContext context)
61 | : base(information, context)
62 |
63 | {
64 | }
65 | #endif
66 |
67 | ///
68 | /// Initialise a new instance of the InvalidHeaderException class.
69 | ///
70 | public InvalidHeaderException()
71 | {
72 | }
73 |
74 | ///
75 | /// Initialises a new instance of the InvalidHeaderException class with a specified message.
76 | ///
77 | /// Message describing the exception cause.
78 | public InvalidHeaderException(string message)
79 | : base(message)
80 | {
81 | }
82 |
83 | ///
84 | /// Initialise a new instance of InvalidHeaderException
85 | ///
86 | /// Message describing the problem.
87 | /// The exception that is the cause of the current exception.
88 | public InvalidHeaderException(string message, Exception exception)
89 | : base(message, exception)
90 | {
91 | }
92 | }
93 | }
94 |
95 | /* The original Java file had this header:
96 | ** Authored by Timothy Gerard Endres
97 | **
98 | **
99 | ** This work has been placed into the public domain.
100 | ** You may use this work in any way and for any purpose you wish.
101 | **
102 | ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
103 | ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
104 | ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
105 | ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
106 | ** REDISTRIBUTION OF THIS SOFTWARE.
107 | **
108 | */
109 |
110 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Tar/TarException.cs:
--------------------------------------------------------------------------------
1 | // TarException.cs
2 | //
3 | // Copyright 2004 John Reilly
4 | //
5 | // This program is free software; you can redistribute it and/or
6 | // modify it under the terms of the GNU General Public License
7 | // as published by the Free Software Foundation; either version 2
8 | // of the License, or (at your option) any later version.
9 | //
10 | // This program is distributed in the hope that it will be useful,
11 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 | // GNU General Public License for more details.
14 | //
15 | // You should have received a copy of the GNU General Public License
16 | // along with this program; if not, write to the Free Software
17 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 | //
19 | // Linking this library statically or dynamically with other modules is
20 | // making a combined work based on this library. Thus, the terms and
21 | // conditions of the GNU General Public License cover the whole
22 | // combination.
23 | //
24 | // As a special exception, the copyright holders of this library give you
25 | // permission to link this library with independent modules to produce an
26 | // executable, regardless of the license terms of these independent
27 | // modules, and to copy and distribute the resulting executable under
28 | // terms of your choice, provided that you also meet, for each linked
29 | // independent module, the terms and conditions of the license of that
30 | // module. An independent module is a module which is not derived from
31 | // or based on this library. If you modify this library, you may extend
32 | // this exception to your version of the library, but you are not
33 | // obligated to do so. If you do not wish to do so, delete this
34 | // exception statement from your version.
35 |
36 | using System;
37 |
38 | #if !NETCF_1_0 && !NETCF_2_0
39 | using System.Runtime.Serialization;
40 | #endif
41 |
42 | namespace ICSharpCode.SharpZipLib.Tar {
43 |
44 | ///
45 | /// TarExceptions are used for exceptions specific to tar classes and code.
46 | ///
47 | #if !NETCF_1_0 && !NETCF_2_0
48 | [Serializable]
49 | #endif
50 | public class TarException : SharpZipBaseException
51 | {
52 | #if !NETCF_1_0 && !NETCF_2_0
53 | ///
54 | /// Deserialization constructor
55 | ///
56 | /// for this constructor
57 | /// for this constructor
58 | protected TarException(SerializationInfo info, StreamingContext context)
59 | : base(info, context)
60 |
61 | {
62 | }
63 | #endif
64 |
65 | ///
66 | /// Initialises a new instance of the TarException class.
67 | ///
68 | public TarException()
69 | {
70 | }
71 |
72 | ///
73 | /// Initialises a new instance of the TarException class with a specified message.
74 | ///
75 | /// The message that describes the error.
76 | public TarException(string message)
77 | : base(message)
78 | {
79 | }
80 |
81 | ///
82 | ///
83 | ///
84 | /// A message describing the error.
85 | /// The exception that is the cause of the current exception.
86 | public TarException(string message, Exception exception)
87 | : base(message, exception)
88 | {
89 | }
90 | }
91 | }
92 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/Comp/DeflaterConstants.cs:
--------------------------------------------------------------------------------
1 | // DeflaterConstants.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | // Copyright (C) 2004 John Reilly
5 | //
6 | // This file was translated from java, it was part of the GNU Classpath
7 | // Copyright (C) 2001 Free Software Foundation, Inc.
8 | //
9 | // This program is free software; you can redistribute it and/or
10 | // modify it under the terms of the GNU General Public License
11 | // as published by the Free Software Foundation; either version 2
12 | // of the License, or (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program; if not, write to the Free Software
21 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 | //
23 | // Linking this library statically or dynamically with other modules is
24 | // making a combined work based on this library. Thus, the terms and
25 | // conditions of the GNU General Public License cover the whole
26 | // combination.
27 | //
28 | // As a special exception, the copyright holders of this library give you
29 | // permission to link this library with independent modules to produce an
30 | // executable, regardless of the license terms of these independent
31 | // modules, and to copy and distribute the resulting executable under
32 | // terms of your choice, provided that you also meet, for each linked
33 | // independent module, the terms and conditions of the license of that
34 | // module. An independent module is a module which is not derived from
35 | // or based on this library. If you modify this library, you may extend
36 | // this exception to your version of the library, but you are not
37 | // obligated to do so. If you do not wish to do so, delete this
38 | // exception statement from your version.
39 |
40 | using System;
41 |
42 | namespace ICSharpCode.SharpZipLib.Zip.Compression
43 | {
44 |
45 | ///
46 | /// This class contains constants used for deflation.
47 | ///
48 | public class DeflaterConstants
49 | {
50 | ///
51 | /// Set to true to enable debugging
52 | ///
53 | public const bool DEBUGGING = false;
54 |
55 | ///
56 | /// Written to Zip file to identify a stored block
57 | ///
58 | public const int STORED_BLOCK = 0;
59 |
60 | ///
61 | /// Identifies static tree in Zip file
62 | ///
63 | public const int STATIC_TREES = 1;
64 |
65 | ///
66 | /// Identifies dynamic tree in Zip file
67 | ///
68 | public const int DYN_TREES = 2;
69 |
70 | ///
71 | /// Header flag indicating a preset dictionary for deflation
72 | ///
73 | public const int PRESET_DICT = 0x20;
74 |
75 | ///
76 | /// Sets internal buffer sizes for Huffman encoding
77 | ///
78 | public const int DEFAULT_MEM_LEVEL = 8;
79 |
80 | ///
81 | /// Internal compression engine constant
82 | ///
83 | public const int MAX_MATCH = 258;
84 |
85 | ///
86 | /// Internal compression engine constant
87 | ///
88 | public const int MIN_MATCH = 3;
89 |
90 | ///
91 | /// Internal compression engine constant
92 | ///
93 | public const int MAX_WBITS = 15;
94 |
95 | ///
96 | /// Internal compression engine constant
97 | ///
98 | public const int WSIZE = 1 << MAX_WBITS;
99 |
100 | ///
101 | /// Internal compression engine constant
102 | ///
103 | public const int WMASK = WSIZE - 1;
104 |
105 | ///
106 | /// Internal compression engine constant
107 | ///
108 | public const int HASH_BITS = DEFAULT_MEM_LEVEL + 7;
109 |
110 | ///
111 | /// Internal compression engine constant
112 | ///
113 | public const int HASH_SIZE = 1 << HASH_BITS;
114 |
115 | ///
116 | /// Internal compression engine constant
117 | ///
118 | public const int HASH_MASK = HASH_SIZE - 1;
119 |
120 | ///
121 | /// Internal compression engine constant
122 | ///
123 | public const int HASH_SHIFT = (HASH_BITS + MIN_MATCH - 1) / MIN_MATCH;
124 |
125 | ///
126 | /// Internal compression engine constant
127 | ///
128 | public const int MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
129 |
130 | ///
131 | /// Internal compression engine constant
132 | ///
133 | public const int MAX_DIST = WSIZE - MIN_LOOKAHEAD;
134 |
135 | ///
136 | /// Internal compression engine constant
137 | ///
138 | public const int PENDING_BUF_SIZE = 1 << (DEFAULT_MEM_LEVEL + 8);
139 |
140 | ///
141 | /// Internal compression engine constant
142 | ///
143 | public static int MAX_BLOCK_SIZE = Math.Min(65535, PENDING_BUF_SIZE - 5);
144 |
145 | ///
146 | /// Internal compression engine constant
147 | ///
148 | public const int DEFLATE_STORED = 0;
149 |
150 | ///
151 | /// Internal compression engine constant
152 | ///
153 | public const int DEFLATE_FAST = 1;
154 |
155 | ///
156 | /// Internal compression engine constant
157 | ///
158 | public const int DEFLATE_SLOW = 2;
159 |
160 | ///
161 | /// Internal compression engine constant
162 | ///
163 | public static int[] GOOD_LENGTH = { 0, 4, 4, 4, 4, 8, 8, 8, 32, 32 };
164 |
165 | ///
166 | /// Internal compression engine constant
167 | ///
168 | public static int[] MAX_LAZY = { 0, 4, 5, 6, 4, 16, 16, 32, 128, 258 };
169 |
170 | ///
171 | /// Internal compression engine constant
172 | ///
173 | public static int[] NICE_LENGTH = { 0, 8, 16, 32, 16, 32, 128, 128, 258, 258 };
174 |
175 | ///
176 | /// Internal compression engine constant
177 | ///
178 | public static int[] MAX_CHAIN = { 0, 4, 8, 32, 16, 32, 128, 256, 1024, 4096 };
179 |
180 | ///
181 | /// Internal compression engine constant
182 | ///
183 | public static int[] COMPR_FUNC = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2 };
184 |
185 | }
186 | }
187 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/Comp/DeflaterPending.cs:
--------------------------------------------------------------------------------
1 | // DeflaterPending.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | // Copyright (C) 2004 John Reilly
5 | //
6 | // This file was translated from java, it was part of the GNU Classpath
7 | // Copyright (C) 2001 Free Software Foundation, Inc.
8 | //
9 | // This program is free software; you can redistribute it and/or
10 | // modify it under the terms of the GNU General Public License
11 | // as published by the Free Software Foundation; either version 2
12 | // of the License, or (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program; if not, write to the Free Software
21 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 | //
23 | // Linking this library statically or dynamically with other modules is
24 | // making a combined work based on this library. Thus, the terms and
25 | // conditions of the GNU General Public License cover the whole
26 | // combination.
27 | //
28 | // As a special exception, the copyright holders of this library give you
29 | // permission to link this library with independent modules to produce an
30 | // executable, regardless of the license terms of these independent
31 | // modules, and to copy and distribute the resulting executable under
32 | // terms of your choice, provided that you also meet, for each linked
33 | // independent module, the terms and conditions of the license of that
34 | // module. An independent module is a module which is not derived from
35 | // or based on this library. If you modify this library, you may extend
36 | // this exception to your version of the library, but you are not
37 | // obligated to do so. If you do not wish to do so, delete this
38 | // exception statement from your version.
39 |
40 | namespace ICSharpCode.SharpZipLib.Zip.Compression
41 | {
42 |
43 | ///
44 | /// This class stores the pending output of the Deflater.
45 | ///
46 | /// author of the original java version : Jochen Hoenicke
47 | ///
48 | public class DeflaterPending : PendingBuffer
49 | {
50 | ///
51 | /// Construct instance with default buffer size
52 | ///
53 | public DeflaterPending() : base(DeflaterConstants.PENDING_BUF_SIZE)
54 | {
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/Comp/InflaterDynHeader.cs:
--------------------------------------------------------------------------------
1 | // InflaterDynHeader.cs
2 | // Copyright (C) 2001 Mike Krueger
3 | //
4 | // This file was translated from java, it was part of the GNU Classpath
5 | // Copyright (C) 2001 Free Software Foundation, Inc.
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | // Linking this library statically or dynamically with other modules is
22 | // making a combined work based on this library. Thus, the terms and
23 | // conditions of the GNU General Public License cover the whole
24 | // combination.
25 | //
26 | // As a special exception, the copyright holders of this library give you
27 | // permission to link this library with independent modules to produce an
28 | // executable, regardless of the license terms of these independent
29 | // modules, and to copy and distribute the resulting executable under
30 | // terms of your choice, provided that you also meet, for each linked
31 | // independent module, the terms and conditions of the license of that
32 | // module. An independent module is a module which is not derived from
33 | // or based on this library. If you modify this library, you may extend
34 | // this exception to your version of the library, but you are not
35 | // obligated to do so. If you do not wish to do so, delete this
36 | // exception statement from your version.
37 |
38 | using System;
39 |
40 | using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
41 |
42 | namespace ICSharpCode.SharpZipLib.Zip.Compression
43 | {
44 |
45 | class InflaterDynHeader
46 | {
47 | #region Constants
48 | const int LNUM = 0;
49 | const int DNUM = 1;
50 | const int BLNUM = 2;
51 | const int BLLENS = 3;
52 | const int LENS = 4;
53 | const int REPS = 5;
54 |
55 | static readonly int[] repMin = { 3, 3, 11 };
56 | static readonly int[] repBits = { 2, 3, 7 };
57 |
58 | static readonly int[] BL_ORDER =
59 | { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
60 |
61 | #endregion
62 |
63 | #region Constructors
64 | public InflaterDynHeader()
65 | {
66 | }
67 | #endregion
68 |
69 | public bool Decode(StreamManipulator input)
70 | {
71 | decode_loop:
72 | for (;;) {
73 | switch (mode) {
74 | case LNUM:
75 | lnum = input.PeekBits(5);
76 | if (lnum < 0) {
77 | return false;
78 | }
79 | lnum += 257;
80 | input.DropBits(5);
81 | // System.err.println("LNUM: "+lnum);
82 | mode = DNUM;
83 | goto case DNUM; // fall through
84 | case DNUM:
85 | dnum = input.PeekBits(5);
86 | if (dnum < 0) {
87 | return false;
88 | }
89 | dnum++;
90 | input.DropBits(5);
91 | // System.err.println("DNUM: "+dnum);
92 | num = lnum+dnum;
93 | litdistLens = new byte[num];
94 | mode = BLNUM;
95 | goto case BLNUM; // fall through
96 | case BLNUM:
97 | blnum = input.PeekBits(4);
98 | if (blnum < 0) {
99 | return false;
100 | }
101 | blnum += 4;
102 | input.DropBits(4);
103 | blLens = new byte[19];
104 | ptr = 0;
105 | // System.err.println("BLNUM: "+blnum);
106 | mode = BLLENS;
107 | goto case BLLENS; // fall through
108 | case BLLENS:
109 | while (ptr < blnum) {
110 | int len = input.PeekBits(3);
111 | if (len < 0) {
112 | return false;
113 | }
114 | input.DropBits(3);
115 | // System.err.println("blLens["+BL_ORDER[ptr]+"]: "+len);
116 | blLens[BL_ORDER[ptr]] = (byte) len;
117 | ptr++;
118 | }
119 | blTree = new InflaterHuffmanTree(blLens);
120 | blLens = null;
121 | ptr = 0;
122 | mode = LENS;
123 | goto case LENS; // fall through
124 | case LENS:
125 | {
126 | int symbol;
127 | while (((symbol = blTree.GetSymbol(input)) & ~15) == 0) {
128 | /* Normal case: symbol in [0..15] */
129 |
130 | // System.err.println("litdistLens["+ptr+"]: "+symbol);
131 | litdistLens[ptr++] = lastLen = (byte)symbol;
132 |
133 | if (ptr == num) {
134 | /* Finished */
135 | return true;
136 | }
137 | }
138 |
139 | /* need more input ? */
140 | if (symbol < 0) {
141 | return false;
142 | }
143 |
144 | /* otherwise repeat code */
145 | if (symbol >= 17) {
146 | /* repeat zero */
147 | // System.err.println("repeating zero");
148 | lastLen = 0;
149 | } else {
150 | if (ptr == 0) {
151 | throw new SharpZipBaseException();
152 | }
153 | }
154 | repSymbol = symbol-16;
155 | }
156 | mode = REPS;
157 | goto case REPS; // fall through
158 | case REPS:
159 | {
160 | int bits = repBits[repSymbol];
161 | int count = input.PeekBits(bits);
162 | if (count < 0) {
163 | return false;
164 | }
165 | input.DropBits(bits);
166 | count += repMin[repSymbol];
167 | // System.err.println("litdistLens repeated: "+count);
168 |
169 | if (ptr + count > num) {
170 | throw new SharpZipBaseException();
171 | }
172 | while (count-- > 0) {
173 | litdistLens[ptr++] = lastLen;
174 | }
175 |
176 | if (ptr == num) {
177 | /* Finished */
178 | return true;
179 | }
180 | }
181 | mode = LENS;
182 | goto decode_loop;
183 | }
184 | }
185 | }
186 |
187 | public InflaterHuffmanTree BuildLitLenTree()
188 | {
189 | byte[] litlenLens = new byte[lnum];
190 | Array.Copy(litdistLens, 0, litlenLens, 0, lnum);
191 | return new InflaterHuffmanTree(litlenLens);
192 | }
193 |
194 | public InflaterHuffmanTree BuildDistTree()
195 | {
196 | byte[] distLens = new byte[dnum];
197 | Array.Copy(litdistLens, lnum, distLens, 0, dnum);
198 | return new InflaterHuffmanTree(distLens);
199 | }
200 |
201 | #region Instance Fields
202 | byte[] blLens;
203 | byte[] litdistLens;
204 |
205 | InflaterHuffmanTree blTree;
206 |
207 | ///
208 | /// The current decode mode
209 | ///
210 | int mode;
211 | int lnum, dnum, blnum, num;
212 | int repSymbol;
213 | byte lastLen;
214 | int ptr;
215 | #endregion
216 |
217 | }
218 | }
219 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/Compression/DeflaterConstants.cs:
--------------------------------------------------------------------------------
1 | // DeflaterConstants.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | // Copyright (C) 2004 John Reilly
5 | //
6 | // This file was translated from java, it was part of the GNU Classpath
7 | // Copyright (C) 2001 Free Software Foundation, Inc.
8 | //
9 | // This program is free software; you can redistribute it and/or
10 | // modify it under the terms of the GNU General Public License
11 | // as published by the Free Software Foundation; either version 2
12 | // of the License, or (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program; if not, write to the Free Software
21 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 | //
23 | // Linking this library statically or dynamically with other modules is
24 | // making a combined work based on this library. Thus, the terms and
25 | // conditions of the GNU General Public License cover the whole
26 | // combination.
27 | //
28 | // As a special exception, the copyright holders of this library give you
29 | // permission to link this library with independent modules to produce an
30 | // executable, regardless of the license terms of these independent
31 | // modules, and to copy and distribute the resulting executable under
32 | // terms of your choice, provided that you also meet, for each linked
33 | // independent module, the terms and conditions of the license of that
34 | // module. An independent module is a module which is not derived from
35 | // or based on this library. If you modify this library, you may extend
36 | // this exception to your version of the library, but you are not
37 | // obligated to do so. If you do not wish to do so, delete this
38 | // exception statement from your version.
39 |
40 | using System;
41 |
42 | namespace ICSharpCode.SharpZipLib.Zip.Compression
43 | {
44 |
45 | ///
46 | /// This class contains constants used for deflation.
47 | ///
48 | public class DeflaterConstants
49 | {
50 | ///
51 | /// Set to true to enable debugging
52 | ///
53 | public const bool DEBUGGING = false;
54 |
55 | ///
56 | /// Written to Zip file to identify a stored block
57 | ///
58 | public const int STORED_BLOCK = 0;
59 |
60 | ///
61 | /// Identifies static tree in Zip file
62 | ///
63 | public const int STATIC_TREES = 1;
64 |
65 | ///
66 | /// Identifies dynamic tree in Zip file
67 | ///
68 | public const int DYN_TREES = 2;
69 |
70 | ///
71 | /// Header flag indicating a preset dictionary for deflation
72 | ///
73 | public const int PRESET_DICT = 0x20;
74 |
75 | ///
76 | /// Sets internal buffer sizes for Huffman encoding
77 | ///
78 | public const int DEFAULT_MEM_LEVEL = 8;
79 |
80 | ///
81 | /// Internal compression engine constant
82 | ///
83 | public const int MAX_MATCH = 258;
84 |
85 | ///
86 | /// Internal compression engine constant
87 | ///
88 | public const int MIN_MATCH = 3;
89 |
90 | ///
91 | /// Internal compression engine constant
92 | ///
93 | public const int MAX_WBITS = 15;
94 |
95 | ///
96 | /// Internal compression engine constant
97 | ///
98 | public const int WSIZE = 1 << MAX_WBITS;
99 |
100 | ///
101 | /// Internal compression engine constant
102 | ///
103 | public const int WMASK = WSIZE - 1;
104 |
105 | ///
106 | /// Internal compression engine constant
107 | ///
108 | public const int HASH_BITS = DEFAULT_MEM_LEVEL + 7;
109 |
110 | ///
111 | /// Internal compression engine constant
112 | ///
113 | public const int HASH_SIZE = 1 << HASH_BITS;
114 |
115 | ///
116 | /// Internal compression engine constant
117 | ///
118 | public const int HASH_MASK = HASH_SIZE - 1;
119 |
120 | ///
121 | /// Internal compression engine constant
122 | ///
123 | public const int HASH_SHIFT = (HASH_BITS + MIN_MATCH - 1) / MIN_MATCH;
124 |
125 | ///
126 | /// Internal compression engine constant
127 | ///
128 | public const int MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
129 |
130 | ///
131 | /// Internal compression engine constant
132 | ///
133 | public const int MAX_DIST = WSIZE - MIN_LOOKAHEAD;
134 |
135 | ///
136 | /// Internal compression engine constant
137 | ///
138 | public const int PENDING_BUF_SIZE = 1 << (DEFAULT_MEM_LEVEL + 8);
139 |
140 | ///
141 | /// Internal compression engine constant
142 | ///
143 | public static int MAX_BLOCK_SIZE = Math.Min(65535, PENDING_BUF_SIZE - 5);
144 |
145 | ///
146 | /// Internal compression engine constant
147 | ///
148 | public const int DEFLATE_STORED = 0;
149 |
150 | ///
151 | /// Internal compression engine constant
152 | ///
153 | public const int DEFLATE_FAST = 1;
154 |
155 | ///
156 | /// Internal compression engine constant
157 | ///
158 | public const int DEFLATE_SLOW = 2;
159 |
160 | ///
161 | /// Internal compression engine constant
162 | ///
163 | public static int[] GOOD_LENGTH = { 0, 4, 4, 4, 4, 8, 8, 8, 32, 32 };
164 |
165 | ///
166 | /// Internal compression engine constant
167 | ///
168 | public static int[] MAX_LAZY = { 0, 4, 5, 6, 4, 16, 16, 32, 128, 258 };
169 |
170 | ///
171 | /// Internal compression engine constant
172 | ///
173 | public static int[] NICE_LENGTH = { 0, 8, 16, 32, 16, 32, 128, 128, 258, 258 };
174 |
175 | ///
176 | /// Internal compression engine constant
177 | ///
178 | public static int[] MAX_CHAIN = { 0, 4, 8, 32, 16, 32, 128, 256, 1024, 4096 };
179 |
180 | ///
181 | /// Internal compression engine constant
182 | ///
183 | public static int[] COMPR_FUNC = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 2 };
184 |
185 | }
186 | }
187 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/Compression/DeflaterPending.cs:
--------------------------------------------------------------------------------
1 | // DeflaterPending.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | // Copyright (C) 2004 John Reilly
5 | //
6 | // This file was translated from java, it was part of the GNU Classpath
7 | // Copyright (C) 2001 Free Software Foundation, Inc.
8 | //
9 | // This program is free software; you can redistribute it and/or
10 | // modify it under the terms of the GNU General Public License
11 | // as published by the Free Software Foundation; either version 2
12 | // of the License, or (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program; if not, write to the Free Software
21 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22 | //
23 | // Linking this library statically or dynamically with other modules is
24 | // making a combined work based on this library. Thus, the terms and
25 | // conditions of the GNU General Public License cover the whole
26 | // combination.
27 | //
28 | // As a special exception, the copyright holders of this library give you
29 | // permission to link this library with independent modules to produce an
30 | // executable, regardless of the license terms of these independent
31 | // modules, and to copy and distribute the resulting executable under
32 | // terms of your choice, provided that you also meet, for each linked
33 | // independent module, the terms and conditions of the license of that
34 | // module. An independent module is a module which is not derived from
35 | // or based on this library. If you modify this library, you may extend
36 | // this exception to your version of the library, but you are not
37 | // obligated to do so. If you do not wish to do so, delete this
38 | // exception statement from your version.
39 |
40 | namespace ICSharpCode.SharpZipLib.Zip.Compression
41 | {
42 |
43 | ///
44 | /// This class stores the pending output of the Deflater.
45 | ///
46 | /// author of the original java version : Jochen Hoenicke
47 | ///
48 | public class DeflaterPending : PendingBuffer
49 | {
50 | ///
51 | /// Construct instance with default buffer size
52 | ///
53 | public DeflaterPending() : base(DeflaterConstants.PENDING_BUF_SIZE)
54 | {
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/Compression/InflaterDynHeader.cs:
--------------------------------------------------------------------------------
1 | // InflaterDynHeader.cs
2 | // Copyright (C) 2001 Mike Krueger
3 | //
4 | // This file was translated from java, it was part of the GNU Classpath
5 | // Copyright (C) 2001 Free Software Foundation, Inc.
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | // Linking this library statically or dynamically with other modules is
22 | // making a combined work based on this library. Thus, the terms and
23 | // conditions of the GNU General Public License cover the whole
24 | // combination.
25 | //
26 | // As a special exception, the copyright holders of this library give you
27 | // permission to link this library with independent modules to produce an
28 | // executable, regardless of the license terms of these independent
29 | // modules, and to copy and distribute the resulting executable under
30 | // terms of your choice, provided that you also meet, for each linked
31 | // independent module, the terms and conditions of the license of that
32 | // module. An independent module is a module which is not derived from
33 | // or based on this library. If you modify this library, you may extend
34 | // this exception to your version of the library, but you are not
35 | // obligated to do so. If you do not wish to do so, delete this
36 | // exception statement from your version.
37 |
38 | using System;
39 |
40 | using ICSharpCode.SharpZipLib.Zip.Compression.Streams;
41 |
42 | namespace ICSharpCode.SharpZipLib.Zip.Compression
43 | {
44 |
45 | class InflaterDynHeader
46 | {
47 | #region Constants
48 | const int LNUM = 0;
49 | const int DNUM = 1;
50 | const int BLNUM = 2;
51 | const int BLLENS = 3;
52 | const int LENS = 4;
53 | const int REPS = 5;
54 |
55 | static readonly int[] repMin = { 3, 3, 11 };
56 | static readonly int[] repBits = { 2, 3, 7 };
57 |
58 | static readonly int[] BL_ORDER =
59 | { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 };
60 |
61 | #endregion
62 |
63 | #region Constructors
64 | public InflaterDynHeader()
65 | {
66 | }
67 | #endregion
68 |
69 | public bool Decode(StreamManipulator input)
70 | {
71 | decode_loop:
72 | for (;;) {
73 | switch (mode) {
74 | case LNUM:
75 | lnum = input.PeekBits(5);
76 | if (lnum < 0) {
77 | return false;
78 | }
79 | lnum += 257;
80 | input.DropBits(5);
81 | // System.err.println("LNUM: "+lnum);
82 | mode = DNUM;
83 | goto case DNUM; // fall through
84 | case DNUM:
85 | dnum = input.PeekBits(5);
86 | if (dnum < 0) {
87 | return false;
88 | }
89 | dnum++;
90 | input.DropBits(5);
91 | // System.err.println("DNUM: "+dnum);
92 | num = lnum+dnum;
93 | litdistLens = new byte[num];
94 | mode = BLNUM;
95 | goto case BLNUM; // fall through
96 | case BLNUM:
97 | blnum = input.PeekBits(4);
98 | if (blnum < 0) {
99 | return false;
100 | }
101 | blnum += 4;
102 | input.DropBits(4);
103 | blLens = new byte[19];
104 | ptr = 0;
105 | // System.err.println("BLNUM: "+blnum);
106 | mode = BLLENS;
107 | goto case BLLENS; // fall through
108 | case BLLENS:
109 | while (ptr < blnum) {
110 | int len = input.PeekBits(3);
111 | if (len < 0) {
112 | return false;
113 | }
114 | input.DropBits(3);
115 | // System.err.println("blLens["+BL_ORDER[ptr]+"]: "+len);
116 | blLens[BL_ORDER[ptr]] = (byte) len;
117 | ptr++;
118 | }
119 | blTree = new InflaterHuffmanTree(blLens);
120 | blLens = null;
121 | ptr = 0;
122 | mode = LENS;
123 | goto case LENS; // fall through
124 | case LENS:
125 | {
126 | int symbol;
127 | while (((symbol = blTree.GetSymbol(input)) & ~15) == 0) {
128 | /* Normal case: symbol in [0..15] */
129 |
130 | // System.err.println("litdistLens["+ptr+"]: "+symbol);
131 | litdistLens[ptr++] = lastLen = (byte)symbol;
132 |
133 | if (ptr == num) {
134 | /* Finished */
135 | return true;
136 | }
137 | }
138 |
139 | /* need more input ? */
140 | if (symbol < 0) {
141 | return false;
142 | }
143 |
144 | /* otherwise repeat code */
145 | if (symbol >= 17) {
146 | /* repeat zero */
147 | // System.err.println("repeating zero");
148 | lastLen = 0;
149 | } else {
150 | if (ptr == 0) {
151 | throw new SharpZipBaseException();
152 | }
153 | }
154 | repSymbol = symbol-16;
155 | }
156 | mode = REPS;
157 | goto case REPS; // fall through
158 | case REPS:
159 | {
160 | int bits = repBits[repSymbol];
161 | int count = input.PeekBits(bits);
162 | if (count < 0) {
163 | return false;
164 | }
165 | input.DropBits(bits);
166 | count += repMin[repSymbol];
167 | // System.err.println("litdistLens repeated: "+count);
168 |
169 | if (ptr + count > num) {
170 | throw new SharpZipBaseException();
171 | }
172 | while (count-- > 0) {
173 | litdistLens[ptr++] = lastLen;
174 | }
175 |
176 | if (ptr == num) {
177 | /* Finished */
178 | return true;
179 | }
180 | }
181 | mode = LENS;
182 | goto decode_loop;
183 | }
184 | }
185 | }
186 |
187 | public InflaterHuffmanTree BuildLitLenTree()
188 | {
189 | byte[] litlenLens = new byte[lnum];
190 | Array.Copy(litdistLens, 0, litlenLens, 0, lnum);
191 | return new InflaterHuffmanTree(litlenLens);
192 | }
193 |
194 | public InflaterHuffmanTree BuildDistTree()
195 | {
196 | byte[] distLens = new byte[dnum];
197 | Array.Copy(litdistLens, lnum, distLens, 0, dnum);
198 | return new InflaterHuffmanTree(distLens);
199 | }
200 |
201 | #region Instance Fields
202 | byte[] blLens;
203 | byte[] litdistLens;
204 |
205 | InflaterHuffmanTree blTree;
206 |
207 | ///
208 | /// The current decode mode
209 | ///
210 | int mode;
211 | int lnum, dnum, blnum, num;
212 | int repSymbol;
213 | byte lastLen;
214 | int ptr;
215 | #endregion
216 |
217 | }
218 | }
219 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/IEntryFactory.cs:
--------------------------------------------------------------------------------
1 | // IEntryFactory.cs
2 | //
3 | // Copyright 2006 John Reilly
4 | //
5 | // Copyright (C) 2001 Free Software Foundation, Inc.
6 | //
7 | // This program is free software; you can redistribute it and/or
8 | // modify it under the terms of the GNU General Public License
9 | // as published by the Free Software Foundation; either version 2
10 | // of the License, or (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program; if not, write to the Free Software
19 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 | //
21 | // Linking this library statically or dynamically with other modules is
22 | // making a combined work based on this library. Thus, the terms and
23 | // conditions of the GNU General Public License cover the whole
24 | // combination.
25 | //
26 | // As a special exception, the copyright holders of this library give you
27 | // permission to link this library with independent modules to produce an
28 | // executable, regardless of the license terms of these independent
29 | // modules, and to copy and distribute the resulting executable under
30 | // terms of your choice, provided that you also meet, for each linked
31 | // independent module, the terms and conditions of the license of that
32 | // module. An independent module is a module which is not derived from
33 | // or based on this library. If you modify this library, you may extend
34 | // this exception to your version of the library, but you are not
35 | // obligated to do so. If you do not wish to do so, delete this
36 | // exception statement from your version.
37 |
38 | using ICSharpCode.SharpZipLib.Core;
39 |
40 | namespace ICSharpCode.SharpZipLib.Zip
41 | {
42 | ///
43 | /// Defines factory methods for creating new values.
44 | ///
45 | public interface IEntryFactory
46 | {
47 | ///
48 | /// Create a for a file given its name
49 | ///
50 | /// The name of the file to create an entry for.
51 | /// Returns a file entry based on the passed.
52 | ZipEntry MakeFileEntry(string fileName);
53 |
54 | ///
55 | /// Create a for a file given its name
56 | ///
57 | /// The name of the file to create an entry for.
58 | /// If true get details from the file system if the file exists.
59 | /// Returns a file entry based on the passed.
60 | ZipEntry MakeFileEntry(string fileName, bool useFileSystem);
61 |
62 | ///
63 | /// Create a for a directory given its name
64 | ///
65 | /// The name of the directory to create an entry for.
66 | /// Returns a directory entry based on the passed.
67 | ZipEntry MakeDirectoryEntry(string directoryName);
68 |
69 | ///
70 | /// Create a for a directory given its name
71 | ///
72 | /// The name of the directory to create an entry for.
73 | /// If true get details from the file system for this directory if it exists.
74 | /// Returns a directory entry based on the passed.
75 | ZipEntry MakeDirectoryEntry(string directoryName, bool useFileSystem);
76 |
77 | ///
78 | /// Get/set the applicable.
79 | ///
80 | INameTransform NameTransform { get; set; }
81 | }
82 | }
83 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/Zip/ZipException.cs:
--------------------------------------------------------------------------------
1 | // ZipException.cs
2 | //
3 | // Copyright (C) 2001 Mike Krueger
4 | //
5 | // This file was translated from java, it was part of the GNU Classpath
6 | // Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
7 | //
8 | // This program is free software; you can redistribute it and/or
9 | // modify it under the terms of the GNU General Public License
10 | // as published by the Free Software Foundation; either version 2
11 | // of the License, or (at your option) any later version.
12 | //
13 | // This program is distributed in the hope that it will be useful,
14 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | // GNU General Public License for more details.
17 | //
18 | // You should have received a copy of the GNU General Public License
19 | // along with this program; if not, write to the Free Software
20 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 | //
22 | // Linking this library statically or dynamically with other modules is
23 | // making a combined work based on this library. Thus, the terms and
24 | // conditions of the GNU General Public License cover the whole
25 | // combination.
26 | //
27 | // As a special exception, the copyright holders of this library give you
28 | // permission to link this library with independent modules to produce an
29 | // executable, regardless of the license terms of these independent
30 | // modules, and to copy and distribute the resulting executable under
31 | // terms of your choice, provided that you also meet, for each linked
32 | // independent module, the terms and conditions of the license of that
33 | // module. An independent module is a module which is not derived from
34 | // or based on this library. If you modify this library, you may extend
35 | // this exception to your version of the library, but you are not
36 | // obligated to do so. If you do not wish to do so, delete this
37 | // exception statement from your version.
38 |
39 | using System;
40 |
41 | #if !NETCF_1_0 && !NETCF_2_0
42 | using System.Runtime.Serialization;
43 | #endif
44 |
45 | namespace ICSharpCode.SharpZipLib.Zip
46 | {
47 |
48 | ///
49 | /// Represents exception conditions specific to Zip archive handling
50 | ///
51 | #if !NETCF_1_0 && !NETCF_2_0
52 | [Serializable]
53 | #endif
54 | public class ZipException : SharpZipBaseException
55 | {
56 | #if !NETCF_1_0 && !NETCF_2_0
57 | ///
58 | /// Deserialization constructor
59 | ///
60 | /// for this constructor
61 | /// for this constructor
62 | protected ZipException(SerializationInfo info, StreamingContext context )
63 | : base( info, context )
64 | {
65 | }
66 | #endif
67 |
68 | ///
69 | /// Initializes a new instance of the ZipException class.
70 | ///
71 | public ZipException()
72 | {
73 | }
74 |
75 | ///
76 | /// Initializes a new instance of the ZipException class with a specified error message.
77 | ///
78 | /// The error message that explains the reason for the exception.
79 | public ZipException(string message)
80 | : base(message)
81 | {
82 | }
83 |
84 | ///
85 | /// Initialise a new instance of ZipException.
86 | ///
87 | /// A message describing the error.
88 | /// The exception that is the cause of the current exception.
89 | public ZipException(string message, Exception exception)
90 | : base(message, exception)
91 | {
92 | }
93 | }
94 | }
95 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/zlib/Adler32.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2006, ComponentAce
2 | // http://www.componentace.com
3 | // All rights reserved.
4 |
5 | // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6 |
7 | // Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 | // Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 | // Neither the name of ComponentAce nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11 |
12 |
13 |
14 | /*
15 | Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved.
16 |
17 | Redistribution and use in source and binary forms, with or without
18 | modification, are permitted provided that the following conditions are met:
19 |
20 | 1. Redistributions of source code must retain the above copyright notice,
21 | this list of conditions and the following disclaimer.
22 |
23 | 2. Redistributions in binary form must reproduce the above copyright
24 | notice, this list of conditions and the following disclaimer in
25 | the documentation and/or other materials provided with the distribution.
26 |
27 | 3. The names of the authors may not be used to endorse or promote products
28 | derived from this software without specific prior written permission.
29 |
30 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
31 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
32 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
33 | INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
34 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
36 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
37 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
38 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
39 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 | */
41 | /*
42 | * This program is based on zlib-1.1.3, so all credit should go authors
43 | * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
44 | * and contributors of zlib.
45 | */
46 | using System;
47 | namespace ComponentAce.Compression.Libs.zlib
48 | {
49 |
50 | sealed class Adler32
51 | {
52 |
53 | // largest prime smaller than 65536
54 | private const int BASE = 65521;
55 | // NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1
56 | private const int NMAX = 5552;
57 |
58 | internal long adler32(long adler, byte[] buf, int index, int len)
59 | {
60 | if (buf == null)
61 | {
62 | return 1L;
63 | }
64 |
65 | long s1 = adler & 0xffff;
66 | long s2 = (adler >> 16) & 0xffff;
67 | int k;
68 |
69 | while (len > 0)
70 | {
71 | k = len < NMAX?len:NMAX;
72 | len -= k;
73 | while (k >= 16)
74 | {
75 | s1 += (buf[index++] & 0xff); s2 += s1;
76 | s1 += (buf[index++] & 0xff); s2 += s1;
77 | s1 += (buf[index++] & 0xff); s2 += s1;
78 | s1 += (buf[index++] & 0xff); s2 += s1;
79 | s1 += (buf[index++] & 0xff); s2 += s1;
80 | s1 += (buf[index++] & 0xff); s2 += s1;
81 | s1 += (buf[index++] & 0xff); s2 += s1;
82 | s1 += (buf[index++] & 0xff); s2 += s1;
83 | s1 += (buf[index++] & 0xff); s2 += s1;
84 | s1 += (buf[index++] & 0xff); s2 += s1;
85 | s1 += (buf[index++] & 0xff); s2 += s1;
86 | s1 += (buf[index++] & 0xff); s2 += s1;
87 | s1 += (buf[index++] & 0xff); s2 += s1;
88 | s1 += (buf[index++] & 0xff); s2 += s1;
89 | s1 += (buf[index++] & 0xff); s2 += s1;
90 | s1 += (buf[index++] & 0xff); s2 += s1;
91 | k -= 16;
92 | }
93 | if (k != 0)
94 | {
95 | do
96 | {
97 | s1 += (buf[index++] & 0xff); s2 += s1;
98 | }
99 | while (--k != 0);
100 | }
101 | s1 %= BASE;
102 | s2 %= BASE;
103 | }
104 | return (s2 << 16) | s1;
105 | }
106 |
107 | }
108 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/zlib/StaticTree.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2006, ComponentAce
2 | // http://www.componentace.com
3 | // All rights reserved.
4 |
5 | // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6 |
7 | // Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 | // Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 | // Neither the name of ComponentAce nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11 |
12 | /*
13 | Copyright (c) 2000,2001,2002,2003 ymnk, JCraft,Inc. All rights reserved.
14 |
15 | Redistribution and use in source and binary forms, with or without
16 | modification, are permitted provided that the following conditions are met:
17 |
18 | 1. Redistributions of source code must retain the above copyright notice,
19 | this list of conditions and the following disclaimer.
20 |
21 | 2. Redistributions in binary form must reproduce the above copyright
22 | notice, this list of conditions and the following disclaimer in
23 | the documentation and/or other materials provided with the distribution.
24 |
25 | 3. The names of the authors may not be used to endorse or promote products
26 | derived from this software without specific prior written permission.
27 |
28 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
29 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
30 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
31 | INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
32 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
34 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
37 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 | */
39 | /*
40 | * This program is based on zlib-1.1.3, so all credit should go authors
41 | * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
42 | * and contributors of zlib.
43 | */
44 | using System;
45 | namespace ComponentAce.Compression.Libs.zlib
46 | {
47 |
48 | sealed class StaticTree
49 | {
50 | private const int MAX_BITS = 15;
51 |
52 | private const int BL_CODES = 19;
53 | private const int D_CODES = 30;
54 | private const int LITERALS = 256;
55 | private const int LENGTH_CODES = 29;
56 | private static readonly int L_CODES = (LITERALS + 1 + LENGTH_CODES);
57 |
58 | // Bit length codes must not exceed MAX_BL_BITS bits
59 | internal const int MAX_BL_BITS = 7;
60 |
61 | internal static readonly short[] static_ltree = new short[]{12, 8, 140, 8, 76, 8, 204, 8, 44, 8, 172, 8, 108, 8, 236, 8, 28, 8, 156, 8, 92, 8, 220, 8, 60, 8, 188, 8, 124, 8, 252, 8, 2, 8, 130, 8, 66, 8, 194, 8, 34, 8, 162, 8, 98, 8, 226, 8, 18, 8, 146, 8, 82, 8, 210, 8, 50, 8, 178, 8, 114, 8, 242, 8, 10, 8, 138, 8, 74, 8, 202, 8, 42, 8, 170, 8, 106, 8, 234, 8, 26, 8, 154, 8, 90, 8, 218, 8, 58, 8, 186, 8, 122, 8, 250, 8, 6, 8, 134, 8, 70, 8, 198, 8, 38, 8, 166, 8, 102, 8, 230, 8, 22, 8, 150, 8, 86, 8, 214, 8, 54, 8, 182, 8, 118, 8, 246, 8, 14, 8, 142, 8, 78, 8, 206, 8, 46, 8, 174, 8, 110, 8, 238, 8, 30, 8, 158, 8, 94, 8, 222, 8, 62, 8, 190, 8, 126, 8, 254, 8, 1, 8, 129, 8, 65, 8, 193, 8, 33, 8, 161, 8, 97, 8, 225, 8, 17, 8, 145, 8, 81, 8, 209, 8, 49, 8, 177, 8, 113, 8, 241, 8, 9, 8, 137, 8, 73, 8, 201, 8, 41, 8, 169, 8, 105, 8, 233, 8, 25, 8, 153, 8, 89, 8, 217, 8, 57, 8, 185, 8, 121, 8, 249, 8, 5, 8, 133, 8, 69, 8, 197, 8, 37, 8, 165, 8, 101, 8, 229, 8, 21, 8, 149, 8, 85, 8, 213, 8, 53, 8, 181, 8, 117, 8, 245, 8, 13, 8, 141, 8, 77, 8, 205, 8, 45, 8, 173, 8, 109, 8, 237, 8, 29, 8, 157, 8, 93, 8, 221, 8, 61, 8, 189, 8, 125, 8, 253, 8, 19, 9, 275, 9, 147, 9, 403, 9, 83, 9, 339, 9, 211, 9, 467, 9, 51, 9, 307, 9, 179, 9, 435, 9, 115, 9, 371, 9, 243, 9, 499, 9, 11, 9, 267, 9, 139, 9, 395, 9, 75, 9, 331, 9, 203, 9, 459, 9, 43, 9, 299, 9, 171, 9, 427, 9, 107, 9, 363, 9, 235, 9, 491, 9, 27, 9, 283, 9, 155, 9, 411, 9, 91, 9, 347, 9, 219, 9, 475, 9, 59, 9, 315, 9, 187, 9, 443, 9, 123, 9, 379, 9, 251, 9, 507, 9, 7, 9, 263, 9, 135, 9, 391, 9, 71, 9, 327, 9, 199, 9, 455, 9, 39, 9, 295, 9, 167, 9, 423, 9, 103, 9, 359, 9, 231, 9, 487, 9, 23, 9, 279, 9, 151, 9, 407, 9, 87, 9, 343, 9, 215, 9, 471, 9, 55, 9, 311, 9, 183, 9, 439, 9, 119, 9, 375, 9, 247, 9, 503, 9, 15, 9, 271, 9, 143, 9, 399, 9, 79, 9, 335, 9, 207, 9, 463, 9, 47, 9, 303, 9, 175, 9, 431, 9, 111, 9, 367, 9, 239, 9, 495, 9, 31, 9, 287, 9, 159, 9, 415, 9, 95, 9, 351, 9, 223, 9, 479, 9, 63, 9, 319, 9, 191, 9, 447, 9, 127, 9, 383, 9, 255, 9, 511, 9, 0, 7, 64, 7
62 | , 32, 7, 96, 7, 16, 7, 80, 7, 48, 7, 112, 7, 8, 7, 72, 7, 40, 7, 104, 7, 24, 7, 88, 7, 56, 7, 120, 7, 4, 7, 68, 7, 36, 7, 100, 7, 20, 7, 84, 7, 52, 7, 116, 7, 3, 8, 131, 8, 67, 8, 195, 8, 35, 8, 163, 8, 99, 8, 227, 8};
63 |
64 | internal static readonly short[] static_dtree = new short[]{0, 5, 16, 5, 8, 5, 24, 5, 4, 5, 20, 5, 12, 5, 28, 5, 2, 5, 18, 5, 10, 5, 26, 5, 6, 5, 22, 5, 14, 5, 30, 5, 1, 5, 17, 5, 9, 5, 25, 5, 5, 5, 21, 5, 13, 5, 29, 5, 3, 5, 19, 5, 11, 5, 27, 5, 7, 5, 23, 5};
65 |
66 | internal static StaticTree static_l_desc;
67 |
68 | internal static StaticTree static_d_desc;
69 |
70 | internal static StaticTree static_bl_desc;
71 |
72 | internal short[] static_tree; // static tree or null
73 | internal int[] extra_bits; // extra bits for each code or null
74 | internal int extra_base; // base index for extra_bits
75 | internal int elems; // max number of elements in the tree
76 | internal int max_length; // max bit length for the codes
77 |
78 | internal StaticTree(short[] static_tree, int[] extra_bits, int extra_base, int elems, int max_length)
79 | {
80 | this.static_tree = static_tree;
81 | this.extra_bits = extra_bits;
82 | this.extra_base = extra_base;
83 | this.elems = elems;
84 | this.max_length = max_length;
85 | }
86 | static StaticTree()
87 | {
88 | static_l_desc = new StaticTree(static_ltree, Tree.extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
89 | static_d_desc = new StaticTree(static_dtree, Tree.extra_dbits, 0, D_CODES, MAX_BITS);
90 | static_bl_desc = new StaticTree(null, Tree.extra_blbits, 0, BL_CODES, MAX_BL_BITS);
91 | }
92 | }
93 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/zlib/SupportClass.cs:
--------------------------------------------------------------------------------
1 |
2 | using System;
3 |
4 |
5 | namespace ComponentAce.Compression.Libs.zlib
6 | {
7 | public class SupportClass
8 | {
9 | ///
10 | /// This method returns the literal value received
11 | ///
12 | /// The literal to return
13 | /// The received value
14 | public static long Identity(long literal)
15 | {
16 | return literal;
17 | }
18 |
19 | ///
20 | /// This method returns the literal value received
21 | ///
22 | /// The literal to return
23 | /// The received value
24 | public static ulong Identity(ulong literal)
25 | {
26 | return literal;
27 | }
28 |
29 | ///
30 | /// This method returns the literal value received
31 | ///
32 | /// The literal to return
33 | /// The received value
34 | public static float Identity(float literal)
35 | {
36 | return literal;
37 | }
38 |
39 | ///
40 | /// This method returns the literal value received
41 | ///
42 | /// The literal to return
43 | /// The received value
44 | public static double Identity(double literal)
45 | {
46 | return literal;
47 | }
48 |
49 | /*******************************/
50 | ///
51 | /// Performs an unsigned bitwise right shift with the specified number
52 | ///
53 | /// Number to operate on
54 | /// Ammount of bits to shift
55 | /// The resulting number from the shift operation
56 | public static int URShift(int number, int bits)
57 | {
58 | if ( number >= 0)
59 | return number >> bits;
60 | else
61 | return (number >> bits) + (2 << ~bits);
62 | }
63 |
64 | ///
65 | /// Performs an unsigned bitwise right shift with the specified number
66 | ///
67 | /// Number to operate on
68 | /// Ammount of bits to shift
69 | /// The resulting number from the shift operation
70 | public static int URShift(int number, long bits)
71 | {
72 | return URShift(number, (int)bits);
73 | }
74 |
75 | ///
76 | /// Performs an unsigned bitwise right shift with the specified number
77 | ///
78 | /// Number to operate on
79 | /// Ammount of bits to shift
80 | /// The resulting number from the shift operation
81 | public static long URShift(long number, int bits)
82 | {
83 | if ( number >= 0)
84 | return number >> bits;
85 | else
86 | return (number >> bits) + (2L << ~bits);
87 | }
88 |
89 | ///
90 | /// Performs an unsigned bitwise right shift with the specified number
91 | ///
92 | /// Number to operate on
93 | /// Ammount of bits to shift
94 | /// The resulting number from the shift operation
95 | public static long URShift(long number, long bits)
96 | {
97 | return URShift(number, (int)bits);
98 | }
99 |
100 | /*******************************/
101 | /// Reads a number of characters from the current source Stream and writes the data to the target array at the specified index.
102 | /// The source Stream to read from.
103 | /// Contains the array of characteres read from the source Stream.
104 | /// The starting index of the target array.
105 | /// The maximum number of characters to read from the source Stream.
106 | /// The number of characters read. The number will be less than or equal to count depending on the data available in the source Stream. Returns -1 if the end of the stream is reached.
107 | public static System.Int32 ReadInput(System.IO.Stream sourceStream, byte[] target, int start, int count)
108 | {
109 | // Returns 0 bytes if not enough space in target
110 | if (target.Length == 0)
111 | return 0;
112 |
113 | byte[] receiver = new byte[target.Length];
114 | int bytesRead = sourceStream.Read(receiver, start, count);
115 |
116 | // Returns -1 if EOF
117 | if (bytesRead == 0)
118 | return -1;
119 |
120 | for(int i = start; i < start + bytesRead; i++)
121 | target[i] = (byte)receiver[i];
122 |
123 | return bytesRead;
124 | }
125 |
126 | /// Reads a number of characters from the current source TextReader and writes the data to the target array at the specified index.
127 | /// The source TextReader to read from
128 | /// Contains the array of characteres read from the source TextReader.
129 | /// The starting index of the target array.
130 | /// The maximum number of characters to read from the source TextReader.
131 | /// The number of characters read. The number will be less than or equal to count depending on the data available in the source TextReader. Returns -1 if the end of the stream is reached.
132 | public static System.Int32 ReadInput(System.IO.TextReader sourceTextReader, byte[] target, int start, int count)
133 | {
134 | // Returns 0 bytes if not enough space in target
135 | if (target.Length == 0) return 0;
136 |
137 | char[] charArray = new char[target.Length];
138 | int bytesRead = sourceTextReader.Read(charArray, start, count);
139 |
140 | // Returns -1 if EOF
141 | if (bytesRead == 0) return -1;
142 |
143 | for(int index=start; index
150 | /// Converts a string to an array of bytes
151 | ///
152 | /// The string to be converted
153 | /// The new array of bytes
154 | public static byte[] ToByteArray(System.String sourceString)
155 | {
156 | return System.Text.UTF8Encoding.UTF8.GetBytes(sourceString);
157 | }
158 |
159 | ///
160 | /// Converts an array of bytes to an array of chars
161 | ///
162 | /// The array of bytes to convert
163 | /// The new array of chars
164 | public static char[] ToCharArray(byte[] byteArray)
165 | {
166 | return System.Text.UTF8Encoding.UTF8.GetChars(byteArray);
167 | }
168 |
169 |
170 | }
171 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/Compression/zlib/ZInputStream.cs:
--------------------------------------------------------------------------------
1 | // Copyright (c) 2006, ComponentAce
2 | // http://www.componentace.com
3 | // All rights reserved.
4 |
5 | // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6 |
7 | // Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 | // Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 | // Neither the name of ComponentAce nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
11 |
12 | /*
13 | Copyright (c) 2001 Lapo Luchini.
14 |
15 | Redistribution and use in source and binary forms, with or without
16 | modification, are permitted provided that the following conditions are met:
17 |
18 | 1. Redistributions of source code must retain the above copyright notice,
19 | this list of conditions and the following disclaimer.
20 |
21 | 2. Redistributions in binary form must reproduce the above copyright
22 | notice, this list of conditions and the following disclaimer in
23 | the documentation and/or other materials provided with the distribution.
24 |
25 | 3. The names of the authors may not be used to endorse or promote products
26 | derived from this software without specific prior written permission.
27 |
28 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
29 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
30 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS
31 | OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
32 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
34 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
35 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
37 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 | */
39 | /*
40 | * This program is based on zlib-1.1.3, so all credit should go authors
41 | * Jean-loup Gailly(jloup@gzip.org) and Mark Adler(madler@alumni.caltech.edu)
42 | * and contributors of zlib.
43 | */
44 | using System;
45 | namespace ComponentAce.Compression.Libs.zlib
46 | {
47 |
48 | public class ZInputStream:System.IO.BinaryReader
49 | {
50 | internal void InitBlock()
51 | {
52 | flush = zlibConst.Z_NO_FLUSH;
53 | buf = new byte[bufsize];
54 | }
55 | virtual public int FlushMode
56 | {
57 | get
58 | {
59 | return (flush);
60 | }
61 |
62 | set
63 | {
64 | this.flush = value;
65 | }
66 |
67 | }
68 | /// Returns the total number of bytes input so far.
69 | virtual public long TotalIn
70 | {
71 | get
72 | {
73 | return z.total_in;
74 | }
75 |
76 | }
77 | /// Returns the total number of bytes output so far.
78 | virtual public long TotalOut
79 | {
80 | get
81 | {
82 | return z.total_out;
83 | }
84 |
85 | }
86 |
87 | protected ZStream z = new ZStream();
88 | protected int bufsize = 512;
89 | protected int flush;
90 | protected byte[] buf, buf1 = new byte[1];
91 | protected bool compress;
92 |
93 | internal System.IO.Stream in_Renamed = null;
94 |
95 | public ZInputStream(System.IO.Stream in_Renamed):base(in_Renamed)
96 | {
97 | InitBlock();
98 | this.in_Renamed = in_Renamed;
99 | z.inflateInit();
100 | compress = false;
101 | z.next_in = buf;
102 | z.next_in_index = 0;
103 | z.avail_in = 0;
104 | }
105 |
106 | public ZInputStream(System.IO.Stream in_Renamed, int level):base(in_Renamed)
107 | {
108 | InitBlock();
109 | this.in_Renamed = in_Renamed;
110 | z.deflateInit(level);
111 | compress = true;
112 | z.next_in = buf;
113 | z.next_in_index = 0;
114 | z.avail_in = 0;
115 | }
116 |
117 | /*public int available() throws IOException {
118 | return inf.finished() ? 0 : 1;
119 | }*/
120 |
121 | public override int Read()
122 | {
123 | if (read(buf1, 0, 1) == - 1)
124 | return (- 1);
125 | return (buf1[0] & 0xFF);
126 | }
127 |
128 | internal bool nomoreinput = false;
129 |
130 | public int read(byte[] b, int off, int len)
131 | {
132 | if (len == 0)
133 | return (0);
134 | int err;
135 | z.next_out = b;
136 | z.next_out_index = off;
137 | z.avail_out = len;
138 | do
139 | {
140 | if ((z.avail_in == 0) && (!nomoreinput))
141 | {
142 | // if buffer is empty and more input is avaiable, refill it
143 | z.next_in_index = 0;
144 | z.avail_in = SupportClass.ReadInput(in_Renamed, buf, 0, bufsize); //(bufsize 0;
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/KeyStore.cs:
--------------------------------------------------------------------------------
1 | /**********************************************************************\
2 |
3 | RageLib
4 | Copyright (C) 2008 Arushan/Aru
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see .
18 |
19 | \**********************************************************************/
20 |
21 | namespace RageLib.Common
22 | {
23 | public static class KeyStore
24 | {
25 | public delegate byte[] KeyLoader();
26 |
27 | private static byte[] _aesKey;
28 | private static KeyLoader _keyLoader;
29 | public static string gameEXE;
30 | static KeyStore()
31 | {
32 | // Default Key Loader
33 | SetKeyLoader( () =>
34 | {
35 | var util = new KeyUtilRDR();
36 | return util.FindKey(gameEXE,"RDR");
37 | } );
38 | }
39 |
40 | public static void SetKeyLoader(KeyLoader loader)
41 | {
42 | _keyLoader = loader;
43 | }
44 |
45 | public static byte[] AESKey
46 | {
47 | get
48 | {
49 | if (_aesKey == null)
50 | {
51 | _aesKey = _keyLoader();
52 | }
53 | return _aesKey;
54 | }
55 | }
56 | }
57 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/KeyUtil.cs:
--------------------------------------------------------------------------------
1 | /**********************************************************************\
2 |
3 | RageLib
4 | Copyright (C) 2008 Arushan/Aru
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see .
18 |
19 | \**********************************************************************/
20 |
21 | using System;
22 | using System.IO;
23 | using System.Security.Cryptography;
24 | using Microsoft.Win32;
25 | using System.Diagnostics;
26 |
27 | namespace RageLib.Common
28 | {
29 |
30 | public abstract class KeyUtil
31 | {
32 | public static string MYgameExe;
33 | public abstract string ExecutableName { get; }
34 | protected abstract uint[] SearchOffsets { get; }
35 | public byte[] FindKey( string gamePath, string gameName )
36 | {
37 |
38 | byte[] key = null;
39 | ProcessStartInfo startInfo = new ProcessStartInfo("xextool.exe");
40 | startInfo.Arguments = "-b " + Path.GetTempPath() + "base.bin " + "\"" + MYgameExe + "\"";
41 | startInfo.UseShellExecute = false;
42 | startInfo.CreateNoWindow = true;
43 | Process BINextractor = Process.Start(startInfo);
44 | BINextractor.WaitForExit();
45 | if(File.Exists(Path.GetTempPath() + "\\base.bin "))
46 | {
47 | var fs = new FileStream(Path.GetTempPath() + "\\base.bin ", FileMode.Open, FileAccess.Read);
48 | foreach (var u in SearchOffsets)
49 | {
50 | if (u <= fs.Length - 32)
51 | {
52 | var tempKey = new byte[32];
53 | fs.Seek(u, SeekOrigin.Begin);
54 | fs.Read(tempKey, 0, 32);
55 | var hash = BitConverter.ToString(SHA1.Create().ComputeHash(tempKey)).Replace("-", "");
56 | if (hash == "87862497EE46855372B51C7A324A2BB5CD66F4AF")
57 | {
58 | key = tempKey;
59 | break;
60 | }
61 | }
62 | }
63 | fs.Close();
64 | }
65 | File.Delete(Path.GetTempPath() + "\\base.bin ");
66 | return key;
67 | }
68 | }
69 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/KeyUtilRDR.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Text;
4 |
5 | namespace RageLib.Common
6 | {
7 | public class KeyUtilRDR : KeyUtil
8 | {
9 | public override string ExecutableName
10 | {
11 | get { return "default.xex"; }
12 | }
13 |
14 | protected override uint[] SearchOffsets
15 | {
16 | get
17 | {
18 | return new uint[]
19 | {
20 | //Offsets of the XEX files
21 | 0xF87278, //Red Dead Redemption 1-Disk: Title Update #9
22 | 0xFBA018, //Red Dead Redemption 1-Disk: Title Update #8
23 | 0xFBA078, // GOTY Edition - Retail Version & Red Dead Redemption 1-Disk: Title Update #7
24 | 0xFB89F8, //Red Dead Redemption 1-Disk: Title Update #6
25 | 0xF98088, //Red Dead Redemption 1-Disk: Title Update #5
26 | 0xF846D8, //Red Dead Redemption 1-Disk: Title Update #2 & #4
27 | 0xF846E8, //Red Dead Redemption 1-Disk: Title Update #3
28 | 0xF872A8, // GOTY Edition - Title Update #1
29 | 0xF87268, //Zombie DLC: Title Update #7
30 | 0xFBA038, //Zombie DLC: Title Update #6
31 | 0xFBA098, //Zombie DLC: Title Update #5
32 | 0xF844D8, //Red Dead Redemption 1-Disk: Retail
33 | };
34 | }
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Archive.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using RPFLib.Common;
7 |
8 | namespace RPFLib
9 | {
10 | internal abstract class Archive
11 | {
12 | public abstract void Close();
13 | public abstract void Save();
14 | public abstract RPFLib.Common.Directory RootDirectory { get; set; }
15 | public abstract List search(RPFLib.Common.Directory dir, string searchText);
16 | public abstract void Open(string filename);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/BigEndianBinaryReader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 |
4 | namespace RPFLib.Common
5 | {
6 | public class BigEndianBinaryReader : BinaryReader
7 | {
8 | public BigEndianBinaryReader(Stream input) : base(input) { }
9 |
10 | public override short ReadInt16()
11 | {
12 | byte[] byteBuffer = base.ReadBytes(2);
13 | return (short)((byteBuffer[0] << 8) | byteBuffer[1]);
14 | }
15 |
16 | public override int ReadInt32()
17 | {
18 | byte[] byteBuffer = base.ReadBytes(4);
19 | return (int)((byteBuffer[0] << 24) | (byteBuffer[1] << 16) | (byteBuffer[2] << 8) | byteBuffer[3]);
20 | }
21 |
22 | public override ushort ReadUInt16()
23 | {
24 | byte[] byteBuffer = base.ReadBytes(2);
25 | return (ushort)((byteBuffer[0] << 8) | byteBuffer[1]);
26 | }
27 |
28 | public override uint ReadUInt32()
29 | {
30 | byte[] byteBuffer = base.ReadBytes(4);
31 | return (uint)((byteBuffer[0] << 24) | (byteBuffer[1] << 16) | (byteBuffer[2] << 8) | byteBuffer[3]);
32 | }
33 |
34 | public override float ReadSingle()
35 | {
36 | byte[] byteBuffer = BitConverter.GetBytes(ReadUInt32());
37 | return BitConverter.ToSingle(byteBuffer, 0);
38 | }
39 |
40 | public string ReadNullTerminatedString()
41 | {
42 | string newString = "";
43 | char temp;
44 | while ((temp = ReadChar()) != '\0')
45 | {
46 | if (temp != '\0') newString += temp;
47 | else break;
48 | }
49 | return newString;
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/BigEndianBinaryWriter.cs:
--------------------------------------------------------------------------------
1 | #region Usings
2 |
3 | using System;
4 | using System.IO;
5 | using System.Text;
6 |
7 | #endregion
8 |
9 | namespace RPFLib.Common
10 | {
11 | ///
12 | /// Writes primitive types to a stream, in Big Endian binary representation. Supports writing strings in a specific encoding (default encoding is UTF-8).
13 | ///
14 | public class BigEndianBinaryWriter : BinaryWriter
15 | {
16 | #region Constructors
17 | public BigEndianBinaryWriter(Stream output)
18 | : base(output)
19 | {
20 | }
21 |
22 | public BigEndianBinaryWriter(Stream output, Encoding encoding)
23 | : base(output, encoding)
24 | {
25 | }
26 | #endregion
27 |
28 | #region Implementation of abstract methods
29 |
30 | public override void Write(byte data)
31 | {
32 | byte[] buffer = new[] { data };
33 | Write(buffer);
34 | }
35 |
36 | public override void Write(short data)
37 | {
38 | byte[] bytes = BitConverter.GetBytes(data);
39 | if (BitConverter.IsLittleEndian)
40 | Array.Reverse(bytes);
41 | Write(bytes);
42 | }
43 |
44 | public override void Write(int data)
45 | {
46 | byte[] bytes = BitConverter.GetBytes(data);
47 | if (BitConverter.IsLittleEndian)
48 | Array.Reverse(bytes);
49 | Write(bytes);
50 | }
51 |
52 | public void writebigint(int data)
53 | {
54 | byte[] bytes = BitConverter.GetBytes(data);
55 | Array.Reverse(bytes);
56 | Write(bytes);
57 | }
58 |
59 | public override void Write(long data)
60 | {
61 | byte[] bytes = BitConverter.GetBytes(data);
62 | if (BitConverter.IsLittleEndian)
63 | Array.Reverse(bytes);
64 | Write(bytes);
65 | }
66 |
67 | public override void Write(float data)
68 | {
69 | byte[] bytes = BitConverter.GetBytes(data);
70 | if (BitConverter.IsLittleEndian)
71 | Array.Reverse(bytes);
72 | Write(bytes);
73 | }
74 |
75 | public override void Write(double data)
76 | {
77 | byte[] bytes = BitConverter.GetBytes(data);
78 | if (BitConverter.IsLittleEndian)
79 | Array.Reverse(bytes);
80 | Write(bytes);
81 | }
82 |
83 | #endregion
84 |
85 | }
86 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/BitsStream.cs:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | RPF7Viewer - Viewer for RAGE Package File version 7
4 | Copyright (C) 2013 koolk
5 |
6 | This program is free software: you can redistribute it and/or modify
7 | it under the terms of the GNU General Public License as published by
8 | the Free Software Foundation, either version 3 of the License, or
9 | (at your option) any later version.
10 |
11 | This program is distributed in the hope that it will be useful,
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | GNU General Public License for more details.
15 |
16 | You should have received a copy of the GNU General Public License
17 | along with this program. If not, see .
18 |
19 | */
20 |
21 | using System;
22 | using System.Collections.Generic;
23 | using System.Linq;
24 | using System.Text;
25 | using System.IO;
26 |
27 | namespace RPFLib.Common
28 | {
29 | public class BitsStream
30 | {
31 | private Stream Stream;
32 |
33 | public long Position = 0;
34 | public int BitPosition = 0;
35 |
36 | public long Length;
37 |
38 | private long RoundUp(long x, long m)
39 | {
40 | long result = x + (m - (x % m));
41 | if ((x % m) == 0)
42 | {
43 | result -= m;
44 | }
45 | return result;
46 | }
47 |
48 | public BitsStream(Stream inputStream)
49 | {
50 | this.Stream = inputStream;
51 | this.Length = this.Stream.Length;
52 | }
53 |
54 | public long ReadBits(int bits)
55 | {
56 | if (bits > 64) {
57 | throw new Exception("Error: Can't read big number");
58 | }
59 |
60 | long StartBit = Position * 8 + BitPosition;
61 | long EndBit = StartBit + bits;
62 | long StartByte = StartBit / 8;
63 | long EndByte = RoundUp(EndBit, 8) / 8;
64 |
65 | if (EndByte > Length)
66 | {
67 | throw new Exception("Error: Out of bounds");
68 | }
69 |
70 | Byte [] bytes = new Byte[EndByte - StartByte];
71 | this.Stream.Position = StartByte;
72 | this.Stream.Read(bytes, 0, (int)(EndByte - StartByte));
73 |
74 | long result = 0;
75 | int shift_by = 0;
76 | for (long i = EndByte - 1; i >= StartByte; --i)
77 | {
78 | if (i == EndByte - 1)
79 | {
80 | if (i == StartByte)
81 | {
82 | result = ((long)bytes[i - StartByte] & ((1 << (8 - BitPosition)) - 1)) >> (int)(RoundUp(EndBit, 8) - EndBit);
83 | }
84 | else
85 | {
86 | result = (long)bytes[i - StartByte] >> (int)(RoundUp(EndBit, 8) - EndBit);
87 | shift_by = 8 - (int)(RoundUp(EndBit, 8) - EndBit);
88 | }
89 | }
90 | else if (i == StartByte)
91 | {
92 | result += ((long)bytes[i - StartByte] & ((1 << (8 - BitPosition)) - 1)) << shift_by;
93 | }
94 | else
95 | {
96 | result += (long)bytes[i - StartByte] << shift_by;
97 | shift_by += 8;
98 | }
99 | }
100 |
101 | Position = EndBit / 8;
102 | BitPosition = (int)(EndBit % 8);
103 | return result;
104 | }
105 |
106 | public int ReadInt()
107 | {
108 | return (int)ReadBits(32);
109 | }
110 |
111 | public bool ReadBool()
112 | {
113 | return ReadBits(1) == 1;
114 | }
115 |
116 | public String ReadString(int length)
117 | {
118 | return Encoding.Default.GetString(this.ReadBytes(length));
119 | }
120 |
121 |
122 | public byte[] ReadBytes(int length)
123 | {
124 | if (BitPosition != 0)
125 | {
126 | throw new Exception("Error: Must be in start of a byte for reading bytee");
127 | }
128 | if (Position + length > Length)
129 | {
130 | throw new Exception("Error: Out of bounds");
131 | }
132 | Byte[] buffer = new Byte[length];
133 | this.Stream.Position = Position;
134 | this.Stream.Read(buffer, 0, length);
135 | Position += length;
136 | return buffer;
137 | }
138 |
139 | public void Seek(long offset)
140 | {
141 | if (offset > Length)
142 | {
143 | throw new Exception("Error: Out of bounds");
144 | }
145 | Position = offset;
146 | }
147 |
148 | public String ReadCString()
149 | {
150 | this.Stream.Position = Position;
151 | String result = "";
152 | int lastChar = this.Stream.ReadByte();
153 | while (lastChar != 0) {
154 | Position += 1;
155 | result += (char)lastChar;
156 | lastChar = this.Stream.ReadByte();
157 | }
158 | return result;
159 | }
160 | }
161 | }
162 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/Directory.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | namespace RPFLib.Common
6 | {
7 | public class Directory : fileSystemObject, IEnumerable
8 | {
9 | public delegate void setContentCount(int nContentcount);
10 | public setContentCount _Contentcount;
11 | public delegate void setContentIndex(int nIndex);
12 | public setContentIndex _ContentIndex;
13 | public delegate void setIndex(int nIndex);
14 | public setIndex _Index;
15 |
16 | private List _fsObjects = new List();
17 | public readonly Dictionary _fsObjectsByName = new Dictionary();
18 | public string _Attributes = "";
19 |
20 | public Directory()
21 | {
22 | }
23 |
24 | public override bool IsDirectory
25 | {
26 | get { return true; }
27 | }
28 |
29 | public override bool ContainsSubfolder
30 | {
31 | get
32 | {
33 | int ctr = 0;
34 | foreach (fileSystemObject x in this)
35 | {
36 | if (x.IsDirectory)
37 | {
38 | ctr++;
39 | }
40 | }
41 | if (ctr > 0)
42 | return true;
43 | else
44 | return false;
45 | }
46 | }
47 |
48 | public override string[] ReturnSubfolderNames
49 | {
50 | get
51 | {
52 | int ctr = 0;
53 | foreach (fileSystemObject x in this)
54 | {
55 | if (x.IsDirectory)
56 | {
57 | ctr++;
58 | }
59 | }
60 | string[] myArray = new string[ctr];
61 | ctr = 0;
62 | foreach (fileSystemObject x in this)
63 | {
64 | if (x.IsDirectory)
65 | {
66 | myArray[ctr] = x.Name;
67 | ctr++;
68 | }
69 | }
70 | return myArray;
71 | }
72 | }
73 |
74 | public override bool IsReturnDirectory
75 | {
76 | get { return false; }
77 | }
78 |
79 | public fileSystemObject this[int index]
80 | {
81 | get { return _fsObjects[index]; }
82 | }
83 |
84 | public fileSystemObject FindByName(string name)
85 | {
86 | fileSystemObject obj;
87 | _fsObjectsByName.TryGetValue(name.ToLower(), out obj);
88 | return obj;
89 | }
90 |
91 | #region IEnumerable Members
92 |
93 | public IEnumerator GetEnumerator()
94 | {
95 | return _fsObjects.GetEnumerator();
96 | }
97 |
98 | IEnumerator IEnumerable.GetEnumerator()
99 | {
100 | return _fsObjects.GetEnumerator();
101 | }
102 |
103 | #endregion
104 |
105 | private string empty;
106 |
107 | public override uint nameHash { get; set; }
108 | public override string Size { get { return ""; } set { empty = value; } }
109 | public override string SizeS { get { return ""; } set { empty = value; } }
110 | public string IsResource { get { return ""; } set { empty = value; } }
111 | public string resourcetype { get { return ""; } set { empty = value; } }
112 | public string IsCompressed { get { return ""; } set { empty = value; } }
113 |
114 | public string DF
115 | {
116 | get { return "Directory"; }
117 | }
118 |
119 | public override string Attributes
120 | {
121 | get { return _Attributes; }
122 | set { _Attributes = value; }
123 | }
124 |
125 | public void AddObject(fileSystemObject obj)
126 | {
127 | _fsObjects.Add(obj);
128 | _fsObjectsByName.Add(obj.Name.ToLower(), obj);
129 | }
130 |
131 | public void Reorder()
132 | {
133 | _fsObjects = _fsObjects.OrderBy(o => o.nameHash).ToList();
134 | }
135 |
136 | public void DeleteObject(fileSystemObject obj)
137 | {
138 | _fsObjectsByName.Remove(obj.Name.ToLower());
139 | _fsObjects.Remove(obj);
140 | }
141 |
142 | public void SetContentCount()
143 | {
144 | _Contentcount(_fsObjects.Count);
145 | }
146 |
147 | public void SetContentIndex(int newContentIndex)
148 | {
149 | _ContentIndex(newContentIndex);
150 | }
151 |
152 | public void SetNewContentIndex(int newEntryContentIndex)
153 | {
154 | _Index(newEntryContentIndex);
155 | }
156 | }
157 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/Entry.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 |
3 | namespace RPFLib.Common
4 | {
5 | internal abstract class Entry
6 | {
7 | public abstract void Delete();
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/File.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System;
3 | namespace RPFLib.Common
4 | {
5 | public class File : fileSystemObject
6 | {
7 | #region Delegates
8 |
9 | public delegate byte[] DataLoadDelegate(bool getCustom);
10 | public delegate void DataStoreDelegate(byte[] data);
11 | public delegate bool DataIsCustomDelegate();
12 | public delegate int getSize();
13 | public delegate void setIndex(int nIndex);
14 | public delegate void Delete();
15 |
16 | #endregion
17 |
18 | public DataLoadDelegate _dataLoad;
19 | public DataStoreDelegate _dataStore;
20 | public DataIsCustomDelegate _dataCustom;
21 | public getSize d1;
22 | public setIndex _Index;
23 | public Delete _delete;
24 | private string _Attributes = "";
25 |
26 | public File()
27 | {
28 | }
29 |
30 | public File(setIndex newIndex)
31 | {
32 | _Index = newIndex;
33 | }
34 |
35 | public override bool ContainsSubfolder
36 | {
37 | get
38 | {
39 | throw new NotImplementedException();
40 | }
41 | }
42 |
43 | public override string[] ReturnSubfolderNames
44 | {
45 | get
46 | {
47 | throw new NotImplementedException();
48 | }
49 | }
50 |
51 | public override bool IsDirectory
52 | {
53 | get { return false; }
54 | }
55 |
56 | public override bool IsReturnDirectory
57 | {
58 | get { return false; }
59 | }
60 |
61 | public string DF
62 | {
63 | get { return "File"; }
64 | }
65 |
66 | public override uint nameHash { get; set; }
67 | public bool IsCompressed { get; set; }
68 | public int CompressedSize { get; set; }
69 |
70 | public override string Size { get { return d1().ToString(); } set {} }
71 |
72 | public override string SizeS
73 | {
74 | get
75 | {
76 | if (Convert.ToInt32(Size) < 1024)
77 | {
78 | return Size + " B";
79 | }
80 | else if (Convert.ToInt32(Size) < 1024 * 1024)
81 | {
82 | return Convert.ToInt32(Size) / (1024) + " KB";
83 | }
84 | else
85 | {
86 | return Convert.ToInt32(Size) / (1024 * 1024) + " MB";
87 | }
88 | }
89 | set
90 | {
91 |
92 | }
93 | }
94 |
95 | public bool IsResource { get; set; }
96 | private int _resourcetype;
97 | public int resourcetype
98 | {
99 | get
100 | {
101 | if (_resourcetype != null)
102 | return _resourcetype;
103 | else
104 | return 0;
105 | }
106 | set { _resourcetype = value; }
107 | }
108 |
109 | public override string Attributes
110 | {
111 | get { return _Attributes;} set { _Attributes = value; }
112 | }
113 |
114 | public bool IsCustomData
115 | {
116 | get { return _dataCustom(); }
117 | }
118 |
119 | public byte[] GetData(bool getcustom)
120 | {
121 | return _dataLoad(getcustom);
122 | }
123 |
124 | public void SetData(byte[] data)
125 | {
126 | _dataStore(data);
127 | }
128 |
129 | public void SetIndex(int newIndex)
130 | {
131 | _Index(newIndex);
132 | }
133 |
134 | public void DeleteEntry()
135 | {
136 | _delete();
137 | }
138 | }
139 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/Hasher.cs:
--------------------------------------------------------------------------------
1 | namespace RPFLib.Common
2 | {
3 | public static class Hasher
4 | {
5 | public static uint Hash(string str)
6 | {
7 | uint value = 0, temp;
8 | var index = 0;
9 | var quoted = false;
10 |
11 | if (str[index] == '"')
12 | {
13 | quoted = true;
14 | index++;
15 | }
16 |
17 | str = str.ToLower();
18 |
19 | for (; index < str.Length; index++)
20 | {
21 | var v = str[index];
22 |
23 | if (quoted && (v == '"')) break;
24 |
25 | if (v == '\\')
26 | v = '/';
27 |
28 | temp = v;
29 | temp = temp + value;
30 | value = temp << 10;
31 | temp += value;
32 | value = temp >> 6;
33 | value = value ^ temp;
34 | }
35 |
36 | temp = value << 3;
37 | temp = value + temp;
38 | var temp2 = temp >> 11;
39 | temp = temp2 ^ temp;
40 | temp2 = temp << 15;
41 |
42 | value = temp2 + temp;
43 |
44 | if (value < 2) value += 2;
45 |
46 | return value;
47 | }
48 | }
49 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/Common/fileSystemObject.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace RPFLib.Common
8 | {
9 | public abstract class fileSystemObject
10 | {
11 | public string Name { get; set; }
12 | public Directory ParentDirectory { get; set; }
13 |
14 | public string FullName
15 | {
16 | get
17 | {
18 | if (ParentDirectory == null)
19 | {
20 | return Name;
21 | }
22 | else
23 | {
24 | return ParentDirectory.FullName + @"\" + Name;
25 | }
26 | }
27 | }
28 | public abstract string Attributes { get; set; }
29 | public abstract string Size { get; set; }
30 | public abstract string SizeS { get; set; }
31 | public abstract uint nameHash { get; set; }
32 | public abstract bool IsDirectory { get; }
33 | public abstract bool IsReturnDirectory { get; }
34 | public abstract bool ContainsSubfolder { get; }
35 | public abstract string[] ReturnSubfolderNames { get; }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/RPF6/DirectoryEntry.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using RPFLib.Common;
3 | using System;
4 |
5 | namespace RPFLib.RPF6
6 | {
7 | internal class DirectoryEntry : TOCEntry
8 | {
9 | public DirectoryEntry(TOC toc)
10 | {
11 | TOC = toc;
12 | }
13 |
14 | public int Flags { get; set; }
15 | public int UNKNOWN { get; set; }
16 | public int ContentEntryIndex { get; set; }
17 | public int ContentEntryCount { get; set; }
18 | public override int newEntryIndex { get; set; }
19 | public override Int64 _Offset { get { return 0; } }
20 |
21 | public override bool IsDirectory
22 | {
23 | get { return true; }
24 | }
25 |
26 | public void setContentcount(int ContentCount)
27 | {
28 | ContentEntryCount = ContentCount; ;
29 | }
30 |
31 | public void setContentIndex(int newcontentindex)
32 | {
33 | ContentEntryIndex = newcontentindex;
34 | }
35 |
36 | public void setNewContentIndex(int neEntrywcontentindex)
37 | {
38 | newEntryIndex = neEntrywcontentindex;
39 | }
40 |
41 | public override void Read(BigEndianBinaryReader br, int extra = 0)
42 | {
43 | NameOffset = br.ReadInt32();
44 | Flags = br.ReadInt32();
45 | ContentEntryIndex = (int)(br.ReadUInt32() & 0x7fffffff);
46 | ContentEntryCount = br.ReadInt32() & 0x0fffffff;
47 | UNKNOWN = br.ReadInt32();
48 | }
49 |
50 | public override void Write(BigEndianBinaryWriter bw)
51 | {
52 | bw.Write(NameOffset);
53 | bw.Write(Flags);
54 | bw.Write((int)((uint)ContentEntryIndex | 0x80000000));
55 | /*
56 | if (newEntryIndex > 0)
57 | bw.Write((int)((uint)newEntryIndex | 0x80000000));
58 | else
59 | bw.Write((int)((uint)ContentEntryIndex | 0x80000000));
60 | */
61 | bw.Write(ContentEntryCount);
62 | bw.Write(UNKNOWN);
63 | }
64 | }
65 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/RPF6/Header.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using RPFLib.Common;
3 |
4 | namespace RPFLib.RPF6
5 | {
6 | internal class Header
7 | {
8 | public Header(File file)
9 | {
10 | File = file;
11 | }
12 |
13 | public HeaderIDs Identifier { get; set; }
14 | public int TOCSize { get; set; }
15 | public int EntryCount { get; set; }
16 |
17 | private int Unknown1 { get; set; }
18 | private int EncryptedFlag { get; set; }
19 |
20 | public File File { get; private set; }
21 |
22 | public bool Encrypted
23 | {
24 | get { return EncryptedFlag != 0; }
25 | set { EncryptedFlag = value ? -1 : 0; }
26 | }
27 |
28 | public void Read(BigEndianBinaryReader br)
29 | {
30 | Identifier = (HeaderIDs)br.ReadInt32();
31 | EntryCount = br.ReadInt32();
32 | TOCSize = EntryCount * 20;
33 | Unknown1 = br.ReadInt32();
34 | EncryptedFlag = br.ReadInt32();
35 | }
36 |
37 | public void Write(BigEndianBinaryWriter bw)
38 | {
39 | bw.Write((int)Identifier);
40 | bw.Write(EntryCount);
41 | bw.Write(Unknown1);
42 | bw.Write((int)-3); // not encrypted, we won't write encrypted archives :)
43 | }
44 | }
45 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/RPF6/MagicId.cs:
--------------------------------------------------------------------------------
1 | namespace RPFLib.RPF6
2 | {
3 | public enum HeaderIDs
4 | {
5 | Version3 = 0x33465052,
6 | Version4 = 0x34465052,
7 | Version6 = 0x52504636,
8 | }
9 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/RPF6/TOC.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections;
3 | using System.Collections.Generic;
4 | using System.IO;
5 | using System.Text;
6 | using System.Linq;
7 | using RPFLib.Common;
8 |
9 | namespace RPFLib.RPF6
10 | {
11 | internal class TOC : IEnumerable
12 | {
13 | private List _entries = new List();
14 | private string _nameStringTable;
15 | public int count { get { return _entries.Count; } }
16 | public long fileStart;
17 |
18 | public TOC(File file)
19 | {
20 | File = file;
21 | }
22 |
23 |
24 | public File File { get; private set; }
25 |
26 | public TOCEntry this[int index]
27 | {
28 | get
29 | {
30 | try
31 | {
32 | return _entries[index];
33 | }
34 | catch (Exception)
35 | {
36 | return _entries[0];
37 | }
38 | }
39 | }
40 |
41 | public bool Add(TOCEntry entry)
42 | {
43 | try
44 | {
45 | _entries.Add(entry);
46 | return true;
47 | }
48 | catch
49 | {
50 | return false;
51 | }
52 | }
53 |
54 | public bool Delete(TOCEntry entry)
55 | {
56 | try
57 | {
58 | int Index = _entries.IndexOf(entry);
59 | if (Index == -1)
60 | return false;
61 | //_entries.Remove(entry);
62 | _entries.RemoveAt(Index);
63 | return true;
64 | }
65 | catch
66 | {
67 | return false;
68 | }
69 | }
70 |
71 | public void ReorderEntryIndex()
72 | {
73 | try
74 | {
75 | _entries = _entries.OrderBy(o => o.newEntryIndex).ToList();
76 | }
77 | catch (System.Exception ex)
78 | {
79 | throw new Exception(ex.Message, ex);
80 | }
81 | }
82 |
83 | public void ReorderOffset()
84 | {
85 | try
86 | {
87 | _entries = _entries.OrderBy(o => o._Offset).ToList();
88 | }
89 | catch (System.Exception ex)
90 | {
91 | throw new Exception(ex.Message, ex);
92 | }
93 | }
94 |
95 | public void ReorderCount()
96 | {
97 | try
98 | {
99 | _entries = _entries.OrderBy(o => o.count).ToList();
100 | }
101 | catch (System.Exception ex)
102 | {
103 | throw new Exception(ex.Message, ex);
104 | }
105 | }
106 |
107 | public string GetName(int offset)
108 | {
109 | if (offset > _nameStringTable.Length)
110 | {
111 | throw new Exception("Invalid offset for name");
112 | }
113 |
114 | int endOffset = offset;
115 | while (_nameStringTable[endOffset] != 0)
116 | {
117 | endOffset++;
118 | }
119 | return _nameStringTable.Substring(offset, endOffset - offset);
120 | }
121 |
122 | #region IFileAccess Members
123 |
124 | public static void AppendAllBytes(string path, byte[] bytes)
125 | {
126 | //argument-checking here.
127 |
128 | using (var stream = new FileStream(path, FileMode.Append))
129 | {
130 | stream.Write(bytes, 0, bytes.Length);
131 | }
132 | }
133 |
134 | public void Read(BigEndianBinaryReader br)
135 | {
136 | fileStart = 0x7FFFFFFF;
137 | if (File.Header.Encrypted)
138 | {
139 | int tocSize = DataUtil.RoundUp(File.Header.TOCSize, 16);
140 | byte[] tocData = br.ReadBytes(tocSize);
141 |
142 | tocData = DataUtil.Decrypt(tocData);
143 |
144 | // Create a memory stream and override our active binary reader
145 | var ms = new MemoryStream(tocData);
146 | br = new BigEndianBinaryReader(ms);
147 | // System.IO.File.WriteAllBytes(@"C:\Users\Dageron\Desktop\toc_test.bin", tocData);
148 | }
149 |
150 | int entryCount = File.Header.EntryCount;
151 |
152 | for (int i = 0; i < entryCount; i++)
153 | {
154 | TOCEntry entry;
155 | if (TOCEntry.ReadAsDirectory(br))
156 | {
157 | entry = new DirectoryEntry(this);
158 | entry.Read(br);
159 | }
160 | else
161 | {
162 | entry = new FileEntry(this);
163 | entry.Read(br);
164 | fileStart = fileStart > entry._Offset ? entry._Offset : fileStart;
165 | }
166 | entry.count = i;
167 | _entries.Add(entry);
168 | }
169 |
170 | int stringDataSize = File.Header.TOCSize - File.Header.EntryCount * 20;
171 | byte[] stringData = br.ReadBytes(stringDataSize);
172 | _nameStringTable = Encoding.ASCII.GetString(stringData);
173 | }
174 |
175 | public void Write(BigEndianBinaryWriter bw)
176 | {
177 | MemoryStream ms = new MemoryStream();
178 | BigEndianBinaryWriter tempbw = new BigEndianBinaryWriter(ms);
179 | foreach (var entry in _entries)
180 | {
181 | entry.Write(tempbw);
182 | }
183 |
184 | int padding = DataUtil.RoundUp((int)tempbw.BaseStream.Length, 16) - (int)tempbw.BaseStream.Length;
185 | if (padding > 0)
186 | tempbw.Write(new byte[padding]);
187 |
188 | BigEndianBinaryReader tempbr = new BigEndianBinaryReader(ms);
189 | ms.Position = 0;
190 | bw.Write(DataUtil.Encrypt(tempbr.ReadBytes((int)tempbr.BaseStream.Length)));
191 | }
192 |
193 | #endregion
194 |
195 | #region Implementation of IEnumerable
196 |
197 | public IEnumerator GetEnumerator()
198 | {
199 | return _entries.GetEnumerator();
200 | }
201 |
202 | IEnumerator System.Collections.IEnumerable.GetEnumerator()
203 | {
204 | return GetEnumerator();
205 | }
206 |
207 | #endregion
208 | }
209 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/RPF6/TOCEntry.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.IO;
3 | using RPFLib.Common;
4 |
5 | namespace RPFLib.RPF6
6 | {
7 | internal abstract class TOCEntry : Entry
8 | {
9 | public int NameOffset { get; set; }
10 | public TOC TOC { get; set; }
11 |
12 | public abstract bool IsDirectory { get; }
13 |
14 | public abstract void Read(BigEndianBinaryReader br, int extra = 0);
15 | public abstract void Write(BigEndianBinaryWriter bw);
16 | public abstract int newEntryIndex { get; set; }
17 | public abstract Int64 _Offset { get; }
18 |
19 | public int count;
20 |
21 | public override void Delete()
22 | {
23 | TOC.Delete(this);
24 | }
25 |
26 | internal static bool ReadAsDirectory(BigEndianBinaryReader br)
27 | {
28 | bool dir;
29 |
30 | br.BaseStream.Seek(8, SeekOrigin.Current);
31 | byte tocData = br.ReadByte();
32 | dir = tocData == 128;
33 |
34 | br.BaseStream.Seek(-9, SeekOrigin.Current);
35 |
36 | return dir;
37 | }
38 | }
39 | }
--------------------------------------------------------------------------------
/RDR Explorer/Inc/RageLIB/RPF/RSCTypes.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using System.Windows.Forms;
8 |
9 | namespace RDR_Explorer.Inc.RageLIB
10 | {
11 | public class RSCTypes
12 | {
13 | protected Dictionary dicType = new Dictionary();
14 |
15 | public RSCTypes()
16 | {
17 | //init the different types , only known ones for now
18 | dicType.Add(133, "85"); //models
19 | dicType.Add(31, "1F");
20 | dicType.Add(26, "05");
21 | dicType.Add(36, "05");
22 | dicType.Add(116, "05");
23 | dicType.Add(33, "05");
24 | dicType.Add(8, "05");
25 | dicType.Add(1, "01");
26 | dicType.Add(138, "8A"); //fragments
27 | dicType.Add(30, "05");
28 | dicType.Add(134, "86 (xsi)");
29 | dicType.Add(18, "12");
30 | dicType.Add(10, "0A");
31 | dicType.Add(39, "27");
32 | }
33 |
34 | public string getType(string attributeString)
35 | {
36 | string rscType = "";
37 | string finalString = "";
38 |
39 | if (attributeString != "Compressed" && attributeString != "None")
40 | {
41 | string[] attributeSplit = attributeString.Split(' ');
42 | //index = 2
43 |
44 | finalString = attributeSplit[2].Remove(attributeSplit[2].Length - 1);
45 |
46 | int version = Convert.ToInt32(finalString);
47 |
48 | string type;
49 |
50 | dicType.TryGetValue(version, out type);
51 | rscType = "RSC" + type + " (Version: " + finalString + ")";
52 | }
53 | else
54 | {
55 | rscType = "Resource, " + attributeString;
56 | }
57 |
58 | return rscType;
59 | }
60 | }
61 | }
--------------------------------------------------------------------------------
/RDR Explorer/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 | using System.Windows.Forms;
6 |
7 | namespace RDR_Explorer
8 | {
9 | static class Program
10 | {
11 | ///
12 | /// Der Haupteinstiegspunkt für die Anwendung.
13 | ///
14 | [STAThread]
15 | static void Main()
16 | {
17 | Application.EnableVisualStyles();
18 | Application.SetCompatibleTextRenderingDefault(false);
19 | Application.Run(new Main());
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/RDR Explorer/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Allgemeine Informationen über eine Assembly werden über die folgenden
6 | // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
7 | // die einer Assembly zugeordnet sind.
8 | [assembly: AssemblyTitle("RDR Explorer")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("RDR Explorer")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar
18 | // für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von
19 | // COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
20 | [assembly: ComVisible(false)]
21 |
22 | // Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
23 | [assembly: Guid("719c60a7-787e-4ed2-baba-1c1f25fe7294")]
24 |
25 | // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
26 | //
27 | // Hauptversion
28 | // Nebenversion
29 | // Buildnummer
30 | // Revision
31 | //
32 | // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
33 | // übernehmen, indem Sie "*" eingeben:
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/RDR Explorer/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.42000
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace RDR_Explorer.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/RDR Explorer/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/RDR Explorer/PropertiesLoader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.InteropServices;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | namespace RDR_Explorer
9 | {
10 | class PropertiesLoader //written by Power-Mosfet
11 | {
12 | [DllImport("shell32.dll", CharSet = CharSet.Auto)]
13 | static extern bool ShellExecuteEx(ref SHELLEXECUTEINFO lpExecInfo);
14 |
15 | [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
16 | public struct SHELLEXECUTEINFO
17 | {
18 | public int cbSize;
19 | public uint fMask;
20 | public IntPtr hwnd;
21 | [MarshalAs(UnmanagedType.LPTStr)]
22 | public string lpVerb;
23 | [MarshalAs(UnmanagedType.LPTStr)]
24 | public string lpFile;
25 | [MarshalAs(UnmanagedType.LPTStr)]
26 | public string lpParameters;
27 | [MarshalAs(UnmanagedType.LPTStr)]
28 | public string lpDirectory;
29 | public int nShow;
30 | public IntPtr hInstApp;
31 | public IntPtr lpIDList;
32 | [MarshalAs(UnmanagedType.LPTStr)]
33 | public string lpClass;
34 | public IntPtr hkeyClass;
35 | public uint dwHotKey;
36 | public IntPtr hIcon;
37 | public IntPtr hProcess;
38 | }
39 |
40 | private const int SW_SHOW = 5;
41 | private const uint SEE_MASK_INVOKEIDLIST = 12;
42 | public static bool ShowFileProperties(string Filename)
43 | {
44 | SHELLEXECUTEINFO info = new SHELLEXECUTEINFO();
45 | info.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(info);
46 | info.lpVerb = "properties";
47 | info.lpFile = Filename;
48 | info.nShow = SW_SHOW;
49 | info.fMask = SEE_MASK_INVOKEIDLIST;
50 | return ShellExecuteEx(ref info);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/RDR Explorer/RSCUnpacker.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/RSCUnpacker.exe
--------------------------------------------------------------------------------
/RDR Explorer/Resources/Icon1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/Resources/Icon1.ico
--------------------------------------------------------------------------------
/RDR Explorer/Resources/icon_RPF.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/Resources/icon_RPF.ico
--------------------------------------------------------------------------------
/RDR Explorer/Resources/red_dead_redemption_icon_by_flitskikker-d315kze (1).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/Resources/red_dead_redemption_icon_by_flitskikker-d315kze (1).ico
--------------------------------------------------------------------------------
/RDR Explorer/Resources/shell32_1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/Resources/shell32_1.ico
--------------------------------------------------------------------------------
/RDR Explorer/Resources/shell32_235.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/Resources/shell32_235.ico
--------------------------------------------------------------------------------
/RDR Explorer/Resources/shell32_4.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/Resources/shell32_4.ico
--------------------------------------------------------------------------------
/RDR Explorer/Saving.Designer.cs:
--------------------------------------------------------------------------------
1 | namespace RDR_Explorer
2 | {
3 | partial class Saving
4 | {
5 | ///
6 | /// Required designer variable.
7 | ///
8 | private System.ComponentModel.IContainer components = null;
9 |
10 | ///
11 | /// Clean up any resources being used.
12 | ///
13 | /// true if managed resources should be disposed; otherwise, false.
14 | protected override void Dispose(bool disposing)
15 | {
16 | if (disposing && (components != null))
17 | {
18 | components.Dispose();
19 | }
20 | base.Dispose(disposing);
21 | }
22 |
23 | #region Windows Form Designer generated code
24 |
25 | ///
26 | /// Required method for Designer support - do not modify
27 | /// the contents of this method with the code editor.
28 | ///
29 | private void InitializeComponent()
30 | {
31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Saving));
32 | this.progressBar1 = new System.Windows.Forms.ProgressBar();
33 | this.SuspendLayout();
34 | //
35 | // progressBar1
36 | //
37 | resources.ApplyResources(this.progressBar1, "progressBar1");
38 | this.progressBar1.Name = "progressBar1";
39 | //
40 | // Saving
41 | //
42 | resources.ApplyResources(this, "$this");
43 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
44 | this.Controls.Add(this.progressBar1);
45 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
46 | this.Name = "Saving";
47 | this.Load += new System.EventHandler(this.Saving_Load);
48 | this.ResumeLayout(false);
49 |
50 | }
51 |
52 | #endregion
53 |
54 | private System.Windows.Forms.ProgressBar progressBar1;
55 | }
56 | }
--------------------------------------------------------------------------------
/RDR Explorer/Saving.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.ComponentModel;
3 | using System.IO;
4 | using System.Windows.Forms;
5 |
6 | namespace RDR_Explorer
7 | {
8 | internal partial class Saving : Form
9 | {
10 | private FileStream newRPFStream;
11 | RPFLib.RPF6.File rpfFile;
12 | BackgroundWorker backgroundWorker1 = new BackgroundWorker();
13 |
14 | public Saving(FileStream newRPF, RPFLib.RPF6.File file)
15 | {
16 | InitializeComponent();
17 | newRPFStream = newRPF;
18 | rpfFile = file;
19 | backgroundWorker1.WorkerSupportsCancellation = true;
20 | backgroundWorker1.WorkerReportsProgress = true;
21 | backgroundWorker1.DoWork += new DoWorkEventHandler(bgWorker_DoWork);
22 | backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(bgWorker_ProgressChanged);
23 | backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_RunWorkerCompleted);
24 | }
25 |
26 | private void Saving_Load(object sender, EventArgs e)
27 | {
28 | backgroundWorker1.RunWorkerAsync();
29 | }
30 |
31 | void bgWorker_DoWork(object sender, DoWorkEventArgs e)
32 | {
33 | rpfFile.save(newRPFStream, backgroundWorker1, e);
34 | }
35 |
36 | void bgWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
37 | {
38 | progressBar1.Value = e.ProgressPercentage;
39 | }
40 |
41 | private void bgWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
42 | {
43 | if ((e.Cancelled == true))
44 | {
45 | }
46 | else if (e.Error != null)
47 | {
48 | MessageBox.Show(RDR_Explorer.Properties.Resources.ResourceManager.GetString("failSaveArch") + Environment.NewLine + e.Error.ToString(), RDR_Explorer.Properties.Resources.ResourceManager.GetString("err"), MessageBoxButtons.OK, MessageBoxIcon.Error);
49 | }
50 | else
51 | {
52 | this.Hide();
53 | MessageBox.Show(RDR_Explorer.Properties.Resources.ResourceManager.GetString("succArchive"), RDR_Explorer.Properties.Resources.ResourceManager.GetString("succ"), MessageBoxButtons.OK, MessageBoxIcon.Information);
54 | }
55 | this.Invoke(new MethodInvoker(delegate { this.Close(); }));
56 | }
57 |
58 | private void btn_cancel_Click(object sender, EventArgs e)
59 | {
60 | backgroundWorker1.CancelAsync();
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/RDR Explorer/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/logo.png
--------------------------------------------------------------------------------
/RDR Explorer/logo_smll.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/logo_smll.png
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/DesignTimeResolveAssemblyReferences.cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR Explorer.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\RDR Explorer.exe.config
2 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR Explorer.exe
3 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR Explorer.pdb
4 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\KnownFilenames.txt
5 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\xextool.exe
6 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\RDR Explorer.exe
7 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\RDR Explorer.pdb
8 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Main.resources
9 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Properties.Resources.resources
10 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.RPFviewer.resources
11 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Saving.resources
12 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR Explorer.csproj.GenerateResource.Cache
13 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.About.resources
14 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\bin\Debug\RDR Explorer.exe.config
15 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR Explorer.exe
16 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR Explorer.pdb
17 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\bin\Debug\KnownFilenames.txt
18 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\bin\Debug\xextool.exe
19 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\bin\Debug\x360_imports.idc
20 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\bin\Debug\RDR Explorer.exe
21 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\bin\Debug\RDR Explorer.pdb
22 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR Explorer.csprojResolveAssemblyReference.cache
23 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR_Explorer.About.resources
24 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR_Explorer.Main.resources
25 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR_Explorer.Properties.Resources.resources
26 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR_Explorer.RPFviewer.resources
27 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR_Explorer.Saving.resources
28 | C:\Users\redit\Documents\GitHub\RDR-Explorer\source\RDR Explorer\obj\Debug\RDR Explorer.csproj.GenerateResource.Cache
29 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\xcompress.dll
30 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR Explorer.csprojResolveAssemblyReference.cache
31 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\RSCUnpacker.exe
32 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\de\RDR Explorer.resources.dll
33 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.About.de.resources
34 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Main.de.resources
35 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Properties.Resources.de.resources
36 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.RPFviewer.de.resources
37 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Saving.de.resources
38 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\de\RDR Explorer.resources.dll
39 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Debug\zh\RDR Explorer.resources.dll
40 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.About.zh.resources
41 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Main.zh.resources
42 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Properties.Resources.zh.resources
43 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.RPFviewer.zh.resources
44 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\RDR_Explorer.Saving.zh.resources
45 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Debug\zh\RDR Explorer.resources.dll
46 |
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR Explorer.csproj.GenerateResource.Cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR Explorer.csproj.GenerateResource.Cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR Explorer.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR Explorer.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR Explorer.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR Explorer.exe
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR Explorer.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR Explorer.pdb
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.About.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.About.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.About.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.About.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.About.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.About.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Main.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Main.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Main.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Main.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Main.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Main.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Properties.Resources.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Properties.Resources.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Properties.Resources.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Properties.Resources.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Properties.Resources.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.RPFviewer.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.RPFviewer.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.RPFviewer.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.RPFviewer.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.RPFviewer.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.RPFviewer.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Saving.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Saving.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Saving.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Saving.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/RDR_Explorer.Saving.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/RDR_Explorer.Saving.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/de/RDR Explorer.resources.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/de/RDR Explorer.resources.dll
--------------------------------------------------------------------------------
/RDR Explorer/obj/Debug/zh/RDR Explorer.resources.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Debug/zh/RDR Explorer.resources.dll
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/DesignTimeResolveAssemblyReferences.cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR Explorer.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
1 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\RDR Explorer.exe.config
2 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\KnownFilenames.txt
3 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\RDR Explorer.exe
4 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\RDR Explorer.pdb
5 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR Explorer.csprojResolveAssemblyReference.cache
6 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.About.resources
7 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Main.resources
8 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Properties.Resources.resources
9 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.RPFviewer.resources
10 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Saving.resources
11 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR Explorer.csproj.GenerateResource.Cache
12 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR Explorer.exe
13 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR Explorer.pdb
14 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\xcompress.dll
15 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\RSCUnpacker.exe
16 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\de\RDR Explorer.resources.dll
17 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.About.de.resources
18 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Main.de.resources
19 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.RPFviewer.de.resources
20 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\de\RDR Explorer.resources.dll
21 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Properties.Resources.de.resources
22 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\xextool.exe
23 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Saving.de.resources
24 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\bin\Release\zh\RDR Explorer.resources.dll
25 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.About.zh.resources
26 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Main.zh.resources
27 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Properties.Resources.zh.resources
28 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.RPFviewer.zh.resources
29 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\RDR_Explorer.Saving.zh.resources
30 | C:\Users\redit\Documents\GitHub\RDR-Explorer\RDR Explorer\obj\Release\zh\RDR Explorer.resources.dll
31 |
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR Explorer.csproj.GenerateResource.Cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR Explorer.csproj.GenerateResource.Cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR Explorer.csprojResolveAssemblyReference.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR Explorer.csprojResolveAssemblyReference.cache
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR Explorer.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR Explorer.exe
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR Explorer.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR Explorer.pdb
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.About.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.About.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.About.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.About.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.About.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.About.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Main.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Main.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Main.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Main.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Main.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Main.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Properties.Resources.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Properties.Resources.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Properties.Resources.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Properties.Resources.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Properties.Resources.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Properties.Resources.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.RPFviewer.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.RPFviewer.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.RPFviewer.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.RPFviewer.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.RPFviewer.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.RPFviewer.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Saving.de.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Saving.de.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Saving.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Saving.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/RDR_Explorer.Saving.zh.resources:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/RDR_Explorer.Saving.zh.resources
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/TempPE/Properties.Resources.Designer.cs.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/TempPE/Properties.Resources.Designer.cs.dll
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/de/RDR Explorer.resources.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/de/RDR Explorer.resources.dll
--------------------------------------------------------------------------------
/RDR Explorer/obj/Release/zh/RDR Explorer.resources.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/obj/Release/zh/RDR Explorer.resources.dll
--------------------------------------------------------------------------------
/RDR Explorer/red_dead_redemption_icon_by_flitskikker-d315kze (1).ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/red_dead_redemption_icon_by_flitskikker-d315kze (1).ico
--------------------------------------------------------------------------------
/RDR Explorer/xcompress.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/xcompress.dll
--------------------------------------------------------------------------------
/RDR Explorer/xextool.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/reditec/RDR-Explorer/d5e91cdec3120681979a4e4880ef3132b80fe050/RDR Explorer/xextool.exe
--------------------------------------------------------------------------------